Matt Corgan 2012-12-09, 07:27
lars hofhansl 2012-12-09, 20:52
Matt Corgan 2012-12-10, 01:03
Stack 2012-12-10, 20:26
Dave Latham 2012-12-11, 18:54
The offending method here is:
public void filterRow(List<KeyValue> kvs);
But even if we changed that to accept a stream of KVs, how are we going to make sure the filter code does not hold on to the KVs it received?
As long as we allow custom code in filter we cannot reuse the memory backing the KVs, unless we force the filter code to make a copy of any KV it wants to hold on (which would make the above method extremely expensive).
Of our pre-canned filters only DependentColumnFilter implements this method.
From: Stack <[EMAIL PROTECTED]>
To: HBase Dev List <[EMAIL PROTECTED]>; lars hofhansl <[EMAIL PROTECTED]>
Sent: Monday, December 10, 2012 12:26 PM
Subject: Re: InternalScanner next(..) methods
On Sun, Dec 9, 2012 at 12:52 PM, lars hofhansl <[EMAIL PROTECTED]> wrote:
> This method specifically only works when this is a heap of StoreScanners
> (i.e. on the RegionScanner level), which is very confusing (to me anyway).
> Maybe we should have two separate KeyValueHeap implementation to make it
> less confusing.
> The list here comprises KVs for the same row key. These KVs need to be
> collected together so that Filters can operate on entire rows.
We should change Filter Interface instead giving it a stream rather than
> I just looked at that code this week. We need to fix this stuff. :)
Matt Corgan 2012-12-11, 07:16
lars hofhansl 2012-12-11, 07:28
Matt Corgan 2012-12-11, 08:08
Stack 2012-12-10, 20:24