@Override public void run() { journalLock.readLock().lock(); final JournalTransaction tx = getTransactionInfo(txID); try { tx.checkErrorCondition(); JournalInternalRecord updateRecordTX = new JournalAddRecordTX( false, txID, id, recordType, persister, record ); JournalFile usedFile = appendRecord( updateRecordTX, false, false, tx, null ); if ( logger.isTraceEnabled() ) { logger.trace( "appendUpdateRecordTransactional::txID=" + txID + ",id=" + id + ", userRecordType=" + recordType + ", record = " + record + ", usedFile = " + usedFile ); } tx.addPositive( usedFile, id, updateRecordTX.getEncodeSize() ); } catch (Throwable e ) { logger.error("appendUpdateRecordTransactional:" + e.getMessage(), e ); setErrorCondition(null, tx, e ); } finally { journalLock.readLock().unlock(); } } });
@Override public void run() { journalLock.readLock().lock(); final JournalTransaction tx = getTransactionInfo(txID); try { if (tx != null) { tx.checkErrorCondition(); } JournalInternalRecord addRecord = new JournalAddRecordTX(true, txID, id, recordType, persister, record); JournalFile usedFile = appendRecord(addRecord, false, false, tx, null); if (logger.isTraceEnabled()) { logger.trace("appendAddRecordTransactional:txID=" + txID + ",id=" + id + ", userRecordType=" + recordType + ", record = " + record + ", usedFile = " + usedFile); } tx.addPositive(usedFile, id, addRecord.getEncodeSize()); } catch (Throwable e) { logger.error("appendAddRecordTransactional:" + e, e); setErrorCondition(null, tx, e); } finally { journalLock.readLock().unlock(); } } });
@Override public void run() { journalLock.readLock().lock(); final JournalTransaction tx = getTransactionInfo(txID); try { tx.checkErrorCondition(); JournalInternalRecord updateRecordTX = new JournalAddRecordTX( false, txID, id, recordType, persister, record ); JournalFile usedFile = appendRecord( updateRecordTX, false, false, tx, null ); if ( logger.isTraceEnabled() ) { logger.trace( "appendUpdateRecordTransactional::txID=" + txID + ",id=" + id + ", userRecordType=" + recordType + ", record = " + record + ", usedFile = " + usedFile ); } tx.addPositive( usedFile, id, updateRecordTX.getEncodeSize() ); } catch (Throwable e ) { logger.error("appendUpdateRecordTransactional:" + e.getMessage(), e ); setErrorCondition(null, tx, e ); } finally { journalLock.readLock().unlock(); } } });
@Override public void run() { journalLock.readLock().lock(); final JournalTransaction tx = getTransactionInfo(txID); try { if (tx != null) { tx.checkErrorCondition(); } JournalInternalRecord addRecord = new JournalAddRecordTX(true, txID, id, recordType, persister, record); JournalFile usedFile = appendRecord(addRecord, false, false, tx, null); if (logger.isTraceEnabled()) { logger.trace("appendAddRecordTransactional:txID=" + txID + ",id=" + id + ", userRecordType=" + recordType + ", record = " + record + ", usedFile = " + usedFile); } tx.addPositive(usedFile, id, addRecord.getEncodeSize()); } catch (Throwable e) { logger.error("appendAddRecordTransactional:" + e, e); setErrorCondition(null, tx, e); } finally { journalLock.readLock().unlock(); } } });
@Override public void onReadAddRecordTX(final long transactionID, final RecordInfo info) throws Exception { checkID(info.id); hasData.lazySet(true); TransactionHolder tx = loadTransactions.get(transactionID); if (tx == null) { tx = new TransactionHolder(transactionID); loadTransactions.put(transactionID, tx); } tx.recordInfos.add(info); JournalTransaction tnp = transactions.get(transactionID); if (tnp == null) { tnp = new JournalTransaction(transactionID, JournalImpl.this); transactions.put(transactionID, tnp); } tnp.addPositive(file, info.id, info.data.length + JournalImpl.SIZE_ADD_RECORD_TX + 1); // +1 = compact // count }
@Override public void onReadAddRecordTX(final long transactionID, final RecordInfo info) throws Exception { checkID(info.id); hasData.lazySet(true); TransactionHolder tx = loadTransactions.get(transactionID); if (tx == null) { tx = new TransactionHolder(transactionID); loadTransactions.put(transactionID, tx); } tx.recordInfos.add(info); JournalTransaction tnp = transactions.get(transactionID); if (tnp == null) { tnp = new JournalTransaction(transactionID, JournalImpl.this); transactions.put(transactionID, tnp); } tnp.addPositive(file, info.id, info.data.length + JournalImpl.SIZE_ADD_RECORD_TX + 1); // +1 = compact // count }
@Override public void onReadAddRecordTX(final long transactionID, final RecordInfo info) throws Exception { if (logger.isTraceEnabled()) { logger.trace("Read Add Recprd TX " + transactionID + " info " + info); } if (pendingTransactions.get(transactionID) != null || containsRecord(info.id)) { JournalTransaction newTransaction = getNewJournalTransaction(transactionID); JournalInternalRecord record = new JournalAddRecordTX(true, transactionID, info.id, info.getUserRecordType(), EncoderPersister.getInstance(),new ByteArrayEncoding(info.data)); record.setCompactCount((short) (info.compactCount + 1)); checkSize(record.getEncodeSize(), info.compactCount); newTransaction.addPositive(currentFile, info.id, record.getEncodeSize()); writeEncoder(record); } }
@Override public void onReadAddRecordTX(final long transactionID, final RecordInfo info) throws Exception { if (logger.isTraceEnabled()) { logger.trace("Read Add Recprd TX " + transactionID + " info " + info); } if (pendingTransactions.get(transactionID) != null || containsRecord(info.id)) { JournalTransaction newTransaction = getNewJournalTransaction(transactionID); JournalInternalRecord record = new JournalAddRecordTX(true, transactionID, info.id, info.getUserRecordType(), EncoderPersister.getInstance(),new ByteArrayEncoding(info.data)); record.setCompactCount((short) (info.compactCount + 1)); checkSize(record.getEncodeSize(), info.compactCount); newTransaction.addPositive(currentFile, info.id, record.getEncodeSize()); writeEncoder(record); } }
@Override public void onReadUpdateRecordTX(final long transactionID, final RecordInfo info) throws Exception { if (logger.isTraceEnabled()) { logger.trace("onReadUpdateRecordTX " + info); } if (pendingTransactions.get(transactionID) != null || containsRecord(info.id)) { JournalTransaction newTransaction = getNewJournalTransaction(transactionID); JournalInternalRecord updateRecordTX = new JournalAddRecordTX(false, transactionID, info.id, info.userRecordType, EncoderPersister.getInstance(), new ByteArrayEncoding(info.data)); updateRecordTX.setCompactCount((short) (info.compactCount + 1)); checkSize(updateRecordTX.getEncodeSize(), info.compactCount); writeEncoder(updateRecordTX); newTransaction.addPositive(currentFile, info.id, updateRecordTX.getEncodeSize()); } else { onReadUpdateRecord(info); } }
@Override public void onReadUpdateRecordTX(final long transactionID, final RecordInfo info) throws Exception { if (logger.isTraceEnabled()) { logger.trace("onReadUpdateRecordTX " + info); } if (pendingTransactions.get(transactionID) != null || containsRecord(info.id)) { JournalTransaction newTransaction = getNewJournalTransaction(transactionID); JournalInternalRecord updateRecordTX = new JournalAddRecordTX(false, transactionID, info.id, info.userRecordType, EncoderPersister.getInstance(), new ByteArrayEncoding(info.data)); updateRecordTX.setCompactCount((short) (info.compactCount + 1)); checkSize(updateRecordTX.getEncodeSize(), info.compactCount); writeEncoder(updateRecordTX); newTransaction.addPositive(currentFile, info.id, updateRecordTX.getEncodeSize()); } else { onReadUpdateRecord(info); } }