Add getClosestBefore method to MapFile.Reader ---------------------------------------------
Key: HADOOP-2463 URL: https://issues.apache.org/jira/browse/HADOOP-2463 Project: Hadoop Issue Type: Improvement Reporter: Bryan Duxbury I have been taking a look at HADOOP-2443, using a sparse cache of HBase regions. My plan was to implement this ticket by doing point searches in the HBase ROOT and META regions as need be. In order to facilitate this, I need a method that will get me the closest key to a given key, but in the less than direction. That is, it should find the key that either matches exactly or is precisely prior to where it should be. This is necessary because in order to find where a given row key belongs in an HBase table, you need to compare it to the start keys of all the regions. The problem lies in the fact that MapFile.Reader, which stores the ROOT and META tables, only support searching in the greater-than-or-equal-to sense. With this kind of search, we would always end up exactly one position behind the region we're actually looking for. Since there is no back() method to readjust, this method would not help us. Basically our only option becomes doing a linear search through the MapFile to find the key we're looking for, which would carry a significant performance penalty in large regions. I propose adding a getClosestBefore method that returns the key immediately before the the switch from less than or equal to greater than, thus capturing the needed key/value. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.