Sorry, my first post’s image link was broken. Trying again:
I am trying to figure out the best way to architect access to an HBase
cluster from a multi-user system that has potentially thousands of
processes all potentially reading and writing data from/to HBase. The
multi-user system is a collection of processes written in C or C++
(essentially a client-server system, not web or java-based). Since the
system is not Java or web-based, I need to come up with a way to allow
these thousands of processes to efficiently access the DB without either 1)
creating thousands of Thrift servers, or 2) building and destroying an
HBase connection for each access.
The link below is one way I could see to do it. Each C/C++ process would
need to create a protocol/client connection to a random Thrift server each
time it wanted to interact with HBase, but the Thrift servers would at
least have regionserver and HTable info cached so they don't need to start
up each time.
Am I thinking about the Thrift client-server setup for HBase correctly?
Does this seem like a good approach? If I have, say, a few dozen Thrift
server instances for a thousand users, will the requests through the 90XX
sockets block and buffer correctly so the Thrift servers will be pooled in
the eyes of the C/C++ processes? Thanks for any help you can provide.