Commit Graph

20086 Commits

Author SHA1 Message Date
Howard Chu
b9d13a29e6 Track changes to all cursors.
For any change to a page or node, update all other cursors pointing
at the same page (or node). Cursors are now stored in a linked list
off their owning transaction. Cursors are all closed when the transaction
ends. Cursors in parent transactions are updated when their child
transaction commits.
2011-09-21 15:55:27 -07:00
Howard Chu
c4d5e6e786 Add support for nested transactions. 2011-09-21 12:58:43 -07:00
Hallvard Furuseth
47f6aec61e back-bdb/back-mdb IDL cleanup.
Parenthesize macros.  Microoptimize IDL search.  Use RANGE_<FIRST/LAST>
when IDL is known to be a range.
2011-09-19 10:31:12 +02:00
Hallvard Furuseth
ef7f5f5e32 Cleanup ISO C compatibility for recent commits 2011-09-19 10:31:12 +02:00
Hallvard Furuseth
79f4f3c0bd More libmdb vs back-mdb C type tweaks.
Do not access a size_t via an unsigned long pointer, an MDB_val via a
berval pointer, or the inverse. Instead copy into the proper data types.
2011-09-19 10:31:12 +02:00
Hallvard Furuseth
d9edc7d5af Merge branch 'mdb.master' 2011-09-19 10:30:30 +02:00
Hallvard Furuseth
8fa10ae668 libmdb IDL cleanup.
Microoptimize IDL search.
Use RANGE_<FIRST/LAST> when IDL is known to be a range.
2011-09-19 10:27:49 +02:00
Howard Chu
02abfb91ba Additional fix for prev commit 2011-09-18 18:26:54 -07:00
Howard Chu
76c6c8e5b7 Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap 2011-09-18 18:14:05 -07:00
Howard Chu
4272e7de4f Make sure 2 subpages fit in one real page 2011-09-18 18:13:23 -07:00
Howard Chu
001f149654 Merge remote branch 'origin/mdb.master' 2011-09-18 17:08:40 -07:00
Howard Chu
237fabda64 Fix last delete from a subpage 2011-09-18 17:07:47 -07:00
Howard Chu
0ab841598f Fix 09006ccec7
Check for stale DBs was in the wrong place.
2011-09-18 16:39:18 -07:00
Howard Chu
c0fc7fdbed Fix prev commit
Don't truncate all indices if specific indices were given.
2011-09-18 14:47:41 -07:00
Howard Chu
344996c5e8 Support index truncation 2011-09-18 14:28:36 -07:00
Howard Chu
7164c4c662 Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap 2011-09-18 14:28:20 -07:00
Howard Chu
2c70d0430a Fix mdb_drop() if not deleting the DB record 2011-09-18 14:22:27 -07:00
Howard Chu
77b1017b85 Fix typo, minor cleanup 2011-09-18 14:12:49 -07:00
Howard Chu
94c0b077d8 New mdb_close() signature 2011-09-18 13:25:38 -07:00
Howard Chu
e76299c196 Merge remote branch 'origin/mdb.master' 2011-09-18 13:25:09 -07:00
Howard Chu
b1a08d565d Support single parameter substitution in filter 2011-09-18 13:24:24 -07:00
Howard Chu
57b5fbea49 Add mdb_drop() for deleting a DB
Allow MIDLs to grow arbitrarily, to allow unlimited number of
pages to be freed in one txn.
2011-09-18 12:37:02 -07:00
Howard Chu
09006ccec7 API change, consistency check
mdb_close() takes an env, not a txn.
Also, add check for stale DB records (in case some other process
wrote to the DB last).
2011-09-18 10:48:12 -07:00
Howard Chu
a05cbba77a Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap 2011-09-17 04:02:52 -07:00
Howard Chu
b7057eb61e New sorted-dup subpage support
Instead of converting directly to a subDB when the first duplicate
item is seen for a key, convert to a subpage instead. Allow the
subpage to grow up to the overflow limit, then convert to a subDB.
This saves a significant amount of space in a typical slapd index
database.

