You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Xiao Liu (Jira)" <ji...@apache.org> on 2026/05/27 13:25:00 UTC

[jira] [Work started] (HBASE-30177) Make block caching configurable for MOB compaction reads

     [ https://issues.apache.org/jira/browse/HBASE-30177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Work on HBASE-30177 started by Xiao Liu.
----------------------------------------
> Make block caching configurable for MOB compaction reads
> --------------------------------------------------------
>
>                 Key: HBASE-30177
>                 URL: https://issues.apache.org/jira/browse/HBASE-30177
>             Project: HBase
>          Issue Type: Improvement
>          Components: mob, regionserver
>            Reporter: Xiao Liu
>            Assignee: Xiao Liu
>            Priority: Major
>             Fix For: 2.7.0, 3.0.0-beta-2, 2.5.15, 2.6.6
>
>
> {\{DefaultMobStoreCompactor}} currently resolves existing MOB reference cells with block caching enabled. During a user-triggered major MOB compaction, this can cause large amounts of MOB file data read by the background compaction task to be inserted into the RegionServer block cache.
> For large MOB-enabled tables, these compaction reads are often one-time reads over cold MOB files. Caching those blocks may evict hotter blocks used by foreground reads, reducing block cache hit ratio and increasing read latency while or after MOB compaction runs.
> This issue proposes adding a configuration option to control whether MOB compaction should cache blocks when resolving existing MOB references.
> Proposed configuration:
> {code:language=plaintext|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
> hbase.mob.compaction.cache.blocks
> {code}
> Default value:
> {code:language=plaintext|borderStyle=solid|theme=RDark|linenumbers=true|collapse=false}
> true
> {code}
> The default should remain \{{true}} to preserve the existing behavior. Operators that want to avoid block cache pollution from background MOB compaction reads can set it to \{{false}}.
> Scope:
> * Add a new MOB compaction-specific config.
> * Use the config in \{{DefaultMobStoreCompactor}} when calling \{{HMobStore.resolve}}.
> * Keep normal MOB reads and existing scan/get cache behavior unchanged.
> * Add unit tests for the default value and disabled configuration.
> This gives operators a way to reduce cache churn during large MOB compactions without changing the default behavior for existing deployments.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)