Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Reviewed
Description
1、Use lockManager to maintain two level lock for FsDataSetImpl.
The simple lock model like this.Parts of implemented as follows
- As for finalizeReplica(),append(),createRbw()....First get BlockPoolLock read lock,and then get BlockPoolLock-volume-lock write lock.
- As for getStoredBlock(),getMetaDataInputStream()....First get BlockPoolLock read lock,and the then get BlockPoolLock-volume-lock read lock.
- As for deepCopyReplica(),getBlockReports() get the BlockPoolLock read lock.
- As for delete hold the BlockPoolLock write lock.
2、Make LightWeightResizableGSet become thread safe.It not become performance bottleneck if we make it thread safe.We can reduce lock grain size for ReplicaMap when make LightWeightResizableGSet thread safe.
Attachments
Issue Links
- is related to
-
HDFS-15180 DataNode FsDatasetImpl Fine-Grained Locking via BlockPool.
- Resolved
- links to