Howard Chu
4bc18a5dd3
In mdb_audit, change assert to fprintf
12 years ago
Howard Chu
85ae5011e7
Fix mdb_audit()
...
due to a0993354a6
12 years ago
Ondrej Kuznik
bd92b570a8
ITS#7369 mdb_stat: cleanup in case something went wrong.
12 years ago
Howard Chu
a2d1b42e39
ITS#7369 abort txn before exiting
12 years ago
Howard Chu
916995236e
ITS#7364 also close the mutexes as needed
...
Otherwise a process that opens and closes an env more than once
will leak mutex handles. (WIN32/BSD)
12 years ago
Chris Mikkelson
46cf442700
ITS#7364 Remove POSIX semaphores when the last user closes the mdb environment.
12 years ago
Chris Mikkelson
9f983b7999
ITS#7363 Use posix semaphores on apple and bsd systems.
12 years ago
Howard Chu
f114fec545
Loop thru all DBs and show their stats
...
This is quick and dirty, should be integrated into mdb_stat.
12 years ago
Howard Chu
d53644f682
Minor cleanup
12 years ago
Howard Chu
d1120fbccc
Write optimization: avoid copying unused portions of pages.
12 years ago
Howard Chu
234cd9dfb5
Fix txn_commit error check
13 years ago
Howard Chu
23219ed32a
Fix 205bb17793
...
Ignore current cursor pos if it's out of bounds.
13 years ago
Howard Chu
d1a7fa267b
Update sub-DBs before updating free list
13 years ago
Howard Chu
d3990eb2f8
Append mode should also detect keys that are too small
13 years ago
Howard Chu
5da67968af
Fix root split check in mdb_page_split
13 years ago
Howard Chu
205bb17793
Skip unneeded calls to mdb_page_get in mdb_page_search
13 years ago
Howard Chu
ccc4d23e74
Leave extra space when creating a fake page
...
Minimizes the number of memcpy's if additional dups are stored.
13 years ago
Howard Chu
05ec98d119
Append mode still needs to detect duplicates
13 years ago
Howard Chu
14fb1f59c7
Append tweaks, page_split fixes
...
Append mode now does no key comparisons, input must be in sorted order.
page_split was not updating cursor parents correctly.
13 years ago
Howard Chu
7e9a6134fd
Make sure cursor's DB is init'd if STALE.
13 years ago
Howard Chu
a0993354a6
Don't use env-private copy of DB root nodes.
...
Just lookup the DB roots as needed. When many DBs are in use,
most of the copies won't be referenced in a given txn, and
there's a bad race condition in the copy routine.
13 years ago
Howard Chu
0ea56294f1
Fix darwin sem_open() names
...
Must begin with '/'
13 years ago
Howard Chu
1a9775dc5a
Fix ID -> MDB_ID due to 20baad4a20
13 years ago
Howard Chu
248fd1c7b8
Windows thread callback support
13 years ago
Howard Chu
e562f53e10
Drop me_toggle, unused
13 years ago
Howard Chu
179c44e7da
Revert "libmdb: Do not use the MDB_txbody.mtb_txnid field."
...
This reverts commit 4a0b30499c
.
13 years ago
Howard Chu
433105f09b
Fix: avoid direct reference to meta pages
...
Relevant info should be copied during txn_begin only.
13 years ago
Howard Chu
df7ddb6bf4
Add MDB_NOMETASYNC env option.
...
Just a trial. This may not make sense if we decide to split the
meta pages into their own separate file, to allow meta traffic to
reside on a separate spindle.
13 years ago
Howard Chu
38560c2517
Tweak b802bcf704
...
Clarify prev commit, fix Doxygen comments broken by earlier changes
13 years ago
Howard Chu
b802bcf704
Partial revert of 13c663f666
...
Don't re-use free pages so soon; that leaves us vulnerable to
DB corruption if data syncs successfully but meta doesn't.
13 years ago
Howard Chu
a334257800
Tweak prev commit, use first unused slot
13 years ago
Howard Chu
4cabb24b83
Fix mdb_open, re-use closed dbi slots
13 years ago
Howard Chu
eeec509150
ITS#7266 fix rebalance for LEAF2 pages
13 years ago
Howard Chu
a540597dd6
More freelist tweaks, avoid referencing freed page
13 years ago
Howard Chu
fadf75a9cb
Further clarification of mdb_open()
13 years ago
Howard Chu
fbf9c23304
ITS#7251 fix Apple/Windows shared mutex naming
13 years ago
Hallvard Furuseth
20baad4a20
libmdb: midl.h namespace cleanup.
...
Prefix ID, NOID, ID2, IDL, ID2L with 'MDB_'.
Also drop bdb from file description.
13 years ago
Hallvard Furuseth
0a4aa88927
libmdb: Simplify pick_meta() from read_meta().
...
Put one call in #if MDB_DEBUG. Move DPRINTF(Using meta page #) there.
13 years ago
Hallvard Furuseth
dce5bb2fee
libmdb: Simplify mdb_default_cmp. No real change.
13 years ago
Hallvard Furuseth
729a8a2819
libmdb: signed meets unsigned warning cleanup
13 years ago
Hallvard Furuseth
99fa22c164
libmdb: MDB_FDATASYNC code cleanup.
...
Define MDB_FDATASYNC() instead of redefining fdatasync().
13 years ago
Hallvard Furuseth
592b3f8727
libmdb: Add C++ 'extern "C" {}' to *.h
13 years ago
Hallvard Furuseth
8e1ebbb4a8
libmdb: Don't open datafile twice when not needed.
...
If the database is opened with MDB_RDONLY or MDB_NOSYNC,
instead use the same file descriptor for me_mfd and me_fd.
Also factor out Windows/Unix error handling after open.
13 years ago
Hallvard Furuseth
6d0b424dbe
libmdb: Set close-on-exec flag on lockfile
13 years ago
Hallvard Furuseth
4a0b30499c
libmdb: Do not use the MDB_txbody.mtb_txnid field.
...
Get txn->mt_txnid from the meta page instead. Otherwise it
and txn->mt_toggle could become inconsistent, since read-only
txns fetched both from MDB_txbody without mutex proteciton.
13 years ago
Hallvard Furuseth
d1738c3e6b
Fix MDB_DEBUG in last ITS#7299 commit.
...
Make DPRINTF usable in if-else. Silence signed vs unsigned warning.
13 years ago
Howard Chu
d793594173
ITS#7229 more mdb_page_split tweaks
...
Also add mdb_debug/mdb_debug_start to toggle debug output at runtime
13 years ago
Howard Chu
a66f9e9292
ITS#7210 fix check for freelist changes
...
Was being fooled before because the newly malloc'd block had
the same address as the previously freed block.
13 years ago
Howard Chu
191d78948b
ITS#7238 doc clarification
13 years ago
Howard Chu
ae027b5214
ITS#7229 additional tweaks
...
Should probably compare nsize to pg_size/4 instead...
13 years ago