@Override public void stop(boolean dumpState, OutputStream outputStream) throws IOException { if (dumpState) { dumpState(outputStream); } for (IndexInfo i : indexInfos.values()) { if (i.isOpen) { i.index.deactivate(); } } }
public void tearDown() throws Exception { index.deactivate(); index.destroy(); } }
@Override public void deactivate() throws HyracksDataException { getIndex().deactivate(); }
public void deinit() throws HyracksDataException { index.deactivate(); index.destroy(); }
private boolean evictCandidateIndex() throws HyracksDataException { // Why min()? As a heuristic for eviction, we will take an open index // (an index consuming memory) // that is not being used (refcount == 0) and has been least recently // used. The sort order defined // for IndexInfo maintains this. See IndexInfo.compareTo(). IndexInfo info = Collections.min(indexInfos.values()); if (info.referenceCount != 0 || !info.isOpen) { return false; } info.index.deactivate(); //find resource name and deallocate its memory for (Entry<String, IndexInfo> entry : indexInfos.entrySet()) { if (entry.getValue() == info) { deallocateMemory(entry.getKey()); break; } } info.isOpen = false; return true; }
@Test(expected = HyracksDataException.class) public void invalidSequenceTest6() throws Exception { index.create(); index.activate(); index.deactivate(); try { index.deactivate(); } finally { index.destroy(); } } }
@Override public void unregister(String resourcePath) throws HyracksDataException { IndexInfo info = indexInfos.get(resourcePath); if (info == null) { throw HyracksDataException.create(ErrorCode.INDEX_DOES_NOT_EXIST); } if (info.referenceCount != 0) { indexInfos.put(resourcePath, info); throw HyracksDataException.create(ErrorCode.CANNOT_DROP_IN_USE_INDEX, resourcePath); } if (info.isOpen) { info.index.deactivate(); deallocateMemory(resourcePath); } indexInfos.remove(resourcePath); }
protected void doDeallocate() throws HyracksDataException { getIndex().deactivate(); getIndex().destroy(); componentId = null; }
@Test(expected = HyracksDataException.class) public void invalidSequenceTest2() throws Exception { index.create(); index.activate(); try { index.destroy(); } finally { index.deactivate(); index.destroy(); } }
@Test(expected = HyracksDataException.class) public void invalidSequenceTest5() throws Exception { index.create(); index.activate(); try { index.activate(); } finally { index.deactivate(); index.destroy(); } }
@Test(expected = HyracksDataException.class) public void invalidSequenceTest1() throws Exception { index.create(); index.activate(); try { index.create(); } finally { index.deactivate(); index.destroy(); } }
protected void doReset() throws HyracksDataException { getIndex().deactivate(); getIndex().destroy(); getIndex().create(); getIndex().activate(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, IPrimitiveValueProviderFactory[] valueProviderFactories, int numKeys, ITupleReference key, RTreePolicyType rtreePolicyType) throws Exception { AbstractRTreeTestContext ctx = createTestContext(fieldSerdes, valueProviderFactories, numKeys, rtreePolicyType); 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) { rTreeTestUtils.bulkLoadIntTuples(ctx, numTuplesToInsert, getRandom(), isPoint); } else if (fieldSerdes[0] instanceof DoubleSerializerDeserializer) { rTreeTestUtils.bulkLoadDoubleTuples(ctx, numTuplesToInsert, getRandom(), isPoint); } rTreeTestUtils.checkScan(ctx); rTreeTestUtils.checkDiskOrderScan(ctx); rTreeTestUtils.checkRangeSearch(ctx, key); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }
@Override protected void runTest(ISerializerDeserializer[] fieldSerdes, IPrimitiveValueProviderFactory[] valueProviderFactories, int numKeys, ITupleReference key, RTreePolicyType rtreePolicyType) throws Exception { AbstractRTreeTestContext ctx = createTestContext(fieldSerdes, valueProviderFactories, numKeys, rtreePolicyType); 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) { rTreeTestUtils.insertIntTuples(ctx, numTuplesToInsert, getRandom()); } else if (fieldSerdes[0] instanceof DoubleSerializerDeserializer) { rTreeTestUtils.insertDoubleTuples(ctx, numTuplesToInsert, getRandom()); } rTreeTestUtils.checkScan(ctx); rTreeTestUtils.checkDiskOrderScan(ctx); rTreeTestUtils.checkRangeSearch(ctx, key); 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.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) { 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(); // 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(); 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) { test(ctx, fieldSerdes); } else if (fieldSerdes[0] instanceof UTF8StringSerializerDeserializer) { test(ctx, fieldSerdes); } ctx.getIndex().validate(); ctx.getIndex().deactivate(); ctx.getIndex().destroy(); }