@Override public void validate() throws HyracksDataException { getIndex().validate(); }
@Override public void validate() throws HyracksDataException { getIndex().validate(); }
protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, int numThreads, TestWorkloadConf conf, String dataMsg) throws InterruptedException, HyracksDataException { setUp(); if (LOGGER.isInfoEnabled()) { String indexTypeName = getIndexTypeName(); LOGGER.info(indexTypeName + " MultiThread Test:\nData: " + dataMsg + "; Threads: " + numThreads + "; Workload: " + conf.toString() + "."); } ITypeTraits[] typeTraits = SerdeUtils.serdesToTypeTraits(fieldSerdes); IBinaryComparatorFactory[] cmpFactories = SerdeUtils.serdesToComparatorFactories(fieldSerdes, numKeys); // This is only used for the LSM-BTree. int[] bloomFilterKeyFields = new int[numKeys]; for (int i = 0; i < numKeys; ++i) { bloomFilterKeyFields[i] = i; } IIndex index = createIndex(typeTraits, cmpFactories, bloomFilterKeyFields); IIndexTestWorkerFactory workerFactory = getWorkerFactory(); // 4 batches per thread. int batchSize = (NUM_OPERATIONS / numThreads) / 4; IndexMultiThreadTestDriver driver = new IndexMultiThreadTestDriver(index, workerFactory, fieldSerdes, conf.ops, conf.opProbs); driver.init(); long[] times = driver.run(numThreads, 1, NUM_OPERATIONS, batchSize); index.validate(); driver.deinit(); if (LOGGER.isInfoEnabled()) { LOGGER.info("BTree MultiThread Test Time: " + times[0] + "ms"); } tearDown(); }
ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy();
ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy();
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, BTreeLeafFrameType leafType, ITupleReference lowKey, ITupleReference highKey, ITupleReference prefixLowKey, ITupleReference prefixHighKey) throws Exception { //tests with tuples consisting only of keys create secondary index, others - a primary index hasOnlyKeys = fieldSerdes.length == numKeys; OrderedIndexTestContext ctx = createTestContext(fieldSerdes, numKeys, leafType, false); ctx.getIndex().create(); ctx.getIndex().activate(); insertDeleteTest(ctx); ctx.getIndex().clear(); checkTuples.clear(); upsertDeleteTest(ctx); ctx.getIndex().clear(); checkTuples.clear(); insertUpsertTest(ctx); ctx.getIndex().clear(); checkTuples.clear(); upsertUpsertTest(ctx); ctx.getIndex().clear(); checkTuples.clear(); ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, BTreeLeafFrameType leafType, ITupleReference lowKey, ITupleReference highKey, ITupleReference prefixLowKey, ITupleReference prefixHighKey) throws Exception { OrderedIndexTestContext ctx = createTestContext(fieldSerdes, numKeys, leafType, false); ctx.getIndex().create(); ctx.getIndex().activate(); // We assume all fieldSerdes are of the same type. Check the first one // to determine which field types to generate. if (fieldSerdes[0] instanceof IntegerSerializerDeserializer) { orderedIndexTestUtils.insertIntTuples(ctx, numTuplesToInsert, getRandom()); } else if (fieldSerdes[0] instanceof UTF8StringSerializerDeserializer) { orderedIndexTestUtils.insertStringTuples(ctx, numTuplesToInsert, false, getRandom()); } orderedIndexTestUtils.checkPointSearches(ctx); orderedIndexTestUtils.checkScan(ctx); orderedIndexTestUtils.checkDiskOrderScan(ctx); orderedIndexTestUtils.checkRangeSearch(ctx, lowKey, highKey, true, true); if (prefixLowKey != null && prefixHighKey != null) { orderedIndexTestUtils.checkRangeSearch(ctx, prefixLowKey, prefixHighKey, true, true); } ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, BTreeLeafFrameType leafType, ITupleReference lowKey, ITupleReference highKey, ITupleReference prefixLowKey, ITupleReference prefixHighKey) throws Exception { OrderedIndexTestContext ctx = createTestContext(fieldSerdes, numKeys, leafType, false); ctx.getIndex().create(); ctx.getIndex().activate(); // We assume all fieldSerdes are of the same type. Check the first one // to determine which field types to generate. if (fieldSerdes[0] instanceof IntegerSerializerDeserializer) { orderedIndexTestUtils.insertSortedIntTuples(ctx, numTuplesToInsert, getRandom()); } else if (fieldSerdes[0] instanceof UTF8StringSerializerDeserializer) { orderedIndexTestUtils.insertSortedStringTuples(ctx, numTuplesToInsert, getRandom()); } orderedIndexTestUtils.checkPointSearches(ctx); orderedIndexTestUtils.checkScan(ctx); orderedIndexTestUtils.checkDiskOrderScan(ctx); orderedIndexTestUtils.checkRangeSearch(ctx, lowKey, highKey, true, true); if (prefixLowKey != null && prefixHighKey != null) { orderedIndexTestUtils.checkRangeSearch(ctx, prefixLowKey, prefixHighKey, true, true); } ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, BTreeLeafFrameType leafType, ITupleReference lowKey, ITupleReference highKey, ITupleReference prefixLowKey, ITupleReference prefixHighKey) throws Exception { OrderedIndexTestContext ctx = createTestContext(fieldSerdes, numKeys, leafType, false); ctx.getIndex().create(); ctx.getIndex().activate(); for (int i = 0; i < bulkLoadRounds; i++) { // We assume all fieldSerdes are of the same type. Check the first // one // to determine which field types to generate. if (fieldSerdes[0] instanceof IntegerSerializerDeserializer) { orderedIndexTestUtils.bulkLoadIntTuples(ctx, numTuplesToInsert, getRandom()); } else if (fieldSerdes[0] instanceof UTF8StringSerializerDeserializer) { orderedIndexTestUtils.bulkLoadStringTuples(ctx, numTuplesToInsert, getRandom()); } orderedIndexTestUtils.checkPointSearches(ctx); orderedIndexTestUtils.checkScan(ctx); orderedIndexTestUtils.checkDiskOrderScan(ctx); orderedIndexTestUtils.checkRangeSearch(ctx, lowKey, highKey, true, true); if (prefixLowKey != null && prefixHighKey != null) { orderedIndexTestUtils.checkRangeSearch(ctx, prefixLowKey, prefixHighKey, true, true); } } ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, BTreeLeafFrameType leafType, ITupleReference lowKey, ITupleReference highKey, ITupleReference prefixLowKey, ITupleReference prefixHighKey) throws Exception { OrderedIndexTestContext ctx = createTestContext(fieldSerdes, numKeys, leafType, false); ctx.getIndex().create(); ctx.getIndex().activate(); // We assume all fieldSerdes are of the same type. Check the first one // to determine which field types to generate. if (fieldSerdes[0] instanceof IntegerSerializerDeserializer) { orderedIndexTestUtils.upsertIntTuples(ctx, numTuplesToInsert, getRandom()); } else if (fieldSerdes[0] instanceof UTF8StringSerializerDeserializer) { orderedIndexTestUtils.upsertStringTuples(ctx, numTuplesToInsert, getRandom()); } orderedIndexTestUtils.checkPointSearches(ctx); orderedIndexTestUtils.checkScan(ctx); orderedIndexTestUtils.checkDiskOrderScan(ctx); orderedIndexTestUtils.checkRangeSearch(ctx, lowKey, highKey, true, true); if (prefixLowKey != null && prefixHighKey != null) { orderedIndexTestUtils.checkRangeSearch(ctx, prefixLowKey, prefixHighKey, true, true); } ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, int numKeys, BTreeLeafFrameType leafType, ITupleReference lowKey, ITupleReference highKey, ITupleReference prefixLowKey, ITupleReference prefixHighKey) throws Exception { OrderedIndexTestContext ctx = createTestContext(fieldSerdes, numKeys, leafType, false); ctx.getIndex().create(); ctx.getIndex().activate(); // We assume all fieldSerdes are of the same type. Check the first one // to determine which field types to generate. if (fieldSerdes[0] instanceof IntegerSerializerDeserializer) { test(ctx, fieldSerdes); } else if (fieldSerdes[0] instanceof UTF8StringSerializerDeserializer) { test(ctx, fieldSerdes); } ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }