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

stack updated HBASE-82:
-----------------------

    Attachment: 82-v9-ignore-ws.patch

This patch passes all tests.

Patch does not include white space changes.

Below is commit comment for tests.  Rest to follow.

{code}
Change hbase so serverside is byte arrays instead of Text objects.
Rows and Columns are now byte arrays.

Made it so client-side, the HBaseAdmin and HTable can take byte [], Text
or String for most tasks; e.g. opening table, creating a descriptor,
starting a batch update, etc.

Serverside, where Maps and Sets have byte [] for keys, we use
TreeMap and TreeSet because can specify comparator (byte [] by default
does identity comparison rather than content comparison).

Serverside, use new Bytes class to do toString and to get String
bytes.

M  src/test/org/apache/hadoop/hbase/TestBloomFilters.java
M  src/test/org/apache/hadoop/hbase/TestMasterAdmin.java
M  src/test/org/apache/hadoop/hbase/TestInfoServers.java
M  src/test/org/apache/hadoop/hbase/TestRegionRebalancing.java
M  src/test/org/apache/hadoop/hbase/HBaseTestCase.java
M  src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java
M  src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java
M  src/test/org/apache/hadoop/hbase/TestEmptyMetaInfo.java
M  src/test/org/apache/hadoop/hbase/TestMergeMeta.java
M  src/test/org/apache/hadoop/hbase/TestHBaseCluster.java
M  src/test/org/apache/hadoop/hbase/TestCompare.java
M  src/test/org/apache/hadoop/hbase/TestTable.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestGet2.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestTimestamp.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestDeleteFamily.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestHStoreFile.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestRegionServerExit.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestLogRolling.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestHMemcache.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestGet.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestHLog.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestScanner.java
M  src/test/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestDeleteAll.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestSplit.java
M  src/test/org/apache/hadoop/hbase/regionserver/TestCompaction.java
M  src/test/org/apache/hadoop/hbase/TimestampTestBase.java
M  src/test/org/apache/hadoop/hbase/DisabledTestScanner2.java
M  src/test/org/apache/hadoop/hbase/filter/TestStopRowFilter.java
M  src/test/org/apache/hadoop/hbase/filter/TestRowFilterOnMultipleFamilies.java
M  src/test/org/apache/hadoop/hbase/filter/TestWhileMatchRowFilter.java
M  src/test/org/apache/hadoop/hbase/filter/TestInclusiveStopRowFilter.java
M  src/test/org/apache/hadoop/hbase/filter/TestRegExpRowFilter.java
M  src/test/org/apache/hadoop/hbase/TestToString.java
M  src/test/org/apache/hadoop/hbase/filter/TestRowFilterSet.java
M  src/test/org/apache/hadoop/hbase/filter/TestPageRowFilter.java
M  src/test/org/apache/hadoop/hbase/filter/TestRowFilterAfterWrite.java
M  src/test/org/apache/hadoop/hbase/MultiRegionTable.java
M  src/test/org/apache/hadoop/hbase/TestScannerAPI.java
M  src/test/org/apache/hadoop/hbase/MapFilePerformanceEvaluation.java
M  src/test/org/apache/hadoop/hbase/mapred/TestTableMapReduce.java
M  src/test/org/apache/hadoop/hbase/mapred/TestTableIndex.java
M  src/test/org/apache/hadoop/hbase/PerformanceEvaluation.java
M  src/test/org/apache/hadoop/hbase/util/TestMergeTool.java
M  src/test/org/apache/hadoop/hbase/client/TestHTable.java
M  src/test/org/apache/hadoop/hbase/client/TestTimestamp.java
M  src/test/org/apache/hadoop/hbase/client/TestBatchUpdate.java
M  src/test/org/apache/hadoop/hbase/client/TestListTables.java
    Purge Text.  Replace with byte arrays.
M  src/test/org/apache/hadoop/hbase/TestSerialization.java
    Add some new serialization tests for table descriptor, regioninfo,
    and for row result.  Convert from Text to byte []
A src/test/org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java
    Test of hregion info equality.
M  src/test/org/apache/hadoop/hbase/MiniHBaseCluster.java
    API for getOnlineRegions changed.  Only returns values.
D  src/test/org/apache/hadoop/hbase/hql/TestHQL.java
    Removed.  Don't want to fix it.
M  src/test/org/apache/hadoop/hbase/io/TestHbaseObjectWritable.java
    Add test of arrays.
D  src/test/org/apache/hadoop/hbase/io/TestTextSequence.java
    Removed.  TextSequence has been remvoed.
M  src/test/hbase-site.xml
    Default sort size is 100MB.  Means tests allocate 100MB buffer.
{code}

> row keys should be array of bytes with a specified comparator
> -------------------------------------------------------------
>
>                 Key: HBASE-82
>                 URL: https://issues.apache.org/jira/browse/HBASE-82
>             Project: Hadoop HBase
>          Issue Type: Wish
>            Reporter: Jim Kellerman
>            Assignee: stack
>             Fix For: 0.2.0
>
>         Attachments: 82-v2.patch, 82-v3.patch, 82-v4.patch, 82-v5.patch, 
> 82-v7.patch, 82-v8.patch, 82-v9-ignore-ws.patch, 82.patch, Perf.java
>
>
> I have heard from several people that row keys in HBase should be less 
> restricted than hadoop.io.Text.
> What do you think?
> At the very least, a row key has to be a WritableComparable. This would lead 
> to the most general case being either hadoop.io.BytesWritable or 
> hbase.io.ImmutableBytesWritable. The primary difference between these two 
> classes is that hadoop.io.BytesWritable by default allocates 100 bytes and if 
> you do not pay attention to the length, (BytesWritable.getSize()), converting 
> a String to a BytesWritable and vice versa can become problematic. 
> hbase.io.ImmutableBytesWritable, in contrast only allocates as many bytes as 
> you pass in and then does not allow the size to be changed.
> If we were to change from Text to a non-text key, my preference would be for 
> ImmutableBytesWritable, because it has a fixed size once set, and operations 
> like get, etc do not have to something like System.arrayCopy where you 
> specify the number of bytes to copy.
> Your comments, questions are welcome on this issue. If we receive enough 
> feedback that Text is too restrictive, we are willing to change it, but we 
> need to hear what would be the most useful thing to change it to as well.

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

Reply via email to