diff --git a/protocols/grpc/ctl/src/main/java/org/onosproject/grpc/ctl/GrpcControllerImpl.java b/protocols/grpc/ctl/src/main/java/org/onosproject/grpc/ctl/GrpcControllerImpl.java
index 4362501..464cb85 100644
--- a/protocols/grpc/ctl/src/main/java/org/onosproject/grpc/ctl/GrpcControllerImpl.java
+++ b/protocols/grpc/ctl/src/main/java/org/onosproject/grpc/ctl/GrpcControllerImpl.java
@@ -18,7 +18,7 @@
 
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Maps;
+import com.google.common.util.concurrent.Striped;
 import io.grpc.CallOptions;
 import io.grpc.Channel;
 import io.grpc.ClientCall;
@@ -60,7 +60,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
@@ -86,7 +85,7 @@
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     private Map<GrpcChannelId, ManagedChannel> channels;
-    private final Map<GrpcChannelId, Lock> channelLocks = Maps.newConcurrentMap();
+    private final Striped<Lock> channelLocks = Striped.lock(30);
 
     @Activate
     public void activate() {
@@ -120,7 +119,7 @@
         checkNotNull(channelId);
         checkNotNull(channelBuilder);
 
-        Lock lock = channelLocks.computeIfAbsent(channelId, k -> new ReentrantLock());
+        Lock lock = channelLocks.get(channelId);
         lock.lock();
 
         try {
@@ -156,7 +155,7 @@
     public boolean isChannelOpen(GrpcChannelId channelId) {
         checkNotNull(channelId);
 
-        Lock lock = channelLocks.computeIfAbsent(channelId, k -> new ReentrantLock());
+        Lock lock = channelLocks.get(channelId);
         lock.lock();
 
         try {
@@ -182,7 +181,7 @@
     public void disconnectChannel(GrpcChannelId channelId) {
         checkNotNull(channelId);
 
-        Lock lock = channelLocks.computeIfAbsent(channelId, k -> new ReentrantLock());
+        Lock lock = channelLocks.get(channelId);
         lock.lock();
 
         try {
@@ -201,7 +200,6 @@
             }
 
             channels.remove(channelId);
-            channelLocks.remove(channelId);
         } finally {
             lock.unlock();
         }
@@ -229,7 +227,7 @@
     public Optional<ManagedChannel> getChannel(GrpcChannelId channelId) {
         checkNotNull(channelId);
 
-        Lock lock = channelLocks.computeIfAbsent(channelId, k -> new ReentrantLock());
+        Lock lock = channelLocks.get(channelId);
         lock.lock();
 
         try {
