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

Jonathan Gray commented on HBASE-1823:
--------------------------------------

Hmm... now when running with addition to the Writable, I get this exception:

{noformat}
2009-09-11 13:14:03,903 WARN org.apache.hadoop.hbase.master.BaseScanner: Scan 
ROOT region
java.io.IOException: Call to /192.168.249.102:61020 failed on local exception: 
java.io.EOFException
        at 
org.apache.hadoop.hbase.ipc.HBaseClient.wrapException(HBaseClient.java:757)
        at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:727)
        at 
org.apache.hadoop.hbase.ipc.HBaseRPC$Invoker.invoke(HBaseRPC.java:328)
        at $Proxy1.openScanner(Unknown Source)
        at 
org.apache.hadoop.hbase.master.BaseScanner.scanRegion(BaseScanner.java:160)
        at 
org.apache.hadoop.hbase.master.RootScanner.scanRoot(RootScanner.java:54)
        at 
org.apache.hadoop.hbase.master.RootScanner.initialScan(RootScanner.java:73)
        at 
org.apache.hadoop.hbase.master.BaseScanner.initialChore(BaseScanner.java:131)
        at org.apache.hadoop.hbase.Chore.run(Chore.java:66)
Caused by: java.io.EOFException
        at java.io.DataInputStream.readInt(DataInputStream.java:375)
        at 
org.apache.hadoop.hbase.ipc.HBaseClient$Connection.receiveResponse(HBaseClient.java:505)
        at 
org.apache.hadoop.hbase.ipc.HBaseClient$Connection.run(HBaseClient.java:449)
{noformat}

The code seems right... what am I missing here?

{noformat}
@@ -518,6 +545,7 @@
     this.stopRow = Bytes.readByteArray(in);
     this.maxVersions = in.readInt();
     this.caching = in.readInt();
+    this.cacheBlocks = in.readBoolean();
     if(in.readBoolean()) {
       this.filter = 
(Filter)createForName(Bytes.toString(Bytes.readByteArray(in)));
       this.filter.readFields(in);
@@ -550,6 +578,7 @@
     Bytes.writeByteArray(out, this.stopRow);
     out.writeInt(this.maxVersions);
     out.writeInt(this.caching);
+    out.writeBoolean(this.cacheBlocks);
     if(this.filter == null) {
       out.writeBoolean(false);
     } else {
{noformat}

> Ability for Scanners to bypass the block cache
> ----------------------------------------------
>
>                 Key: HBASE-1823
>                 URL: https://issues.apache.org/jira/browse/HBASE-1823
>             Project: Hadoop HBase
>          Issue Type: New Feature
>          Components: client, regionserver
>    Affects Versions: 0.20.0
>            Reporter: Jonathan Gray
>            Assignee: Jonathan Gray
>             Fix For: 0.20.1, 0.21.0
>
>         Attachments: HBASE-1823-v1.patch, HBASE-1823-v2.patch, 
> HBASE-1823-v3.patch
>
>
> There are a number of use cases where exposing the ability to not cache 
> blocks during a scan would be valuable.  For example, running row counts.
> The LRU is scan-resistant, so it does provide some protection already, but 
> even in that case all you prevent is the eviction of hot blocks.  The LRU 
> still runs many evictions and the blocks are referenced for much longer 
> periods of time, so this adds enormous stress to the GC.
> Compactions already do this.  This issue is about exposing that as a switch 
> to the client-side Scan object (will also enable it for MR jobs then).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to