Merge lp:~pbeaman/akiban-persistit/fix_1010079_prune_long_mvv_corruption into lp:akiban-persistit
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Nathan Williams | ||||
Approved revision: | 320 | ||||
Merged at revision: | 318 | ||||
Proposed branch: | lp:~pbeaman/akiban-persistit/fix_1010079_prune_long_mvv_corruption | ||||
Merge into: | lp:akiban-persistit | ||||
Diff against target: |
299 lines (+125/-30) 5 files modified
src/main/java/com/persistit/Buffer.java (+7/-20) src/main/java/com/persistit/Exchange.java (+4/-4) src/main/java/com/persistit/IntegrityCheck.java (+1/-1) src/test/java/com/persistit/Bug1010079Test.java (+108/-0) src/test/java/com/persistit/MVCCPruneBufferTest.java (+5/-5) |
||||
To merge this branch: | bzr merge lp:~pbeaman/akiban-persistit/fix_1010079_prune_long_mvv_corruption | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Akiban Build User | Needs Fixing | ||
Nathan Williams | Approve | ||
Review via email: mp+109261@code.launchpad.net |
Description of the change
Branch fixes two issues related to pruning of long-record MVVs:
1. When refreshing state of the original buffer after copy has been pruned, the FastIndex for the original needs to be invalidated if any keys were removed.
2. Buffer#
Other changes include a simple test, a new stress test script and a minor change in JournalManager so to get rid of a stale value of BaseAddress. This is needed to get through the mixture_txn_2.plan.
(Note: in another branch I will propose a better way of restarting the same Persistit instance in tests.)
The new flag to prevent the double usage of thread local is fine (though if I were being picky I'd like a new method instead of a boolean) but it is also indirect. I can't think of a better way at the moment, but it might be less error prone to pass the thread locals down from some top level place (e.g. Exchange) instead of using them wherever, as we have no other way to protect ourselves.
There isn't a change in this diff in JournalManager. Need to push or is that not relevant anymore?
Are my eyes playing tricks on me or is the new .plan file the same block repeated 12 time? Another thing is that this uses, as many of the stress tests do, 8k pages. Probably a change for another time though.