hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Gray (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-1304) New client server implementation of how gets and puts are handled.
Date Sun, 17 May 2009 02:13:45 GMT

    [ https://issues.apache.org/jira/browse/HBASE-1304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12710162#action_12710162

Jonathan Gray commented on HBASE-1304:

@ryan, good stuff...

first, remember there are three different types of deletes.  Delete (a single version of the
exact specified stamp), DeleteColumn (all versions <= specified stamp), and DeleteFamily
(all versions of all columns <= specified stamp).

So, if the case above is talking about a DeleteColumn of col1 @ timestamp 9, then the put
@ ts=8 should be deleted, as well as any other col1s in later storefiles with ts <= 9.

When we actually do the compaction, we will process it with something like the ScanDeleteTracker,
that processes the deletes as you go (merging multiple storefiles).  So, the DT would actually
prevent the put @ ts=8 from being output to the compacted file.  However, since in this case
it is DeleteColumn, we have to retain the delete in the outputted and compacted file.  So

Like I mentioned before, the difference between ScanDT and CompactDT is that the compaction
one will need to make a decision about which deletes to output and which to clear.  The two
cases you will clear deletes from the compacted file is if it is an explicit Delete of a single
version and that version exists in the merged files, or if you have a delete that overrides
another delete (like a DeleteColumn of col1 @ ts =9 and @ ts = 20.  The ts = 9 would not be
included in the compacted file.

Alternatively, we can make Gets like Scans and then we don't need the property of deletes
only applying to older ones.  What we lose is the ability to early-out of a get w/o having
to open and read all the storefiles.  You'll never be able to just touch memcache, you'll
always need to open every storefile.

> New client server implementation of how gets and puts are handled. 
> -------------------------------------------------------------------
>                 Key: HBASE-1304
>                 URL: https://issues.apache.org/jira/browse/HBASE-1304
>             Project: Hadoop HBase
>          Issue Type: Improvement
>    Affects Versions: 0.20.0
>            Reporter: Erik Holstad
>            Assignee: Jonathan Gray
>            Priority: Blocker
>             Fix For: 0.20.0
>         Attachments: hbase-1304-v1.patch, HBASE-1304-v2.patch, HBASE-1304-v3.patch, HBASE-1304-v4.patch,
HBASE-1304-v5.patch, HBASE-1304-v6.patch, HBASE-1304-v7.patch
> Creating an issue where the implementation of the new client and server will go. Leaving
HBASE-1249 as a discussion forum and will put code and patches here.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message