hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Gray" <jg...@apache.org>
Subject Re: Review Request: HBASE-3211 Key only filter
Date Wed, 10 Nov 2010 23:32:26 GMT


> On 2010-11-10 15:25:07, Ryan Rawson wrote:
> > trunk/src/main/java/org/apache/hadoop/hbase/KeyValue.java, line 1199
> > <http://review.cloudera.org/r/1208/diff/1/?file=17147#file17147line1199>
> >
> >     I'm torn here, this is making the implementation easy, but KeyValues have been
immutable to date.  While no one shares KeyValues between threads or scanners, and ideally
no one should, this seems dangerous.
> >     
> >

It doesn't actually touch the original byte[] so does not actually destroy/mutate the underlying
data in any way.  Agreed it's still potentially "dangerous" but that's why I've added the
nice warning message in javadoc :)


- Jonathan


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://review.cloudera.org/r/1208/#review1891
-----------------------------------------------------------


On 2010-11-10 15:19:26, Jonathan Gray wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://review.cloudera.org/r/1208/
> -----------------------------------------------------------
> 
> (Updated 2010-11-10 15:19:26)
> 
> 
> Review request for hbase, stack and Kannan Muthukkaruppan.
> 
> 
> Summary
> -------
> 
> Adds a new filter, KeyOnlyFilter.  The idea is that this will make it so only the key
portion of all the KVs are returned.  Could imagine a few use cases where you just need the
keys/index not the values.  We have one where we have giant rows with big values and want
to just get the qualifiers/versions w/o values.
> 
> Adds a new method in KeyValue, convertToKeyOnly().  From javadoc:
> 
>   /**
>    * Converts this KeyValue to only contain the key portion (the value is
>    * changed to be null).  This method does a full copy of the backing byte
>    * array and does not modify the original byte array of this KeyValue.
>    * <p>
>    * This method is used by {@link KeyOnlyFilter} and is an advanced feature of
>    * KeyValue, proceed with caution.
>    */
> 
> 
> This addresses bug HBASE-3211.
>     http://issues.apache.org/jira/browse/HBASE-3211
> 
> 
> Diffs
> -----
> 
>   trunk/src/main/java/org/apache/hadoop/hbase/KeyValue.java 1033617 
>   trunk/src/main/java/org/apache/hadoop/hbase/filter/KeyOnlyFilter.java PRE-CREATION

>   trunk/src/main/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java 1033617 
>   trunk/src/test/java/org/apache/hadoop/hbase/TestKeyValue.java 1033617 
>   trunk/src/test/java/org/apache/hadoop/hbase/filter/TestFilter.java 1033617 
> 
> Diff: http://review.cloudera.org/r/1208/diff
> 
> 
> Testing
> -------
> 
> Test of the KV method added to TestKeyValue.  Test of KeyOnlyFilter added to TestFilter.
 Both passing.
> 
> 
> Thanks,
> 
> Jonathan
> 
>


Mime
View raw message