When a Delete occurs, an insert is made with the timestamp being the
current time (to indicate it is the latest version). Hence, when you
insert a value after this with an _older_ timestamp, it is not taken
in as the latest version, and is hence ignored when scanning. This is
why you do not see the data.

If you instead insert this after a compaction has fully run on this
store file, then your value will indeed get shown after insert, cause
at that moment there wouldn't exist such a row with a latest timestamp
at all.

hbase(main):060:0> flush 'test-table'
0 row(s) in 0.1020 seconds

hbase(main):061:0> major_compact 'test-table'
0 row(s) in 0.0400 seconds

hbase(main):062:0> put 'test-table', 'row4', 'test-family', 'value', 10
0 row(s) in 0.0230 seconds

hbase(main):063:0> scan 'test-table'
ROW                   COLUMN+CELL
 row4                 column=test-family:, timestamp=10, value=value
1 row(s) in 0.0060 seconds

I suppose this is why it is recommended not to mess with the
timestamps manually, and instead just rely on versions.

On Tue, Aug 14, 2012 at 8:24 PM, Takahiko Kawasaki <[EMAIL PROTECTED]> wrote:

Harsh J