See the async-commit branch and the JsonNodeTrxAsyncCommitTest integration tests. There's currently one or more race conditions...
Notes:
PageReferences can't be copied, they have to be shared between the former revision (going to be written to disk) and the new revision (kept in an in-memory trx intent log), as some keys or none at all may be written to disk at that point (thus, stored, once it's written to disk -- storing the file offset).
- The List of PageFragments must create a new PageReference for the former revision, as otherwise the PageReference would store the new key/offset once it's written to disk.
See the
async-commitbranch and theJsonNodeTrxAsyncCommitTestintegration tests. There's currently one or more race conditions...Notes:
PageReferences can't be copied, they have to be shared between the former revision (going to be written to disk) and the new revision (kept in an in-memory trx intent log), as some keys or none at all may be written to disk at that point (thus, stored, once it's written to disk -- storing the file offset).