bq. HConnectionManager.getConnection() will be removed.

I don't see the above change in 6580-trunk.txt
Would the above be done in next patch or in another JIRA ?

Cheers

On Fri, Aug 2, 2013 at 9:29 PM, lars hofhansl <la...@apache.org> wrote:

> See. https://issues.apache.org/jira/browse/HBASE-6580
>
> The new proposed API looks like this:
>
> Here's the proposed new API:
> * HConnectionManager:
>     public static HConnection createConnection(Configuration conf)
>     public static HConnection createConnection(Configuration conf,
> ExecutorService pool)
>
> * HConnection:
>     public HTableInterface getTable(byte[] tableName) throws IOException
>     public HTableInterface getTable(byte[] tableName, ExecutorService
> pool) throws IOException
>     public HTableInterface getTable(String tableName) throws IOException
>
> By default HConnectionImplementation will create an ExecutorService when
> needed. The ExecutorService can optionally passed be passed in.
> HTableInterfaces are retrieved from the HConnection. By default the
> HConnection's ExecutorService is used, but optionally that can be
> overridden for each HTable.
>
> In 0.98/trunk:
>
> 1. HTablePool will be removed. It is not longer needed.
> 2. All constructors in HTable will be removed and changed to be protected.
> All code use HTableInterface only.
> 3. HConnectionManager.getConnection() will be removed.
> 3. All HConnection caching (deleteConnection, etc,etc) will be removed, as
> it is no longer needed.
>
>
> The new flow of setting up a client would look like this:
>
> ----- Snip -----
> // connection to the cluster
> HConnection conn = HConnectionManager.createConnection(conf);
> ...
> // When the cluster connection is established get an HTableInterface for
> each operation or thread.
> // HConnection.getTable(...) is lightweight. The table is really just a
> convenient place to call table method and for a temporary batch cache.
> // It is in fact less overhead than HTablePool had when retrieving a
> cached HTable.
> // The HTableInterface returned is not thread safe as before.
> // It's fine to get 1000's of these.
> // Don't cache the longer than the lifetime of the HConnection
> HTableInterface table = conn.getTable("MyTable");
> ...
> // just flushes outstanding commit, no futher cleanup needed, can be
> omitted.
> // HConnection holds no references to the returned HTable objects, they
> can be GC'd as soon as they leave scope.
> table.close();
> ...
> conn.close(); // done with the cluster, release resources
> ----- Snip -----
>
> The HConnection will maintain and share its own ThreadPool for all batch
> operations executed by the HTables.
> This can overridden per HConnection and/or per individual HTable object.
>
> I will commit the new API to all branches early next week.
>
> Questions? Comments? Concerns? Praise?
>
> -- Lars

Reply via email to