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

Josh Elser commented on HBASE-26777:
------------------------------------

I can see how throwing an UnsupportedOperationException in HBASE-26036 to catch 
anyone else doing this "works", but is pretty aggressive. If there is API that 
we can't safely support (given how we want the semantics of that API to work, 
e.g. #get() does an on-heap copy and we want to avoid on-heap copies), it would 
be better to remove the API than let it fail later.

> BufferedDataBlockEncoder$OffheapDecodedExtendedCell.deepClone throws 
> UnsupportedOperationException
> --------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-26777
>                 URL: https://issues.apache.org/jira/browse/HBASE-26777
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 2.4.10
>            Reporter: Istvan Toth
>            Assignee: Istvan Toth
>            Priority: Major
>
> BufferedDataBlockEncoder$OffheapDecodedExtendedCell.deepClone throws an 
> unsupportedException.
> However, org.apache.hadoop.hbase.regionserver.HRegion.get(Get, boolean, long, 
> long)
> calls the method:
> {code:java}
>       // Copy EC to heap, then close the scanner.
>       // This can be an EXPENSIVE call. It may make an extra copy from 
> offheap to onheap buffers.
>       // See more details in HBASE-26036.
>       for (Cell cell : tmp) {
>         results.add(cell instanceof ByteBufferExtendedCell ?
>           ((ByteBufferExtendedCell) cell).deepClone(): cell);
>       } {code}
> According to the comment above, this is probably caused by HBASE-26036.
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to