Skip to content

Commit 1d46e0b

Browse files
committed
Refactor deprecated method calls
1 parent 77a3494 commit 1d46e0b

File tree

12 files changed

+308
-272
lines changed

12 files changed

+308
-272
lines changed

src/main/java/org/lmdbjava/Env.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ public final class Env<T> implements AutoCloseable {
6363
*/
6464
public static final boolean SHOULD_CHECK = !getBoolean(DISABLE_CHECKS_PROP);
6565

66-
private static final long KIBIBYTES = 1_024;
67-
private static final long MEBIBYTES = KIBIBYTES * 1_024;
68-
private static final long GIBIBYTES = MEBIBYTES * 1_024;
69-
private static final long TEBIBYTES = GIBIBYTES * 1_024;
66+
private static final long KIBIBYTES = 1_024L;
67+
private static final long MEBIBYTES = KIBIBYTES * 1_024L;
68+
private static final long GIBIBYTES = MEBIBYTES * 1_024L;
69+
private static final long TEBIBYTES = GIBIBYTES * 1_024L;
7070

7171
private boolean closed;
7272
private final int maxKeySize;

src/test/java/org/lmdbjava/ByteBufferProxyTest.java

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -148,52 +148,48 @@ void unsafeIsDefault() {
148148
assertThat(v.getClass().getSimpleName()).startsWith("Unsafe");
149149
}
150150

151-
/**
152-
* For 100 rounds of 5,000,000 comparisons
153-
* compareAsIntegerKeys: PT1.600525631S
154-
* compareLexicographically: PT3.381935001S
155-
*/
156151
@Test
157152
public void comparatorPerformance() {
158153
final Random random = new Random(345098);
159154
final ByteBuffer buffer1 = ByteBuffer.allocateDirect(Long.BYTES);
160155
final ByteBuffer buffer2 = ByteBuffer.allocateDirect(Long.BYTES);
161156
buffer1.limit(Long.BYTES);
162157
buffer2.limit(Long.BYTES);
163-
final long[] values = random.longs(20_000_000).toArray();
158+
final long[] values = random.longs(10_000_000).toArray();
159+
final int rounds = 100;
164160

165-
Instant time = Instant.now();
166-
// x is to ensure result is used by the jvm
167-
int x = 0;
168-
for (int rounds = 0; rounds < 100; rounds++) {
169-
for (int i = 1; i < values.length; i++) {
170-
// buffer1.order(ByteOrder.nativeOrder())
171-
buffer1
172-
.putLong(0, values[i - 1]);
173-
// buffer2.order(ByteOrder.nativeOrder())
174-
buffer2
175-
.putLong(0, values[i]);
176-
final int result = ByteBufferProxy.AbstractByteBufferProxy.compareAsIntegerKeys(buffer1, buffer2);
177-
x += result;
161+
for (int run = 0; run < 3; run++) {
162+
Instant time = Instant.now();
163+
// x is to ensure result is used by the jvm
164+
int x = 0;
165+
for (int round = 0; round < rounds; round++) {
166+
for (int i = 1; i < values.length; i++) {
167+
buffer1.order(ByteOrder.nativeOrder())
168+
.putLong(0, values[i - 1]);
169+
buffer2.order(ByteOrder.nativeOrder())
170+
.putLong(0, values[i]);
171+
final int result = ByteBufferProxy.AbstractByteBufferProxy.compareAsIntegerKeys(buffer1, buffer2);
172+
x += result;
173+
}
178174
}
179-
}
180-
System.out.println("compareAsIntegerKeys: " + Duration.between(time, Instant.now()) + ", x: " + x);
175+
System.out.println("compareAsIntegerKeys: " + Duration.between(time, Instant.now()) + ", x: " + x);
181176

182-
time = Instant.now();
183-
int y = 0;
184-
for (int rounds = 0; rounds < 100; rounds++) {
185-
for (int i = 1; i < values.length; i++) {
186-
buffer1.order(BIG_ENDIAN)
187-
.putLong(0, values[i - 1]);
188-
buffer2.order(BIG_ENDIAN)
189-
.putLong(0, values[i]);
190-
final int result = ByteBufferProxy.AbstractByteBufferProxy.compareLexicographically(buffer1, buffer2);
191-
y += result;
177+
time = Instant.now();
178+
int y = 0;
179+
for (int round = 0; round < rounds; round++) {
180+
for (int i = 1; i < values.length; i++) {
181+
buffer1.order(BIG_ENDIAN)
182+
.putLong(0, values[i - 1]);
183+
buffer2.order(BIG_ENDIAN)
184+
.putLong(0, values[i]);
185+
final int result = ByteBufferProxy.AbstractByteBufferProxy.compareLexicographically(buffer1, buffer2);
186+
y += result;
187+
}
192188
}
193-
}
194-
System.out.println("compareLexicographically: " + Duration.between(time, Instant.now()) + ", y: " + y);
189+
System.out.println("compareLexicographically: " + Duration.between(time, Instant.now()) + ", y: " + y);
195190

196-
assertThat(y).isEqualTo(x);
191+
assertThat(y).isEqualTo(x);
192+
}
197193
}
198194

199195
@Test

src/test/java/org/lmdbjava/CursorIterableIntegerDupTest.java

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@
4444
import static org.lmdbjava.TestUtils.DB_2;
4545
import static org.lmdbjava.TestUtils.DB_3;
4646
import static org.lmdbjava.TestUtils.DB_4;
47-
import static org.lmdbjava.TestUtils.POSIX_MODE;
4847
import static org.lmdbjava.TestUtils.bb;
4948
import static org.lmdbjava.TestUtils.bbNative;
5049
import static org.lmdbjava.TestUtils.getNativeInt;
@@ -63,7 +62,6 @@
6362
import java.util.LinkedList;
6463
import java.util.List;
6564
import java.util.Map;
66-
import java.util.NoSuchElementException;
6765
import java.util.function.Function;
6866
import java.util.stream.Collectors;
6967
import java.util.stream.Stream;
@@ -87,7 +85,7 @@
8785
*/
8886
@Disabled // Waiting for the merge of stroomdev66's cursor tests
8987
@ParameterizedClass(name = "{index}: dbi: {0}")
90-
@ArgumentsSource(CursorIterableTest.MyArgumentProvider.class)
88+
@ArgumentsSource(CursorIterableIntegerDupTest.MyArgumentProvider.class)
9189
public final class CursorIterableIntegerDupTest {
9290

9391
private static final DbiFlagSet DBI_FLAGS = DbiFlagSet.of(
@@ -128,7 +126,8 @@ public void before() throws IOException {
128126
.setMapSize(KIBIBYTES.toBytes(256))
129127
.setMaxReaders(1)
130128
.setMaxDbs(3)
131-
.open(file.toFile(), POSIX_MODE, MDB_NOSUBDIR);
129+
.setEnvFlags(MDB_NOSUBDIR)
130+
.open(file);
132131

133132
populateExpectedEntriesDeque();
134133
}
@@ -187,16 +186,15 @@ private void populateDatabase(final Dbi<ByteBuffer> dbi) {
187186
}
188187
txn.commit();
189188
}
190-
191-
try (Txn<ByteBuffer> txn = env.txnRead();
192-
CursorIterable<ByteBuffer> c = dbi.iterate(txn)) {
193-
189+
// try (Txn<ByteBuffer> txn = env.txnRead();
190+
// CursorIterable<ByteBuffer> c = dbi.iterate(txn)) {
191+
//
194192
// for (final KeyVal<ByteBuffer> kv : c) {
195193
// System.out.print(getNativeInt(kv.key()) + " => " + kv.val().getInt());
196194
// System.out.print(", ");
197195
// }
198196
// System.out.println();
199-
}
197+
// }
200198
}
201199

202200
private int[] rangeInc(final int fromInc, final int toInc) {
@@ -278,6 +276,7 @@ public void iterate() {
278276

279277
for (final KeyVal<ByteBuffer> kv : c) {
280278
final Map.Entry<Integer, Integer> entry = expectedEntriesDeque.pollFirst();
279+
assertThat(entry).isNotNull();
281280
// System.out.println(entry.getKey() + " => " + entry.getValue());
282281
assertThat(getNativeInt(kv.key())).isEqualTo(entry.getKey());
283282
assertThat(kv.val().getInt()).isEqualTo(entry.getValue());
@@ -308,24 +307,6 @@ public void lessThanTest() {
308307
verify(lessThan(bbNative(8)), 2, 4, 6);
309308
}
310309

311-
public void nextThrowsNoSuchElementExceptionIfNoMoreElements() {
312-
Assertions.assertThatThrownBy(() -> {
313-
populateExpectedEntriesDeque();
314-
final Dbi<ByteBuffer> db = getDb();
315-
try (Txn<ByteBuffer> txn = env.txnRead();
316-
CursorIterable<ByteBuffer> c = db.iterate(txn)) {
317-
final Iterator<KeyVal<ByteBuffer>> i = c.iterator();
318-
while (i.hasNext()) {
319-
final KeyVal<ByteBuffer> kv = i.next();
320-
assertThat(getNativeInt(kv.key())).isEqualTo(expectedEntriesDeque.pollFirst().getKey());
321-
assertThat(kv.val().getInt()).isEqualTo(expectedEntriesDeque.pollFirst().getValue());
322-
}
323-
assertThat(i.hasNext()).isEqualTo(false);
324-
i.next();
325-
}
326-
}).isInstanceOf(NoSuchElementException.class);
327-
}
328-
329310
@Test
330311
public void openBackwardTest() {
331312
verify(openBackward(bbNative(7), bbNative(2)), 6, 4);
@@ -355,7 +336,12 @@ public void openClosedBackwardTestWithGuava() {
355336
bb2.reset();
356337
return guava.compare(array1, array2);
357338
};
358-
final Dbi<ByteBuffer> guavaDbi = env.openDbi(DB_1, comparator, MDB_CREATE);
339+
340+
final Dbi<ByteBuffer> guavaDbi = env.buildDbi()
341+
.setDbName(DB_1).withIteratorComparator(ignored -> comparator)
342+
.setDbiFlags(MDB_CREATE)
343+
.open();
344+
359345
populateDatabase(guavaDbi);
360346
verify(openClosedBackward(bbNative(7), bbNative(2)), guavaDbi, 6, 4, 2);
361347
verify(openClosedBackward(bbNative(8), bbNative(4)), guavaDbi, 6, 4);

src/test/java/org/lmdbjava/CursorIterableIntegerKeyTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,11 @@ public void openClosedBackwardTestWithGuava() {
432432
bb2.reset();
433433
return guava.compare(array1, array2);
434434
};
435-
final Dbi<ByteBuffer> guavaDbi = env.openDbi(DB_1, comparator, MDB_CREATE);
435+
final Dbi<ByteBuffer> guavaDbi = env.buildDbi()
436+
.setDbName(DB_1)
437+
.withIteratorComparator(ignored -> comparator)
438+
.setDbiFlags(MDB_CREATE)
439+
.open();
436440
populateDatabase(guavaDbi);
437441
verify(openClosedBackward(bbNative(7), bbNative(2)), guavaDbi, 6, 4, 2);
438442
verify(openClosedBackward(bbNative(8), bbNative(4)), guavaDbi, 6, 4);

src/test/java/org/lmdbjava/CursorIterablePerfTest.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import static org.lmdbjava.EnvFlags.MDB_NOSUBDIR;
2222
import static org.lmdbjava.PutFlags.MDB_APPEND;
2323
import static org.lmdbjava.PutFlags.MDB_NOOVERWRITE;
24-
import static org.lmdbjava.TestUtils.POSIX_MODE;
2524
import static org.lmdbjava.TestUtils.bb;
2625

2726
import java.io.IOException;
@@ -39,17 +38,12 @@
3938

4039
public class CursorIterablePerfTest {
4140

42-
// private static final int ITERATIONS = 5_000_000;
4341
private static final int ITERATIONS = 100_000;
44-
// private static final int ITERATIONS = 10;
4542

46-
private Path file;
47-
private Dbi<ByteBuffer> dbJavaComparator;
48-
private Dbi<ByteBuffer> dbLmdbComparator;
49-
private Dbi<ByteBuffer> dbCallbackComparator;
50-
private List<Dbi<ByteBuffer>> dbs = new ArrayList<>();
43+
private final List<Dbi<ByteBuffer>> dbs = new ArrayList<>();
44+
private final List<Integer> data = new ArrayList<>(ITERATIONS);
5145
private Env<ByteBuffer> env;
52-
private List<Integer> data = new ArrayList<>(ITERATIONS);
46+
private Path file;
5347

5448
@BeforeEach
5549
public void before() throws IOException {
@@ -60,24 +54,25 @@ public void before() throws IOException {
6054
.setMapSize(GIBIBYTES.toBytes(1))
6155
.setMaxReaders(1)
6256
.setMaxDbs(3)
63-
.open(file.toFile(), POSIX_MODE, MDB_NOSUBDIR);
57+
.setEnvFlags(MDB_NOSUBDIR)
58+
.open(file);
6459

6560
final DbiFlagSet dbiFlagSet = MDB_CREATE;
6661
// Use a java comparator for start/stop keys only
67-
dbJavaComparator = env.buildDbi()
62+
Dbi<ByteBuffer> dbJavaComparator = env.buildDbi()
6863
.setDbName("JavaComparator")
6964
.withDefaultComparator()
7065
.setDbiFlags(dbiFlagSet)
7166
.open();
7267
// Use LMDB comparator for start/stop keys
73-
dbLmdbComparator = env.buildDbi()
68+
Dbi<ByteBuffer> dbLmdbComparator = env.buildDbi()
7469
.setDbName("LmdbComparator")
7570
.withNativeComparator()
7671
.setDbiFlags(dbiFlagSet)
7772
.open();
7873

7974
// Use a java comparator for start/stop keys and as a callback comparator
80-
dbCallbackComparator = env.buildDbi()
75+
Dbi<ByteBuffer> dbCallbackComparator = env.buildDbi()
8176
.setDbName("CallBackComparator")
8277
.withCallbackComparator(bufferProxy::getComparator)
8378
.setDbiFlags(dbiFlagSet)
@@ -171,14 +166,14 @@ public void comparePerf(final boolean randomOrder) {
171166
for (int round = 0; round < 3; round++) {
172167
System.out.println("round: " + round + " -----------------------------------------");
173168
for (final Dbi<ByteBuffer> db : dbs) {
174-
final String dbName = new String(db.getName(), StandardCharsets.UTF_8);
169+
final String dbName = db.getNameAsString();
175170

176171
final Instant start = Instant.now();
177172
int cnt = 0;
178173
// Exercise the stop key comparator on every entry
179174
try (Txn<ByteBuffer> txn = env.txnRead();
180-
CursorIterable<ByteBuffer> c = db.iterate(txn, keyRange)) {
181-
for (final CursorIterable.KeyVal<ByteBuffer> kv : c) {
175+
CursorIterable<ByteBuffer> cursorIterable = db.iterate(txn, keyRange)) {
176+
for (final CursorIterable.KeyVal<ByteBuffer> ignored : cursorIterable) {
182177
cnt++;
183178
}
184179
}

src/test/java/org/lmdbjava/CursorParamTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import static org.lmdbjava.SeekOp.MDB_NEXT;
3838
import static org.lmdbjava.SeekOp.MDB_PREV;
3939
import static org.lmdbjava.TestUtils.DB_1;
40-
import static org.lmdbjava.TestUtils.POSIX_MODE;
4140
import static org.lmdbjava.TestUtils.bb;
4241
import static org.lmdbjava.TestUtils.mdb;
4342
import static org.lmdbjava.TestUtils.nb;
@@ -162,7 +161,8 @@ private Env<T> env(final Path tmp) {
162161
.setMapSize(MEBIBYTES.toBytes(1))
163162
.setMaxReaders(1)
164163
.setMaxDbs(1)
165-
.open(tmp.resolve("db").toFile(), POSIX_MODE, MDB_NOSUBDIR);
164+
.setEnvFlags(MDB_NOSUBDIR)
165+
.open(tmp.resolve("db"));
166166
}
167167
}
168168

src/test/java/org/lmdbjava/CursorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import static org.lmdbjava.SeekOp.MDB_LAST;
3838
import static org.lmdbjava.SeekOp.MDB_NEXT;
3939
import static org.lmdbjava.TestUtils.DB_1;
40-
import static org.lmdbjava.TestUtils.POSIX_MODE;
4140
import static org.lmdbjava.TestUtils.bb;
4241

4342
import java.nio.ByteBuffer;
@@ -65,7 +64,8 @@ void beforeEach() {
6564
.setMapSize(MEBIBYTES.toBytes(1))
6665
.setMaxReaders(1)
6766
.setMaxDbs(1)
68-
.open(file.toFile(), POSIX_MODE, MDB_NOSUBDIR);
67+
.setEnvFlags(MDB_NOSUBDIR)
68+
.open(file);
6969
}
7070

7171
@AfterEach

0 commit comments

Comments
 (0)