mrm.add(p); region.mutateRowsWithLocks(mrm, rowsToLock, HConstants.NO_NONCE, HConstants.NO_NONCE); op ^= true;
/** * Perform atomic mutations within the region w/o nonces. * See {@link #mutateRowsWithLocks(Collection, Collection, long, long)} */ public void mutateRowsWithLocks(Collection<Mutation> mutations, Collection<byte[]> rowsToLock) throws IOException { mutateRowsWithLocks(mutations, rowsToLock, HConstants.NO_NONCE, HConstants.NO_NONCE); }
region.mutateRowsWithLocks(tableMetadata, Collections.<byte[]>emptySet()); long currentTime = MetaDataUtil.getClientTimeStamp(tableMetadata); for (ImmutableBytesPtr ckey: invalidateList) {
region.mutateRowsWithLocks(tableMetadata, Collections.<byte[]>emptySet());
region.mutateRowsWithLocks(tableMetadata, Collections.<byte[]>emptySet());
protected void mutateToRegion(HRegion region, byte[] row, List<Mutation> mutations, MetricsTimeVaryingRate latency) throws IOException { long beginTs = System.nanoTime(); try { // we have obtained lock, do not need to require lock in mutateRowsWithLocks region.mutateRowsWithLocks(mutations, Collections.<byte[]>emptySet()); } finally { ThemisCpStatistics.updateLatency(latency, beginTs, "row=" + Bytes.toStringBinary(row) + ", mutationCount=" + mutations.size()); } }
@Override public void mutateRow(RowMutations rm) throws IOException { // Don't need nonces here - RowMutations only supports puts and deletes mutateRowsWithLocks(rm.getMutations(), Collections.singleton(rm.getRow())); }
region.mutateRowsWithLocks(tableMetadata, Collections.<byte[]>emptySet());
public void mutateRow(RowMutations rm) throws IOException { mutateRowsWithLocks(rm.getMutations(), Collections.singleton(rm.getRow())); }
@Override public void mutateRows(List<Mutation> mutations) throws IOException { // get the coprocessor environment RegionCoprocessorEnvironment env = (RegionCoprocessorEnvironment) getEnvironment(); // set of rows to lock, sorted to avoid deadlocks SortedSet<byte[]> rowsToLock = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR); HRegionInfo regionInfo = env.getRegion().getRegionInfo(); for (Mutation m : mutations) { // check whether rows are in range for this region if (!HRegion.rowIsInRange(regionInfo, m.getRow())) { String msg = "Requested row out of range '" + Bytes.toStringBinary(m.getRow()) + "'"; if (rowsToLock.isEmpty()) { // if this is the first row, region might have moved, // allow client to retry throw new WrongRegionException(msg); } else { // rows are split between regions, do not retry throw new DoNotRetryIOException(msg); } } rowsToLock.add(m.getRow()); } // call utility method on region env.getRegion().mutateRowsWithLocks(mutations, rowsToLock); } }
mrm.add(p); region.mutateRowsWithLocks(mrm, rowsToLock, HConstants.NO_NONCE, HConstants.NO_NONCE); op ^= true;