You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2014/08/15 05:55:18 UTC

[jira] [Commented] (PHOENIX-1172) Prevent lock contention in ConnectionQueryServicesImpl. Fix exception handling.

    [ https://issues.apache.org/jira/browse/PHOENIX-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14098114#comment-14098114 ] 

James Taylor commented on PHOENIX-1172:
---------------------------------------

Two comments, one small, one bigger:
- Wouldn't this be simpler if you set initializationException in the catch of the SQLException and again in a new catch Throwable?
- Why do we need the locking you added? Seems like the only race condition is between connect and close. Why not just have close synchronize on latestMetaDataLock and remove the checkClosed() call? The addTable and removeTable calls can just do a null check - there's no harm if these are called right before/after  a close.
{code}
    @Override
    public PhoenixConnection connect(String url, Properties info) throws SQLException {
        checkClosed();
        synchronized (latestMetaDataLock) {
            throwConnectionClosedIfNullMetaData();
            latestMetaDataLock.notifyAll();
            return new PhoenixConnection(this, url, info, latestMetaData);
        }
    }
{code}

> Prevent lock contention in ConnectionQueryServicesImpl. Fix exception handling. 
> --------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1172
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1172
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 3.1, 4.1
>            Reporter: Samarth Jain
>            Assignee: Samarth Jain
>             Fix For: 5.0.0, 3.1, 4.1
>
>         Attachments: PHOENIX-1172.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)