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
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
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
Howard Chu
de0cb27d70
ITS#7230 check and strip 0 length IDLs from freelist
13 years ago
Howard Chu
7ba25c488a
ITS#7229 more mdb_page_split fixes
13 years ago
Howard Chu
84acc0e803
ITS#7219 fixup keysize in previous commit
13 years ago
Howard Chu
0f10814494
ITS#7219 fix for odd-aligned keys in mdb_update_key()
13 years ago
Howard Chu
91bab157f6
ITS#7210 fix leak of overflow pages in freelist
13 years ago
Howard Chu
f53beeabee
Partial revert of prev commit
...
Sub-DBs were correct before
13 years ago
Howard Chu
ac0b18911b
Fix entry counts in cursor_put
...
when replacing an existing item
13 years ago
Howard Chu
0952cfdf84
Fix uninit'd xcursor index
13 years ago
Howard Chu
04f488e7a0
ITS#7210 additional freelist fixes
...
Also allow read access to freelist in mdb_cursor_open
13 years ago
Howard Chu
b92af0760b
ITS#7210 partial fix
...
Allow pages from free list to be used when growing the free list.
(Yes, this is self-referential...)
13 years ago
Howard Chu
8a4981d8aa
ITS#7213 fix page_split with MDB_APPEND
...
don't skip the cursor adjust checks
13 years ago
Howard Chu
25e8e82c5f
Update overflow page count when freeing overflow page
13 years ago
Hallvard Furuseth
c7da506dd2
Fix MDB_txninfo.mt2 padding on Windows/Apple
13 years ago
Hallvard Furuseth
5c182fbedf
Fix valgrind call after malloc failure in mdb.
...
Also line up the code logic a bit.
13 years ago
Hallvard Furuseth
d3b9939e71
Clean up MAP_FAILED handling in mdb.
...
Delay (MDB_txninfo*) cast to after comparing mmap() with MAP_FAILED.
Otherwise, if MAP_FAILED = (void*)-1 but MDB_txninfo requires stricter
alignment, the compiler could assume the result is never MAP_FAILED.
Also store NULL in env->(me_map, me_txns) after mmap failure.
13 years ago
Hallvard Furuseth
2baadabdff
ITS#7191 Align dirty MDB pages on the stack
13 years ago
Howard Chu
15f3e650da
ITS#7191 more alignment tweaks
...
Revealed when gcc optimization is enabled
13 years ago
Howard Chu
2ccf0d58b2
Fix typo in 7bc62c5128
13 years ago
Howard Chu
7bc62c5128
ITS#7190 fix merging of branch pages in deletes
13 years ago
Hallvard Furuseth
d50d57ed63
Fix libmdb comments
13 years ago
Hallvard Furuseth
d8b4598085
ITS#7191 Fix mdb_xcursor_init1() unaligned access
13 years ago
Howard Chu
1b07b48c1a
ITS#7196 use IOV_MAX if it's defined and small
13 years ago
Howard Chu
b23bb7a0b1
ITS#7160 get BYTE_ORDER def for HPUX (and Solaris)
13 years ago
Howard Chu
953796759e
Fix typo in e8e57be421
13 years ago
Howard Chu
e8e57be421
Add valgrind support with -DUSE_VALGRIND
...
Track allocations and invalid accesses to freed tmp pages.
13 years ago
Howard Chu
3d6b924c25
txn_commit must abort txn before returning errors
...
Fix for failure when committing a txn that is a child of
some parent txn.
13 years ago
Howard Chu
1c8de1883c
ITS#7121 fix page splits when newindx == 0
13 years ago
Howard Chu
b9cbcb0588
ITS#7126 fix cursor tracking code
...
Don't compare cursors that aren't deep enough to match the
current cursor.
13 years ago
Howard Chu
713bf092b6
Happy New Year!
13 years ago