Hi all,

I work on GeoMesa which uses HBase to store geospatial data.  One of our uses patterns to use GeoMesa+HBase client code in a web tier to respond to ad hoc user queries.  Those web requests are translated to HBase coprocessor calls or HBase Scans.

For this use case, we want to manage the number of threads and time that those threads can use for any given request. Concretely, we may want a particular deployment to 'time out' requests after 60 seconds.

With that in mind, I have two broad questions:

1.  Are there example open source code samples which show ways to the HBase client in this manner?  (For instance, has Apache Phoenix already solved this problem.  I kinda tried to look at that code base for ideas.)

2.  Is there an expected / documented pattern which would let me solve this problem well?

In terms of the second question, I have seen that the HTableInterface has a getTable(TableName tableName, ExecutorService pool) method.  One solution is to pass in a new ThreadPool/ExecutorService per GeoMesa request.  When the GeoMesa timeout hits, we can cool shutdownNow.

This solution is 'correct' in that it achieves the desired timeout behaviour.  The downside is that it is slower than our previous code which just fired off requests without a timeout capability.

Thanks in advance for any links, suggestions, positive feedback, etc!

Cheers,

Jim

Reply via email to