Add #size() to Result API: Accumulo, Avro, HBase Set batch size using query.limit
Project: http://git-wip-us.apache.org/repos/asf/gora/repo Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/0ee48ab3 Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/0ee48ab3 Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/0ee48ab3 Branch: refs/heads/master Commit: 0ee48ab3d96445a280852a1fd04206efb883baa9 Parents: 76cc89c Author: Carlos Muñoz <carlosr...@gmail.com> Authored: Thu Mar 22 00:59:02 2018 -0500 Committer: Carlos Muñoz <carlosr...@gmail.com> Committed: Thu Mar 22 00:59:02 2018 -0500 ---------------------------------------------------------------------- .../org/apache/gora/accumulo/query/AccumuloResult.java | 13 +++++++++---- .../java/org/apache/gora/avro/query/AvroResult.java | 9 ++++++--- .../org/apache/gora/avro/query/DataFileAvroResult.java | 2 +- .../org/apache/gora/hbase/query/HBaseGetResult.java | 2 +- .../apache/gora/hbase/query/HBaseScannerResult.java | 9 ++++++--- .../java/org/apache/gora/hbase/store/HBaseStore.java | 2 +- 6 files changed, 24 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java ---------------------------------------------------------------------- diff --git a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java index 072c004..23fdc1c 100644 --- a/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java +++ b/gora-accumulo/src/main/java/org/apache/gora/accumulo/query/AccumuloResult.java @@ -53,7 +53,9 @@ public class AccumuloResult<K,T extends PersistentBase> extends ResultBase<K,T> public AccumuloResult(DataStore<K,T> dataStore, Query<K,T> query, Scanner scanner) { super(dataStore, query); - // TODO set batch size based on limit, and construct iterator later + if (this.limit>-1){ + scanner.setBatchSize((int)this.limit); + } iterator = new RowIterator(scanner.iterator()); } @@ -62,8 +64,11 @@ public class AccumuloResult<K,T extends PersistentBase> extends ResultBase<K,T> */ @Override public float getProgress() throws IOException { - // TODO Auto-generated method stub - return 0; + if (this.limit!=-1){ + return (float)this.offset/(float)this.limit; + }else{ + return 0; + } } @Override @@ -91,7 +96,7 @@ public class AccumuloResult<K,T extends PersistentBase> extends ResultBase<K,T> @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int)this.limit; } } http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java ---------------------------------------------------------------------- diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java index 75d470f..ab421de 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/AvroResult.java @@ -48,8 +48,11 @@ public class AvroResult<K, T extends PersistentBase> extends ResultBase<K, T> { @Override public float getProgress() throws IOException { - //TODO: FIXME - return 0; + if (this.limit!=-1){ + return (float)this.offset/(float)this.limit; + }else{ + return 0; + } } @Override @@ -70,6 +73,6 @@ public class AvroResult<K, T extends PersistentBase> extends ResultBase<K, T> { @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int)limit; } } http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java ---------------------------------------------------------------------- diff --git a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java index 45029a2..23dd879 100644 --- a/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java +++ b/gora-core/src/main/java/org/apache/gora/avro/query/DataFileAvroResult.java @@ -84,7 +84,7 @@ public class DataFileAvroResult<K, T extends PersistentBase> extends ResultBase< @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int) (end - start); } } http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java ---------------------------------------------------------------------- diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java index 48923e7..c6c75ca 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseGetResult.java @@ -64,6 +64,6 @@ public class HBaseGetResult<K, T extends PersistentBase> extends HBaseResult<K,T @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return result != null && !result.isEmpty() ? 1 : 0; } } http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java ---------------------------------------------------------------------- diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java index b299eaf..7f1dd90 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/query/HBaseScannerResult.java @@ -63,13 +63,16 @@ public class HBaseScannerResult<K, T extends PersistentBase> extends HBaseResult @Override public float getProgress() throws IOException { - //TODO: if limit is set, we know how far we have gone - return 0; + if (this.limit!=-1){ + return (float)this.offset/(float)this.limit; + }else{ + return 0; + } } @Override public int size() { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + return (int)this.limit; } } http://git-wip-us.apache.org/repos/asf/gora/blob/0ee48ab3/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java ---------------------------------------------------------------------- diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java index 349c6d9..75e9180 100644 --- a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java +++ b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java @@ -498,7 +498,7 @@ implements Configurable { public ResultScanner createScanner(Query<K, T> query) throws IOException { final Scan scan = new Scan(); - + scan.setBatch((int)query.getLimit()); scan.setCaching(this.getScannerCaching()) ; if (query.getStartKey() != null) {