/** @see JournalProtocol#journal */ @Override public JournalResponseProto journal(RpcController unused, JournalRequestProto req) throws ServiceException { try { impl.journal(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getFirstTxnId(), req.getNumTxns(), req.getRecords().toByteArray()); } catch (IOException e) { throw new ServiceException(e); } return VOID_JOURNAL_RESPONSE; }
void startLogSegment(long txId) throws IOException { backupNode.startLogSegment(journalInfo, 0, txId); } }
@Override public FenceResponseProto fence(RpcController controller, FenceRequestProto req) throws ServiceException { try { FenceResponse resp = impl.fence(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getFencerInfo()); return FenceResponseProto.newBuilder().setInSync(resp.isInSync()) .setLastTransactionId(resp.getLastTransactionId()) .setPreviousEpoch(resp.getPreviousEpoch()).build(); } catch (IOException e) { throw new ServiceException(e); } } }
@Override public FenceResponseProto fence(RpcController controller, FenceRequestProto req) throws ServiceException { try { FenceResponse resp = impl.fence(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getFencerInfo()); return FenceResponseProto.newBuilder().setInSync(resp.isInSync()) .setLastTransactionId(resp.getLastTransactionId()) .setPreviousEpoch(resp.getPreviousEpoch()).build(); } catch (IOException e) { throw new ServiceException(e); } } }
/** @see JournalProtocol#startLogSegment */ @Override public StartLogSegmentResponseProto startLogSegment(RpcController controller, StartLogSegmentRequestProto req) throws ServiceException { try { impl.startLogSegment(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getTxid()); } catch (IOException e) { throw new ServiceException(e); } return VOID_START_LOG_SEGMENT_RESPONSE; }
@Override // EditLogOutputStream protected void flushAndSync(boolean durable) throws IOException { assert out.getLength() == 0 : "Output buffer is not empty"; if (doubleBuf.isFlushed()) { LOG.info("Nothing to flush"); return; } int numReadyTxns = doubleBuf.countReadyTxns(); long firstTxToFlush = doubleBuf.getFirstReadyTxId(); doubleBuf.flushTo(out); if (out.getLength() > 0) { assert numReadyTxns > 0; byte[] data = Arrays.copyOf(out.getData(), out.getLength()); out.reset(); assert out.getLength() == 0 : "Output buffer is not empty"; backupNode.journal(journalInfo, 0, firstTxToFlush, numReadyTxns, data); } }
@Override public FenceResponseProto fence(RpcController controller, FenceRequestProto req) throws ServiceException { try { FenceResponse resp = impl.fence(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getFencerInfo()); return FenceResponseProto.newBuilder().setInSync(resp.isInSync()) .setLastTransactionId(resp.getLastTransactionId()) .setPreviousEpoch(resp.getPreviousEpoch()).build(); } catch (IOException e) { throw new ServiceException(e); } } }
void startLogSegment(long txId) throws IOException { backupNode.startLogSegment(journalInfo, 0, txId); } }
/** @see JournalProtocol#journal */ @Override public JournalResponseProto journal(RpcController unused, JournalRequestProto req) throws ServiceException { try { impl.journal(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getFirstTxnId(), req.getNumTxns(), req.getRecords().toByteArray()); } catch (IOException e) { throw new ServiceException(e); } return VOID_JOURNAL_RESPONSE; }
void startLogSegment(long txId) throws IOException { backupNode.startLogSegment(journalInfo, 0, txId); } }
@Override // EditLogOutputStream protected void flushAndSync(boolean durable) throws IOException { assert out.getLength() == 0 : "Output buffer is not empty"; if (doubleBuf.isFlushed()) { LOG.info("Nothing to flush"); return; } int numReadyTxns = doubleBuf.countReadyTxns(); long firstTxToFlush = doubleBuf.getFirstReadyTxId(); doubleBuf.flushTo(out); if (out.getLength() > 0) { assert numReadyTxns > 0; byte[] data = Arrays.copyOf(out.getData(), out.getLength()); out.reset(); assert out.getLength() == 0 : "Output buffer is not empty"; backupNode.journal(journalInfo, 0, firstTxToFlush, numReadyTxns, data); } }
/** @see JournalProtocol#startLogSegment */ @Override public StartLogSegmentResponseProto startLogSegment(RpcController controller, StartLogSegmentRequestProto req) throws ServiceException { try { impl.startLogSegment(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getTxid()); } catch (IOException e) { throw new ServiceException(e); } return VOID_START_LOG_SEGMENT_RESPONSE; }
/** @see JournalProtocol#journal */ @Override public JournalResponseProto journal(RpcController unused, JournalRequestProto req) throws ServiceException { try { impl.journal(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getFirstTxnId(), req.getNumTxns(), req.getRecords().toByteArray()); } catch (IOException e) { throw new ServiceException(e); } return VOID_JOURNAL_RESPONSE; }
/** @see JournalProtocol#startLogSegment */ @Override public StartLogSegmentResponseProto startLogSegment(RpcController controller, StartLogSegmentRequestProto req) throws ServiceException { try { impl.startLogSegment(PBHelper.convert(req.getJournalInfo()), req.getEpoch(), req.getTxid()); } catch (IOException e) { throw new ServiceException(e); } return VOID_START_LOG_SEGMENT_RESPONSE; }
@Override // EditLogOutputStream protected void flushAndSync(boolean durable) throws IOException { assert out.getLength() == 0 : "Output buffer is not empty"; if (doubleBuf.isFlushed()) { LOG.info("Nothing to flush"); return; } int numReadyTxns = doubleBuf.countReadyTxns(); long firstTxToFlush = doubleBuf.getFirstReadyTxId(); doubleBuf.flushTo(out); if (out.getLength() > 0) { assert numReadyTxns > 0; byte[] data = Arrays.copyOf(out.getData(), out.getLength()); out.reset(); assert out.getLength() == 0 : "Output buffer is not empty"; backupNode.journal(journalInfo, 0, firstTxToFlush, numReadyTxns, data); } }