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

Anoop Sam John commented on HBASE-12069:
----------------------------------------

Patch looks good.
Some minor comments are
nit:
{code}
+   * @param row
+   * @param value
+   * @return Cell with passed row but all other fields are arbitrary
+   */
+  public static Cell createCell(final byte [] row) {
{code}
Don't have value param for this method.

TestHFileInlineToRootChunkConversion
{code}
-      hfw.append(bytes, v);
+      hfw.append(CellUtil.createCell(bytes, v));
{code}
already this bytes is in form a KV key. May be we can avoid those steps above
{code}
  byte[] k = Bytes.toBytes(keyStr);
  System.out.println("RowKey: " + Bytes.toString(k));
  byte[] f = "f1".getBytes();
  byte[] q = "q1".getBytes();
  int keySize = (int) KeyValue.getKeyDataStructureSize(k.length, f.length, 
q.length);
  byte[] bytes = new byte[keySize];
  int pos = 0;
  pos = Bytes.putShort(bytes, pos, (short) (k.length & 0x0000ffff));
  pos = Bytes.putBytes(bytes, pos, k, 0, k.length);
  pos = Bytes.putByte(bytes, pos, (byte) f.length);
  pos = Bytes.putBytes(bytes, pos, f, 0, f.length);
  pos = Bytes.putBytes(bytes, pos, q, 0, q.length);
  pos = Bytes.putLong(bytes, pos, System.currentTimeMillis());
  pos = Bytes.putByte(bytes, pos, KeyValue.Type.Put.getCode());

  keys.add(bytes);
{code}
We just need the 'k' byte[] and make cell from that.

Same with TestHFileBlockIndex
{code}
byte[] k = KeyValueUtil.createFirstOnRow(row, 0, row.length, row, 0, 0,
          row, 0, 0).getKey();

  byte[] v = TestHFileWriterV2.randomValue(rand);
  writer.append(k, v, HConstants.EMPTY_BYTE_ARRAY);
  {code}
We just need row byte[]

bq.You or ramkrishna.s.vasudevan have thoughts on what to do about the 
HFile.Reader Interface and HFileScanner and how they both leak out 'keys' and 
'values'... as byte arrays.
Will check abt this Stack.

> Finish making HFile.Writer Cell-centric; undo APIs that expect KV 
> serializations.
> ---------------------------------------------------------------------------------
>
>                 Key: HBASE-12069
>                 URL: https://issues.apache.org/jira/browse/HBASE-12069
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: stack
>            Assignee: stack
>             Fix For: 0.99.1
>
>         Attachments: 12069.txt, 12069v2.txt, 12069v3.txt, 12069v3.txt
>
>
> See tail of parent task for discussion. Our HFile.Writer and HFile.Reader 
> both have methods that have the client serialize Cells in the old KeyValue 
> way.  Purge these methods from these private classes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to