Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-7391

Review/improve HLog compression's memory consumption

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.98.0, 0.95.2
    • None
    • None
    • Reviewed

    Description

      From Ram in http://mail-archives.apache.org/mod_mbox/hbase-dev/201205.mbox/%3C00bc01cd31e6$7caf1320$760d3960$%25vasudevan@huawei.com%3E:

      One small observation after giving +1 on the RC.
      The WAL compression feature causes OOME and causes Full GC.

      The problem is, if we have 1500 regions and I need to create recovered.edits
      for each of the region (I don’t have much data in the regions (~300MB)).
      Now when I try to build the dictionary there is a Node object getting
      created.
      Each node object occupies 32 bytes.
      We have 5 such dictionaries.

      Initially we create indexToNodes array and its size is 32767.

      So now we have 32*5*32767 = ~5MB.

      Now I have 1500 regions.

      So 5MB*1500 = ~7GB.(Excluding actual data). This seems to a very high
      initial memory foot print and this never allows me to split the logs and I
      am not able to make the cluster up at all.

      Our configured heap size was 8GB, tested in 3 node cluster with 5000
      regions, very less data( 1GB in hdfs cluster including replication), some
      small data is spread evenly across all regions.

      The formula is 32(Node object size)*5(No of dictionary)*32767(no of node
      objects)*noofregions.

      Attachments

        1. afterpatch1.png
          311 kB
          ramkrishna.s.vasudevan
        2. afterpatch2.png
          319 kB
          ramkrishna.s.vasudevan
        3. afterpatch3.png
          298 kB
          ramkrishna.s.vasudevan
        4. beforepatch1.png
          394 kB
          ramkrishna.s.vasudevan
        5. beforepatch2.png
          391 kB
          ramkrishna.s.vasudevan
        6. beforepatch3.png
          322 kB
          ramkrishna.s.vasudevan
        7. HBASE-7391_1.patch
          16 kB
          ramkrishna.s.vasudevan
        8. HBASE-7391_2.patch
          16 kB
          ramkrishna.s.vasudevan
        9. HBASE-7391_3.patch
          16 kB
          ramkrishna.s.vasudevan
        10. HBASE-7391_Lineremoval.patch
          4 kB
          ramkrishna.s.vasudevan
        11. HBASE-7391-LINEEND.patch
          4 kB
          Elliott Neil Clark

        Issue Links

          Activity

            People

              ram_krish ramkrishna.s.vasudevan
              jdcryans Jean-Daniel Cryans
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: