committingChangeSets.remove(tx); inProgress.remove(tx); invalidEdits.add(TransactionEdit.createInvalid(tx));
committingChangeSets.remove(tx); inProgress.remove(tx); invalidEdits.add(TransactionEdit.createInvalid(tx));
public boolean invalidate(long tx) { // guard against changes to the transaction log while processing txMetricsCollector.rate("invalidate"); Stopwatch timer = new Stopwatch().start(); this.logReadLock.lock(); try { boolean success; synchronized (this) { ensureAvailable(); success = doInvalidate(tx); } appendToLog(TransactionEdit.createInvalid(tx)); txMetricsCollector.histogram("invalidate.latency", (int) timer.elapsedMillis()); return success; } finally { this.logReadLock.unlock(); } }
public boolean invalidate(long tx) { // guard against changes to the transaction log while processing txMetricsCollector.rate("invalidate"); Stopwatch timer = new Stopwatch().start(); this.logReadLock.lock(); try { boolean success; synchronized (this) { ensureAvailable(); success = doInvalidate(tx); } appendToLog(TransactionEdit.createInvalid(tx)); txMetricsCollector.histogram("invalidate.latency", (int) timer.elapsedMillis()); return success; } finally { this.logReadLock.unlock(); } }
break; case INVALID: edits.add(TransactionEdit.createInvalid(writePointer)); break; case ABORTED:
@Test public void testSerialization() throws Exception { assertSerializedEdit(TransactionEdit.createAborted(1L, TransactionType.SHORT, new long[0])); assertSerializedEdit(TransactionEdit.createAborted(1L, TransactionType.SHORT, new long[]{ 2L, 3L })); assertSerializedEdit(TransactionEdit.createAborted(1L, TransactionType.LONG, new long[0])); assertSerializedEdit(TransactionEdit.createAborted(1L, TransactionType.LONG, new long[]{ 2L, 3L })); assertSerializedEdit(TransactionEdit.createCheckpoint(2L, 1L)); assertSerializedEdit(TransactionEdit.createCommitted(1L, Sets.<ChangeId>newHashSet(), 2L, false)); assertSerializedEdit(TransactionEdit.createCommitted(1L, Sets.<ChangeId>newHashSet(), 2L, true)); assertSerializedEdit(TransactionEdit.createCommitted(1L, Sets.newHashSet(new ChangeId(new byte[]{'a', 'b', 'c'})), 2L, false)); assertSerializedEdit(TransactionEdit.createCommitted(1L, Sets.newHashSet(new ChangeId(new byte[]{ 'a', 'b', 'c' }), new ChangeId(new byte[]{ 'd', 'e', 'f' })), 2L, true)); assertSerializedEdit(TransactionEdit.createCommitting(1L, Sets.<ChangeId>newHashSet())); assertSerializedEdit(TransactionEdit.createCommitting(1L, Sets.newHashSet(new ChangeId(new byte[]{'a', 'b', 'c'})))); assertSerializedEdit(TransactionEdit.createCommitting(1L, Sets.newHashSet(new ChangeId(new byte[]{'a', 'b', 'c'}), new ChangeId(new byte[]{'d', 'e', 'f'})))); assertSerializedEdit(TransactionEdit.createInvalid(1L)); assertSerializedEdit(TransactionEdit.createMoveWatermark(10L)); assertSerializedEdit(TransactionEdit.createStarted(2L, 1L, System.currentTimeMillis() + 1000, TransactionType.SHORT)); assertSerializedEdit(TransactionEdit.createStarted(2L, 1L, System.currentTimeMillis() + 10000, TransactionType.LONG)); assertSerializedEdit(TransactionEdit.createTruncateInvalidTx(Sets.newHashSet(new Long(1)))); assertSerializedEdit(TransactionEdit.createTruncateInvalidTx( Sets.newHashSet(new Long(1), new Long(2), new Long(3)))); assertSerializedEdit(TransactionEdit.createTruncateInvalidTxBefore(System.currentTimeMillis())); }
long wp1 = time1 * TxConstants.MAX_TX_PER_MS; TransactionEdit edit1 = TransactionEdit.createStarted(wp1, wp1 - 10, time1 + 100000, TransactionType.LONG); TransactionEdit edit2 = TransactionEdit.createInvalid(wp1); TransactionEdit edit4 = TransactionEdit.createInvalid(wp2); TransactionEdit edit6 = TransactionEdit.createInvalid(wp3); TransactionEdit edit8 = TransactionEdit.createInvalid(wp4);
long wp2 = time2 * TxConstants.MAX_TX_PER_MS; TransactionEdit edit3 = TransactionEdit.createStarted(wp2, wp2 - 10, time2 + 100000, TransactionType.LONG); TransactionEdit edit4 = TransactionEdit.createInvalid(wp2); TransactionEdit edit6 = TransactionEdit.createInvalid(wp3); TransactionEdit edit7 = TransactionEdit.createAborted(wp3, TransactionType.LONG, null);