public void testEmpty() throws IOException { VolatileGeneration<Integer, Long> generation = new VolatileGeneration<Integer, Long>( new File(tmpDir, "log.log"), new IntSerializer(), new LongSerializer(), new ComparableComparator()); final File indexDir = new File(tmpDir, "indexdir"); ImmutableBTreeIndex.Writer.write( indexDir, generation.iterator(), new IntSerializer(), new LongSerializer(), 65536, false); ImmutableBTreeIndex.Reader<Integer, Long> reader = new ImmutableBTreeIndex.Reader<Integer, Long>( indexDir, new IntSerializer(), new LongSerializer(), false); final Iterator<Generation.Entry<Integer, Long>> iterator = reader.iterator(); assertFalse(iterator.hasNext()); }
public void testAllDeletedInYoungGeneration() throws IOException, TransactionLog.LogClosedException { VolatileGeneration<Integer, Long> generation = new VolatileGeneration<Integer, Long>( new File(tmpDir, "log1.log"), new IntSerializer(), new LongSerializer(), new ComparableComparator()); for (int i = 0; i < 10000; i++) { generation.put(i, (long) i); } final File indexDir1 = new File(tmpDir, "indexdir1"); ImmutableBTreeIndex.Writer.write( indexDir1, generation.iterator(), new IntSerializer(), new LongSerializer(), 65536, false); ImmutableBTreeIndex.Reader<Integer, Long> reader = new ImmutableBTreeIndex.Reader<Integer, Long>( indexDir1, new IntSerializer(), new LongSerializer(), false); generation = new VolatileGeneration<Integer, Long>( new File(tmpDir, "log2.log"), new IntSerializer(), new LongSerializer(), new ComparableComparator()); for (int i = 0; i < 10000; i++) { generation.delete(i); } final File indexDir2 = new File(tmpDir, "indexDir2"); MergingIterator<Integer, Long> merged = new MergingIterator<Integer, Long>( Arrays.asList(generation.iterator(), reader.iterator()), new ComparableComparator()); ImmutableBTreeIndex.Writer.write( indexDir2, merged, new IntSerializer(), new LongSerializer(), 65536, false); ImmutableBTreeIndex.Reader<Integer, Long> reader2 = new ImmutableBTreeIndex.Reader<Integer, Long>( indexDir2, new IntSerializer(), new LongSerializer(), false); Iterator<Generation.Entry<Integer, Long>> iterator = reader2.iterator(); assertFalse(iterator.hasNext()); for (int i = 0; i < 10000; i++) { assertNull(reader2.get(i)); } }
public void testAllDeletes() throws IOException, TransactionLog.LogClosedException { VolatileGeneration<Integer, Long> generation = new VolatileGeneration<Integer, Long>( new File(tmpDir, "log.log"), new IntSerializer(), new LongSerializer(), new ComparableComparator()); for (int i = 0; i < 10000; i++) { generation.delete(i); } final File indexDir = new File(tmpDir, "indexdir"); ImmutableBTreeIndex.Writer.write( indexDir, generation.iterator(), new IntSerializer(), new LongSerializer(), 65536, false); ImmutableBTreeIndex.Reader<Integer, Long> reader = new ImmutableBTreeIndex.Reader<Integer, Long>( indexDir, new IntSerializer(), new LongSerializer(), false); final Iterator<Generation.Entry<Integer, Long>> iterator = reader.iterator(); assertFalse(iterator.hasNext()); for (int i = 0; i < 10000; i++) { assertNull(reader.get(i)); } }