[ 
https://issues.apache.org/jira/browse/HDDS-1672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bharat Viswanadham updated HDDS-1672:
-------------------------------------
    Description: 
Currently after acquiring volume lock, we cannot acquire user lock. 

This is causing an issue in Volume request implementation, 
acquire/release/reacquire volume lock.

 

Case of Delete Volume Request: 
 # Acquire volume lock.
 # Get Volume Info from DB
 # Release Volume lock. (We are releasing the lock, because while acquiring 
volume lock, we cannot acquire user lock0
 # Get owner from volume Info read from DB
 # Acquire owner lock
 # Acquire volume lock
 # Do delete logic
 # release volume lock
 # release user lock

 

We can avoid this acquire/release/reacquire lock issue by making volume lock as 
low weight. 

 

In this way, the above deleteVolume request will change as below
 # Acquire volume lock
 # Get Volume Info from DB
 # Get owner from volume Info read from DB
 # Acquire owner lock
 # Do delete logic
 # release owner lock
 # release volume lock. 

Same issue is seen with SetOwner for Volume request also.

During HDDS-1620 [~arp] brought up this issue. 

I am proposing the above solution to solve this issue. Any other 
idea/suggestions are welcome.

This also resolves a bug in setOwner for Volume request.

  was:
Currently after acquiring volume lock, we cannot acquire user lock. 

This is causing an issue in Volume request implementation, 
acquire/release/reacquire volume lock.

 

Case of Delete Volume Request: 
 # Acquire volume lock.
 # Get Volume Info from DB
 # Release Volume lock. (We are releasing the lock, because while acquiring 
volume lock, we cannot acquire user lock0
 # Get owner from volume Info read from DB
 # Acquire owner lock
 # Acquire volume lock
 # Do delete logic
 # release volume lock
 # release user lock

 

We can avoid this acquire/release/reacquire lock issue by making volume lock as 
low weight. 

 

In this way, the above deleteVolume request will change as below
 # Acquire volume lock
 # Get Volume Info from DB
 # Get owner from volume Info read from DB
 # Acquire owner lock
 # Do delete logic
 # release owner lock
 # release volume lock. 

Same issue is seen with SetOwner for Volume request also.

During HDDS-1620 [~arp] brought up this issue. 

I am proposing above solution to solve this issue.


> OzoneManager Lock change the volumeLock weight to 0
> ---------------------------------------------------
>
>                 Key: HDDS-1672
>                 URL: https://issues.apache.org/jira/browse/HDDS-1672
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>            Reporter: Bharat Viswanadham
>            Assignee: Bharat Viswanadham
>            Priority: Major
>
> Currently after acquiring volume lock, we cannot acquire user lock. 
> This is causing an issue in Volume request implementation, 
> acquire/release/reacquire volume lock.
>  
> Case of Delete Volume Request: 
>  # Acquire volume lock.
>  # Get Volume Info from DB
>  # Release Volume lock. (We are releasing the lock, because while acquiring 
> volume lock, we cannot acquire user lock0
>  # Get owner from volume Info read from DB
>  # Acquire owner lock
>  # Acquire volume lock
>  # Do delete logic
>  # release volume lock
>  # release user lock
>  
> We can avoid this acquire/release/reacquire lock issue by making volume lock 
> as low weight. 
>  
> In this way, the above deleteVolume request will change as below
>  # Acquire volume lock
>  # Get Volume Info from DB
>  # Get owner from volume Info read from DB
>  # Acquire owner lock
>  # Do delete logic
>  # release owner lock
>  # release volume lock. 
> Same issue is seen with SetOwner for Volume request also.
> During HDDS-1620 [~arp] brought up this issue. 
> I am proposing the above solution to solve this issue. Any other 
> idea/suggestions are welcome.
> This also resolves a bug in setOwner for Volume request.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to