public RangeRequest build() { RangeRequest rangeRequest = new RangeRequest(startInclusive, endExclusive, columns, batchHint, reverse); if (isInvalidRange()) { throw new IllegalArgumentException( "Invalid range request, check row byte ordering for reverse ordered values: " + rangeRequest); } return rangeRequest; } }
private byte[] copyOneTransactionInternal(RangeRequest range, long rangeId, Transaction readT, Transaction writeT) { final long maxBytes = TransactionConstants.WARN_LEVEL_FOR_QUEUED_BYTES / 2; byte[] start = getCheckpoint(rangeId, writeT); if (start == null) { return null; } RangeRequest.Builder builder = range.getBuilder().startRowInclusive(start); if (builder.isInvalidRange()) { return null; } RangeRequest rangeToUse = builder.build(); if (log.isTraceEnabled()) { log.trace("Copying table {} range {} from {} to {}", srcTable, rangeId, BaseEncoding.base16().lowerCase().encode(rangeToUse.getStartInclusive()), BaseEncoding.base16().lowerCase().encode(rangeToUse.getEndExclusive())); } BatchingVisitable<RowResult<byte[]>> bv = readT.getRange(srcTable, rangeToUse); Map<Cell, byte[]> writeMap = Maps.newHashMap(); byte[] lastRow = internalCopyRange(bv, maxBytes, writeMap); if (log.isTraceEnabled() && (lastRow != null)) { log.trace("Copying {} bytes for range {} on table {}", lastRow.length, rangeId, srcTable); } writeToKvs(writeMap); byte[] nextRow = getNextRowName(lastRow); checkpointer.checkpoint(srcTable.getQualifiedName(), rangeId, nextRow, writeT); return lastRow; }
public RangeRequest build() { RangeRequest rangeRequest = new RangeRequest(startInclusive, endExclusive, columns, batchHint, reverse); if (isInvalidRange()) { throw new IllegalArgumentException( "Invalid range request, check row byte ordering for reverse ordered values: " + rangeRequest); } return rangeRequest; } }
private byte[] copyOneTransactionInternal(RangeRequest range, long rangeId, Transaction readT, Transaction writeT) { final long maxBytes = TransactionConstants.WARN_LEVEL_FOR_QUEUED_BYTES / 2; byte[] start = getCheckpoint(rangeId, writeT); if (start == null) { return null; } RangeRequest.Builder builder = range.getBuilder().startRowInclusive(start); if (builder.isInvalidRange()) { return null; } RangeRequest rangeToUse = builder.build(); if (log.isTraceEnabled()) { log.trace("Copying table {} range {} from {} to {}", srcTable, rangeId, BaseEncoding.base16().lowerCase().encode(rangeToUse.getStartInclusive()), BaseEncoding.base16().lowerCase().encode(rangeToUse.getEndExclusive())); } BatchingVisitable<RowResult<byte[]>> bv = readT.getRange(srcTable, rangeToUse); Map<Cell, byte[]> writeMap = Maps.newHashMap(); byte[] lastRow = internalCopyRange(bv, maxBytes, writeMap); if (log.isTraceEnabled() && (lastRow != null)) { log.trace("Copying {} bytes for range {} on table {}", lastRow.length, rangeId, srcTable); } writeToKvs(writeMap); byte[] nextRow = getNextRowName(lastRow); checkpointer.checkpoint(srcTable.getQualifiedName(), rangeId, nextRow, writeT); return lastRow; }
private byte[] copyOneTransactionInternal(RangeRequest range, long rangeId, Transaction readT, Transaction writeT) { final long maxBytes = TransactionConstants.WARN_LEVEL_FOR_QUEUED_BYTES / 2; byte[] start = getCheckpoint(rangeId, writeT); if (start == null) { return null; } RangeRequest.Builder builder = range.getBuilder().startRowInclusive(start); if (builder.isInvalidRange()) { return null; } RangeRequest rangeToUse = builder.build(); BatchingVisitable<RowResult<byte[]>> bv = readT.getRange(srcTable, rangeToUse); byte[] lastRow = internalCopyRange(bv, maxBytes, writeT); byte[] nextRow = getNextRowName(lastRow); checkpointer.checkpoint(srcTable.getQualifiedName(), rangeId, nextRow, writeT); return lastRow; }
private byte[] copyOneTransactionInternal(RangeRequest range, long rangeId, Transaction readT, Transaction writeT) { final long maxBytes = TransactionConstants.WARN_LEVEL_FOR_QUEUED_BYTES / 2; byte[] start = getCheckpoint(rangeId, writeT); if (start == null) { return null; } RangeRequest.Builder builder = range.getBuilder().startRowInclusive(start); if (builder.isInvalidRange()) { return null; } RangeRequest rangeToUse = builder.build(); BatchingVisitable<RowResult<byte[]>> bv = readT.getRange(srcTable, rangeToUse); byte[] lastRow = internalCopyRange(bv, maxBytes, writeT); byte[] nextRow = getNextRowName(lastRow); checkpointer.checkpoint(srcTable.getQualifiedName(), rangeId, nextRow, writeT); return lastRow; }