hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremy Carroll (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-10571) TTL of zero should be rejected
Date Wed, 19 Feb 2014 21:30:19 GMT

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

Jeremy Carroll updated HBASE-10571:
-----------------------------------

    Description: 
If a table schema has been modified to provide a default TTL, or a TTL on a column of 0, then
HBase basically becomes a very costly way to send your data to /dev/null.

I'm proposing that we reject outright any attempt to set a TTL on a default table schema,
or column of a value of zero. I cannot think of a use case where individuals would want to
delete their keys as soon as they are written to the memstore. In addition, this will protect
against any bugs in code, or documentation errors which would result in irrecoverable data
loss.

Example:
hbase(main):001:0> create 'test_table', { NAME => 'd', TTL => 0 }
0 row(s) in 1.7880 seconds

hbase(main):003:0> put 'test_table', 'row1', 'd', '1'
0 row(s) in 0.1300 seconds

hbase(main):004:0> scan 'test_table'
ROW                                            COLUMN+CELL                               
                                                                                         
 
0 row(s) in 0.0320 seconds


  was:
If a table schema has been modified to provide a default TTL, or a TTL on a column of 0, then
HBase basically becomes a very costly way to send your data to /dev/null.

I'm proposing that we reject outright any attempt to set a TTL on a default table schema,
or column of a value of zero. I cannot think of a use case where individuals would want to
delete their keys as soon as they are written to the memstore. In addition, this will protect
against any bugs in code, or documentation errors which would result in irrecoverable data
loss.

Example:
alter 'tsdb', { NAME => 't', TTL => '2147483647' }

Test Case:
hbase(main):001:0> create 'test_table', { NAME => 'd', TTL => 0 }
0 row(s) in 1.7880 seconds

hbase(main):003:0> put 'test_table', 'row1', 'd', '1'
0 row(s) in 0.1300 seconds

hbase(main):004:0> scan 'test_table'
ROW                                            COLUMN+CELL                               
                                                                                         
 
0 row(s) in 0.0320 seconds



> TTL of zero should be rejected
> ------------------------------
>
>                 Key: HBASE-10571
>                 URL: https://issues.apache.org/jira/browse/HBASE-10571
>             Project: HBase
>          Issue Type: Bug
>          Components: Admin
>            Reporter: Jeremy Carroll
>
> If a table schema has been modified to provide a default TTL, or a TTL on a column of
0, then HBase basically becomes a very costly way to send your data to /dev/null.
> I'm proposing that we reject outright any attempt to set a TTL on a default table schema,
or column of a value of zero. I cannot think of a use case where individuals would want to
delete their keys as soon as they are written to the memstore. In addition, this will protect
against any bugs in code, or documentation errors which would result in irrecoverable data
loss.
> Example:
> hbase(main):001:0> create 'test_table', { NAME => 'd', TTL => 0 }
> 0 row(s) in 1.7880 seconds
> hbase(main):003:0> put 'test_table', 'row1', 'd', '1'
> 0 row(s) in 0.1300 seconds
> hbase(main):004:0> scan 'test_table'
> ROW                                            COLUMN+CELL                          
                                                                                         
      
> 0 row(s) in 0.0320 seconds



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message