[
https://issues.apache.org/jira/browse/HBASE-10294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13870981#comment-13870981
]
Sergey Shelukhin commented on HBASE-10294:
------------------------------------------
Yeah, from description of keySet()
{quote}
The view's iterator is a "weakly consistent" iterator that will never throw
ConcurrentModificationException, and guarantees to traverse elements as they
existed upon construction of the iterator, and may (but is not guaranteed to)
reflect any modifications subsequent to construction.
{quote}
and we do already look for previous servers by iterating the map (whether the
map key should be changed is another question).
This sync block just should not have been added in the original patch
> 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)