protected ImmutableBitSet getColumns() { return info.getAllColumns(); }
@Override public void write(GTRecord rec) throws IOException { buf.clear(); rec.exportColumns(info.getAllColumns(), buf); int len = buf.position(); dout.writeInt(len); dout.write(buf.array(), buf.arrayOffset(), len); }
@Override public void write(GTRecord rec) throws IOException { buf.clear(); rec.exportColumns(info.getAllColumns(), buf); int len = buf.position(); dout.writeInt(len); dout.write(buf.array(), buf.arrayOffset(), len); }
@Override public boolean hasNext() { if (next != null) return true; try { if (din.available() > 0) { int len = din.readInt(); din.read(buf.array(), buf.arrayOffset(), len); buf.clear(); buf.limit(len); record.loadColumns(info.getAllColumns(), buf); next = record; } } catch (IOException e) { throw new RuntimeException(e); } return next != null; }
@Override public boolean hasNext() { if (next != null) return true; try { if (din.available() > 0) { int len = din.readInt(); din.read(buf.array(), buf.arrayOffset(), len); buf.clear(); buf.limit(len); record.loadColumns(info.getAllColumns(), buf); next = record; } } catch (IOException e) { throw new RuntimeException(e); } return next != null; }
@Override public void write(GTRecord r) throws IOException { ByteArray byteArray = r.exportColumns(info.getAllColumns()); assert byteArray.offset() == 0; assert byteArray.array().length == byteArray.length(); rowList.add(byteArray.array()); }
@SuppressWarnings("unused") private void testFilter(TupleFilter filter) throws IOException { long t = System.currentTimeMillis(); GTScanRequest req = new GTScanRequestBuilder().setInfo(info).setRanges(null).setDimensions(info.getAllColumns()).setFilterPushDown(filter).createGTScanRequest(); IGTScanner scanner = req.decorateScanner(gen.generate(N)); long count = 0; for (GTRecord rec : scanner) { count++; } t = System.currentTimeMillis() - t; System.out.println(N + " records filtered to " + count + ", " + calcSpeed(t) + "K rec/sec"); }
@SuppressWarnings("unused") private void testFilter(TupleFilter filter) throws IOException { long t = System.currentTimeMillis(); GTScanRequest req = new GTScanRequestBuilder().setInfo(info).setRanges(null).setDimensions(info.getAllColumns()).setFilterPushDown(filter).createGTScanRequest(); IGTScanner scanner = req.decorateScanner(gen.generate(N)); long count = 0; for (GTRecord rec : scanner) { count++; } t = System.currentTimeMillis() - t; System.out.println(N + " records filtered to " + count + ", " + calcSpeed(t) + "K rec/sec"); }
@Override public int compare(GTRecord a, GTRecord b) { assert a.getInfo() == b.getInfo(); int comp; ImmutableBitSet allColumns = a.getInfo().getAllColumns(); for (int i = 0; i < allColumns.trueBitCount(); i++) { int c = allColumns.trueBitAt(i); comp = comparator.compare(a.get(c), b.get(c)); if (comp != 0) return comp; } return 0; // equals } }
protected ImmutableBitSet getColumns() { return info.getAllColumns(); }
@Override public void write(GTRecord rec) throws IOException { buf.clear(); rec.exportColumns(info.getAllColumns(), buf); int len = buf.position(); dout.writeInt(len); dout.write(buf.array(), buf.arrayOffset(), len); }
@Override public void write(GTRecord rec) throws IOException { buf.clear(); rec.exportColumns(info.getAllColumns(), buf); int len = buf.position(); dout.writeInt(len); dout.write(buf.array(), buf.arrayOffset(), len); }
@Override public boolean hasNext() { if (next != null) return true; try { if (din.available() > 0) { int len = din.readInt(); din.read(buf.array(), buf.arrayOffset(), len); buf.clear(); buf.limit(len); record.loadColumns(info.getAllColumns(), buf); next = record; } } catch (IOException e) { throw new RuntimeException(e); } return next != null; }
@Override public boolean hasNext() { if (next != null) return true; try { if (din.available() > 0) { int len = din.readInt(); din.read(buf.array(), buf.arrayOffset(), len); buf.clear(); buf.limit(len); record.loadColumns(info.getAllColumns(), buf); next = record; } } catch (IOException e) { throw new RuntimeException(e); } return next != null; }
@Override public void write(GTRecord r) throws IOException { ByteArray byteArray = r.exportColumns(info.getAllColumns()); assert byteArray.offset() == 0; assert byteArray.array().length == byteArray.length(); rowList.add(byteArray.array()); }
@SuppressWarnings("unused") private void testFilter(TupleFilter filter) throws IOException { long t = System.currentTimeMillis(); GTScanRequest req = new GTScanRequestBuilder().setInfo(info).setRanges(null).setDimensions(info.getAllColumns()).setFilterPushDown(filter).createGTScanRequest(); IGTScanner scanner = req.decorateScanner(gen.generate(N)); long count = 0; for (GTRecord rec : scanner) { count++; } t = System.currentTimeMillis() - t; System.out.println(N + " records filtered to " + count + ", " + calcSpeed(t) + "K rec/sec"); }
@SuppressWarnings("unused") private void testFilter(TupleFilter filter) throws IOException { long t = System.currentTimeMillis(); GTScanRequest req = new GTScanRequestBuilder().setInfo(info).setRanges(null).setDimensions(info.getAllColumns()).setFilterPushDown(filter).createGTScanRequest(); IGTScanner scanner = req.decorateScanner(gen.generate(N)); long count = 0; for (GTRecord rec : scanner) { count++; } t = System.currentTimeMillis() - t; System.out.println(N + " records filtered to " + count + ", " + calcSpeed(t) + "K rec/sec"); }
@Override public int compare(GTRecord a, GTRecord b) { assert a.getInfo() == b.getInfo(); int comp; ImmutableBitSet allColumns = a.getInfo().getAllColumns(); for (int i = 0; i < allColumns.trueBitCount(); i++) { int c = allColumns.trueBitAt(i); comp = comparator.compare(a.get(c), b.get(c)); if (comp != 0) return comp; } return 0; // equals } }