use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class BasicRecordFilePerformanceTest method readIterator.
private void readIterator(final File file) throws IOException, InterruptedException {
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck();
final Instant readsStart = new Instant();
for (int reads = 1; reads <= READS; reads++) {
FDate prevValue = null;
int count = 0;
try (BasicRecordFile<TimedDecimal> reader = new BasicRecordFile<>(file, IndeedSerializer.valueOf(TimedDecimalSerde.GET))) {
final RecordFile.Reader<TimedDecimal> iterator = reader.reader();
while (iterator.next()) {
final FDate value = iterator.get().getTime();
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 LsmTreePerformanceTest method readIterator.
private void readIterator(final Store<FDate, FDate> table) throws InterruptedException, IOException {
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final Instant readsStart = new Instant();
for (int reads = 1; reads <= READS; reads++) {
FDate prevValue = null;
final Iterator<Store.Entry<FDate, FDate>> range = table.iterator();
int count = 0;
while (true) {
try {
final FDate value = range.next().getValue();
if (prevValue != null) {
Assertions.checkTrue(prevValue.isBefore(value));
}
prevValue = value;
count++;
} catch (final NoSuchElementException e) {
break;
}
}
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 LsmTreePerformanceTest method readGetLatest.
private void readGetLatest(final Store<FDate, FDate> table) throws InterruptedException, IOException {
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final List<FDate> values = Lists.toList(newValues());
final Instant readsStart = new Instant();
for (int reads = 1; reads <= READS; reads++) {
FDate prevValue = null;
for (int i = 0; i < values.size(); i++) {
try {
final Store.Entry<FDate, FDate> entry = table.floor(values.get(i));
final FDate value = entry.getValue();
if (prevValue != null) {
Assertions.checkTrue(prevValue.isBefore(value));
}
prevValue = value;
} catch (final NoSuchElementException e) {
break;
}
}
if (loopCheck.check()) {
printProgress("GetLatests", readsStart, VALUES * reads, VALUES * READS);
}
}
printProgress("GetLatestsFinished", readsStart, VALUES * READS, VALUES * READS);
}
use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class RangeTableDBPerformanceTest method testLevelDbPerformance.
@Test
public void testLevelDbPerformance() throws InterruptedException {
final ADelegateRangeTable<String, FDate, FDate> table = new ADelegateRangeTable<String, FDate, FDate>("testLevelDbPerformance") {
@Override
protected File getBaseDirectory() {
return ContextProperties.TEMP_DIRECTORY;
}
@Override
protected ISerde<FDate> newValueSerde() {
return FDateSerde.GET;
}
@Override
protected ISerde<FDate> newRangeKeySerde() {
return FDateSerde.GET;
}
};
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
RangeBatch<String, FDate, FDate> batch = table.newRangeBatch();
final Instant writesStart = new Instant();
int i = 0;
for (final FDate date : newValues()) {
batch.put(HASH_KEY, date, date);
i++;
if (i % FLUSH_INTERVAL == 0) {
try {
if (loopCheck.check()) {
printProgress("Writes", writesStart, i, VALUES);
}
} catch (final InterruptedException e) {
throw new RuntimeException(e);
}
try {
batch.flush();
batch.close();
} catch (final IOException e) {
throw new RuntimeException(e);
}
batch = table.newRangeBatch();
}
}
try {
batch.flush();
batch.close();
} catch (final IOException e) {
throw new RuntimeException(e);
}
printProgress("WritesFinished", writesStart, VALUES, VALUES);
readIterator(table);
readGet(table);
readGetLatest(table);
}
use of de.invesdwin.util.concurrent.loop.LoopInterruptedCheck in project invesdwin-context-persistence by subes.
the class RangeTableDBPerformanceTest method readGetLatest.
private void readGetLatest(final ADelegateRangeTable<String, FDate, FDate> table) throws InterruptedException {
final LoopInterruptedCheck loopCheck = new LoopInterruptedCheck(Duration.ONE_SECOND);
final List<FDate> values = Lists.toList(newValues());
final Instant readsStart = new Instant();
for (int reads = 1; reads <= READS; reads++) {
FDate prevValue = null;
for (int i = 0; i < values.size(); i++) {
try {
final FDate value = table.getLatestValue(HASH_KEY, values.get(i));
if (prevValue != null) {
Assertions.checkTrue(prevValue.isBefore(value));
}
prevValue = value;
} catch (final NoSuchElementException e) {
break;
}
}
if (loopCheck.check()) {
printProgress("GetLatests", readsStart, VALUES * reads, VALUES * READS);
}
}
printProgress("GetLatestsFinished", readsStart, VALUES * READS, VALUES * READS);
}
Aggregations