Age | Commit message (Collapse) | Author | Files | Lines |
|
(This used to be commit 226b7d3bdf63970fc75ef08423ee984e3b7e94a5)
|
|
1) when all nodes write the same value to the record, or when writing
a value that is already there, we can skip the write and save
ourselves a network transactions
2) when all remote nodes fail an update, and we then fail a replay, we
don't need to trigger a recovery. This solves a corner case where
we could get into a recovery loop
(This used to be commit 2481bfce4307274806584b0d8e295cc7f638e184)
|
|
(This used to be commit 9b1fa59d83890534264bec8f1190831eea37d9c3)
|
|
could lead to it blocking forever
(This used to be commit a633390d3a7cb04a7c4e14cba9c533621793287e)
|
|
(This used to be commit ba64a757f86fb60994e12e81416083ac0fa11c21)
|
|
(This used to be commit 30a697c82db53f9d801e220a7c6277f873ebce67)
|
|
(This used to be commit 76fbe56e827193d939676da23a580aa0f9394dd1)
|
|
(This used to be commit 32b8db27652a66a2ade547a6d27f34d0816f7296)
|
|
(This used to be commit 037516f1362c8d64da1d47a0cdaf83198d3eaeaf)
|
|
(This used to be commit 21729256a550509c3c038efa5acdd6ac39027dce)
|
|
(This used to be commit 2e85cbe88b3d1674b915f62e02be7d005fddaa39)
|
|
(This used to be commit f91a3e0f7b7737c1d0667cd961ea950e2b93e592)
|
|
(This used to be commit 126f4ac8e85458ee4693b89a184b99420f1b6bee)
|
|
Michael
(This used to be commit 87e0688a261590d45d42f17e4cdce329ebe4cd8f)
|
|
fetch mapping.
Michael
(This used to be commit cb4c74c9c206e5a445ca636fa6562ce721ea5839)
|
|
Michael
(This used to be commit d776d8df262e1753fb428450140df94e63035af5)
|
|
1. use the return value that idmap_tdb2_open_perm_db() gives us
2. don't delete frep the local db if deleting from the perm db failed.
3. fix wrong interpretation of return value of the local delete
Michael
(This used to be commit 147573d7f6faab0ad90258b6a28c4b9575ccb6ea)
|
|
1. use the return value that idmap_tdb2_open_perm_db() gives us
2. don't write to the local db if writing to the perm db failed.
3. fix wrong interpretation of return value of the local store
Michael
(This used to be commit be8c6b4f2f40014313899b5cbc1da9d390d94fee)
|
|
Only retry when ctdbd_persisten_update() failed.
Michael
(This used to be commit ff413a4614c8b272a34b2a9e56a329a8e8749a34)
|
|
store.
Michael
(This used to be commit eaf76c751f9bde2843174b400c109304831df83e)
|
|
Michael
(This used to be commit 5258907818f8c1e338ab2c8fb4e8d83c6142a24e)
|
|
as delete_rec operation from fetch_locked()
Michael
(This used to be commit f4aab595a0219305fbedf8890e787b690660a55a)
|
|
to reduce code duplication.
Michael
(This used to be commit 09a197e756459877cab7b4d09f534c6a41cfdd71)
|
|
This is because ctdbd can fail in performing the persistent_store
due to race conditions, and this does not mean it can't succeed
the next time.
To not loop infinitely, this makes use of a new parametric option:
"dbwrap ctdb:max store retries" (integer) which defaults to 5
and sets the upper limit for the number or repeats of the
fetch/store cycle.
Michael
(This used to be commit 2bcc9e6ecef876030e552a607d92597f60203db2)
|
|
in the persistent db_ctdb_store operation.
This is to prevent deadlocks in db_ctdb_persistent_store().
There is a tradeoff: Usually, the record is still locked
after db->store operation. This lock is usually released
via the talloc destructor with the TALLOC_FREE to
the record. So we have two choices:
- Either re-lock the record after the call to persistent_store
or cancel_persistent update and this way not changing any
assumptions callers may have about the state, but possibly
introducing new race conditions.
- Or don't lock the record again but just remove the
talloc_destructor. This is less racy but assumes that
the lock is always released via TALLOC_FREE of the record.
I choose the first variant for now since it seems less racy.
We can't guarantee that we succeed in getting the lock
anyways. The only real danger here is that a caller
performs multiple store operations after a fetch_locked()
which is currently not the case.
Michael
(This used to be commit d004c9a7281d2577c3ba2012c8f790cc198ea700)
|
|
Michael
(This used to be commit c939c55e5182258092faceefa58a7f328f18619e)
|
|
Michael
(This used to be commit b822bba9b9ae327bc6cee3f412f7e22ce28c1388)
|
|
Michael
(This used to be commit 7e73792c738447049b8662617da340a73fae9bf0)
|
|
database in an inconsistent state if we crash during the operation
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
(This used to be commit 09329f1f9114af44fc4e5e4f29a7315912313125)
|
|
Michael
(This used to be commit bd2158fb5f5d5c0c410fe2853f61776787e1461f)
|
|
Michael
(This used to be commit e63a1a396c5cee837aed8a54b5c5ea3b2116d755)
|
|
Michael
(This used to be commit d795c2d5dc860fbfa668160054be084fe23aa44a)
|
|
Michael
(This used to be commit 3323456e208742e160b9cabb79dc68bfbe8b1970)
|
|
This can not go upstream yet because it uses the non-GPL libgpfs. So it will
not be compiled by default and will not be included in the SOFS RPMs. But upon
Sven's request, we include it in the git tree and the source RPMs, so that it
can be built for in-house tests.
(This used to be commit fc9b30bed2d774dca6660b497cb50f982b23b885)
|
|
Michael
(This used to be commit 7f3787a79a9949e7e80c9c5e16ec504ad1c4bdb7)
|
|
Michael
(This used to be commit f7706c6437d6500a477cb704cb916f16fdfa1395)
|
|
Michael
(This used to be commit 1fee80b8a643c22d356d0ca8860d5fc9580c8918)
|
|
Michael
(This used to be commit 7c3e4a324248d61504c4c77a63d4d31e587802af)
|
|
(This used to be commit 19becb776148b7930a0abaec8038fee1158a66c4)
|
|
(This used to be commit 549db133df6782bcca7d033e8573e47716877cbd)
|
|
(This used to be commit 5fd51833a31b326d83ac2f76d06560920547f657)
|
|
(This used to be commit e52e2f7f1a09fff8ec37174a9dc98dc9b440ef87)
|
|
(This used to be commit 3d24c5b4602140470c40f002d206212e388ae59b)
|
|
(This used to be commit ace315c2ffc4e81c87ba1d30c28578719cb1692b)
|
|
To fix creation of 32bit packges on x86_64
Michael
(This used to be commit ae2a353286a1a02936fb80edd6f899b1941403af)
|
|
Michael
(This used to be commit f978df86f9af480de26a6cf67c4f8e60d1e27139)
|
|
libwbclient, libtalloc, libtdb, and libnetapi are now installed
into /usr/lib{,64} by their SONAME. The symlink is made from
the .so files to point to the SONAME files (e.g., libtdb.so.1).
Michael
(This used to be commit d18287b6284597878bc3683f16f001b949857e54)
|
|
Michael
(This used to be commit 0d64606da69edba20f545789e526a71d01ca40b0)
|
|
Michael
(This used to be commit c0ecb63d9e7b11bb5c31bdf95605d68c02206220)
|
|
Michael
(This used to be commit 58085063c46f3c55c8aebc83bb79a2dd19f73622)
|