On Mon, Jun 29, 2020 at 7:13 AM Whitney Jackson <[email protected]> wrote:

> > The trouble is we ship defaults for all of the `*min*` configs, and right
> now there's no way to "unset" them, disable the functionality.
>
> Why is that the case? Can I not just set
> hbase.normalizer.merge.min_region_size.mb to 0? Do I risk blowing away
> regions from pre-splits or something?
>

Yes, the idea was to guard against merging away intentional pre-splits.

On Mon, Jun 29, 2020 at 2:42 AM Wellington Chevreuil <
> [email protected]> wrote:
>
> > >
> > > The trouble is we ship defaults for all of the `*min*` configs, and
> right
> > > now there's no way to "unset" them, disable the functionality. Which
> > means
> > > there still isn't a way to support the empty regions use-case without
> > > awkward special-case checks.
> > >
> >
> > HBASE-23562  added a RegionsMerger tool to hbase-operators-tools project,
> > as a mean to allow multiple merges without checking minimum size. Of
> course
> > it's not as convenient as normalizer, but at least gives an alternative
> for
> > such edge cases where users ended with lots of empty regions.
> >
> > Em sex., 26 de jun. de 2020 às 22:30, Nick Dimiduk <[email protected]>
> > escreveu:
> >
> > > Heya,
> > >
> > > I've seen a lot of use-cases where the normalizer would be a nice
> > solution
> > > for operators and application developers. I've been trying to beef it
> up
> > a
> > > bit to handle these cases. However, some of these considerations are at
> > > odds, so I want to vet the ideas here.
> > >
> > > The normalizer is a background chore in the HMaster that attempts to
> > > converge region sizes within a table toward the average region size. It
> > has
> > > a pretty wide error bar, but that's the overall goal.
> > >
> > > Early on, it was observed that an operator needs to pre-split a table,
> so
> > > special considerations were included, by way of
> > > `hbase.normalizer.min.region.count`,
> > > `hbase.normalizer.merge.min_region_age.days`, and
> > > `hbase.normalizer.merge.min_region_size.mb`. All these nobs are
> designed
> > to
> > > give an operator means of controlling this behavior.
> > >
> > > We have (what I see as) a competing objective: doing away with empty,
> or
> > > nearly-empty regions. The use-case is pretty common when there's a TTL
> > > applied to a table, especially if there's also a timestamp component in
> > the
> > > rowkey. In this case, we want the normalizer to "merge away" these
> empty
> > > regions.
> > >
> > > The trouble is we ship defaults for all of the `*min*` configs, and
> right
> > > now there's no way to "unset" them, disable the functionality. Which
> > means
> > > there still isn't a way to support the empty regions use-case without
> > > awkward special-case checks. This is where I'm looking for suggestions
> > from
> > > the community. There's some discussion under way over on the PR for
> > > HBASE-24583. Please take a look.
> > >
> > > Thanks in advance,
> > > Nick
> > >
> >
>

Reply via email to