You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ri...@apache.org on 2022/02/09 07:28:21 UTC

[pinot] 01/01: Revert "Fix regression bug caused by sharing TSerializer across multiple threads (#8160)"

This is an automated email from the ASF dual-hosted git repository.

richardstartin pushed a commit to branch revert-8160-tser-threadsafe
in repository https://gitbox.apache.org/repos/asf/pinot.git

commit e5746b0569bf9076fea893f22a85ac86824dad36
Author: Richard Startin <ri...@startree.ai>
AuthorDate: Wed Feb 9 07:28:05 2022 +0000

    Revert "Fix regression bug caused by sharing TSerializer across multiple threads (#8160)"
    
    This reverts commit e4e5c6db611022bf721c33dc07d073fceac528b6.
---
 .../main/java/org/apache/pinot/core/transport/ServerChannels.java   | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/pinot-core/src/main/java/org/apache/pinot/core/transport/ServerChannels.java b/pinot-core/src/main/java/org/apache/pinot/core/transport/ServerChannels.java
index 2bc06a3..2e6a77c 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/transport/ServerChannels.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/transport/ServerChannels.java
@@ -56,9 +56,7 @@ public class ServerChannels {
   public static final String CHANNEL_LOCK_TIMEOUT_MSG = "Timeout while acquiring channel lock";
   private final QueryRouter _queryRouter;
   private final BrokerMetrics _brokerMetrics;
-  // TSerializer currently is not thread safe, must be put into a ThreadLocal.
-  private final ThreadLocal<TSerializer> _threadLocalTSerializer =
-      ThreadLocal.withInitial(() -> new TSerializer(new TCompactProtocol.Factory()));
+  private final TSerializer _serializer = new TSerializer(new TCompactProtocol.Factory());
   private final ConcurrentHashMap<ServerRoutingInstance, ServerChannel> _serverToChannelMap = new ConcurrentHashMap<>();
   private final EventLoopGroup _eventLoopGroup = new NioEventLoopGroup();
   private final TlsConfig _tlsConfig;
@@ -89,7 +87,7 @@ public class ServerChannels {
   public void sendRequest(String rawTableName, AsyncQueryResponse asyncQueryResponse,
       ServerRoutingInstance serverRoutingInstance, InstanceRequest instanceRequest, long timeoutMs)
       throws Exception {
-    byte[] requestBytes = _threadLocalTSerializer.get().serialize(instanceRequest);
+    byte[] requestBytes = _serializer.serialize(instanceRequest);
     _serverToChannelMap.computeIfAbsent(serverRoutingInstance, ServerChannel::new)
         .sendRequest(rawTableName, asyncQueryResponse, serverRoutingInstance, requestBytes, timeoutMs);
   }

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org