hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HBASE-82) row keys should be array of bytes with a specified comparator
Date Tue, 13 May 2008 00:56:55 GMT

     [ 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.


Mime
View raw message