private static long getCompactorTxnId(Configuration jobConf) { String snapshot = jobConf.get(ValidTxnList.VALID_TXNS_KEY); if(Strings.isNullOrEmpty(snapshot)) { throw new IllegalStateException(ValidTxnList.VALID_TXNS_KEY + " not found for writing to " + jobConf.get(FINAL_LOCATION)); } ValidTxnList validTxnList = new ValidReadTxnList(); validTxnList.readFromString(snapshot); //this is id of the current (compactor) txn return validTxnList.getHighWatermark(); } private void getWriter(Reporter reporter, ObjectInspector inspector,
long minOpenWriteId = Long.MAX_VALUE; BitSet abortedBits = new BitSet(); long txnHwm = validTxnList.getHighWatermark();
Long.toString(exceptions[0]) : "x"; throw new IOException(ErrorMsg.ACID_NOT_ENOUGH_HISTORY.format( Long.toString(txnList.getHighWatermark()), minOpenTxn, bestBase.oldestBase.toString()));
TxnUtils.createValidCompactTxnList(txnHandler.getOpenTxnsInfo()); LOG.debug("ValidCompactTxnList: " + txns.writeToString()); txnHandler.setCompactionHighestTxnId(ci, txns.getHighWatermark()); final StringBuilder jobName = new StringBuilder(name); jobName.append("-compactor-");
Assert.assertEquals("1:" + Long.MAX_VALUE + "::", asString); validTxns = new ValidReadTxnList(asString); Assert.assertEquals(1, validTxns.getHighWatermark()); Assert.assertNotNull(validTxns.getInvalidTransactions()); Assert.assertEquals(0, validTxns.getInvalidTransactions().length); Assert.assertEquals("1:" + Long.MAX_VALUE + "::", asString); validTxns = new ValidReadTxnList(asString); Assert.assertEquals(1, validTxns.getHighWatermark()); Assert.assertNotNull(validTxns.getInvalidTransactions()); Assert.assertEquals(0, validTxns.getInvalidTransactions().length); Assert.assertEquals(10, validTxns.getHighWatermark()); Assert.assertNotNull(validTxns.getInvalidTransactions()); Assert.assertEquals(2, validTxns.getInvalidTransactions().length);