hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Weiwei Yang (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
Date Wed, 09 Aug 2017 10:10:00 GMT

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

Weiwei Yang edited comment on HDFS-12283 at 8/9/17 10:09 AM:
-------------------------------------------------------------

Some more thoughts. Each key value pair in the log is 

{code}
// A record in the log
{ long txid : BlockDeletionTransaction tx}

// where the value is (protobuf message)
BlockDeletionTransaction {
  long txid;
  String containerName;
  List<String> blockIDs;
}
{code}

Following API needs to be implemented

{code}
// Returns a certain size list of transactions
// criteria: each 0<= processedCount  < 5
// We may need to maintain a position while scanning the log
// to avoid repetitively scanning a certain range of records
List<BlockDeletionTransaction> getBlockDeletionTransactions(int count);

// Increment processedCount for given list of transactions by 1
// if count > 5, reset to -1
void incrementProcessedCount(List<String> txIDs);

// Delete transactions from the log based on their IDs
void commitTransactions(List<String> txIDs);
{code}

Please let me know if this makes sense.
Thanks


was (Author: cheersyang):
Some more thoughts. Each key value pair in the log is 

{code}

// A record in the log
{ long txid : BlockDeletionTransaction tx}

// where the value is (protobuf message)
BlockDeletionTransaction {
  long txid;
  String containerName;
  List<String> blockIDs;
}
{code}

Following API needs to be implemented

{code}
// Returns a certain size list of transactions
// criteria: each 0<= processedCount  < 5
// We may need to maintain a position while scanning the log
// to avoid repetitively scanning a certain range of records
List<BlockDeletionTransaction> getBlockDeletionTransactions(int count);

// Increment processedCount for given list of transactions by 1
// if count > 5, reset to -1
void incrementProcessedCount(List<String> txIDs);

// Delete transactions from the log based on their IDs
void commitTransactions(List<String> txIDs);
{code}

Please let me know if this makes sense.
Thanks

> Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
> -------------------------------------------------
>
>                 Key: HDFS-12283
>                 URL: https://issues.apache.org/jira/browse/HDFS-12283
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>          Components: ozone, scm
>            Reporter: Weiwei Yang
>            Assignee: Weiwei Yang
>
> The DeletedBlockLog is a persisted log in SCM to keep tracking container blocks which
are under deletion. It maintains info about under-deletion container blocks that notified
by KSM, and the state how it is processed. We can use RocksDB to implement the 1st version
of the log, the schema looks like
> ||TxID||ContainerName||Block List||ProcessedCount||
> |0|c1|b1,b2,b3|0|
> |1|c2|b1|3|
> |2|c2|b2, b3|-1|
> Some explanations
> # TxID is an incremental long value transaction ID for ONE container and multiple blocks
> # Container name is the name of the container
> # Block list is a list of block IDs
> # ProcessedCount is the number of times SCM has sent this record to datanode, it represents
the "state" of the transaction, it is in range of \[-1, 5\], -1 means the transaction eventually
failed after some retries, 5 is the max number times of retries.
> We need to define {{DeletedBlockLog}} as an interface and implement this with RocksDB
{{MetadataStore}} as the first version.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org


Mime
View raw message