果然

https://github.com/apache/hbase/blob/4d90b918a3702b4e4ae2f9ee890c14665e821c01/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StripeStoreEngine.java#L84

这个方法里压根就没用过那个 forceMajor 参数

可以开个 issue 吧,看看这块怎么改一下,至少得把 forceMajor 这个参数传递下去,在 stripe 内部做 compact
的时候需要能拿到这个参数

张铎(Duo Zhang) <palomino...@gmail.com> 于2023年11月29日周三 14:18写道:
>
> 我印象里应该是有这个机制的,是不是 StripeCompaction 里没考虑这个参数
>
> leojie <leo...@apache.org> 于2023年11月21日周二 11:42写道:
> >
> > 张老师,
> > 您好!
> >     请教一个HBase的问题,我们线上有张表,应用了Stripe
> > Compaction策略,每个region均值40G,被分成8个Stripe,每个Stripe5g,业务删除大量数据,表整体和单个region手动触发major
> > compaction不起作用,挑选不出来合适的文件参与合并。
> >
> > 看了源码,每个Stripe下面应用的合并策略是,ExploringCompactionPolicy,这个策略有一个关键点,筛选耽搁Stripe的Store
> > file列表,候选文件列表中,只要存在一个文件的大小过大,满足条件,fileSize > (totalFileSize - fileSize) *
> > (hbase.hstore.compaction.ratio 默认值1.2),就不会筛选出来文件参与major
> >     如果支持一个强制合并的机制,是否合理?针对大量删除场景,或bulkload,存在大量数据被标记删除,可以在手动触发major时,
> > 显式传入一个foreMajor之类的参数,就是
> > 不应用挑选策略,直接选择合并全部文件,目前是否存在这样的功能,或者这样的功能是否合理?除此之外,针对这样的情况,是否有更理想的方案呢?
> >     期待张老师的解惑,十分感谢😁😁

Reply via email to