Lars, 

No, that is not what I am suggesting. 

Perhaps I am missing something. Was the OP interested in cells or in row 
deletes.?

Two different issues. 

On Oct 23, 2012, at 1:35 PM, lars hofhansl <lhofha...@yahoo.com> wrote:

> HBase has time range queries. You can say "give me the data as of time T" or 
> "give me the data between X and Y". How far back you want to retain your data 
> is specified via TTL and VERSIONS.
> 
> But... If you delete the data at T+X (X>0), a query as of time T won't return 
> anything, even though at T the data was still there.
> 
> If you don't use TTL and/or VERSIONS in HBase you won't need this feature.
> 
> If you do use these you're doing so because you want get to the older data. 
> And you delete stuff, chances are you want KEEP_DELETED_CELLS enabled.
> So within the boundaries specified by TTL/VERSIONS you can get to the data as 
> of any time.
> 
> 
> By your logic nobody should use TTL/VERSIONS, which is nonsense.
> 
> 
> 
> ________________________________
> From: Michael Segel <michael_se...@hotmail.com>
> To: lars hofhansl <lhofha...@yahoo.com> 
> Cc: "user@hbase.apache.org" <user@hbase.apache.org> 
> Sent: Tuesday, October 23, 2012 4:41 AM
> Subject: Re: How to config hbase0.94.2 to retain deleted data
> 
> "Deleted cells are still subject to TTL and there will never be more than 
> "maximum number of versions" deleted cells. A new "raw" scan options returns 
> all deleted rows and the delete markers. "
> 
> This is different from the idea suggested by the OP. Here deleted cells still 
> get deleted. Just that when the compaction flag comes along, its told to 
> ignore them. 
> 
> So if I say a column can have 3 versions (cells) then if I insert another 
> value for that row:column key, I push that deleted cell down the stack.  
> Enough times, its gone. 
> 
> In theory, this feature would be useful if I wanted an OLTP implementation on 
> top of HBase. It would allow the transaction to bridge a compaction cycle. 
> However, that's pretty much it. 
> 
> This feature doesn't translate well beyond this. 
> 
> It also begs the following:  How do I handle a long transaction (OLTP)  
> timeouts, and isolation levels? 
> 
> If you look at this at the row level... definitely not a good idea. Think of 
> fat clogging an artery.
>   
> On Oct 23, 2012, at 12:22 AM, lars hofhansl <lhofha...@yahoo.com> wrote:
> 
>> http://hbase.apache.org/book/cf.keep.deleted.html
>> 
>> Without it you cannot do correct as-of-time queries when it comes to deletes.
>> 
>> -- Lars
>> 
>> From: Michael Segel <michael_se...@hotmail.com>
>> To: user@hbase.apache.org; lars hofhansl <lhofha...@yahoo.com> 
>> Sent: Monday, October 22, 2012 9:18 PM
>> Subject: Re: How to config hbase0.94.2 to retain deleted data
>> 
>>> 
>>> Curious, why do you think this is better than using the keep-deleted-cells 
>>> feature?
>>> (It might well be, just curious)
>> 
>> Ok... so what exactly does this feature mean? 
>> 
>> Suppose I have 500 rows within a region. I set this feature to be true. 
>> I do a massive delete and there are only 50 rows left standing. 
>> 
>> So if I do a count of the number of rows in the region, I see only 50, yet 
>> if I compact the table, its still full. 
>> 
>> Granted I'm talking about rows and not cells, but the idea is the same. IMHO 
>> you're asking for more headaches that you solve. 
>> 
>> KISS would suggest that moving deleted data in to a different table would 
>> yield better performance in the long run. 
>> 
>> 
>> On Oct 21, 2012, at 7:23 PM, lars hofhansl <lhofha...@yahoo.com> wrote:
>> 
>>> That'd work too. Requires the regionservers to make remote updates to other 
>>> regionservers, though. And you have to trap each and every change (Put, 
>>> Delete, Increment, Append, RowMutations, etc)
>>> 
>>> 
>>> Curious, why do you think this is better than using the keep-deleted-cells 
>>> feature?
>>> (It might well be, just curious)
>>> 
>>> 
>>> -- Lars
>>> 
>>> 
>>> 
>>> ----- Original Message -----
>>> From: Michael Segel <michael_se...@hotmail.com>
>>> To: user@hbase.apache.org
>>> Cc: 
>>> Sent: Sunday, October 21, 2012 4:34 PM
>>> Subject: Re: How to config hbase0.94.2 to retain deleted data
>>> 
>>> I would suggest that you use your coprocessor to copy the data to a 
>>> 'backup' table when you mark them for delete. 
>>> Then as major compaction hits, the rows are deleted from the main table, 
>>> but still reside undeleted in your delete table. 
>>> Call it a history table. 
>>> 
>>> 
>>> On Oct 21, 2012, at 3:53 PM, yun peng <pengyunm...@gmail.com> wrote:
>>> 
>>>> Hi, All,
>>>> I want to retain all deleted key-value pairs in hbase. I have tried to
>>>> config HColumnDescript as follow to make it return deleted.
>>>> 
>>>>   public void postOpen(ObserverContext<RegionCoprocessorEnvironment> e) {
>>>>     HTableDescriptor htd = e.getEnvironment().getRegion().getTableDesc();
>>>>     HColumnDescriptor hcd = htd.getFamily(Bytes.toBytes("cf"));
>>>>     hcd.setKeepDeletedCells(true);
>>>>     hcd.setBlockCacheEnabled(false);
>>>>   }
>>>> 
>>>> However, it does not work for me, as when I issued a delete and then query
>>>> by an older timestamp, the old data does not show up.
>>>> 
>>>> hbase(main):119:0> put 'usertable', "key1", 'cf:c1', "v1", 99
>>>> hbase(main):120:0> put 'usertable', "key1", 'cf:c1', "v2", 101
>>>> hbase(main):121:0> delete 'usertable', "key1", 'cf:c1', 100
>>>> hbase(main):122:0> get 'usertable', 'key1', {COLUMN => 'cf:c1', TIMESTAMP
>>>> => 99, VERSIONS => 4}
>>>> COLUMN                CELL
>>>> 
>>>> 0 row(s) in 0.0040 seconds
>>>> 
>>>> hbase(main):123:0> get 'usertable', 'key1', {COLUMN => 'cf:c1', TIMESTAMP
>>>> => 100, VERSIONS => 4}
>>>> COLUMN                CELL
>>>> 
>>>> 0 row(s) in 0.0050 seconds
>>>> 
>>>> hbase(main):124:0> get 'usertable', 'key1', {COLUMN => 'cf:c1', TIMESTAMP
>>>> => 101, VERSIONS => 4}
>>>> COLUMN                CELL
>>>> 
>>>> cf:c1                timestamp=101, value=v2
>>>> 
>>>> 1 row(s) in 0.0050 seconds
>>>> 
>>>> Note this is a new feature in 0.94.2
>>>> (HBASE-4536<https://issues.apache.org/jira/browse/HBASE-4536>),
>>>> I did not find too many sample code online, so... any one here has
>>>> experience in using HBASE-4536. How should one config
>>>> hbase to enable this feature in hbase?
>>>> 
>>>> Thanks
>>>> Yun
>>> 
>> 
>> 

Reply via email to