You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by "Hiller, Dean (Contractor)" <de...@broadridge.com> on 2011/02/23 05:27:34 UTC

multitenancy solution in hbase

Well, I am working in gemfire right now(not by choice) but many
parallels are the same except my key is not serialized to bytes and I
have buckets instead of a sorted map L (very ick there) and I have no
indexing library L L, but our multi-tenancy solution is working VERY
VERY well and I thought I would share since I bumped into a post on the
list from back in June.

 

Anyways, we basically use gson to serialize from/to entities and each
entity annotates whether it is shared between all customers or is
customer specific.  We scan all those annotations and expose an api on
top of hbase which guarantees the multi-tenancy through a
CustomerThreadLocal.set/getCustomerId() which basically we set for
developers in the top of where the code comes from to begin with.  It
works extremely well as none of the developers ever touch it.  We have
the choice of prefixing all keys with the customer thereby collocating
customer data or making it a postfix so that load may be shared between
customers...all depends on your need really there.

 

Anyways, it seems to work quite well, any time a developer does a put on
the api, we throw an exception if the threadlocal is not set saying
"platform is missing customer id, contact developer lead".

 

Later,

Dean


This message and any attachments are intended only for the use of the addressee and
may contain information that is privileged and confidential. If the reader of the 
message is not the intended recipient or an authorized representative of the
intended recipient, you are hereby notified that any dissemination of this
communication is strictly prohibited. If you have received this communication in
error, please notify us immediately by e-mail and delete the message and any
attachments from your system.