This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new d7e15f5733 HDDS-10072. Update Container for named RwLock operations
(#5932)
d7e15f5733 is described below
commit d7e15f5733b997bca60d1921192d7497c6500a37
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Jan 9 19:52:08 2024 +0100
HDDS-10072. Update Container for named RwLock operations (#5932)
---
.../container/common/interfaces/Container.java | 33 ++++++++++++++++++----
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/interfaces/Container.java
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/interfaces/Container.java
index 79a92274e7..5fe148d6aa 100644
---
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/interfaces/Container.java
+++
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/interfaces/Container.java
@@ -26,21 +26,18 @@ import java.time.Instant;
import java.util.Map;
import org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos;
-import org.apache.hadoop.hdds.protocol.proto
- .StorageContainerDatanodeProtocolProtos.ContainerReplicaProto;
-import org.apache.hadoop.hdds.scm.container.common.helpers
- .StorageContainerException;
+import
org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.ContainerReplicaProto;
+import
org.apache.hadoop.hdds.scm.container.common.helpers.StorageContainerException;
import org.apache.hadoop.hdfs.util.Canceler;
import org.apache.hadoop.hdfs.util.DataTransferThrottler;
-import org.apache.hadoop.hdfs.util.RwLock;
import org.apache.hadoop.ozone.container.common.impl.ContainerData;
import org.apache.hadoop.ozone.container.common.volume.VolumeSet;
/**
* Interface for Container Operations.
*/
-public interface Container<CONTAINERDATA extends ContainerData> extends RwLock
{
+public interface Container<CONTAINERDATA extends ContainerData> {
/**
* Encapsulates the result of a container scan.
*/
@@ -262,4 +259,28 @@ public interface Container<CONTAINERDATA extends
ContainerData> extends RwLock {
*/
ScanResult scanData(DataTransferThrottler throttler, Canceler canceler)
throws InterruptedException;
+
+ /** Acquire read lock. */
+ void readLock();
+
+ /** Acquire read lock, unless interrupted while waiting. */
+ void readLockInterruptibly() throws InterruptedException;
+
+ /** Release read lock. */
+ void readUnlock();
+
+ /** Check if the current thread holds read lock. */
+ boolean hasReadLock();
+
+ /** Acquire write lock. */
+ void writeLock();
+
+ /** Acquire write lock, unless interrupted while waiting. */
+ void writeLockInterruptibly() throws InterruptedException;
+
+ /** Release write lock. */
+ void writeUnlock();
+
+ /** Check if the current thread holds write lock. */
+ boolean hasWriteLock();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]