public CreateVisitorReply(int type) { super(type); lastBucket = new BucketId(Integer.MAX_VALUE); }
public BucketId toBucketId() { return new BucketId(keyToBucketId(key)); }
public BucketProgress getNext() { assert(hasNext()) : "getNext() called with hasNext() == false"; long currentPosition = progressToken.getBucketCursor(); long key = ProgressToken.makeNthBucketKey(currentPosition, distributionBitCount); ++currentPosition; progressToken.setBucketCursor(currentPosition); return new BucketProgress( new BucketId(ProgressToken.keyToBucketId(key)), new BucketId()); }
void testIterateWithUnknownId(PersistenceProvider spi) { Bucket b = new Bucket((short)0, new BucketId(8, 0x1)); spi.createBucket(b); IterateResult result = spi.iterate(123, 1024); assertEquals(Result.ErrorType.PERMANENT_ERROR, result.getErrorType()); }
@Override protected DocumentMessage doDecode(DocumentDeserializer buf) { EmptyBucketsMessage msg = new EmptyBucketsMessage(); int size = buf.getInt(null); for (int i = 0; i < size; ++i) { msg.getBucketIds().add(new BucketId(buf.getLong(null))); } return msg; }
@Override protected DocumentMessage doDecode(DocumentDeserializer buf) { GetBucketStateMessage msg = new GetBucketStateMessage(); msg.setBucketId(new BucketId(buf.getLong(null))); return msg; }
void testMaintain(PersistenceProvider spi) throws Exception { Document doc1 = testDocMan.createRandomDocumentAtLocation(0x01, 1); Bucket bucket = new Bucket((short)0, new BucketId(8, 0x01)); spi.createBucket(bucket); spi.put(bucket, 3, doc1); spi.flush(bucket); assertEquals(Result.ErrorType.NONE, spi.maintain(bucket, PersistenceProvider.MaintenanceLevel.LOW).getErrorType()); }
@Override protected DocumentReply doDecode(DocumentDeserializer buf) { GetBucketListReply reply = new GetBucketListReply(); int len = buf.getInt(null); for (int i = 0; i < len; i++) { GetBucketListReply.BucketInfo info = new GetBucketListReply.BucketInfo(); info.bucket = new BucketId(buf.getLong(null)); info.bucketInformation = decodeString(buf); reply.getBuckets().add(info); } return reply; }
@Override protected DocumentMessage doDecode(DocumentDeserializer buf) { DocumentListMessage msg = new DocumentListMessage(); msg.setBucketId(new BucketId(buf.getLong(null))); int len = buf.getInt(null); for (int i = 0; i < len; i++) { msg.getDocuments().add(new DocumentListEntry(buf)); } return msg; }
void testIterateMaxByteSize(PersistenceProvider spi) throws Exception { Bucket b = new Bucket((short)0, new BucketId(8, 0x1)); spi.createBucket(b); List<DocEntry> docs = feedDocs(spi, b, 100, 4096, 4096); CreateIteratorResult iter = spi.createIterator(b, new AllFields(), new Selection("", 0, Long.MAX_VALUE), PersistenceProvider.IncludedVersions.NEWEST_DOCUMENT_ONLY); // Docs are 4k each and iterating with max combined size of 10k. // Should receive no more than 3 docs in each chunk List<IterateResult> chunks = doIterate(spi, iter.getIteratorId(), 10000, 0); assertTrue("Expected >= 33 chunks, got " + chunks.size(), chunks.size() >= 33); verifyDocs(docs, chunks); spi.destroyIterator(iter.getIteratorId()); }
@Override protected DocumentMessage doDecode(DocumentDeserializer buf) { VisitorInfoMessage msg = new VisitorInfoMessage(); int size = buf.getInt(null); for (int i = 0; i < size; i++) { long reversed = buf.getLong(null); long rawid = ((reversed >>> 56) & 0x00000000000000FFl) | ((reversed >>> 40) & 0x000000000000FF00l) | ((reversed >>> 24) & 0x0000000000FF0000l) | ((reversed >>> 8) & 0x00000000FF000000l) | ((reversed << 8) & 0x000000FF00000000l) | ((reversed << 24) & 0x0000FF0000000000l) | ((reversed << 40) & 0x00FF000000000000l) | ((reversed << 56) & 0xFF00000000000000l); msg.getFinishedBuckets().add(new BucketId(rawid)); } msg.setErrorMessage(decodeString(buf)); return msg; }
@Override protected DocumentMessage doDecode(DocumentDeserializer buf) { GetBucketListMessage msg = new GetBucketListMessage(); msg.setBucketId(new BucketId(buf.getLong(null))); msg.setBucketSpace(decodeBucketSpace(buf)); return msg; }
void testIterateChunked(PersistenceProvider spi) throws Exception { Bucket b = new Bucket((short)0, new BucketId(8, 0x1)); spi.createBucket(b); List<DocEntry> docs = feedDocs(spi, b, 100, 110, 110); CreateIteratorResult iter = spi.createIterator(b, new AllFields(), new Selection("", 0, Long.MAX_VALUE), PersistenceProvider.IncludedVersions.NEWEST_DOCUMENT_ONLY); List<IterateResult> chunks = doIterate(spi, iter.getIteratorId(), 1, 0); assertEquals(100, chunks.size()); verifyDocs(docs, chunks); spi.destroyIterator(iter.getIteratorId()); }
void testIterateAllDocs(PersistenceProvider spi) throws Exception { Bucket b = new Bucket((short)0, new BucketId(8, 0x1)); spi.createBucket(b); List<DocEntry> docs = feedDocs(spi, b, 100, 110, 110); CreateIteratorResult iter = spi.createIterator(b, new AllFields(), new Selection("", 0, Long.MAX_VALUE), PersistenceProvider.IncludedVersions.NEWEST_DOCUMENT_ONLY); List<IterateResult> chunks = doIterate(spi, iter.getIteratorId(), 4096, 0); verifyDocs(docs, chunks); spi.destroyIterator(iter.getIteratorId()); }
void testIterateCreateIterator(PersistenceProvider spi) throws Exception { Bucket bucket = new Bucket((short)0, new BucketId(8, 0x01)); spi.createBucket(bucket); CreateIteratorResult result = spi.createIterator(bucket, new AllFields(), new Selection("", 0, Long.MAX_VALUE), PersistenceProvider.IncludedVersions.NEWEST_DOCUMENT_ONLY); assertEquals(Result.ErrorType.NONE, result.getErrorType()); // Iterator ID 0 means invalid iterator, so cannot be returned // from a successful createIterator call. assertTrue(result.getIteratorId() != 0); spi.destroyIterator(result.getIteratorId()); }
public boolean contains(BucketId id) { if (id.getUsedBits() < getUsedBits()) { return false; } BucketId copy = new BucketId(getUsedBits(), id.getRawId()); return (copy.getId() == getId()); }
void testIterateEmptyBucket(PersistenceProvider spi) throws Exception { Bucket b = new Bucket((short)0, new BucketId(8, 0x1)); spi.createBucket(b); CreateIteratorResult iter = spi.createIterator(b, new AllFields(), new Selection("", 0, Long.MAX_VALUE), PersistenceProvider.IncludedVersions.NEWEST_DOCUMENT_OR_REMOVE); IterateResult result = spi.iterate(iter.getIteratorId(), 4096); assertEquals(Result.ErrorType.NONE, result.getErrorType()); assertEquals(0, result.getEntries().size()); assertTrue(result.isCompleted()); spi.destroyIterator(iter.getIteratorId()); }
void testDeleteBucket(PersistenceProvider spi) throws Exception { Bucket b = new Bucket((short)0, new BucketId(8, 0x1)); spi.createBucket(b); Document doc1 = testDocMan.createRandomDocumentAtLocation(0x01, 1); spi.put(b, 3, doc1); spi.flush(b); spi.deleteBucket(b); GetResult result = spi.get(b, new AllFields(), doc1.getId()); assertEquals(Result.ErrorType.NONE, result.getErrorType()); assertEquals(0, result.getLastModifiedTimestamp()); }
@Override protected DocumentMessage doDecode(DocumentDeserializer buf) { StatBucketMessage msg = new StatBucketMessage(); msg.setBucketId(new BucketId(buf.getLong(null))); msg.setDocumentSelection(decodeString(buf)); msg.setBucketSpace(decodeBucketSpace(buf)); return msg; }
void testBasics(PersistenceProvider provider) throws Exception { Bucket bucket = new Bucket((short)0, new BucketId(8, 0x01)); Document doc1 = testDocMan.createRandomDocumentAtLocation(0x01, 1); Document doc2 = testDocMan.createRandomDocumentAtLocation(0x01, 2); assertEquals(new Result(), provider.createBucket(bucket)); assertEquals(new Result(), provider.put(bucket, 1, doc1)); assertEquals(new Result(), provider.put(bucket, 2, doc2)); assertEquals(new RemoveResult(true), provider.remove(bucket, 3, doc1.getId())); assertEquals(new Result(), provider.flush(bucket)); testBasicsIteration(provider, bucket, doc1, doc2, false); testBasicsIteration(provider, bucket, doc1, doc2, true); }