Commit [r8445] Maximize Restore History

We have extensively modified the TestMROWTransaction test suite. This class is designed to test for problems where there is a single writer and concurrent readers. We have modified the class to force spurious failures in the BTree.writeNodeOrLeaf() method. These failures directly simulate the behavior on the system of an exception in DefaultNodeCoder.encodeLive(). That method does not have a side-effect. It either succeeds, in which case the caller applies the side-effect, or it fails, in which case there is no side effect. We have demonstrated that the Sail level rollback correctly discards the partial update of the index and that new writer threads continue to make progress and that readers do not observe errors. This effectively disproves the hypothesis that rollback() was failing to discard some state.

See #855 (AssertionError: Child does not have persistent identity)

thompsonbry 2014-06-04

changed /branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestMROWTransactions.java
changed /branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestMROWTransactionsNoHistory.java
changed /branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestMROWTransactionsWithHistory.java
/branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestMROWTransactions.java Diff Switch to side-by-side view
Loading...
/branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestMROWTransactionsNoHistory.java Diff Switch to side-by-side view
Loading...
/branches/BIGDATA_RELEASE_1_3_0/bigdata-sails/src/test/com/bigdata/rdf/sail/TestMROWTransactionsWithHistory.java Diff Switch to side-by-side view
Loading...