[ https://issues.apache.org/jira/browse/HBASE-15314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15840635#comment-15840635 ]
Aaron Tokhy commented on HBASE-15314: ------------------------------------- bq. 1. It will take an extra IO if an allocation cross files, but the probability is about 32KB/320GB ≈ 1/10M ( example for block size 32KB, one file capacity 320GB). So, I think it's no effect for perfomance The performance difference with either approach is negligible as you mentioned. The guarantee is that an allocation is guaranteed to reside on a single file. bq. 2. With crossing files allocation, no extra logic is needed if a single file fails due to an IO error. We will free the whole alloction if failed (see this logic from BucketCahe#writeToCache). Yes this would then require no additional changes in BucketCache. bq. IMPO, make things simple if no obvious benefit, I prefer to use the thought of 1st patch. My patch employs almost the exact same approach as [~anoop.hbase]'s (the first patch) and employs the work [~Amal Joshy] added to avoid crossing file boundaries, while adding plenty of tests. There are a couple of things you can gain by ensuring that HBase blocks are guaranteed to reside in a single segment: - Turning off files in a JBOD configuration when an IOException occurs. Only the allocations that resided in the segment that resided on the device that failed can be invalided, and the BucketCache can continue. This does not happen in the patch I submitted, but it could be an improvement that you wouldn't be able to easily handle if HBase blocks crossed segments. - Implementing striding/striping without adding too much logic in BucketCache. If a single 'RAID 0' volume fails (in a RAID 0 IOEngine decorator), only the allocations that resided in one of the drives could be invalidated, and the BucketCache can still continue operating. This could be added as a 'cache invalidation on device failure' feature for BucketCache. > Allow more than one backing file in bucketcache > ----------------------------------------------- > > Key: HBASE-15314 > URL: https://issues.apache.org/jira/browse/HBASE-15314 > Project: HBase > Issue Type: Sub-task > Components: BucketCache > Reporter: stack > Assignee: Aaron Tokhy > Attachments: FileIOEngine.java, HBASE-15314.master.001.patch, > HBASE-15314.master.001.patch, HBASE-15314.patch, HBASE-15314-v2.patch, > HBASE-15314-v3.patch > > > Allow bucketcache use more than just one backing file: e.g. chassis has more > than one SSD in it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)