lhotari commented on code in PR #21107:
URL: https://github.com/apache/pulsar/pull/21107#discussion_r1313198384


##########
pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/ConcurrentLongLongPairHashMap.java:
##########
@@ -322,15 +324,15 @@ private static final class Section extends StampedLock {
         LongPair get(long key1, long key2, int keyHash) {
             long stamp = tryOptimisticRead();
             boolean acquiredLock = false;
-            int bucket = signSafeMod(keyHash, capacity);
+            int bucketIndex = signSafeMod(keyHash, capacity) * ITEM_SIZE;

Review Comment:
   The problem with the old code is that it is cryptic. In the original code, 
`signSafeMod` function's name is misleading. In the cases where the item takes 
2 or 4 elements, there's a bitwise shift to left to multiply by 2 (`<< 1`) or 4 
(`<< 2`), directly in the `signSafeMod` function. It's bad from maintainability 
perspective to have functions with names that don't match the implementation. I 
doubt that using bitwise operations to optimize the speed of execution is 
worthwhile in Java code. It should be left to the compiler to do such 
optimizations.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to