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

WAL value compression

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 3.0.0-alpha-1, 2.5.0
    • Operability, wal
    • None
    • Reviewed
    • Hide
      WAL storage can be expensive, especially if the cell values represented in the edits are large, consisting of blobs or significant lengths of text. Such WALs might need to be kept around for a fairly long time to satisfy replication constraints on a space limited (or space-contended) filesystem.

      Enable WAL compression and, with this feature, WAL value compression, to save space in exchange for slightly higher WAL append latencies. The degree of performance impact will depend on the compression algorithm selection. SNAPPY or ZSTD are recommended algorithms, if native codec support is available. SNAPPY may even provide an overall improvement in WAL commit latency, so is the best choice. GZ can be a reasonable fallback where native codec support is not available.

      To enable WAL compression, value compression, and select the desired algorithm, edit your site configuration like so:

      <!-- to enable compression -->
      <property>
          <name>hbase.regionserver.wal.enablecompression</name>
          <value>true</value>
      </property>

      <!-- to enable value compression -->
      <property>
          <name>hbase.regionserver.wal.value.enablecompression</name>
          <value>true</value>
      </property>

      <!-- choose the value compression algorithm —>
      <property>
          <name>hbase.regionserver.wal.value.compression.type</name>
          <value>snappy</value>
      </property>
      Show
      WAL storage can be expensive, especially if the cell values represented in the edits are large, consisting of blobs or significant lengths of text. Such WALs might need to be kept around for a fairly long time to satisfy replication constraints on a space limited (or space-contended) filesystem. Enable WAL compression and, with this feature, WAL value compression, to save space in exchange for slightly higher WAL append latencies. The degree of performance impact will depend on the compression algorithm selection. SNAPPY or ZSTD are recommended algorithms, if native codec support is available. SNAPPY may even provide an overall improvement in WAL commit latency, so is the best choice. GZ can be a reasonable fallback where native codec support is not available. To enable WAL compression, value compression, and select the desired algorithm, edit your site configuration like so: <!-- to enable compression --> <property>     <name>hbase.regionserver.wal.enablecompression</name>     <value>true</value> </property> <!-- to enable value compression --> <property>     <name>hbase.regionserver.wal.value.enablecompression</name>     <value>true</value> </property> <!-- choose the value compression algorithm —> <property>     <name>hbase.regionserver.wal.value.compression.type</name>     <value>snappy</value> </property>

    Description

      WAL storage can be expensive, especially if the cell values represented in the edits are large, consisting of blobs or significant lengths of text. Such WALs might need to be kept around for a fairly long time to satisfy replication constraints on a space limited (or space-contended) filesystem.

      We have a custom dictionary compression scheme for cell metadata that is engaged when WAL compression is enabled in site configuration. This is fine for that application, where we can expect the universe of values and their lengths in the custom dictionaries to be constrained. For arbitrary cell values it is better to use one of the available compression codecs, which are suitable for arbitrary albeit compressible data.

      Attachments

        Issue Links

          Activity

            People

              apurtell Andrew Kyle Purtell
              apurtell Andrew Kyle Purtell
              Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: