This is the source-only release of the Apache Trafodion (incubating) project. This release provides support for HBase 0.98 and many new product features.

Build instructions are available here.

Supported Platforms

The following platforms are supported in this release.

Operating Systems CentOS 6.5 – 6.7
Hadoop Distributions Cloudera CDH distribution 5.1 and Hortonworks distribution HDP 2.1
Java Version JDK 1.7.0_67 or newer
HBase Version HBase 0.98.x

Enhancements

This release contains the following new features.

Category Feature Defect ID
Performance
  • Move to HBase 0.98.
  • Significant improvements in benchmarks over Trafodion 0.8.3:
    • YCSB
    • Debit/Credit
    • Order Entry
    • Atomics
Infrastructure and High Availability
  • Support on newer Hadoop distributions:
    • Cloudera CDH 5.1
    • Hortonworks HDP 2.1

  • Better integration with HBase:
    • Use of coprocessors
    • Use of HLOG (HBase Write Ahead Log)
  • Recovery from catastrophic HBase failures.
Database and Query Performance
  • Improvement in scan performance:
    • Tuning Degree of Parallelism
    • Tuning scan buffer size
  • Prefetch
  • Enhancements in JNI interface
  • Improved partitioning for salted tables
  • Push down predicates to HBase layer
  • Enhancement in data movement/message traffic by sending compressed (internal format) data from one operator to another
  • Improved memory usage
  • Improvements to query compile time through embedded compilers
  • Improvements in performance of update statistics feature
Database Movement and Connectivity
  • Bulk Loader
  • Support for compression in ODBC drivers
Security
  • Support for Grant/Revoke
Stability
  • Fixes for 140+ defects.

Fixes

This release contains fixes to 140 defects. Those defects were filed through Launchpad.

Known Issues

Getting TM error 97 when tables split or get moved

Defect: 1274651

Symptom: HBase Region Splits, Load Balancing, and Error 97.

Cause: As part of an HBase environment’s ongoing operations (and based on the policies configured for the HBase environment), an HBase region can either get split (into two daughter regions) or moved to a different region server. (Please see the blog: http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/.) If that happens when a Trafodion transaction is active (and operates on rows within the region that is being split or load-balanced), then a subsequent transaction commit operation by the application might encounter an error 97. Please note that under such conditions the Trafodion Transaction Manager will abort the transaction and will preserve the integrity of the database.

Solution: To minimize disruptions when this happens, we suggest that you use one or more of the following approaches:

  1. Enhance your JDBC application logic to retry when an error 97 is returned for a commit operation.
  2. Update the HBase configuration to reduce the times when such disruptions happen. It involves updates to some properties that can be set in hbase-site.xml (or via the manageability interface of your Hadoop distribution).
    • Set the maximum file size of an HBase Region to 100 GB. For example, set the value of the property hbase.hregion.max.filesize to 107374182400.
    • Set the HBase region split policy to 'ConstantSizeRegionSplitPolicy'. For example, set the value of the property hbase.regionserver.region.split.policy to org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy.

      NOTE: The split policy should already be set to 'onstantSizeRegionSplitPolicy' by the Trafodion installer.

      Summary

      Property Value
      hbase.hregion.max.filesize 107374182400
      hbase.regionserver.region.split.policy org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy
      More information: [http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/](http://hortonworks.com/blog/apache-hbase-region-splitting-and-merging/)
  3. Disable HBase Region Load Balancing. Use the HBase shell command balance_switch false to disable the movement of a region from one server to another.

    Example

    hbase shell
    hbase(main):002:0> balance_switch false
    true  -- Output will be the last setting of the balance_switch value
    0 row(s) in 0.0080 seconds
            
  4. Pre-split the table into multiple regions by using the SALT USING n PARTITIONS clause when creating the table. The number of partitions that you specify could be a function of the number of region servers present in the HBase cluster. Here is a simple example in which the table INVENTORY is pre-split into four regions when created:
    CREATE TABLE INVENTORY
      (
        ITEM_ID       INT UNSIGNED NO DEFAULT NOT NULL
      , ITEM_TYPE     INT UNSIGNED NO DEFAULT NOT NULL
      , ITEM_COUNT    INT UNSIGNED NO DEFAULT NOT NULL
      , PRIMARY KEY (ITEM_ID ASC)
      )  SALT USING 4 PARTITIONS
      ;    

Back to top


Apache, Apache Maven, Apache Maven Fluido Skin, the Apache feather logo, the Apache Maven project logo and the Apache Incubator project logo are trademarks of the Apache Software Foundation.