I'm inserting several million rows of a table that has ~50 columns, 31 of
which are days of the month and are often null.  For the null ones I issue a
delete instead of a put to make sure any previous data in that column gets
deleted.  I'm inserting 1000 rows at a time, so the behavior is to put ~40k
cells, delete ~10k cells, and then flush.  I've also tried flushing between
the puts and deletes.

This works fine until the region tries to split, at which point i almost
always get a deadlock.  I suspect it's similar to these:

https://issues.apache.org/jira/browse/HBASE-2097
https://issues.apache.org/jira/browse/HBASE-2915

Here are the 2 threads in question from the regionserver:
http://pastebin.com/ddVbHxvP

And the regionserver log (split starts at line 38):
http://pastebin.com/JgvchvYK

This happens in both 0.20.6 and 0.89.20100726.  5 GB heap, and servers are
idle other than this.

If there is actually a deadlock, do you think that waiting x milliseconds
between the puts and the deletes could be a temporary workaround?

Thanks,
Matt

Reply via email to