You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (Jira)" <ji...@apache.org> on 2021/04/12 08:36:00 UTC
[jira] [Comment Edited] (JENA-2086) TDB2: read transactions sync
the journal.
[ https://issues.apache.org/jira/browse/JENA-2086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17318926#comment-17318926 ]
Andy Seaborne edited comment on JENA-2086 at 4/12/21, 8:35 AM:
---------------------------------------------------------------
Hi Marco,
Yes, all routes go via Journal.sync. It is unnecessary for a read transaction and I'll testing a fix that simply skips the journal in a read-cleanup. Being this deep in the transaction system, means being very careful. I haven't found a reason while it used to work better.
----
Update: As far as I can tellĀ the code here has been the same since TDB2 was introduced into Jena (JENA-1397; Jena 3.5.0). There have been a couple of major changes over the years making it hard to be certain - the code is there, but code call paths may have changed.) TDB1 and TDB2 are completely different in the way they work for transactions.
was (Author: andy.seaborne):
Hi Marco,
Yes, all routes go via Journal.sync. It is unnecessary for a read transaction and I'll testing a fix that simply skips the journal in a read-cleanup. Being this deep in the transaction system, means being very careful. I haven't found a reason while it used to work better.
> TDB2: read transactions sync the journal.
> -----------------------------------------
>
> Key: JENA-2086
> URL: https://issues.apache.org/jira/browse/JENA-2086
> Project: Apache Jena
> Issue Type: Improvement
> Components: TDB2
> Affects Versions: Jena 3.17.0, Jena 4.0.0
> Reporter: Andy Seaborne
> Assignee: Andy Seaborne
> Priority: Major
> Attachments: jena-sync-overhead.png
>
>
> [Report from users@ (2021-04-08)|https://lists.apache.org/thread.html/rbc1ff0ae78359b580786ff76ad006f1edeca4da13b0f946cd4f48a8d%40%3Cusers.jena.apache.org%3E]
> See attached for stacktrace mentioned in the report.
> A simple UC:
> {noformat}
> DatasetGraph dsg = DatabaseMgr.createDatasetGraph();
> dsg.executeRead(()->{});
> {noformat}
> and breakpoint on Journal.sync:
> {noformat}
> Journal.sync() line: 384
> Journal.reset() line: 397
> TransactionCoordinator.completed(Transaction) line: 708
> Transaction.endInternal() line: 218
> Transaction.commit() line: 182
> TransactionalBase.commitExec() line: 143
> TransactionalBase(TransactionalSystem).commit() line: 33
> TransactionalBase.commit() line: 131
> DatasetGraphTDB(DatasetGraphStorage).commit() line: 69
> DatasetGraphSwitchable(DatasetGraphWrapper).commit() line: 276
> Txn.exec(T, TxnType, Runnable) line: 85
> Txn.executeRead(T, Runnable) line: 115
> DatasetGraphSwitchable(Transactional).executeRead(Runnable) line: 249
> Report.main(String[]) line: 70
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)