If the inserts are coming from more than 1 client, and your are trying to delete from only 1 client, then likely it won't work. You could try using a pool of deleters (multiple threads that delete rows) that you feed from the scanner. Or you could run a MapReduce that would parallelize that for you, that takes your table as an input and that outputs Delete objects.
J-D On Fri, Aug 6, 2010 at 5:50 AM, Thomas Downing <tdown...@proteus-technologies.com> wrote: > Hi, > > Continuing with testing HBase suitability in a high ingest rate > environment, I've come up with a new stumbling block, likely > due to my inexperience with HBase. > > We want to keep and purge records on a time basis: i.e, when > a record is older than say, 24 hours, we want to purge it from > the database. > > The problem that I am encountering is the only way I've found > to delete records using an arbitrary but strongly ordered over > time row id is to scan for rows from lower bound to upper > bound, then build an array of Delete using > > for Result in ResultScanner > add new Delete( Result.getRow( ) ) to Delete array. > > This method is far too slow to keep up with our ingest rate; the > iteration over the Results in the ResultScanner is the bottleneck, > even though the Scan is limited to a single small column in the > column family. > > The obvious but naive solution is to use a sequential row id > where the lower and upper bound can be known. This would > allow the building of the array of Delete objects without a scan > step. Problem with this approach is how do you guarantee a > sequential and non-colliding row id across more than one Put'ing > process, and do it efficiently. As it happens, I can do this, but > given the details of my operational requirements, it's not a simple > thing to do. > > So I was hoping that I had just missed something. The ideal > would be a Delete object that would take row id bounds in the > same way that Scan does, allowing the work to be done all > on the server side. Does this exists somewhere? Or is there > some other way to skin this cat? > > Thanks > > Thomas Downing >