Commit Graph

19871 Commits

Author SHA1 Message Date
Howard Chu
e5b1dce6a7 Debug helper for index 2011-09-05 15:23:08 -07:00
Howard Chu
ffdf3d7afb Merge remote branch 'mdb/mdb.master' 2011-09-05 15:19:41 -07:00
Howard Chu
963c421a97 Minor cleanup 2011-09-05 14:22:46 -07:00
Hallvard Furuseth
a316851494 back-mdb/Makefile.in += variable MDB_SUBDIR.
For compiling against a checkout of the stand-alone libmdb,
which has a branch 'mdb.master' with its own root:
    git clone --branch=mdb.master <openldap_repo_dir> mdb
    set_mdb="MDB_SUBDIR=`pwd`/mdb/libraries/libmdb"
    ... maybe modify mdb repository for testing ...
    cd <openldap_repo_dir>; make $set_mdb
2011-09-05 21:10:04 +02:00
Howard Chu
a4d0cde2d3 Fix from key_change consolidation 2011-09-05 03:52:38 -07:00
Howard Chu
e44d4cf06a Use mdb_midl_append/sort instead of _insert 2011-09-05 02:37:43 -07:00
Howard Chu
2cde97ae94 Use mdb_midl_append/sort instead of _insert 2011-09-05 02:36:24 -07:00
Howard Chu
7afc68c0ec Cursor updates 2011-09-05 01:27:16 -07:00
Howard Chu
221be39208 mdb_cmp refactoring 2011-09-05 01:19:24 -07:00
Howard Chu
0609aa45b3 Reimplement basic ops as cursor ops 2011-09-05 01:19:24 -07:00
Howard Chu
23790cf390 Add MDB_{FIRST,LAST}_DUP for cursor_get 2011-09-05 01:17:13 -07:00
Howard Chu
9cfbea8e8f Cleanup midl, start documenting internals 2011-09-05 01:16:44 -07:00
Howard Chu
0f679e9386 Tweak docs 2011-09-05 01:16:33 -07:00
Howard Chu
70a4f6f29d mdb_cmp refactoring 2011-09-05 00:46:32 -07:00
Howard Chu
7bb14a2e79 Cursor stuff working, no major perf gain 2011-09-04 21:33:57 -07:00
Howard Chu
1843fe0b53 Cursors in-progress, broken 2011-09-04 21:33:57 -07:00
Howard Chu
8d89a53165 Use cursor->mc_flags 2011-09-04 21:33:57 -07:00
Howard Chu
7f46832ec5 Begin reimplementing basic ops as cursor ops 2011-09-04 21:33:57 -07:00
Howard Chu
f6edbd7793 Add MDB_{FIRST,LAST}_DUP for cursor_get 2011-09-04 21:33:57 -07:00
Howard Chu
2197928aaa Fix mdb_split, fix MDB_GET_BOTH 2011-09-03 20:12:09 -07:00
Howard Chu
9d821c26c3 Fix mdb_split, fix MDB_GET_BOTH 2011-09-03 20:11:07 -07:00
Howard Chu
e91dae3ed5 Cleanup midl, start documenting internals 2011-09-03 14:27:07 -07:00
Howard Chu
d38ef26425 Fix conversion of IDL to range 2011-09-03 13:09:19 -07:00
Howard Chu
f7a0fc9f8b Fix log parsing, broken by 8d74f71 2011-09-02 13:22:41 -07:00
Howard Chu
b30d0266e7 Tweak docs 2011-09-02 01:09:11 -07:00
Howard Chu
0e4412de20 Tests updates for mdb 2011-09-01 17:03:57 -07:00
Howard Chu
df81345337 Add MDB support to configure and test framework.
Does not update the tests themselves.

In configure --help, call it "mdb database backend" instead of something
with "memory-mapped" which could confuse somebody about a memory-only DB.

Conflicts:

	servers/slapd/back-mdb/Makefile.in
2011-09-01 17:00:26 -07:00
Howard Chu
0ba4206ed9 Import back-mdb 2011-09-01 17:00:26 -07:00
Howard Chu
02cff39398 Merge remote branch 'mdb4/master' 2011-09-01 16:50:26 -07:00
Howard Chu
30736a0ff5 Ugly-as-sin initial Windows port 2011-09-01 16:31:10 -07:00
Howard Chu
2510bea718 API cleanup, doxygen docs for public API 2011-09-01 16:31:10 -07:00
Howard Chu
0f459dd773 Cleanup, fix freelist alloc
Don't allow new pages for free list to come from the free list.
Otherwise a nasty data self-reference occurs that is too much
trouble to unwind.
2011-09-01 16:31:10 -07:00
Howard Chu
f7aa0d5e4a Tweak locks, fix race conditions 2011-09-01 16:31:10 -07:00
Howard Chu
d27a7754f3 Reduce excessive memcpy in mdb_split 2011-09-01 16:31:10 -07:00
Howard Chu
027e1daa10 Fix mdb_split, tweak split_indx if space is tight 2011-09-01 16:31:10 -07:00
Howard Chu
01b9fc59fb Fix update of big data items 2011-09-01 16:31:10 -07:00
Howard Chu
13c663f666 Fix free page reclaim and dbs table update
Can re-use free pages 1 txn earlier
Must update all dbs tables on txn commit
2011-09-01 16:31:10 -07:00
Howard Chu
94718fab00 More debug, fix MDB_DEL_DUP 2011-09-01 16:31:10 -07:00
Howard Chu
ee69051a7c More debug output 2011-09-01 16:31:10 -07:00
Howard Chu
d54eb7dd81 Add txn_reset / txn_renew 2011-09-01 16:31:10 -07:00
Howard Chu
590c728044 First cut at DUPFIXED support
Also in cursor_set, check the current page (if already set from
before) before starting over again from the root.
2011-09-01 16:31:10 -07:00
Howard Chu
720c4b0a3d Set MINKEYS to 2
For better space utilization
2011-09-01 16:31:10 -07:00
Howard Chu
66a647e55d Keep re-using dpages instead of freeing them 2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
ca496bd357 Avoid cast-away-const for errstr[] 2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
5b3b522313 Wrap O_DSYNC in MDB_DSYNC.
If O_DSYNC is not defined, that may be due to poor compiler options.
We could fall back to the less efficient O_SYNC, but it seems better
to let the user learn of the problem and give better compiler options.
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
cb7c955220 Simplify: Replace IDL*_CMP() with CMP() 2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
3029bb694d Macro cleanup: Parenthesize, simplify, remove a ; 2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
a1b4144b80 Drop gcc extension ,##__VA_ARGS__. Add DPUTS().
C99 says DPRINTF(fmt, ...) must get at least 2 args.  Using DPUTS for 1 arg.
2011-09-01 16:31:10 -07:00
Howard Chu
8f77043372 Fix cursor_set for dups
Also make sure dups are counted in md_entries
2011-09-01 16:31:10 -07:00
Howard Chu
edf9d8e51b Sorted dups fix
Write the first datum normally. Convert to a sub-db if
additional items for the same key are written.
2011-09-01 16:31:10 -07:00