[
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)