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