[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-07-14 Thread Nick Dimiduk (Jira)


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

Nick Dimiduk updated HBASE-23678:
-
Fix Version/s: (was: 2.4.0)

> 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
>Assignee: Viraj Jasani
>Priority: Major
> Fix For: 3.0.0-alpha-1, 2.3.0, 1.7.0
>
>
> 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 after that interval 
> elapses. This can be achieved with VERSIONS=INT_MAX, 
> TTL=_retention_interval_, KEEP_DELETED_CELLS=TTL, MIN_VERSIONS=_num_versions_ 
> . This is not intuitive though because VERSIONS has been used to specify the 
> number of versions to retain (_num_versions_ in this example) since HBase 
> version 0.1, so this is going to be a source of confusion - I've seen it in 
> practice. 
> A literate builder API, by way of the way we design 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
(v8.3.4#803005)


[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-04-01 Thread Viraj Jasani (Jira)


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

Viraj Jasani updated HBASE-23678:
-
Fix Version/s: 2.3.0
 Release Note: 
ColumnFamilyDescriptor new builder API:

/**
 * Retain all versions for a given TTL(retentionInterval), and then only a 
specific number
 * of versions(versionAfterInterval) after that interval elapses.
 *
 * @param retentionInterval Retain all versions for this interval
 * @param versionAfterInterval Retain no of versions to retain after 
retentionInterval
 */
public ModifyableColumnFamilyDescriptor setVersionsWithTimeToLive(
final int retentionInterval, final int versionAfterInterval)
   Resolution: Fixed
   Status: Resolved  (was: Patch Available)

Pushed to master, branch-2, 2.3, branch-1. Thanks for the review [~xucang]

> 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
>Assignee: Viraj Jasani
>Priority: Major
> Fix For: 3.0.0, 2.3.0, 1.7.0, 2.4.0
>
>
> 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 after that interval 
> elapses. This can be achieved with VERSIONS=INT_MAX, 
> TTL=_retention_interval_, KEEP_DELETED_CELLS=TTL, MIN_VERSIONS=_num_versions_ 
> . This is not intuitive though because VERSIONS has been used to specify the 
> number of versions to retain (_num_versions_ in this example) since HBase 
> version 0.1, so this is going to be a source of confusion - I've seen it in 
> practice. 
> A literate builder API, by way of the way we design 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
(v8.3.4#803005)


[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-03-30 Thread Viraj Jasani (Jira)


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

Viraj Jasani updated HBASE-23678:
-
Fix Version/s: 2.4.0
   1.7.0
   3.0.0
   Status: Patch Available  (was: In Progress)

> 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
>Assignee: Viraj Jasani
>Priority: Major
> Fix For: 3.0.0, 1.7.0, 2.4.0
>
>
> 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 after that interval 
> elapses. This can be achieved with VERSIONS=INT_MAX, 
> TTL=_retention_interval_, KEEP_DELETED_CELLS=TTL, MIN_VERSIONS=_num_versions_ 
> . This is not intuitive though because VERSIONS has been used to specify the 
> number of versions to retain (_num_versions_ in this example) since HBase 
> version 0.1, so this is going to be a source of confusion - I've seen it in 
> practice. 
> A literate builder API, by way of the way we design 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
(v8.3.4#803005)


[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-01-10 Thread Andrew Kyle Purtell (Jira)


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

Andrew Kyle Purtell updated HBASE-23678:

Description: 
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 after that interval 
elapses. This can be achieved with VERSIONS=INT_MAX, TTL=_retention_interval_, 
KEEP_DELETED_CELLS=TTL, MIN_VERSIONS=_num_versions_ . This is not intuitive 
though because VERSIONS has been used to specify the number of versions to 
retain (_num_versions_ in this example) since HBase version 0.1, so this is 
going to be a source of confusion - I've seen it in practice. 

A literate builder API, by way of the way we design 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. 

  was:
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 after that interval 
elapses. 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 the number of versions to 
retain (_num_versions_ in this example) since HBase version 0.1, so this is 
going to be a source of confusion - I've seen it in practice. 

A literate builder API, by way of the way we design 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. 


> 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
>Priority: Major
>
> 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 after that interval 
> elapses. This can be achieved with VERSIONS=INT_MAX, 
> TTL=_retention_interval_, KEEP_DELETED_CELLS=TTL, MIN_VERSIONS=_num_versions_ 
> . This is not intuitive though because VERSIONS has been used to specify the 
> number of versions to retain (_num_versions_ in this example) since HBase 
> version 0.1, so this is going to be a source of confusion - I've seen it in 
> practice. 
> A literate builder API, by way of the way we design 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
(v8.3.4#803005)


[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-01-10 Thread Andrew Kyle Purtell (Jira)


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

Andrew Kyle Purtell updated HBASE-23678:

Description: 
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 after that interval 
elapses. 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 the number of versions to 
retain (_num_versions_ in this example) since HBase version 0.1, so this is 
going to be a source of confusion - I've seen it in practice. 

A literate builder API, by way of the way we design 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. 

  was:
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 the number of versions to retain (_num_versions_ in this 
example) since HBase version 0.1, so this is going to be a source of confusion 
- I've seen it in practice. 

A literate builder API, by way of the way we design 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. 


> 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
>Priority: Major
>
> 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 after that interval 
> elapses. 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 the 
> number of versions to retain (_num_versions_ in this example) since HBase 
> version 0.1, so this is going to be a source of confusion - I've seen it in 
> practice. 
> A literate builder API, by way of the way we design 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
(v8.3.4#803005)


[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-01-10 Thread Andrew Kyle Purtell (Jira)


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

Andrew Kyle Purtell updated HBASE-23678:

Description: 
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 the number of versions to retain (_num_versions_ in this 
example) since HBase version 0.1, so this is going to be a source of confusion 
- I've seen it in practice. 

A literate builder API, by way of the way we design 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. 

  was:
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 the number of versions to retain (_num_versions_ in this 
example) since HBase version 0.1, so this is going to be a source of confusion 
- I've seen it in practice. 

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. 


> 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
>Priority: Major
>
> 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 the number of versions to 
> retain (_num_versions_ in this example) since HBase version 0.1, so this is 
> going to be a source of confusion - I've seen it in practice. 
> A literate builder API, by way of the way we design 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
(v8.3.4#803005)


[jira] [Updated] (HBASE-23678) Literate builder API for version management in schema

2020-01-10 Thread Andrew Kyle Purtell (Jira)


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

Andrew Kyle Purtell updated HBASE-23678:

Description: 
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 the number of versions to retain (_num_versions_ in this 
example) since HBase version 0.1, so this is going to be a source of confusion 
- I've seen it in practice. 

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. 

  was:
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. 


> 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
>Priority: Major
>
> 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 the number of versions to 
> retain (_num_versions_ in this example) since HBase version 0.1, so this is 
> going to be a source of confusion - I've seen it in practice. 
> 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
(v8.3.4#803005)