hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "liu ming (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15076) make the HRegion.getScanner(Scan scan, List<KeyValueScanner> additionalScanners, boolean copyCellsFromSharedMem) to be public
Date Thu, 07 Jan 2016 12:32:39 GMT

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

liu ming commented on HBASE-15076:

thanks all for the comments. To answer Anoop,
bq, these additional scanners are scanners on?

In Apache Trafodion, we support ACID transaction on top of HBase. For a given transaction,
all the Put/Delete should be visible only to the current transaction , so we save those updates
in memory until the transaction do a commit. At commit time, do the real put/delete operation,
so go into HBase store, so other reader can see the change.
So when the transaction is still active, not commit yet, and the same transaction do a scan,
Trafodion needs to do a normal scan with start and end key, but if for same row, the transaction
do a put, that new put value should be the real value of that Cell, so Trafodion wrap the
Scan to merge those Put objects in the memory, and make Put in the memory win the compare;
But this is still not all, if in the memory, there are delete object, we also need to filter
out those Cells, so we new another additional scanner equiped with a delete filter, to filter
out those rows that has a Delete object in the memory list.
So we need that method, since all these operations are done in Coprocessor, we need to make
that method public. Currently, we just overload the HRegion class, which is intrusive. We
hope HBase can make this change , so Trafodion can invoke it and no need to do the overloading.
I also feel this may has other usage, so it will be good to put this method in Region Interface.

I am new to HBase, so your help are very important.


> make the HRegion.getScanner(Scan scan, List<KeyValueScanner> additionalScanners,
boolean copyCellsFromSharedMem) to be public
> -----------------------------------------------------------------------------------------------------------------------------
>                 Key: HBASE-15076
>                 URL: https://issues.apache.org/jira/browse/HBASE-15076
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver
>            Reporter: liu ming
>            Assignee: liu ming
> HRegion method getScanner(Scan scan, List<KeyValueScanner> additionalScanners,
boolean copyCellsFromSharedMem) is protected.
> In Apache Trafodion, we need to invoke this getScanner method from a coprocessor. Since
it is protected, Trafodion must overload the HRegion class and overload this method into a
public method.
> It will be good to make this method public.
> It is very useful when one needs to combine several scan result in a single scanner.
> thanks,
> Ming

This message was sent by Atlassian JIRA

View raw message