You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Josh Elser (JIRA)" <ji...@apache.org> on 2014/10/14 02:04:34 UTC
[jira] [Commented] (ACCUMULO-3232) Improve consumption of WAL
header in partial replication case
[ https://issues.apache.org/jira/browse/ACCUMULO-3232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14170271#comment-14170271 ]
Josh Elser commented on ACCUMULO-3232:
--------------------------------------
This is a little awkward because the API doesn't want to provide an {{FSDataInputStream}} (because of how encryption on disk was implemented), but instead provides a {{DataInputStream}}. For the case when the {{decryptingInputStream}} is the same as the {{originalInput}} in {{DFSLoggerInputStreams}}, we can up-cast the {{decryptingInputStream}} back to a {{FSDataInputStream}} and efficiently seek to the offset in the WAL we want. If we only have the {{DfsInputStream}} (when encryption is enabled), we have no option but to still read all of the records, although we can avoid the overhead of constructing the {{LogFileKey}} and {{LogFileValue}} pairs and just read the bytes.
> Improve consumption of WAL header in partial replication case
> -------------------------------------------------------------
>
> Key: ACCUMULO-3232
> URL: https://issues.apache.org/jira/browse/ACCUMULO-3232
> Project: Accumulo
> Issue Type: Improvement
> Components: replication
> Reporter: Josh Elser
> Assignee: Josh Elser
> Fix For: 1.7.0
>
>
> Consider a system that is actively replicating from one instance to another. Specifically, assume there is one WAL that is currently being replicated to the destination and the source instance is shutdown.
> When the source instance is restarted, it will notice that the WAL has read through N {{LogFileKey}}/{{LogFileValue}} pairs (from before it was shutdown) and while proceed past these records to get to the data in the file which it needs to read.
> We have to re-read each of these pairs from the file because the WAL is an append-only structure, and we can't efficiently seek to some point in the file, as we wouldn't know how to correlate the byte offset to entries.
> As we read the WAL, in addition (or perhaps instead of) tracking the offset in the WAL, it would be good to track the correlation of N bytes read to M records consumed which would help us better resume replication.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)