hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10294) Some synchronization on ServerManager#onlineServers can be removed
Date Tue, 14 Jan 2014 13:47:50 GMT

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

stack commented on HBASE-10294:
-------------------------------

-1

Without the synchronization you increase the incidence during which a view of the Map can
happen while it is in the midst of being modified (synchronization on object is distinct from
how concurrenthashmap achieves its internal concurrency).

What speedup or 'fix' is provided by this patch in a rarely used method?  Why disturb important
code that does not seem to be broken?

bq. Note: not all accesses to ServerManager#onlineServers are synchronized.

Why not fix the above -- rule whether or not the synchronization is needed (it looks like
it is) -- and act on it rather than add to the uncertainty on onlineServers uncertainty.

> Some synchronization on ServerManager#onlineServers can be removed
> ------------------------------------------------------------------
>
>                 Key: HBASE-10294
>                 URL: https://issues.apache.org/jira/browse/HBASE-10294
>             Project: HBase
>          Issue Type: Task
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>            Priority: Minor
>             Fix For: 0.99.0
>
>         Attachments: 10294-v1.txt
>
>
> ServerManager#onlineServers is a ConcurrentHashMap
> Yet I found that some accesses to it are synchronized and unnecessary.
> Here is one example:
> {code}
>   public Map<ServerName, ServerLoad> getOnlineServers() {
>     // Presumption is that iterating the returned Map is OK.
>     synchronized (this.onlineServers) {
>       return Collections.unmodifiableMap(this.onlineServers);
> {code}
> Note: not all accesses to ServerManager#onlineServers are synchronized.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message