- 30 Nov, 2015 2 commits
-
-
Julien Muchembled authored
NEO did not ensure that all data and metadata are written on disk before tpc_finish, and it was for example vulnerable to ENOSPC errors. In other words, some work had to be moved to tpc_vote: - In tpc_vote, all involved storage nodes are now asked to write all metadata to ttrans/tobj and _commit_. Because the final tid is not known yet, the tid column of ttrans and tobj now contains NULL and the ttid respectively. - In tpc_finish, AskLockInformation is still required for read locking, ttrans.tid is updated with the final value and this change is _committed_. - The verification phase is greatly simplified, more reliable and faster. For all voted transactions, we can know if a tpc_finish was started by getting the final tid from the ttid, either from ttrans or from trans. And we know that such transactions can't be partial so we don't need to check oids. So in addition to minimizing the risk of failures during tpc_finish, we also fix a bug causing the verification phase to discard transactions with objects for which readCurrent was called. On performance side: - Although tpc_vote now asks all involved storages, instead of only those storing the transaction metadata, the client has been improved to do this in parallel. The additional commits are also all done in parallel. - A possible improvement to compensate the additional commits is to delay the commit done by the unlock. - By minimizing the time to lock transactions, objects are read-locked for a much shorter period. This is even more important that locked transactions must be unlocked in the same order. Transactions with too many modified objects will now timeout inside tpc_vote instead of tpc_finish. Of course, such transactions may still cause other transaction to timeout in tpc_finish.
-
Julien Muchembled authored
-
- 25 Nov, 2015 3 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
We can never receive several answers from the same node. testVerification is dropped for the same reason as for testEvent and most of testConnection, since there is much incoming changes for verification.
-
- 03 Nov, 2015 1 commit
-
-
Julien Muchembled authored
- Last known TID was not updated when recovering a transaction. - Missing OIDs were ignored, which caused partial transactions to be committed instead of being deleted.
-
- 21 Oct, 2015 1 commit
-
-
Julien Muchembled authored
This fixes invalid next_serial entries in cache, and the following error for values not in cache: Traceback (most recent call last): File "ZODB/Connection.py", line 856, in setstate self._setstate(obj) File "ZODB/Connection.py", line 894, in _setstate self._load_before_or_conflict(obj) File "ZODB/Connection.py", line 922, in _load_before_or_conflict if not self._setstate_noncurrent(obj): File "ZODB/Connection.py", line 945, in _setstate_noncurrent assert end is not None AssertionError
-
- 05 Oct, 2015 1 commit
-
-
Julien Muchembled authored
-
- 24 Sep, 2015 2 commits
-
-
Julien Muchembled authored
Application will hold SSL parameters.
-
Julien Muchembled authored
-
- 12 Aug, 2015 1 commit
-
-
Julien Muchembled authored
-
- 30 Jun, 2015 1 commit
-
-
Julien Muchembled authored
-
- 29 Jun, 2015 1 commit
-
-
Julien Muchembled authored
-
- 24 Jun, 2015 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
This happened between storage nodes of different clusters because they're not informed about their state, e.g. a dead upstream storage node. In any case, logs were flooded at 100% cpu usage.
-
- 21 May, 2015 1 commit
-
-
Julien Muchembled authored
-
- 24 Jul, 2014 1 commit
-
-
Julien Muchembled authored
Of course, neoctl should only connect to the admin, but in case of user mistake the queried node should not die. Ideally, all other commands should be checked.
-
- 03 Jun, 2014 1 commit
-
-
Julien Muchembled authored
-
- 07 Jan, 2014 1 commit
-
-
Julien Muchembled authored
-
- 04 Jan, 2014 1 commit
-
-
Julien Muchembled authored
-
- 17 Dec, 2013 2 commits
-
-
Vincent Pelletier authored
-
Vincent Pelletier authored
Also, drop extraneous parentheses in another set's creation.
-
- 23 Aug, 2012 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 21 Aug, 2012 3 commits
-
-
Julien Muchembled authored
In particular, do not flush all debug logs still in memory
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 20 Aug, 2012 6 commits
-
-
Vincent Pelletier authored
-
Julien Muchembled authored
-
Julien Muchembled authored
-
Julien Muchembled authored
- catch OperationFailure - reset transaction manager when leaving backup mode - send appropriate target tid to a storage that updates a outdated cell - clean up partition table when leaving BACKINGUP state unexpectedly - make sure all readable cells of a partition have the same 'backup_tid' if they have the same data, so that we know when internal replication is finished when leaving backup mode - fix storage not finished internal replication when leaving backup mode
-
Vincent Pelletier authored
-
Vincent Pelletier authored
-
- 16 Aug, 2012 1 commit
-
-
Julien Muchembled authored
-
- 15 Aug, 2012 2 commits
-
-
Julien Muchembled authored
This fixes a regression in commit ad01f379 ("fix leaving backup mode, including truncating to consistent TID")
-
Julien Muchembled authored
-
- 14 Aug, 2012 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
-
- 09 Aug, 2012 1 commit
-
-
Julien Muchembled authored
- fix stopping backup cluster - fix leaving backup mode, including truncating to consistent TID - fix backup_tid on master and storages
-
- 08 Aug, 2012 1 commit
-
-
Julien Muchembled authored
-