GitHub user afs reopened a pull request:
https://github.com/apache/jena/pull/161
Plain begin - read transactions promoting to write transactions.
This PR is for discussion and is not yet ready for merging.
It adds to TDB the ability for a read transaction to promote to a write
transaction.
Currently (to avoid general API changes outside TDB) this happens
automatically in `DatasetGraphTransaction.getW()`.
It needs to be enabled with `DatasetGraphTransaction.promotion = true`
If this is useful, we can add new modes to `ReadWrite` and/or add `begin()`
(no args).
There is a big design point: at the point at which a transaction becomes a
writer their are two choices as to what to do if another write transaction
happened between this one starting and this one promoting.
1. The transaction can now see changes made by the other writer. A limited
form of "read committed" behaviour. Downside: results from actions during the
read phase may be invalidated.
1. The transaction is blocked from promoting. This is purer (results are
not invalidated; an error is returned) but the code must deal with it.
Having it as a choice is possible - one should be the default for `begin()`.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/afs/jena plain-begin
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/jena/pull/161.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #161
----
commit c3edbd4cd942ea8bac9c4dcda777ae45c594113d
Author: Andy Seaborne <[email protected]>
Date: 2016-07-16T19:51:57Z
Split different categories of get() : R, W, G and T.
commit 05982a420e06fb99a8607027e42af0f8ad1690e1
Author: Andy Seaborne <[email protected]>
Date: 2016-07-16T19:53:16Z
Typo
commit d754ac30a34546b728982ba41437b3989b2e6590
Author: Andy Seaborne <[email protected]>
Date: 2016-07-16T19:53:50Z
Remove pointless private constructor.
commit bbdc31f4314718e402eaf0aa4aa3a20d64eef904
Author: Andy Seaborne <[email protected]>
Date: 2016-07-16T19:55:19Z
Typo
commit 82ceeb9b52bff7c3b5bd82c6a9980c57569f28e9
Author: Andy Seaborne <[email protected]>
Date: 2016-07-16T19:55:45Z
Make some methods package access.
commit 8ba77665fecb6d66e5caa54106b3cf9311786cd1
Author: Andy Seaborne <[email protected]>
Date: 2016-07-16T19:58:00Z
Promotable TDB transactions.
commit a041b52e3b9632a7db3149fbc441ae1c24bcdc95
Author: Andy Seaborne <[email protected]>
Date: 2016-07-17T09:38:24Z
Remove unused operations.
commit f7ac6e318351a16aa034a8c6462262ce91c7d395
Author: Andy Seaborne <[email protected]>
Date: 2016-07-17T13:34:25Z
Graphs across transaction boundaries.
commit 4273ac58700b87d0786124b14a76840204e80663
Author: Andy Seaborne <[email protected]>
Date: 2016-07-17T16:21:23Z
Do not cache default model. Assumes too much about the DatasetGraph.
commit 188e860c7ff6bf681fa77c801175e1bcd9936717
Author: Andy Seaborne <[email protected]>
Date: 2016-07-17T16:22:17Z
Refactor GraphTDB.
commit ad9f87adf05fb5da0f00b339fbe14312fba93253
Author: Andy Seaborne <[email protected]>
Date: 2016-07-18T15:24:58Z
Switchable promotion. Select txn/non-txn graph versions
----
---
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.
---