Github user afs commented on the issue:
https://github.com/apache/jena/pull/161
To track whether a promotion is possible for fully serialized, the code now
checks a version number. The necessary information is available elsewhere
(whether a new transaction would see the same dataset as one wanting promotion)
but it's crypt and in TIM, that's in the indexes, not the transaction control
in the dataset.
Keeping the version is also a nice statistic to keep.
The version moves on one when a transaction commits.
That leaves one case - what to do when a writer is already active. That
writer may commit later (and hence the promotion is not possible) to abort (the
promotion may be possible if no other writer comes and goes). The current
refuses promotion if there is an active writer on the basis that most writers
commit, and abort is unusual. Blocking maybe possible but leads to issues of
what happens when another reader that tries to promote at about the same time
and of a long running writer (e.g. bulk upload) causing the reader to block for
a long time.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---