Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.98.0, 0.95.2
    • Component/s: Client
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      This patch introduces an extensible data types API for HBase. It is inspired by the following systems:

       - PostgreSQL. Postgres has a user-extensible data type API, which has been used to great effect by it's user community (ie, PostGIS). The desire is for HBase to expose an equally extensible data type API. One aspect of the Postgres data type is the ability to provide equivalence functions for index operations. This appears to be of critical performance utility for its execution engine.
       - Orderly. Orderly handles the issue of compound rowkeys by providing convenience classes for handling these kinds of data types. This influence is reflected in the Struct and Union family of classes.
       - Phoenix. The PDataType enum used in Phoenix provides type hints, similar Postgres's equivalence functions. These appear to be used during query execution for numerical type promotion.

      This patch introduces an interface, DataType, along with a number of data type implementations based on the Bytes encoding. Also included are Struct and Union types, demonstrating simple implementations of compound types. Helper classes around the Struct implementation are also provided.

      This patch does not address the type compatibility concerns expressed by Phoenix's PDataType API (ie, isComparableTo, isCoercibleTo); these will be addressed in HBASE-8863.

      This patch also provides DataType implementations based on the OrderedBytes encoding from HBASE-8201.
      Show
      This patch introduces an extensible data types API for HBase. It is inspired by the following systems:  - PostgreSQL. Postgres has a user-extensible data type API, which has been used to great effect by it's user community (ie, PostGIS). The desire is for HBase to expose an equally extensible data type API. One aspect of the Postgres data type is the ability to provide equivalence functions for index operations. This appears to be of critical performance utility for its execution engine.  - Orderly. Orderly handles the issue of compound rowkeys by providing convenience classes for handling these kinds of data types. This influence is reflected in the Struct and Union family of classes.  - Phoenix. The PDataType enum used in Phoenix provides type hints, similar Postgres's equivalence functions. These appear to be used during query execution for numerical type promotion. This patch introduces an interface, DataType, along with a number of data type implementations based on the Bytes encoding. Also included are Struct and Union types, demonstrating simple implementations of compound types. Helper classes around the Struct implementation are also provided. This patch does not address the type compatibility concerns expressed by Phoenix's PDataType API (ie, isComparableTo, isCoercibleTo); these will be addressed in HBASE-8863 . This patch also provides DataType implementations based on the OrderedBytes encoding from HBASE-8201 .
    • Tags:
      0.96notable
    1. KijiFormattedEntityId.java
      2 kB
      Nick Dimiduk
    2. 0002-HBASE-8693-example-Use-DataType-API-to-build-regionN.patch
      9 kB
      Nick Dimiduk
    3. 0001-HBASE-8693-Extensible-data-types-API.patch
      50 kB
      Nick Dimiduk
    4. 0001-HBASE-8693-Extensible-data-types-API.patch
      93 kB
      Nick Dimiduk
    5. 0001-HBASE-8693-Extensible-data-types-API.patch
      127 kB
      Nick Dimiduk
    6. 0001-HBASE-8693-Extensible-data-types-API.patch
      130 kB
      Nick Dimiduk
    7. 0001-HBASE-8693-Extensible-data-types-API.patch
      137 kB
      Nick Dimiduk
    8. 0001-HBASE-8693-Extensible-data-types-API.patch
      100 kB
      Nick Dimiduk
    9. 0001-HBASE-8693-Extensible-data-types-API.patch
      128 kB
      Nick Dimiduk
    10. 0001-HBASE-8693-Extensible-data-types-API.patch
      128 kB
      Nicolas Liochon
    11. 0001-HBASE-8693-Extensible-data-types-API.patch
      127 kB
      Nick Dimiduk
    12. 0001-HBASE-8693-Extensible-data-types-API.patch
      131 kB
      Nick Dimiduk
    13. 0001-HBASE-8693-Extensible-data-types-API.patch
      136 kB
      Nick Dimiduk
    14. 0001-HBASE-8693-Extensible-data-types-API.patch
      136 kB
      Nick Dimiduk

      Issue Links

        Activity

          People

          • Assignee:
            Nick Dimiduk
            Reporter:
            Nick Dimiduk
          • Votes:
            0 Vote for this issue
            Watchers:
            16 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development