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

Chen Liang commented on HDFS-11920:
-----------------------------------

Had an discussion with [~anu] today, mentioned that this key partition across 
container change should enable further multi-threading optimization for 
put/get. Although I think over-partitioned key is something to avoid, because 
parallelism also comes with cost. For instance, to write a key that only has 10 
bytes we probably should not try to divide the workload any further.

In the patches, there is a check that a scm block has a configurable max size, 
say X. This means if writing is some size Y > X, then the key will be divided 
into multiple blocks, each of size X except for last one. I think this just 
happens to fit the demand for future parallelism: each thread picks up a size X 
scm block at a time, write it until all the Y/X blocks are done. X is the size 
that we don't bother to over-partition. An alternative can be having a 
configurable partition factor, say Z, and given the size Y, we always divide 
and make Y/Z partitions, and having Z threads  each picking up one partition. I 
don't see any significant difference between these two though.

Anything to add [~anu]?

(Whichever way we decide to go, the actual parallel read/write will need to be 
added in a follow-up JIRA.)


> Ozone : add key partition
> -------------------------
>
>                 Key: HDFS-11920
>                 URL: https://issues.apache.org/jira/browse/HDFS-11920
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Chen Liang
>            Assignee: Chen Liang
>         Attachments: HDFS-11920-HDFS-7240.001.patch, 
> HDFS-11920-HDFS-7240.002.patch, HDFS-11920-HDFS-7240.003.patch
>
>
> Currently, each key corresponds to one single SCM block, and putKey/getKey 
> writes/reads to this single SCM block. This works fine for keys with 
> reasonably small data size. However if the data is too huge, (e.g. not even 
> fits into a single container), then we need to be able to partition the key 
> data into multiple blocks, each in one container. This JIRA changes the 
> key-related classes to support this.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to