@Override public RecordIterator<Entry> getEntries() { // TODO: add metrics to entries if ever needed return iterator.getEntries(); }
@Override public void run() { try { while (keyIterator.hasNext()) { StaticBuffer key = keyIterator.next(); RecordIterator<Entry> entries = keyIterator.getEntries(); if (!keyFilter.test(key)) continue; EntryList entryList = StaticArrayEntryList.ofStaticBuffer(entries, StaticArrayEntry.ENTRY_GETTER); queue.put(new SliceResult(query, key, entryList)); } finished = true; } catch (InterruptedException e) { log.error("Data-pulling thread interrupted while waiting on queue or data", e); } catch (Throwable e) { log.error("Could not load data from storage: {}",e); } finally { try { keyIterator.close(); } catch (IOException e) { log.warn("Could not close storage iterator ", e); } } }
protected void examineGetKeysResults(KeyIterator keyIterator, long startKey, long endKey) { Assert.assertNotNull(keyIterator); int count = 0; int expectedNumKeys = (int) (endKey - startKey); final List<StaticBuffer> existingKeys = new ArrayList<>(expectedNumKeys); for (int i = (int) (startKey == 0 ? 1 : startKey); i <= endKey; i++) { existingKeys.add(KeyColumnValueStoreUtil.longToByteBuffer(i)); } while (keyIterator.hasNext()) { StaticBuffer key = keyIterator.next(); Assert.assertNotNull(key); Assert.assertTrue(existingKeys.contains(key)); RecordIterator<Entry> entries = keyIterator.getEntries(); Assert.assertNotNull(entries); int entryCount = 0; while (entries.hasNext()) { Assert.assertNotNull(entries.next()); entryCount++; } Assert.assertEquals(1, entryCount); count++; } Assert.assertEquals(expectedNumKeys, count); }
public void testDataSequential() throws Exception { loadData(200000,2); close(); KeyColumnValueStoreManager manager = openStorageManager(); KeyColumnValueStore store = manager.openDatabase(Backend.EDGESTORE_NAME); SliceQuery query = new SliceQuery(BufferUtil.zeroBuffer(8),BufferUtil.oneBuffer(8)); query.setLimit(2); Stopwatch watch = Stopwatch.createStarted(); StoreTransaction txh = manager.beginTransaction(StandardBaseTransactionConfig.of(TimestampProviders.MILLI)); KeyIterator iterator = store.getKeys(query,txh); int numV = 0; while(iterator.hasNext()) { iterator.next(); RecordIterator<Entry> entries = iterator.getEntries(); assertEquals(2, Iterators.size(entries)); numV++; } iterator.close(); txh.commit(); System.out.println("Time taken: " + watch.elapsed(TimeUnit.MILLISECONDS)); System.out.println("Num Vertices: " + numV); store.close(); manager.close(); }
private void verifyIterator(KeyIterator iterator, int expectedKeys) { int keys = 0; while (iterator.hasNext()) { StaticBuffer b = iterator.next(); assertTrue(b!=null && b.length()>0); keys++; RecordIterator<Entry> entryRecordIterator = iterator.getEntries(); int cols = 0; while (entryRecordIterator.hasNext()) { Entry e = entryRecordIterator.next(); assertTrue(e!=null && e.length()>0); cols++; } assertEquals(1,cols); } assertEquals(expectedKeys,keys); }