[ https://issues.apache.org/jira/browse/HBASE-17327?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joep Rottinghuis updated HBASE-17327: ------------------------------------- Description: The SpoolingBufferedMutatorImpl solution (HBASE-17018) solved the use-case when an existing HBase connection stalls out due to HBase being down, or other transient issues. We have a remaining issue that our service will not start up if it cannot initially connect to HBase. This can be solved by letting the SpoolingBufferedMutator create the wrapped BufferedMutatorImpl later, but the problem has already occurred: we already have to have a connection in order to create a BufferedMutator to begin with. It would be good to be able to initiate a connection and then have a way for multiple users to wait for the connection to succeed before using it. I'm thinking perhaps create a LazyConnection interface that extends the Connection interface. It would have an additional waitFor(long timeout, TimeUnit unit) method where clients can wait for the connection to be established before they start using the connection. Or perhaps the ConnectionFactory can have a createLazyConnection method. See: https://reviews.apache.org/r/54882/ was: The SpoolingBufferedMutatorImpl solution (HBASE-17018) solved the use-case when an existing HBase connection stalls out due to HBase being down, or other transient issues. We have a remaining issue that our service will not start up if it cannot initially connect to HBase. This can be solved by letting the SpoolingBufferedMutator create the wrapped BufferedMutatorImpl later, but the problem has already occurred: we already have to have a connection in order to create a BufferedMutator to begin with. It would be good to be able to initiate a connection and then have a way for multiple users to wait for the connection to succeed before using it. I'm thinking perhaps create a LazyConnection interface that extends the Connection interface. It would have an additional waitFor(long timeout, TimeUnit unit) method where clients can wait for the connection to be established before they start using the connection. Or perhaps the ConnectionFactory can have a createLazyConnection method. > Allow for lazy connection / BufferedMutator creation > ---------------------------------------------------- > > Key: HBASE-17327 > URL: https://issues.apache.org/jira/browse/HBASE-17327 > Project: HBase > Issue Type: Sub-task > Reporter: Joep Rottinghuis > > The SpoolingBufferedMutatorImpl solution (HBASE-17018) solved the use-case > when an existing HBase connection stalls out due to HBase being down, or > other transient issues. > We have a remaining issue that our service will not start up if it cannot > initially connect to HBase. > This can be solved by letting the SpoolingBufferedMutator create the wrapped > BufferedMutatorImpl later, but the problem has already occurred: we already > have to have a connection in order to create a BufferedMutator to begin with. > It would be good to be able to initiate a connection and then have a way for > multiple users to wait for the connection to succeed before using it. > I'm thinking perhaps create a LazyConnection interface that extends the > Connection interface. It would have an additional waitFor(long timeout, > TimeUnit unit) method where clients can wait for the connection to be > established before they start using the connection. > Or perhaps the ConnectionFactory can have a createLazyConnection method. > See: https://reviews.apache.org/r/54882/ -- This message was sent by Atlassian JIRA (v6.3.4#6332)