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

Lars George commented on HBASE-13030:
-------------------------------------

[~enis] Hah, yeah, that is the comment I stumbled across. I was wondering the 
same. That whole setAttribute()/getAttribute() is just too weird. And yes, 
getMetrics() should be coming back from the ResultScanner, that is what I was 
hoping for to. 

Ah, a few more things I did ask:
- Missing CellUtil.fillValueRange()
I am not sure why this is missing, but it makes accessing values awkward. The 
main issue is the next:
- Result.getValue() always copies data
The example we give is often "result.getValue(fam, qual)" but in a high 
performance app this is bad form, as it copies data. The only way to access 
data is "Bytes.toXYZ(cell.getValueArray(), cell.getValueOffset(), 
cell.getValueLength())" which is where the above fillValueRange() might help a 
bit.
Ideally though we had a way to access the raw data - without the offset/length 
business - if needed without going through hoops
- Result.getValueAsByteBuffer() returns a mutable reference to the underlaying 
array
This is even weirder I think, the ByteBuffer should be returned as a readonly 
version, no? Since we copy in getValue() to need bleed a reference, and with 
the ByteBuffer we do?

I am still going through the entire client API, I will report if I find 
something else. I know, it might be too late by then, but oh well, what else 
can be done.

> [1.0.0 polish] Make ScanMetrics public again and align Put 'add' with Get, 
> Delete, etc., addColumn
> --------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-13030
>                 URL: https://issues.apache.org/jira/browse/HBASE-13030
>             Project: HBase
>          Issue Type: Bug
>          Components: Operability
>    Affects Versions: 1.0.0
>            Reporter: stack
>            Assignee: stack
>             Fix For: 1.0.0, 2.0.0, 1.1.0
>
>         Attachments: 13030.txt
>
>
> These are some of the items raised by [~larsgeorge] looking at our API for 
> first time in a long time trying to update examples in the HBase Book.
> 1. ScanMetrics used to be available with some gymnastics in old days. Now it 
> is IA.private and to get at it from Scan context, you need to use private 
> ProtobufUtils. This seems like useful advanced user utility that should not 
> be shut down.
> 2. Put is not like the others around the addColumn usage. Fix.
> [~enis] Hopefully these ok to go in (the Scan class addition is a little ugly 
> but didn't want to do anything more adventurous this late in the game).



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

Reply via email to