[
https://issues.apache.org/jira/browse/HBASE-8541?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Shelukhin updated HBASE-8541:
------------------------------------
Description:
Flush will be able to flush into multiple files under this design, avoiding L0
I/O amplification.
I have the patch which is missing just one feature - support for concurrent
flushes and stripe changes. This can be done via extensive try-locking of
stripe changes and flushes, or advisory flags without blocking flushes, dumping
conflicting flushes into L0 in case of (very rare) collisions. For file loading
for the latter, a set-cover-like problem needs to be solved to determine
optimal stripes. That will also address Jimmy's concern of getting rid of
metadata, btw. However currently I don't have time for that. I plan to attach
the try-locking patch first, but this won't happen for a couple weeks probably
and should not block main reviews. Hopefully this will be added on top of main
reviews.
was:
Flush will be able to flush into multiple files under this design, avoiding L0
I/O amplification.
I have the patch which is missing just one feature - support for concurrent
flushes and stripe changes. This can be done via extensive try-locking of
stripe changes and flushes, or advisory flags without blocking flushes, dumping
conflicting flushes into L0 in case of (very rare) collisions. For file loading
for the latter, a form of set cover needs to be solved to determine stripes.
That will also address Jimmy's concern of getting rid of metadata. However
currently I don't have time for that. I plan to attach the try-locking patch
first, but this won't happen for a couple weeks probably and should not block
main reviews. Hopefully this will be added on top of main reviews.
> implement flush-into-stripes in stripe compactions
> --------------------------------------------------
>
> Key: HBASE-8541
> URL: https://issues.apache.org/jira/browse/HBASE-8541
> Project: HBase
> Issue Type: Improvement
> Reporter: Sergey Shelukhin
>
> Flush will be able to flush into multiple files under this design, avoiding
> L0 I/O amplification.
> I have the patch which is missing just one feature - support for concurrent
> flushes and stripe changes. This can be done via extensive try-locking of
> stripe changes and flushes, or advisory flags without blocking flushes,
> dumping conflicting flushes into L0 in case of (very rare) collisions. For
> file loading for the latter, a set-cover-like problem needs to be solved to
> determine optimal stripes. That will also address Jimmy's concern of getting
> rid of metadata, btw. However currently I don't have time for that. I plan to
> attach the try-locking patch first, but this won't happen for a couple weeks
> probably and should not block main reviews. Hopefully this will be added on
> top of main reviews.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira