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

ASF GitHub Bot updated HBASE-30177:
-----------------------------------
    Labels: pull-request-available  (was: )

> 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
>              Labels: pull-request-available
>             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