[ https://issues.apache.org/jira/browse/HDFS-10804?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Arpit Agarwal updated HDFS-10804: --------------------------------- Description: In currently implementation, ReplicaMap takes an external lock for synchronization. In function FsDatasetImpl#FsDatasetImpl(), the object is for synchronization is the same lock object used by FsDatasetImpl routines. and in private FsDatasetImpl#addVolume(), "this" object is used for synchronization as well. ReplicaMap tempVolumeMap = new ReplicaMap(datasetLock); We can potentially eliminate the heavyweight lock for synchronizing ReplicaMap instances. If it's not necessary, this could reduce lock contention on the datasetLock object and improve performance. Could you please give me some suggestions? Thanks a lot! Fenghua was: In currently implementation, ReplicaMap takes an external object as lock for synchronization. In function FsDatasetImpl#FsDatasetImpl(), the object is for synchronization is "this", i.e. FsDatasetImpl: volumeMap = new ReplicaMap(this); and in private FsDatasetImpl#addVolume(), "this" object is used for synchronization as well. ReplicaMap tempVolumeMap = new ReplicaMap(this); I am not sure if we really need so big object FsDatasetImpl for ReplicaMap's synchronization. If it's not necessary, this could reduce lock contention on FsDatasetImpl object and improve performance. Could you please give me some suggestions? Thanks a lot! Fenghua > Use separate lock for ReplicaMap > -------------------------------- > > Key: HDFS-10804 > URL: https://issues.apache.org/jira/browse/HDFS-10804 > Project: Hadoop HDFS > Issue Type: Improvement > Components: hdfs > Affects Versions: 3.0.0-beta1 > Reporter: Fenghua Hu > Assignee: Fenghua Hu > Priority: Minor > Attachments: HDFS-10804-001.patch, HDFS-10804-002.patch > > > In currently implementation, ReplicaMap takes an external lock for > synchronization. > In function FsDatasetImpl#FsDatasetImpl(), the object is for synchronization > is the same lock object used by FsDatasetImpl routines. > and in private FsDatasetImpl#addVolume(), "this" object is used for > synchronization as well. > ReplicaMap tempVolumeMap = new ReplicaMap(datasetLock); > We can potentially eliminate the heavyweight lock for synchronizing > ReplicaMap instances. If it's not necessary, this could reduce lock > contention on the datasetLock object and improve performance. > Could you please give me some suggestions? Thanks a lot! > Fenghua -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org