[ 
https://issues.apache.org/jira/browse/HDFS-1801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13016671#comment-13016671
 ] 

Todd Lipcon commented on HDFS-1801:
-----------------------------------

bq. Would a txid ever be available in this backup context?

Yea, the BackupNode will have some concept of lastAppliedTxId, but I am putting 
off Backupnode work to later in the branch. It will be easier to come back to 
it after the primary NN is all in good shape, I think.

bq. Why you do Preconditions sometimes and assert elsewhere? I'd think you'd do 
one or the other?

So far I've been trying to use the following policy:
- if the code is performance-sensitive, use assert
- if the assertion is nearly guaranteed to be true by virtue of other logic in 
the same function, use assert
- if the condition should be true, but it's by some higher-order construct (eg 
the open/closed state of the edit log), use Preconditions.

I don't know if this makes any good sense, or if I've been very consistent. I 
will try to swing through and clean up.

bq. Will we need tests where we check migration, where we prove the new code 
can open the old-style fsimages and edit files?
Yes, good idea. I will open another subtask to make sure we cover this.

bq. The txid is a long as was the ts so Serialization doesn't change; the 
number of bytes doesn't change, just their interpretation? Is it possible that 
we'll deserialize an old style NameNodeRegistration and interpret a ts as a 
txid?

We're safe since the NNRegistration is only used via RPC, and we'll increment 
the RPC version in the branch. That way an old node won't be able to register 
to a new one, and we don't have to worry about the changed writable.

> Remove use of timestamps to identify checkpoints and logs
> ---------------------------------------------------------
>
>                 Key: HDFS-1801
>                 URL: https://issues.apache.org/jira/browse/HDFS-1801
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: name-node
>    Affects Versions: Edit log branch (HDFS-1073)
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>             Fix For: Edit log branch (HDFS-1073)
>
>         Attachments: hdfs-1801.txt
>
>
> Currently, the NameNode validates checkpoint uploads by using timestamps 
> associated with checkpoints and edit logs. However, now that we have 
> transaction IDs that uniquely identify each point in time in the history of a 
> namespace, it is more robust to simply use transaction IDs to identify images 
> and edits.
> This JIRA is to remove the use of editsTime and checkpointTime and replace it 
> with:
> * {{lastCheckpointTxId}} - the highest transaction ID reflected in the most 
> recently saved fsimage file
> * {{lastLogRollTxId}} - the highest transaction ID in {{edits}} when 
> {{rollFsImage}} was called by the checkpointing node.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to