Age | Commit message (Collapse) | Author | Files | Lines |
|
more agressively coalesce entries in the linked list of the undo
log. The second is to ensure that writes during a transaction into the
hash table don't cause the size of the undo log linked list to grow.
These optimisations don't affect Samba much, but they make a huge
difference to the use of ldb in kde
(This used to be commit a37d9434d1fa181fd3d060ad032ee4ec5135fc52)
|
|
to msync/mmap not changing the mtime of the file. This patch ensures
that for successfully completed transactions we update the mtime.
I don't do this on all tdb writes as its too expensive, but doing it
just on transactions is bearable, as those cost quite a lot anyway.
(This used to be commit b2934732dd62f705f59c124f19460c5436a9a422)
|
|
EDEADLK even when progress can be made. This is not a good solution,
but I can't find anything better.
(This used to be commit 980dd17f7d0a622cd772afc9ba15e50007ad9c6e)
|
|
(This used to be commit 315653cf1ecc11c435ee35b20e6cf9c73a67fa68)
|
|
more portable. tdb is used in more than just Samba4, and I think the
portability/readability balance is a bit different
(This used to be commit fc692dc61f06d61cb9126d2a8ccc240cecd11da6)
|
|
- more workarounds for aix not handling malloc of size 0
(This used to be commit c2b1739c6389503854f55fa8407c55071781eff4)
|
|
don't end up doing a mmap read only
(This used to be commit 294ccfd46a0c4e1af9365d028acdabec03c41ad3)
|
|
alignment constraints (like sparc)
(This used to be commit bce35ad237a55376b6af98416eec92a7c4b422a6)
|
|
allowing searches to proceed while another process is in a
transaction, then only upgrading the transaction lock to a write lock
on commit.
The solution is:
- split tdb_traverse() into two calls, called tdb_traverse() and
tdb_traverse_read(). The _read() version only gets read locks, and
will fail any write operations made in the callback from the
traverse.
- the normal tdb_traverse() call allows for read or write operations
in the callback, but gets the transaction lock, preventing
transastions from starting inside the traverse
In addition we enforce the following rule that you may not start a
transaction within a traverse callback, although you can start a
traverse within a transaction
With these rules in place I believe all the deadlock possibilities are
removed, and we can now allow for searches to happen in parallel with
transactions
(This used to be commit 7dd31288a701d772e45b1960ac4ce4cc1be782ed)
|
|
samba-technical posting for more details on the transactions design.
This also adds a number of command line arguments to tdbtorture,
making it more flexible, and fixes some lock deadlock conditions in
the tdbtorture code.
(This used to be commit 06bd8abba942ec9f1e23f5c5d546cbb71ca3a701)
|