@SuppressWarnings("unchecked") private Map<byte[], NavigableMap<byte[], Long>> getFamilyMap(Increment inc) { Preconditions.checkNotNull(inc, "Increment required"); return inc.getFamilyMapOfLongs(); }
@Test public void testIncrementInstance() { final long expected = 13; Increment inc = new Increment(new byte [] {'r'}); int total = 0; for (int i = 0; i < 2; i++) { byte [] bytes = Bytes.toBytes(i); inc.addColumn(bytes, bytes, expected); total++; } Map<byte[], NavigableMap<byte [], Long>> familyMapOfLongs = inc.getFamilyMapOfLongs(); int found = 0; for (Map.Entry<byte [], NavigableMap<byte [], Long>> entry: familyMapOfLongs.entrySet()) { for (Map.Entry<byte [], Long> e: entry.getValue().entrySet()) { assertEquals(expected, e.getValue().longValue()); found++; } } assertEquals(total, found); } }
NavigableMap<byte[], Long> set = inc.getFamilyMapOfLongs().get(family); if (set == null) { set = new TreeMap<byte[], Long>(Bytes.BYTES_COMPARATOR); inc.getFamilyMapOfLongs().put(family, set);
increment1.getFamilyMapOfLongs(); for (byte[] family : longs.keySet()) { System.out.println("Increment #1 - family: " + Bytes.toString(family));
@Test public void testIncrementInstance() { final long expected = 13; Increment inc = new Increment(new byte [] {'r'}); int total = 0; for (int i = 0; i < 2; i++) { byte [] bytes = Bytes.toBytes(i); inc.addColumn(bytes, bytes, expected); total++; } Map<byte[], NavigableMap<byte [], Long>> familyMapOfLongs = inc.getFamilyMapOfLongs(); int found = 0; for (Map.Entry<byte [], NavigableMap<byte [], Long>> entry: familyMapOfLongs.entrySet()) { for (Map.Entry<byte [], Long> e: entry.getValue().entrySet()) { assertEquals(expected, e.getValue().longValue()); found++; } } assertEquals(total, found); } }
@SuppressWarnings("unchecked") private Map<byte[], NavigableMap<byte[], Long>> getFamilyMap(Increment inc) { Preconditions.checkNotNull(inc, "Increment required"); return inc.getFamilyMapOfLongs(); }
NavigableMap<byte[], Long> set = inc.getFamilyMapOfLongs().get(family); if (set == null) { set = new TreeMap<byte[], Long>(Bytes.BYTES_COMPARATOR); inc.getFamilyMapOfLongs().put(family, set);
/** * {@inheritDoc} */ @Override public Result increment(Increment increment) throws IOException { this.sleeper(); List<KeyValue> kvs = new ArrayList<KeyValue>(); Map<byte[], NavigableMap<byte[], Long>> famToVal = increment.getFamilyMapOfLongs(); for (Map.Entry<byte[], NavigableMap<byte[], Long>> ef : famToVal.entrySet()) { byte[] family = ef.getKey(); NavigableMap<byte[], Long> qToVal = ef.getValue(); for (Map.Entry<byte[], Long> eq : qToVal.entrySet()) { long newValue = incrementColumnValue(increment.getRow(), family, eq.getKey(), eq.getValue()); kvs.add(new KeyValue(increment.getRow(), family, eq.getKey(), Bytes.toBytes(newValue))); } } return new Result(kvs); }
/** * {@inheritDoc} */ @Override public Result increment(Increment increment) throws IOException { List<Cell> kvs = new ArrayList<>(); Map<byte[], NavigableMap<byte[], Long>> famToVal = increment.getFamilyMapOfLongs(); for (Map.Entry<byte[], NavigableMap<byte[], Long>> ef : famToVal.entrySet()) { byte[] family = ef.getKey(); NavigableMap<byte[], Long> qToVal = ef.getValue(); for (Map.Entry<byte[], Long> eq : qToVal.entrySet()) { //noinspection UnusedAssignment long newValue = incrementColumnValue(increment.getRow(), family, eq.getKey(), eq.getValue()); Map.Entry<Long, byte[]> timestampAndValue = data.get(increment.getRow()).get(family).get(eq.getKey()).lastEntry(); kvs.add(new KeyValue(increment.getRow(), family, eq.getKey(), timestampAndValue.getKey(), timestampAndValue.getValue())); } } return Result.create(kvs); }
/** {@inheritDoc} */ @Override public void adapt(Increment operation, ReadModifyWriteRow readModifyWriteRow) { if (!operation.getTimeRange().isAllTime()) { throw new UnsupportedOperationException( "Setting the time range in an Increment is not implemented"); } for (Map.Entry<byte[], NavigableMap<byte[], Long>> familyEntry : operation.getFamilyMapOfLongs().entrySet()) { String familyName = Bytes.toString(familyEntry.getKey()); // Bigtable applies all increments present in a single RPC. HBase applies only the last // mutation present, if any. We remove all but the last mutation for each qualifier here: List<Cell> mutationCells = CellDeduplicationHelper.deduplicateFamily(operation, familyEntry.getKey()); for (Cell cell : mutationCells) { readModifyWriteRow.increment( familyName, ByteString.copyFrom( cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength()), Bytes.toLong(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()) ); } } } }
/** {@inheritDoc} */ @Override public void adapt(Increment operation, ReadModifyWriteRow readModifyWriteRow) { if (!operation.getTimeRange().isAllTime()) { throw new UnsupportedOperationException( "Setting the time range in an Increment is not implemented"); } for (Map.Entry<byte[], NavigableMap<byte[], Long>> familyEntry : operation.getFamilyMapOfLongs().entrySet()) { String familyName = Bytes.toString(familyEntry.getKey()); // Bigtable applies all increments present in a single RPC. HBase applies only the last // mutation present, if any. We remove all but the last mutation for each qualifier here: List<Cell> mutationCells = CellDeduplicationHelper.deduplicateFamily(operation, familyEntry.getKey()); for (Cell cell : mutationCells) { readModifyWriteRow.increment( familyName, ByteString.copyFrom( cell.getQualifierArray(), cell.getQualifierOffset(), cell.getQualifierLength()), Bytes.toLong(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength()) ); } } } }
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {
Get get = new Get(increment.getRow()); get.setAttribute(TxConstants.TX_OPERATION_ATTRIBUTE_KEY, txBytes); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (byte[] column : entry.getValue().keySet()) { increment.getAttribute(HBaseTable.TX_MAX_LIFETIME_MILLIS_KEY)); put.setAttribute(HBaseTable.TX_ID, increment.getAttribute(HBaseTable.TX_ID)); for (Map.Entry<byte[], NavigableMap<byte[], Long>> entry : increment.getFamilyMapOfLongs().entrySet()) { byte[] family = entry.getKey(); for (Map.Entry<byte[], Long> colEntry: entry.getValue().entrySet()) {