[
https://issues.apache.org/jira/browse/HBASE-82?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12596459#action_12596459
]
stack commented on HBASE-82:
----------------------------
Here is the rest of the commit comment:
{code}
M src/java/org/apache/hadoop/hbase/master/ProcessRegionOpen.java
M src/java/org/apache/hadoop/hbase/master/AddColumn.java
M src/java/org/apache/hadoop/hbase/master/TableOperation.java
M src/java/org/apache/hadoop/hbase/master/TableDelete.java
M src/java/org/apache/hadoop/hbase/master/ColumnOperation.java
M src/java/org/apache/hadoop/hbase/master/RegionManager.java
M src/java/org/apache/hadoop/hbase/master/DeleteColumn.java
M src/java/org/apache/hadoop/hbase/master/BaseScanner.java
M src/java/org/apache/hadoop/hbase/master/ChangeTableState.java
M src/java/org/apache/hadoop/hbase/master/MetaRegion.java
M src/java/org/apache/hadoop/hbase/io/Cell.java
M src/java/org/apache/hadoop/hbase/io/BatchOperation.java
Replace Text with byte arrays.
D src/java/org/apache/hadoop/hbase/master/RowMap.java
Removed. Unused.
M src/java/org/apache/hadoop/hbase/master/ModifyColumn.java
Replace Text with byte arrays.
Use new methods on Table Descriptor rather than manipulate
families directly.
M src/java/org/apache/hadoop/hbase/master/ProcessRegionStatusChange.java
Root region has been uppercased. Remove Text.
M src/java/org/apache/hadoop/hbase/master/RootScanner.java
Root region name has been uppercased.
M src/java/org/apache/hadoop/hbase/NotServingRegionException.java
Add constructor that takes byte array.
M src/java/org/apache/hadoop/hbase/io/HbaseObjectWritable.java
Handle byte arrays as well as Writables. If a byte array,
short-circuit and dump it out on line rather than do recursion
per element.
M src/java/org/apache/hadoop/hbase/io/BatchUpdate.java
Replace Text with byte array. Allow rows and columns be specified
as String and Text
M src/java/org/apache/hadoop/hbase/io/RowResult.java
Replace Text with byte arrays. Added a toString.
M src/java/org/apache/hadoop/hbase/io/HbaseMapWritable.java
Keys are now byte arrays, exclusively. Use MapWritable if you
want to have Writable keys. Replace Text with byte arrays.
Made it generic.
D src/java/org/apache/hadoop/hbase/io/TextSequence.java
No longer used.
M src/java/org/apache/hadoop/hbase/mapred/IdentityTableMap.java
M src/java/org/apache/hadoop/hbase/mapred/GroupingTableMap.java
M src/java/org/apache/hadoop/hbase/mapred/IndexOutputFormat.java
M src/java/org/apache/hadoop/hbase/mapred/TableSplit.java
M src/java/org/apache/hadoop/hbase/mapred/RowCounter.java
M src/java/org/apache/hadoop/hbase/mapred/IndexTableReduce.java
M src/java/org/apache/hadoop/hbase/mapred/TableReduce.java
M src/java/org/apache/hadoop/hbase/mapred/TableInputFormat.java
M src/java/org/apache/hadoop/hbase/mapred/TableOutputFormat.java
M src/java/org/apache/hadoop/hbase/mapred/TableMap.java
M src/java/org/apache/hadoop/hbase/mapred/IdentityTableReduce.java
Replace Text with byte arrays. Uses ImmutableBytesWritable when
needs to do Writable.
M src/java/org/apache/hadoop/hbase/mapred/TableInputFormatBase.java
Replace Text with byte arrays. Uses ImmutableBytesWritable when
needs to do Writable. Add Apache license.
M src/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
Change Text to byte arrays. Up the version from 3 to 4.
M src/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java
Up the version from 1 to 2.
M src/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java
Change Text to byte arrays. Upped version from 2 to 3.
M src/java/org/apache/hadoop/hbase/util/Merge.java
Change Text to byte arrays.
(notInTable): New method.
M src/java/org/apache/hadoop/hbase/util/JenkinsHash.java
Added javadoc.
A src/java/org/apache/hadoop/hbase/util/Bytes.java
Utility for manipulating byte arrays.
M src/java/org/apache/hadoop/hbase/util/MetaUtils.java
M src/java/org/apache/hadoop/hbase/util/Migrate.java
Change Text to byte arrays.
M src/java/org/apache/hadoop/hbase/util/SoftSortedMap.java
Allow keys of byte arrays.
M src/java/org/apache/hadoop/hbase/util/Writables.java
Moved byte array utility to new Bytes class.
M src/java/org/apache/hadoop/hbase/client/HTable.java
Changed Text to byte arrays. Added overrides that take Text or String.
Javadoc.
M src/java/org/apache/hadoop/hbase/client/HConnectionManager.java
Changed Text to byte arrays.
(isMetaTableName): Added
M src/java/org/apache/hadoop/hbase/client/HConnection.java
Changed Text to byte arrays.
M src/java/org/apache/hadoop/hbase/client/RetriesExhaustedException.java
Changed Text to byte arrays.
M src/java/org/apache/hadoop/hbase/client/Scanner.java
Removed unused imports.
M src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
Removed unused imports. Javadoc.
M src/java/org/apache/hadoop/hbase/HMsg.java
Spacing.
M src/webapps/regionserver/regionserver.jsp
M src/webapps/master/master.jsp
getOnlineRegions API changed.
{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.