Howard Chu
e3b6c359a9
Use robust mutexes by default
...
Making it optional on pthreads just complicates things;
they're always robust on other implementations
10 years ago
Howard Chu
58ddb5527b
Use SysV semaphores instead of POSIX
...
Since they can cleanup after themselves on process exit
10 years ago
Howard Chu
a53716ed96
Must do dlist_free before releasing Wmutex
10 years ago
Hallvard Furuseth
ec6cf4e40f
MDB_ROBUST: Use MDB_PID_T. Drop a wmutex variable.
10 years ago
Howard Chu
f6add293a7
Free write mutex earlier in txn_reset0
10 years ago
Hallvard Furuseth
a2ac10107e
Add MDB_ROBUST
10 years ago
Howard Chu
a7639a66a4
Android also only has memalign
10 years ago
Howard Chu
62e4eeb7f7
ITS#7943 reinit txn flags
...
When reusing the main write txn
10 years ago
Howard Chu
891e662754
Plug leak in 4d02c741b1
...
Free writer txn on env_close
10 years ago
Quanah Gibson-Mount
5ee99f1125
Change retry to num times 60. Testing shows that on a known dataset, this has the same growth behavior as 2.4.39, while num times 20 resulted in significant growth.
10 years ago
Howard Chu
3646ba966c
More for me_pgoldest
...
Leave it in main env struct, it doesn't need to be rolled back
with nested txns.
10 years ago
Howard Chu
29fd241fad
Remember oldest reader txnid
...
Don't walk the readers table unless we really need to.
10 years ago
Howard Chu
4d02c741b1
Use a single write txn
10 years ago
Howard Chu
a054a194e8
ITS#7913 cleanup
...
we already checked for data == NULL, drop unnecessary if
10 years ago
Howard Chu
8fbbc71506
More for MIPS
...
Move CACHEFLUSH, avoid unnecessary if()
10 years ago
Howard Chu
4008e5e583
Partially revert ada2630699
...
Of course, MacOSX only has posix_memalign, and only in recent versions.
(Older versions could use valloc instead. That precludes ever changing
the LMDB pagesize to be different from the OS pagesize.) Not all that
crucial since it only affects mdb_env_copyfd1.
10 years ago
Hallvard Furuseth
cf4fe3b1fb
Microoptimize loose pages
10 years ago
Hallvard Furuseth
1e7eeed28d
Fix loose pages in mdb_freelist_save().
...
Leaving them in dirty_list caused breakage. Instead merge them
into me_pghead at the end, when no more pages will be allocated.
10 years ago
Hallvard Furuseth
983f896aa7
Split out mdb_midl_xmerge, add MDB_IDL_ALLOCLEN
10 years ago
Howard Chu
322cd26a7b
ITS#7917 fix mdb_dbi_open
...
Don't let dummy go out of scope
10 years ago
Howard Chu
ada2630699
Just use memalign, not posix_memalign
...
Everything has it. Solaris doesn't have posix_memalign.
10 years ago
Howard Chu
899b23f89d
More for MIPS
...
Do a cacheflush after writing data pages, separate from meta's cacheflush
10 years ago
Howard Chu
ae0c9f484d
ITS#7793 more for branch key update
10 years ago
Howard Chu
f21f15e5a0
ITS#7793 update branch key if needed
10 years ago
Howard Chu
9febe03eb5
More for MIPS
...
Paranoia for 3630066843
do the
cacheflush before setting mti_txnid.
10 years ago
Howard Chu
8498c6cba2
ITS#7913 mdb_cursor_get(*_DUP) cleanup
...
FIRST_DUP/LAST_DUP should succeed even on non-duplicate values
PREV_DUP should reset cursor's EOF flag.
10 years ago
Howard Chu
3630066843
Fix MIPS cache coherency on Linux
...
MIPS chips require manual control of on-chip caches. The cacheflush
syscall being used here only exists on MIPS Linux, other OSs will
require revisiting.
10 years ago
Howard Chu
082bac1492
more for mdb_cursor_count
...
return MDB_NOTFOUND if the cursor is empty
10 years ago
Hallvard Furuseth
6cb1166635
Fix mdb_copy & co when MDB pagesize < OS pagesize
10 years ago
Hallvard Furuseth
81b502e17e
ITS#7789 Fix mdb_env_write_meta().
...
Always write mapsize = max(other metapage:mapsize, env:mapsize).
10 years ago
Howard Chu
7ef970436d
Revert ITS#7789 commits, let's try this again.
...
Revert "ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment."
Revert "ITS#7789 more"
Revert "Revert "ITS#7789 update RESIZED errmsg text""
Revert "ITS#7789 update RESIZED errmsg text"
Revert "ITS#7789 persist mapsize changes"
This reverts commit 02285aca58
.
This reverts commit 38e71c68de
.
This reverts commit a5e4eecb1e
.
This reverts commit d8e18551c3
.
This reverts commit 5926e54bba
.
10 years ago
Howard Chu
58e9c3add8
Fix mdb_cursor_count, reject uninit'd cursor
10 years ago
Howard Chu
9049efe493
ITS#7896 fix for mdb_env_map
...
Don't pass non-NULL map address unless MDB_FIXEDMAP was used.
11 years ago
Howard Chu
886ee41d55
More for cursor EOF
...
Must also set in sub-cursor if deleting entire subDB
11 years ago
Howard Chu
7f038d0f15
Zero-init copy2 writebuf
11 years ago
Hallvard Furuseth
2825ad64c2
MDB_MAXKEYSIZE = 0 (dynamic value) when MDB_DEVEL
11 years ago
Hallvard Furuseth
b3dedde612
MDB_DEVEL doxygen fix
11 years ago
Hallvard Furuseth
02285aca58
ITS#7789 Fix resize vs MDB_NOMETASYNC, and a comment.
11 years ago
Howard Chu
bda6a60ad4
Windows fixes
...
Always set the filesize when opening for writes. Otherwise
can't use backups from mdb_copy.
11 years ago
Howard Chu
f3573a7383
Windows compat
...
We mainly use Win32 functions, so cannot just use C-runtime strerror
to return error messages. We have to use Win32-specific messages.
Unfortunately, we document the API to return C-runtime error codes,
so we can't just switch to all Win32 error codes.
11 years ago
Howard Chu
38e71c68de
ITS#7789 more
...
persist size changes from env_open() as well. This was the
original behavior.
11 years ago
Howard Chu
a5e4eecb1e
Revert "ITS#7789 update RESIZED errmsg text"
...
This reverts commit d8e18551c3
.
And partially reverts mapsize check. Only mapsize increases are relevant.
11 years ago
Howard Chu
d5371347e8
ITS#7825 more
...
Set read txn's dbiseqs to env's. Set child txn's dbiseqs to parent's.
Simplify DBI_CHANGED test, no need to check md_name. No-op dbi_close
of already closed handle.
11 years ago
Howard Chu
276aa55969
ITS#7825 more
...
only update dbiseq in dbi_open on write txns
11 years ago
Howard Chu
04851e442f
ITS#7825 tweak prev commit
...
dbiseqs are only checked in write txns so omit from read txns
11 years ago
Howard Chu
0401f2deed
ITS#7825 add MDB_BAD_DBI error code
...
Use DBI sequence numbers to detect DBIs being closed while in use.
11 years ago
Howard Chu
d8e18551c3
ITS#7789 update RESIZED errmsg text
11 years ago
Howard Chu
5926e54bba
ITS#7789 persist mapsize changes
...
Write decreases too, not just increases. Check for any size change
that was not requested by this process.
11 years ago
Howard Chu
2f04728471
ITS#7892 Fix MacOSX section name
11 years ago
Hallvard Furuseth
e1a676eb18
ITS#7713 cleanups
...
'#ifdef MDB_DEVEL' -> '#if MDB_DEVEL'
Fix comments, use actual PAGEBASE macro as originally intended.
Actually enable 64K pages. Set MDB_DATA_VERSION for testing only.
11 years ago