Bryan, Yes, that is true. Essentially Scan.isGetScan() [0] needs to pass before bloom filter checks proceed. And that method passes for single row scans as expected.
Multi-gets support bloom filter lookups as well (although is implemented in a different way). [0] - http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/Scan.html#isGetScan() On Thu, May 10, 2012 at 7:34 PM, Bryan Beaudreault <bbeaudrea...@hubspot.com> wrote: > I was under the impression that a single-row Scan can use the bloom filter > as well. Can anyone verify/refute? > > On Thu, May 10, 2012 at 5:31 AM, Igal Shilman <ig...@wix.com> wrote: > >> I think that it is also worth mentioning, that Gets can be much more I/O >> efficient then Scans if you have bloom filters enabled. >> >> On Thu, May 10, 2012 at 12:29 AM, Doug Meil >> <doug.m...@explorysmedical.com>wrote: >> >> > >> > Also, there is multi-Get support as of 0.90.x to further optimize the RPC >> > calls if you need to make a bunch of calls. >> > >> > >> > >> > >> > >> > On 5/9/12 4:47 PM, "Jean-Daniel Cryans" <jdcry...@apache.org> wrote: >> > >> > >What Bryan said, also Scan(Get) is used internally in the region >> > >server code so that's probably why that constructor exists. >> > > >> > >But as a user you need to create the scanner, do next() then close it >> > >so using a straight Get saves 2 rpc. >> > > >> > >J-D >> > > >> > >On Wed, May 9, 2012 at 1:43 PM, Bryan Beaudreault >> > ><bbeaudrea...@hubspot.com> wrote: >> > >> Gets just boil down to single-row Scans. I believe the only reason to >> > >>do >> > >> Scan s = new Scan(Get) would be if you need to add extra options onto >> > >>the >> > >> get. Get's API is more simplified than Scan's. >> > >> >> > >> On Wed, May 9, 2012 at 4:19 PM, Kevin <kevin.macksa...@gmail.com> >> > wrote: >> > >> >> > >>> Hi, >> > >>> >> > >>> From what I can tell, there are two ways of scanning a table in >> HBase. >> > >>>I'm >> > >>> hoping to learn a bit by asking is the most efficient way to grab a >> > >>>single >> > >>> row from an HTable? >> > >>> >> > >>> One can ask the HTable directly by creating a Get object, or one can >> > >>>create >> > >>> a Scan object with a Get object and pass it along to the HTable. >> > >>> >> > >>> Maybe it doesn't matter. By looking at the source code I couldn't see >> > >>>how >> > >>> any one way might be faster/better than another. >> > >>> >> > >>> Thanks. >> > >>> >> > > >> > >> > >> > >> -- Harsh J