private static void rollbackRow(HTableWrapper tableWrapper, byte[] row, long id, Integer lockId) { try { tableWrapper.rollbackRow(row, id, lockId); } catch (IOException e) { // LOG.warn("Failed to rollback row.", e); } }
byte[] columnsWritten = null; while (true) { Result res = tableWrapper.get(get, lockId); if (res == null || res.isEmpty()) return null; List<KeyValue> status = res.getColumn(DominoConst.INNER_FAMILY, throw new InvalidRowStatusException(String.format( "[%s][%s] Too many concurrent writes on this row.", new String( tableWrapper.getName()), new String(row))); throw new InvalidRowStatusException(String.format( "[%s][%s] Row is in an update status.", new String(tableWrapper.getName()), new String(row))); throw new InvalidRowStatusException(String.format( "[%s][%s] Row is in a stateful update status.", new String( tableWrapper.getName()), new String(row))); new String(tableWrapper.getName()), new String(row)));
private static void checkIfTransactionOutOfDate(byte[] row, HTableWrapper tableWrapper, long startId, List<KeyValue> mergedVersionList, Integer lockId) throws TransactionOutOfDateException, IOException { int verCount = DominoConst.MAX_VERSION < mergedVersionList.size() ? DominoConst.MAX_VERSION : mergedVersionList.size(); if (verCount == DominoConst.MAX_VERSION && mergedVersionList.get(verCount - 1).getTimestamp() > startId) { throw new TransactionOutOfDateException("Transaction out of date."); } if (verCount > 0) return; Get allVer = new Get(row); allVer.addColumn(DominoConst.INNER_FAMILY, DominoConst.VERSION_COL); allVer.setMaxVersions(); Result res = tableWrapper.get(allVer, lockId); List<KeyValue> vers = res.getColumn(DominoConst.INNER_FAMILY, DominoConst.VERSION_COL); if (vers.size() >= DominoConst.MAX_VERSION && vers.get(vers.size() - 1).getTimestamp() > startId) { throw new TransactionOutOfDateException("Transaction out of date."); } }
private static KeyValue commitRow(HTableWrapper tableWrapper, KeyValue statusKV, long startId, long commitId, Integer lockId) { byte[] row = statusKV.getRow(); boolean isDelete = DominoConst.isDelete(statusKV.getValue()); try { tableWrapper.commitRow(row, startId, commitId, isDelete, lockId); } catch (IOException ioe) { } byte[] value = DominoConst.versionValue(startId, isDelete); KeyValue commitKV = new KeyValue(row, DominoConst.INNER_FAMILY, DominoConst.VERSION_COL, commitId, value); return commitKV; }
return new Result(); return tableWrapper.get(getQuery(result));