Hallvard Furuseth
8ad25001ff
ITS#7485 Document key/data size limits in lmdb.h.
...
mdb.c already describes them. The user doc should too.
2013-02-19 21:14:23 +01:00
Hallvard Furuseth
ef25056cfb
Revert "ITS#7515 update parent's mt_next_pgno on child commit"
...
This reverts commit fd4861bf00 .
It duplicated earlier code.
2013-02-17 08:42:14 +01:00
Howard Chu
fd4861bf00
ITS#7515 update parent's mt_next_pgno on child commit
2013-02-17 00:49:53 +00:00
Howard Chu
890f1da3ee
Don't limit retries when coalescing freelist
...
Try to use whatever's available.
2013-02-17 00:48:43 +00:00
Hallvard Furuseth
00d7a96bd5
ITS#7515 Fix MDB parent/child txn interaction.
...
mdb_txn_commit(child): Copy more state. Copy all of mt_dbs:
Include mainDB, and even freeDB since mdb_drop() can update
it. Don't skip DBs with unchanged root, this could break
when the new was newly opened and the old unused junk.
mdb_page_get(): Search parents' dirty lists.
2013-02-16 19:11:20 +01:00
Hallvard Furuseth
d90581fa5a
ITS#7377 Catch MDB failure updating root pointers.
...
"cannot fail" was wrong, it fails at least when exceeding mapsize.
2013-02-16 19:08:54 +01:00
Hallvard Furuseth
c7db955a94
ITS#7517 Don't save dropped dirty MDB databases.
...
mdb_txn_commit's attempt to save the DB could corrupt another DB if
another thread had called mdb_dbi_open and reused the closed DBI.
2013-02-16 19:08:37 +01:00
Hallvard Furuseth
8e1bbdf0dd
mdb_stat -ff[f]: show contiguous page spans.
2013-02-16 19:07:16 +01:00
Hallvard Furuseth
7aba5f5ab9
Add error code MDB_MAP_RESIZED.
2013-02-16 19:06:28 +01:00
Howard Chu
c6a4982793
More for ITS#7455
...
Don't memmove freelist entry when chunking it. Just advance the pointer,
now that it's no longer a complex struct. Also just calculate maxfree_1pg
at startup; it's a constant during runtime.
2013-02-15 13:33:50 +00:00
Hallvard Furuseth
1f953c5559
ITS#7455 Save freelist in single-page chunks
2013-02-15 13:33:50 +00:00
Hallvard Furuseth
7cacc0ec81
Freelist cleanup/streamlining
...
Drop unneeded definitions, redundant code.
2013-02-15 13:33:49 +00:00
Howard Chu
5e59695b8d
Don't memmove freelist entry when chunking it
...
Just advance the pointer, now that it's no longer a complex struct
2013-02-15 13:27:50 +00:00
Hallvard Furuseth
52ecd38e18
ITS#7455 Save freelist in single-page chunks
2013-02-15 13:27:50 +00:00
Hallvard Furuseth
1b8bfc5756
Freelist cleanup/streamlining
...
Drop unneeded definitions, redundant code.
2013-02-15 13:27:02 +00:00
Howard Chu
9ac070beb3
Merge remote-tracking branch 'origin/mdb.master'
2013-02-07 18:30:58 +00:00
Hallvard Furuseth
65c053a6e7
ITS#7512 Fix MDB page leak when malloc error.
...
mdb_page_alloc(): Delay moving me_pgfirst,me_pglast
until malloc(MDB_oldpages to hold the IDs) succeeds.
2013-02-07 08:17:30 +01:00
Howard Chu
e0eb495fb3
Revert "ITS#7515 fix mdb_dbi_open/close"
...
This reverts commit 48dc782ea6 .
2013-02-04 10:53:17 -08:00
Howard Chu
744e311939
NULL key is allowed for MDB_CURRENT
2013-02-01 06:19:23 -08:00
Howard Chu
48dc782ea6
ITS#7515 fix mdb_dbi_open/close
...
If a DBI handle is opened by a txn that aborts, the DBI handle
should no longer be valid.
2013-01-31 20:05:48 -08:00
Quanah Gibson-Mount
bc4e47a5a4
Merge remote branch 'origin/mdb.master'
2013-01-31 16:46:55 -08:00
Howard Chu
27aaecc744
ITS#7511 make sure cursor is marked valid after successful put
2013-01-28 18:45:36 -08:00
Howard Chu
9fa0c3bf31
ITS#7505 fix prev commit, partial revert
2013-01-29 01:08:24 +00:00
Howard Chu
0b8ac92b7a
ITS#7505 Fix mdb_update_key when key is too big
2013-01-27 18:02:18 +00:00
Howard Chu
1c581612f7
Merge remote-tracking branch 'origin/mdb.master'
2013-01-26 18:56:29 +00:00
Howard Chu
cfedb365b4
Fix MDB_CURRENT updating for dupsort items
2013-01-26 18:55:35 +00:00
Howard Chu
461db2de1a
ITS#7497 fix lineno overflow in ldif_read_record()
2013-01-23 02:19:02 +00:00
Hallvard Furuseth
7fdf672041
Update MDB comments: Caveats, flags, etc.
2013-01-16 18:42:57 +01:00
Howard Chu
04ea399c7c
Merge remote branch 'origin/mdb.master'
2013-01-15 04:29:22 -08:00
Howard Chu
8e7bb2042b
ITS#7485 data sizes limited to 32 bits
...
That's all we have space for in a node record.
2013-01-15 04:28:47 -08:00
Howard Chu
b3345a21e0
Merge remote-tracking branch 'origin/mdb.master'
2013-01-14 16:51:37 -08:00
Howard Chu
1a0d02c4c4
ITS#7485 more size checks
2013-01-14 13:46:25 -08:00
Howard Chu
25a99d4024
ITS#7485 check maxkeysize in mdb_cursor_put
...
Also MDB_MAXKEYSIZE is redefinable at compile time.
2013-01-14 13:12:15 -08:00
Howard Chu
9e35127f1d
One more rename
...
Forgot this in 98fe339089
2013-01-14 12:57:54 -08:00
Howard Chu
53cf2eed90
ITS#7491 check for filled dirty page list
...
Very large single transactions will fail. It's not just a problem when
nested transactions are used. We could make this dynamically sized,
but I'm not sure what the point is.
2013-01-11 11:45:25 -08:00
Howard Chu
e250e052c3
Merge remote-tracking branch 'origin/mdb.master'
2013-01-10 02:59:39 -08:00
Howard Chu
fed573cb86
Happy New Year
2013-01-10 02:58:55 -08:00
Howard Chu
8102d9d2df
Merge remote-tracking branch 'origin/mdb.master'
2013-01-09 12:22:41 -08:00
Hallvard Furuseth
cd80a15474
Delete liblmdb/mfree. It has moved into mdb_stat.
2013-01-09 20:49:43 +01:00
David Bender
8f52aa24d3
ITS#7476 Prevent EINTR from stopping otherwise successful connect
2013-01-09 09:11:35 -08:00
Howard Chu
0521a7b374
Merge remote branch 'origin/mdb.master'
2013-01-09 08:57:53 -08:00
Howard Chu
2a36346b50
ITS#7455 don't give up so soon
...
If we're operating on the freelist, see if our current pghead
can satisfy the request before giving up and using new pages.
2013-01-09 08:30:13 -08:00
Kurt Zeilenga
0fd1bf30b8
Happy New Year
2013-01-02 10:22:57 -08:00
Howard Chu
5e1dbc48ab
Merge remote-tracking branch 'origin/mdb.master'
2012-12-19 13:20:50 -08:00
Howard Chu
057e068630
Fix typo
2012-12-19 13:20:24 -08:00
Howard Chu
9f2c72e5fb
Merge remote-tracking branch 'origin/mdb.master'
2012-12-19 13:12:50 -08:00
Howard Chu
460a05bf78
Add initial mdb utility manpages
2012-12-19 13:09:56 -08:00
Howard Chu
2565e974b9
ITS#7477 check for invalid LDIF
2012-12-19 09:15:09 -08:00
Howard Chu
9ed5ca4f7a
Merge remote-tracking branch 'origin/mdb.master'
2012-12-11 22:22:52 -08:00
Howard Chu
82b97a8af0
init_meta should write mapsize
...
Was leaving it 0 initially.
2012-12-11 22:21:52 -08:00
Howard Chu
1c1b5ca0c4
Merge remote-tracking branch 'origin/mdb.master'
2012-12-11 16:01:27 -08:00
Howard Chu
0702fbd688
Update version date
2012-12-11 16:01:25 -08:00
Howard Chu
bae86317e0
Merge remote-tracking branch 'origin/mdb.master'
2012-12-11 14:22:31 -08:00
Howard Chu
9acf801cc1
Make sure init_meta is at beginning of file
2012-12-11 12:55:47 -08:00
Howard Chu
ed86a086f7
More for prev commit
...
Use the latest meta page
2012-12-11 12:46:17 -08:00
Howard Chu
e74d70e88e
Partially revert 65d40eb5d2
...
Allow both increasing and decreasing the environment size.
But don't allow decreasing below the currently occupied space.
2012-12-11 12:03:19 -08:00
Howard Chu
470b126e9f
Merge remote-tracking branch 'origin/mdb.master'
2012-12-10 17:22:26 -08:00
Howard Chu
282be11654
FIx prev commit
2012-12-10 17:21:24 -08:00
Howard Chu
3bf87500a3
Merge remote-tracking branch 'origin/mdb.master'
2012-12-10 12:22:30 -08:00
Howard Chu
0ce6bb4be0
Add error checks to txn_commit
...
These ops could fail if the map is full.
2012-12-10 12:21:36 -08:00
Howard Chu
aff2693fc0
ITS#7455 simplify
...
Don't try to reclaim overflow pages while operating on
the freelist (for now). The circular dependencies are much like
the single-page case, but worse. Maybe look into this in the
future, but it's not absolutely necessary now.
2012-12-10 12:16:50 -08:00
Howard Chu
e26fc73417
ITS#7467 add verbose freelist info
2012-12-07 13:19:36 -08:00
Howard Chu
6a9476822d
Merge remote-tracking branch 'origin/mdb.master'
2012-12-07 12:28:25 -08:00
Howard Chu
784757faa9
ITS#7465 fail if both -a and -s specified
2012-12-07 12:06:30 -08:00
Howard Chu
6062cd9777
Merge remote-tracking branch 'origin/mdb.master'
2012-12-06 17:41:14 -08:00
Howard Chu
9a5d4370be
Yet more retries for overflow page scan
2012-12-06 17:39:49 -08:00
Howard Chu
8ab758c9cc
Merge remote-tracking branch 'origin/mdb.master'
2012-12-06 17:11:29 -08:00
Howard Chu
5863d5cc61
Freelist fixes
...
Keep list sorted if it grows during a write. Don't free pghead until
we're sure our writes are all finished.
2012-12-06 09:05:30 -08:00
Howard Chu
a037e27fc0
Merge remote branch 'origin/mdb.master'
2012-12-04 06:39:01 -08:00
Howard Chu
7b10fdde00
Fix mdb_env_copy
...
Just write in 2^31 sized chunks
2012-12-04 06:30:22 -08:00
Howard Chu
bbfe587246
Add support for 64 bit index hashing
2012-12-03 18:14:28 -08:00
Howard Chu
f9d41ba98a
Merge remote-tracking branch 'origin/mdb.master'
2012-12-03 16:54:33 -08:00
Howard Chu
04b7c42109
Rename mdb_open/close mdb_dbi_open/close
...
Avoid possible symbol clashes with MDB-Tools libmdb
2012-12-03 16:53:24 -08:00
Howard Chu
e545b742e5
Fix 5c1ee7f7ba
...
mdb_cursor_sibling() no longer pops cursor before returning.
2012-12-03 13:57:46 -08:00
Howard Chu
5af47adf6b
Fix mdb_midl_shrink
2012-12-03 13:57:28 -08:00
Howard Chu
ef3b4213ff
Merge remote-tracking branch 'origin/mdb.master'
2012-11-30 12:56:58 -08:00
Howard Chu
d3f51fdcf7
More retries for overflow page scan
2012-11-30 12:54:19 -08:00
Howard Chu
1509d75363
Merge remote-tracking branch 'origin/mdb.master'
2012-11-30 12:47:00 -08:00
Howard Chu
98fe339089
Rename libmdb to liblmdb
2012-11-30 12:45:34 -08:00
Howard Chu
2a94ebced6
Add install target
2012-11-30 12:39:53 -08:00
Howard Chu
d0e86d485d
Merge remote-tracking branch 'origin/mdb.master'
2012-11-30 12:33:18 -08:00
Howard Chu
13f3bcd59c
Rename libmdb to liblmdb, lmdb.h
...
Avoid naming conflicts with other mdb* packages. Bump version to 0.9.5
2012-11-30 12:30:51 -08:00
Howard Chu
f165507199
ITS#7455 use freelist for overflow pages
2012-11-30 12:18:27 -08:00
Howard Chu
185136397d
Drop unneeded #include <time.h>
2012-11-28 15:34:44 -08:00
Howard Chu
049b145ec7
Doc layout tweaks
2012-11-28 15:34:19 -08:00
Hallvard Furuseth
97ed96206d
mdb_env_sync(,force=1): Override MDB_MAPASYNC.
...
With MDB_MAPASYNC, the API provided no way to ensure full sync.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
b9275c9991
mdb_cursor_dbi(): Assume valid args.
...
It returned 0, which is the freelist DBI and is valid for a few uses.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
7e620a34a2
API change: mdb_drop() only accepts del=0 or 1.
...
This allows for other flag values in the future.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
d903bed218
API change: mdb_env_set_maxdbs(, *named* DBs).
...
Let the user specify the number of databases he will actually
use. Adding 2 for FREE_DBI and MAIN_DBI is an internal matter.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
6b56e0fab1
ITS#7453 Fix reset of MDB_NOSYNC/MDB_NOMETASYNC.
...
mdb_env_open() with these flags did not open a synchronizing
file descriptor. Thus disabling them later did not work.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
0201b9002c
Tweak MDB_FIXEDMAP handling.
...
Drop mmap()'s MAP_FIXED flag, so it returns another address instead
of unmapping existing overlapping pages. Verify the returned address.
2012-11-28 00:59:00 +01:00
Hallvard Furuseth
52e3adbdec
Renumber MDB_NOSUBDIR. Check mdb_env_open() flags.
...
MDB_NOSUBDIR was == MDB_REVERSEKEY. That affected the freelist:
Env flags are stored in mm_flags alias mm_dbs[FREE_DBI].md_flags.
It stays a persistent flag, in case mdb_env_open someday wants
to pick/verify which lockfile to use with the datafile.
Catch bad flags so they will no longer make it into the data file.
2012-11-28 00:59:00 +01:00
Ralf Haferkamp
c728ebf586
ITS#7428 Use non-blocking IO during SSL Handshake
...
If a timeout is set, perform the SSL Handshake using non-blocking IO. This way
we can timeout if SSL Handshake gets stuck for whatever reason.
This code is currently hidden behind #ifdefs (LDAP_USE_NON_BLOCKING_TLS) and
disabled by default as there seem to be some problems using NON-blocking
I/O during the TLS Handshake when linking against NSS (either a bug in NSS
itself of in tls_m.c, see discussion on -devel)
This patch adds an additional parameter to ldap_int_poll() in order to indicate
if we're waiting in order to perform a read or write operation.
2012-11-21 14:25:18 +01:00
Howard Chu
88fd28886d
Merge remote-tracking branch 'origin/mdb.master'
2012-11-05 09:47:03 -08:00
Howard Chu
bb36bdcd1c
ITS#7432 fix typo in mdb_midl_sort
...
Wasn't pushing the optimal half of the array onto the stack,
thus used more stack than expected -> overrun.
2012-11-05 05:06:06 -08:00
Howard Chu
64b164b4fc
Merge remote-tracking branch 'origin/mdb.master'
2012-10-30 16:34:14 -07:00
Howard Chu
0108327c27
Better fix for MDB_DEBUG tweak -- from hbf
2012-10-25 07:03:25 -07:00
Howard Chu
b68aa3f86b
Revert "MDB_DEBUG tweak for old compilers"
...
This reverts commit ef2092eac9 .
2012-10-25 06:54:09 -07:00
Howard Chu
ef2092eac9
MDB_DEBUG tweak for old compilers
2012-10-25 05:28:55 -07:00
Howard Chu
52a0b4f83c
Merge remote-tracking branch 'origin/mdb.master'
2012-10-23 04:49:09 -07:00