Currently we don't convert back to the smaller form if items are
later deleted. Probably could do that with some hysteresis, e.g.,
convert back from subDB to subpage when the size drops below
(overflow limit/2). Maybe later.
2011-09-17 03:33:07 -07:00
Howard Chu
3fb20f1e91 deltasync test tweaks
Check replication success before stopping consumer.
Set retry/interval to make sure consumer reconnects after provider restart.
2011-09-17 03:08:02 -07:00
Howard Chu
e1a5177bac Merge branch 'mdb.master' of ssh://git-master.openldap.org/~git/git/openldap 2011-09-15 10:37:13 -07:00
Howard Chu
0a28548131 Use FNV-1A hash to generate unique mutex names
For Windows and MacOSX
2011-09-15 10:36:15 -07:00
Howard Chu
d9a60db75e Merge remote branch 'origin/mdb.master' 2011-09-14 20:34:27 -07:00
Howard Chu
2c033676ea Doc tweak - txn flags 2011-09-14 20:33:09 -07:00
Howard Chu
5b7c983a66 MacOSX semaphore names are limited to 31 chars
Including the terminating NUL. Good job documenting that, guys.
2011-09-14 20:30:26 -07:00
Howard Chu
8917b774f7 Merge remote branch 'origin/mdb.master' 2011-09-14 11:46:40 -07:00
Howard Chu
0533f80364 Add MacOSX support
mmap() with FIXEDMAP fails, otherwise things work.
2011-09-14 11:31:27 -07:00
Howard Chu
04311cc716 Fix entry_alloc with no attrs 2011-09-14 10:14:02 -07:00
Howard Chu
0e96868e8e Fix onelevel search from last commit 2011-09-14 09:54:58 -07:00
Howard Chu
e222506b88 Minor doc cleanup 2011-09-14 01:46:08 -07:00
Howard Chu
9e3e7cefd8 More docs 2011-09-14 01:08:01 -07:00
Howard Chu
71a665aa9d Namespace cleanup 2011-09-13 23:36:41 -07:00
Howard Chu
dfed6f77d7 More search optimization
Tighten up entry_alloc/entry_decode
Track parent nodes in idscopes
2011-09-13 16:58:38 -07:00
Howard Chu
fb264bf3e1 Tentative speedup - use plain ints for entry_encode/decode
Keep entries word-aligned. Yields ~10% speedup, but also 10% more space used.
May revert this if the space cost is unacceptable.
2011-09-13 15:24:50 -07:00
Howard Chu
550dc4aaee Merge remote branch 'origin/mdb.master' 2011-09-13 15:24:33 -07:00
Howard Chu
56fe0d4f1a Tweak search_node inner loop to avoid LEAF2 checks 2011-09-13 13:42:02 -07:00
Howard Chu
70c79df1df cursor_set/search_node tweaks, use intcmp when possible 2011-09-13 13:41:40 -07:00
Howard Chu
65b5ff2de3 mdb_db_close() should not force env_sync in quick mode 2011-09-13 01:28:37 -07:00
Howard Chu
9297050f9e Resolve MDB/HDB monitor OID clashes 2011-09-12 11:41:04 -07:00
Howard Chu
c4ddf352ba Just use memcpy since we know it's non-overlapping 2011-09-12 11:05:38 -07:00
Hallvard Furuseth
141a43c1ee Tweak back-mdb integer types to match libmdb.
Also do not cast between berval and MDB_val.  That breaks when
sizeof(berval.bv_len) != sizeof(MDB_val.mv_size).
2011-09-12 19:07:12 +02:00
Howard Chu
dc83777ab9 Minor tweaks, update relfunc behavior 2011-09-12 01:15:22 -07:00
Howard Chu
0f1522418e Merge remote branch 'origin/mdb.master' 2011-09-11 23:58:50 -07:00
Howard Chu
25529a4c36 More cursor_init cleanup 2011-09-11 23:57:17 -07:00