Xiao Liu created HBASE-30177:
--------------------------------

             Summary: 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
             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)

Reply via email to