hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Kyle Purtell (Jira)" <j...@apache.org>
Subject [jira] [Created] (HBASE-23678) Literate builder API for version management in schema
Date Fri, 10 Jan 2020 19:22:00 GMT
Andrew Kyle Purtell created HBASE-23678:

             Summary: Literate builder API for version management in schema
                 Key: HBASE-23678
                 URL: https://issues.apache.org/jira/browse/HBASE-23678
             Project: HBase
          Issue Type: Improvement
            Reporter: Andrew Kyle Purtell

Lars designed the combination of VERSIONS, TTL, MIN_VERSIONS, and KEEP_DELETED_CELLS with
a maximum of flexibility. There is a lot of nuance regarding their usage. Almost all combinations
of these four settings make sense for some use cases (exceptions are MIN_VERSIONS > 0 without
TTL, and KEEP_DELETED_CELLS=TTL without TTL). There should be a way to make the behavior with
TTL easier to conceive when creating the schema. This could take the form of a literate builder
API for ColumnDescriptor or an extension to an existing one. 

Let me give you a motivating example: We may want to retain all versions for a given TTL,
and then only a specific number of versions. This can be achieved with VERSIONS=INT_MAX, TTL=_retention_interval_,
KEEP_DELETED_CELLS=TTL, MIN_VERSION=_num_versions_ . This is not intuitive though because
VERSIONS has been used to specify _num_versions_ in this example since version 0.1.

A literate builder API, by way if its method names, could let a user describe more or less
in speaking language how they want version retention to work, and internally the builder API
could set the low level schema attributes. 

This message was sent by Atlassian Jira

View raw message