Skip to content

Commit 2c4318b

Browse files
committed
GH-4950 LMDB: extensible ID scheme
Implement an extensible ID scheme for the LmdbStore that also allows to embed values into IDs. # Conflicts: # core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/ValueStore.java
1 parent 6d7c848 commit 2c4318b

4 files changed

Lines changed: 9 additions & 7 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ protected void initializeInternal() throws SailException {
273273
}
274274
properties.save();
275275

276-
this.store = new SnapshotSailStore(backingStore, () -> new MemoryOverflowModel(false) {
276+
this.store = new SnapshotSailStore(backingStore, () -> new MemoryOverflowModel() {
277277
@Override
278278
protected LmdbSailStore createSailStore(File dataDir) throws IOException, SailException {
279279
// Model can't fit into memory, use another LmdbSailStore to store delta

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,8 @@ class TripleStore implements Closeable {
254254
endTransaction(false);
255255
throw e;
256256
}
257+
258+
resetAlignedWriteCursorState();
257259
}
258260

259261
private Set<String> getIndexSpecs() throws SailException {
@@ -306,7 +308,7 @@ private Set<String> parseIndexSpecList(String indexSpecStr) throws SailException
306308
}
307309

308310
private void initIndexes(Set<String> indexSpecs) throws IOException {
309-
for (String fieldSeq : indexSpecs) {
311+
for (String fieldSeq : orderIndexSpecs(indexSpecs)) {
310312
logger.trace("Initializing index '{}'...", fieldSeq);
311313
indexes.add(new TripleIndex(fieldSeq));
312314
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1127,7 +1127,7 @@ public long getId(Value value, boolean create) throws IOException {
11271127
valueIDCache.put(nv, id);
11281128
}
11291129
// only store hash for non-inlined values
1130-
if (! ValueIds.isInlined(id)) {
1130+
if (!ValueIds.isInlined(id)) {
11311131
storeHashIfAbsent(id, value);
11321132
}
11331133
return id;

core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/LmdbStoreReindexTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ protected void addStatement(Resource subj, IRI pred, Value obj, Resource ctxt) {
7777
};
7878
RDFLoader loader = new RDFLoader(conn.getParserConfig(), conn.getValueFactory());
7979
loader.load(getClass().getResourceAsStream("/lmdbstore-testdata/SES-1867/initialState.nq"), "",
80-
RDFFormat.NQUADS, inserter);
80+
RDFFormat.NQUADS, inserter);
8181
conn.commit();
8282
logger.info("Number of statements: " + conn.size());
8383

@@ -90,8 +90,8 @@ protected void addStatement(Resource subj, IRI pred, Value obj, Resource ctxt) {
9090

9191
logger.info("Adding updated context");
9292
conn.add(getClass().getResourceAsStream("/lmdbstore-testdata/SES-1867/newTriples.nt"), "",
93-
RDFFormat.NTRIPLES,
94-
newContext);
93+
RDFFormat.NTRIPLES,
94+
newContext);
9595
conn.commit();
9696

9797
// Step 3: check whether oldContext is actually empty
@@ -146,4 +146,4 @@ protected void addStatement(Resource subj, IRI pred, Value obj, Resource ctxt) {
146146
assertEquals(0, differenceA.size());
147147
assertEquals(0, differenceB.size());
148148
}
149-
}
149+
}

0 commit comments

Comments
 (0)