Please see https://issues.apache.org/jira/browse/HBASE-1400 as a proposed 
contrib for HBase, a REST gateway -- code named "Stargate" -- which implements 
an extended/enhanced set of Web enabled APIs for HBase over the current REST 
gateway:

    - Based on Jersey (hat tip to Brian Beggs) for clean and easily extendable 
code base

    - Batch upload/commit capability

    - Protobuf encoding option for efficient data transfer, especially for bulk 
transactions where HTTP header overhead is amortized.

    - Zookeeper enabled load sharing and discovery, prelude to 
gateway-to-gateway load balancing

    - Support transparent (reverse) Squid cache in front of storage gateway by 
setting Cache-Control header according to column family TTLs, or no-cache for 
metadata or scanner instance results, etc.

    - Gateway and cluster status reports

Note that the I implemented this to a set of internal design criteria. For this 
version
contributed to the community, I think the community should change the 
interfaces and semantics if
the consensus on various details differs from what is in place now, but I think 
they are pretty good if a little different than the current REST gateway.
While the iron is hot I would be willing to do some of that work. Some items 
that come to mind that I can/would do:

    - Back fill Javadoc.

    - Consider enhancing application/octet-stream encoding support with 
multipart responses for multivalue queries (or batching scanners).

Then there are some larger issues:

    - Authentication and access control
        - Use something like S3's shared secrets and access keys?
        - HTTP basic authentication?
        - SSL client cert validity and revocation checking?
       
The above options can be handled by stacking an authentication and rule based 
access controller on top of Stargate as a transparent proxy, so may be out of 
scope. Or maybe it is worth considering if at least one or both of the first 
two options is easily supportable by logic in Stargate plus an administrative 
table containing security policy and key material?

    - Implementation of transparent load balancing

Kindly take a look at this at your convenience.

Best regards,

   - Andy


      

Reply via email to