use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class DerbyPerformanceTest method readIterator.
private void readIterator(final Connection conn) throws Exception {
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final Instant readsStart = new Instant();
final Statement select = conn.createStatement();
for (int reads = 1; reads <= READS; reads++) {
FDate prevValue = null;
int count = 0;
try (ResultSet results = select.executeQuery("SELECT v FROM abc ORDER BY k ASC")) {
while (results.next()) {
final FDate value = new FDate(results.getLong(1));
if (prevValue != null) {
Assertions.checkTrue(prevValue.isBefore(value));
}
prevValue = value;
count++;
}
}
Assertions.checkEquals(count, VALUES);
if (loopCheck.check()) {
printProgress("Reads", readsStart, VALUES * reads, VALUES * READS);
}
}
printProgress("ReadsFinished", readsStart, VALUES * READS, VALUES * READS);
}
use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class DerbyPerformanceTest method readGet.
private void readGet(final Connection conn) throws Exception {
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final List<FDate> values = Lists.toList(newValues());
final Instant readsStart = new Instant();
for (int reads = 0; reads < READS; reads++) {
FDate prevValue = null;
int count = 0;
try (PreparedStatement select = conn.prepareStatement("SELECT v FROM abc where k = ? fetch first 1 rows only")) {
for (int i = 0; i < values.size(); i++) {
select.setLong(1, values.get(i).millisValue());
try (ResultSet results = select.executeQuery()) {
Assertions.checkTrue(results.next());
final FDate value = new FDate(results.getLong(1));
if (prevValue != null) {
Assertions.checkTrue(prevValue.isBefore(value));
}
prevValue = value;
count++;
if (loopCheck.check()) {
printProgress("Gets", readsStart, VALUES * reads + count, VALUES * READS);
}
}
}
}
Assertions.checkEquals(count, VALUES);
}
printProgress("GetsFinished", readsStart, VALUES * READS, VALUES * READS);
}
use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class DerbyPerformanceTest method testDerbyPerformance.
@Test
public void testDerbyPerformance() throws Exception {
final File directory = new File(ContextProperties.getCacheDirectory(), DerbyPerformanceTest.class.getSimpleName());
Files.deleteNative(directory);
Files.forceMkdirParent(directory);
final Instant writesStart = new Instant();
int i = 0;
Class.forName("org.apache.derby.iapi.jdbc.AutoloadedDriver");
final Connection conn = DriverManager.getConnection("jdbc:derby:" + directory.getAbsolutePath() + ";create=true");
// autocommit is very slow and overrides transactions
conn.setAutoCommit(false);
final Statement create = conn.createStatement();
create.execute("CREATE TABLE abc (k BIGINT, v BIGINT, PRIMARY KEY(k))");
create.execute("CREATE UNIQUE INDEX idx_abc on abc (k desc)");
create.close();
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final Statement tx = conn.createStatement();
final PreparedStatement insert = conn.prepareStatement("INSERT INTO abc VALUES (?,?)");
for (final FDate date : newValues()) {
final long value = date.longValue(FTimeUnit.MILLISECONDS);
insert.setLong(1, value);
insert.setLong(2, value);
insert.addBatch();
i++;
if (i % FLUSH_INTERVAL == 0) {
insert.executeBatch();
conn.commit();
if (loopCheck.check()) {
printProgress("Writes", writesStart, i, VALUES);
}
}
}
insert.executeBatch();
insert.close();
conn.commit();
printProgress("WritesFinished", writesStart, VALUES, VALUES);
tx.close();
readIterator(conn);
readGet(conn);
readGetLatest(conn);
final Statement drop = conn.createStatement();
drop.execute("drop table abc");
drop.close();
Files.deleteNative(directory);
}
use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class LsmTreePerformanceTest method testLsmTreePerformance.
@Test
public void testLsmTreePerformance() throws IOException, InterruptedException {
final File directory = new File(ContextProperties.getCacheDirectory(), LsmTreePerformanceTest.class.getSimpleName());
Files.deleteNative(directory);
Files.forceMkdir(directory);
final File file = new File(directory, "testLsmTreePerformance");
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final Instant writesStart = new Instant();
Store<FDate, FDate> store = newStore(file);
int i = 0;
for (final FDate date : newValues()) {
store.put(date, date);
i++;
if (i % FLUSH_INTERVAL == 0) {
if (loopCheck.check()) {
printProgress("Writes", writesStart, i, VALUES);
}
}
}
// store.waitForCompactions();
printProgress("WritesFinished", writesStart, VALUES, VALUES);
store.close();
store = newStore(file);
readIterator(store);
readGet(store);
readGetLatest(store);
store.close();
}
use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class RecordLogDirectoryPerformanceTest method testRecordLogDirectoryPerformance.
@Test
public void testRecordLogDirectoryPerformance() throws IOException, InterruptedException {
final File directory = new File(ContextProperties.getCacheDirectory(), RecordLogDirectoryPerformanceTest.class.getSimpleName());
Files.deleteNative(directory);
Files.forceMkdir(directory);
final File file = new File(directory, "testRecordLogDirectoryPerformance");
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final Instant writesStart = new Instant();
try (RecordLogDirectory.Writer<TimedDecimal> writer = RecordLogDirectory.Writer.create(file, IndeedSerializer.valueOf(TimedDecimalSerde.GET), new SnappyCodec(), Integer.MAX_VALUE)) {
int i = 0;
for (final FDate date : newValues()) {
writer.append(new TimedDecimal(date, date.millisValue()));
i++;
if (i % FLUSH_INTERVAL == 0) {
if (loopCheck.check()) {
printProgress("Writes", writesStart, i, VALUES);
}
// writer.roll();
}
}
writer.roll();
printProgress("WritesFinished", writesStart, VALUES, VALUES);
}
readIterator(file);
}
Aggregations