On Tue, May 18, 2010 at 2:15 AM, Renaud Delbru <renaud.del...@deri.org> wrote:
> Hi,
>
> after some tuning, like increasing the hfile block size to 128KB,  I have
> noticed that the storefileIndexSize is now half of what it was before
> (~250). Do storefileIndexSize is the size of the in-memory hfile block index
> ?

Yes.

So, yes, doubling the block size should halve the index size.

How come your index is so big?  Do you have big keys?  Lots of data?
Lots of storefiles?

Looking in HRegionServer I see that its calculated so:

 storefileIndexSizeMB = (int)(store.getStorefilesIndexSize()/1024/1024);

In the Store, we do this:

  /**
   * @return The size of the store file indexes, in bytes.
   */
  long getStorefilesIndexSize() {
    long size = 0;
    for (StoreFile s: storefiles.values()) {
      Reader r = s.getReader();
      if (r == null) {
        LOG.warn("StoreFile " + s + " has a null Reader");
        continue;
      }
      size += r.indexSize();
    }
    return size;
  }

The indexSize is out of the HFile metadata.

St.Ack

>
> Thanks
> --
> Renaud Delbru
>
> On 17/05/10 15:27, Renaud Delbru wrote:
>>
>> Hi,
>>
>> I would like to understand the meaning of the storefileIndexSize metric,
>> could someone point me to a definition or explain me what does that mean ?
>>
>> Also, we are performing a large table import (90M rows, size of the row
>> varying between hundreds of kb to 8 MB), and we are encountering memory
>> problem (OOME). My observation is that it always happens after a while, when
>> the storefileIndexSize starts to be large (> 500). Is there a way to reduce
>> it ?
>>
>> Thanks,
>
>

Reply via email to