- 10 Jan, 2011 3 commits
-
-
Vincent Pelletier authored
Detect if a client requests multiple undo/store based on wrong revisions. Also, don't try to acquire lock when we know we have it. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2600 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2599 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2598 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 06 Jan, 2011 6 commits
-
-
Vincent Pelletier authored
This is important for chaining "undo" for a given object in a single transaction, to allow checking for conflicts. Also, this means that get_baseTID return value cannot be used to update cache when undoing, so only update cache when storing a new revision. Actually, cache was never updated when undoing anyway, as current snapshot TID was unlikely to exist as a serial for any object, so it would not be found in cache and update would be a no-op. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2597 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
Also reverts r2533: even if it's true that TIDs have no meaning at that level, they are a handy way to prioritise a transaction over another, to break lock cycles (aka deadlocks). This is the "detection" part of the change. When a storage reports a deadlock, client must store all already-stored objects again with "unlock" flag set. Upon receiving those store requests, storage must release locks held by transaction on those objects, and requeue the store request. If client didn't hold any lock (initial store was still in queue), drop the second store request. This doesn't solve possible deadlocks if ZODB-level sends us objects in a different order (ex: client 1 sending [OID1, OID2] & client 2 sending [OID2, OID1]). There is one important change to r2533's revert, which queues older transactions and notifies deadlock for younger ones. The original code did it the other way around, and it looks unfair to old transactions (they will keep being delayed by younger ones, and will just get older and older). git-svn-id: https://svn.erp5.org/repos/neo/trunk@2596 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
If a conflict gets reported while handling a previously-reported conflict on the same object, second conflict is dropped on conflict_serial_dict.pop() before it is handled. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2595 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
This will allow sending requests even when no conflict occur. For example, it can happen to avoid a deadlock on storage nodes (store again, no conflict to resolve). Also, call conflict resolution as soon as a conflict is known, to reduce tpc_vote duration. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2594 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2593 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
This was removed accidentally in r2114. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2592 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 05 Jan, 2011 10 commits
-
-
Grégory Wisniewski authored
Don't block on a non-ready node but do not skip it Fix test method name and update it (it will never raise StopIteration) git-svn-id: https://svn.erp5.org/repos/neo/trunk@2591 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
A serial is just like a tid. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2590 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
And remove its definition from protocol as it's used only by tests. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2589 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2588 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2587 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
- Runner do not define the environment, this is under the responsibility of the parent script. - Prefix all environment variables with NEO_TEST to avoid conflicts with other applications - Runner display all NEO-related environment variables in the report - Cosmetic change: increase benchmark runner status column size git-svn-id: https://svn.erp5.org/repos/neo/trunk@2586 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
Add a test to ensure the admin is notified of connected/disconnected nodes during recovery. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2585 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2584 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2583 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2582 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 29 Dec, 2010 3 commits
-
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2581 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2580 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
Remove 'else' sections of 'for' loops from app. (and the one in checkCurrentSerialInTransaction was broken) git-svn-id: https://svn.erp5.org/repos/neo/trunk@2579 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 28 Dec, 2010 4 commits
-
-
Grégory Wisniewski authored
This commit fix random issues found with functionnal tests where the client was refuse by the storage, because the latter was not fully initialized, but never tried to reconnect to it if no other storages were available. The main change introoduced is the availability of 'iterateForObject' method on ConnectionPool. It allow iterate over potential node connections for a given object id with the ability of waiting for the node to be ready if not. It includes the common pattern that retreive the cell list, randomize then sort them and never returns a None value, which suppose that the outer loop must check if at least one iteration happens, for example. Also included: - getPartitionTable is now private because the connection needs it - Deletion of _getCellListFor* - Fixed tests - New tests for ConnectionPool.iterateForObject git-svn-id: https://svn.erp5.org/repos/neo/trunk@2578 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
So that search and add in connection_dict is made in the same method. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2577 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2576 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2575 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 24 Dec, 2010 3 commits
-
-
Vincent Pelletier authored
This fixes cases where storage tries to answer a request after executing queued events. This cannto happen with current code, but will happen in near future. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2574 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2573 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
This is not used currently, and prevents method argument extension. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2572 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 23 Dec, 2010 7 commits
-
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2571 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
This prevents doing pop(0)/insert(0, ...) needlessly on the first item. git-svn-id: https://svn.erp5.org/repos/neo/trunk@2570 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
- Pop queued transaction from the beginning instead of end - Restore test for begin with a tid - Add test to check transactions unlocking mechanism - Add/fix comments git-svn-id: https://svn.erp5.org/repos/neo/trunk@2569 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2568 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2567 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2566 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2565 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
- 22 Dec, 2010 4 commits
-
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2564 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Grégory Wisniewski authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2563 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
- add missing status parameter - tabs are evil - use sys.exit instead of raising KeyboarInterrupt (it raises SystemExit) git-svn-id: https://svn.erp5.org/repos/neo/trunk@2562 71dcc9de-d417-0410-9af5-da40c76e7ee4
-
Vincent Pelletier authored
git-svn-id: https://svn.erp5.org/repos/neo/trunk@2561 71dcc9de-d417-0410-9af5-da40c76e7ee4
-