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