Skip to content

Commit 3eae7e4

Browse files
committed
mostly functional
1 parent b72076f commit 3eae7e4

1 file changed

Lines changed: 7 additions & 15 deletions

File tree

core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbTxnContext.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,9 @@ void init(IsolationLevel level) throws SailException {
9292
this.level = level;
9393
initialized = true;
9494
snapshotWriteMode = IsolationLevels.SNAPSHOT.equals(level);
95-
snapshotReadMode = IsolationLevels.SNAPSHOT_READ.equals(level)
95+
snapshotReadMode = snapshotWriteMode || IsolationLevels.SNAPSHOT_READ.equals(level)
9696
|| IsolationLevels.SERIALIZABLE.equals(level);
97-
if (snapshotWriteMode) {
98-
ensureWriteTxnInitialized();
99-
} else if (snapshotReadMode) {
97+
if (snapshotReadMode) {
10098
ensurePinnedReadSnapshot();
10199
deferWrites = true;
102100
overlayChanges = true;
@@ -118,10 +116,8 @@ boolean hasStatementChanges() {
118116

119117
void markManagedTransaction() {
120118
managedTransaction = true;
121-
if (!snapshotWriteMode) {
122-
deferWrites = true;
123-
overlayChanges = true;
124-
}
119+
deferWrites = true;
120+
overlayChanges = true;
125121
}
126122

127123
boolean isManagedTransaction() {
@@ -370,7 +366,7 @@ void beginUpdate() throws SailException {
370366
}
371367
deferWrites = true;
372368
overlayChanges = true;
373-
if (!(snapshotReadMode || snapshotWriteMode) && level != null && !shouldDeferWriteFlush()) {
369+
if (!managedTransaction && !snapshotReadMode && level != null) {
374370
ensureWriteTxn(level);
375371
}
376372
pendingUpdates.push(new PendingChanges());
@@ -388,7 +384,7 @@ void endUpdate() throws SailException {
388384
}
389385
if (deferWrites) {
390386
mergeIntoMain(completed);
391-
if (shouldDeferWriteFlush()) {
387+
if (managedTransaction) {
392388
return;
393389
}
394390
try {
@@ -413,7 +409,7 @@ void abortUpdate() {
413409
pendingUpdates.pop();
414410
}
415411
if (pendingUpdates.isEmpty() && deferWrites) {
416-
if (shouldDeferWriteFlush()) {
412+
if (managedTransaction) {
417413
return;
418414
}
419415
clearStatementChanges();
@@ -422,10 +418,6 @@ void abortUpdate() {
422418
}
423419
}
424420

425-
private boolean shouldDeferWriteFlush() {
426-
return managedTransaction && !snapshotWriteMode;
427-
}
428-
429421
void recordAdd(Resource subj, IRI pred, Value obj, Resource ctx, boolean explicit) {
430422
if (!deferWrites) {
431423
return;

0 commit comments

Comments
 (0)