{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":666053650,"defaultBranch":"trunk","name":"kafka","ownerLogin":"msn-tldr","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-07-13T15:44:37.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/42991652?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1709901968.0","currentOid":""},"activityList":{"items":[{"before":"26e5f928ae7c2f39b5571eab0edb05ac522761cb","after":"6742fb4bc84e9c2faded9cc8fdbe027e9ea1e3c4","ref":"refs/heads/kafka_16226_ak_3.6","pushedAt":"2024-03-08T12:51:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"remove conflicts","shortMessageHtmlLink":"remove conflicts"}},{"before":null,"after":"26e5f928ae7c2f39b5571eab0edb05ac522761cb","ref":"refs/heads/kafka_16226_ak_3.6","pushedAt":"2024-03-08T12:46:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"KAFKA-16226; Reduce synchronization between producer threads (#15323)\n\nAs this [JIRA](https://issues.apache.org/jira/browse/KAFKA-16226) explains, there is increased synchronization between application-thread, and the background thread as the background thread started to synchronized methods Metadata.currentLeader() in [original PR](https://github.com/apache/kafka/pull/14384). So this PR does the following changes\n1. Changes background thread, i.e. RecordAccumulator's partitionReady(), and drainBatchesForOneNode(), to not use `Metadata.currentLeader()`. Instead rely on `MetadataCache` that is immutable. So access to it is unsynchronized.\n2. This PR repurposes `MetadataCache` as an immutable snapshot of Metadata. This is a wrapper around public `Cluster`. `MetadataCache`'s API/functionality should be extended for internal client usage Vs public `Cluster`. For example, this PR adds `MetadataCache.leaderEpochFor()`\n3. Rename `MetadataCache` to `MetadataSnapshot` to make it explicit its immutable.\n\n**Note both `Cluster` and `MetadataCache` are not syncronized, hence reduce synchronization from the hot path for high partition counts.**\n\nReviewers: Jason Gustafson ","shortMessageHtmlLink":"KAFKA-16226; Reduce synchronization between producer threads (apache#…"}},{"before":null,"after":"e478cb2000ae33716e01dea6d03e8412d45b8471","ref":"refs/heads/kafka_16226_ak_3.7","pushedAt":"2024-03-07T21:45:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"KAFKA-16226; Reduce synchronization between producer threads (#15323)\n\nAs this [JIRA](https://issues.apache.org/jira/browse/KAFKA-16226) explains, there is increased synchronization between application-thread, and the background thread as the background thread started to synchronized methods Metadata.currentLeader() in [original PR](https://github.com/apache/kafka/pull/14384). So this PR does the following changes\r\n1. Changes background thread, i.e. RecordAccumulator's partitionReady(), and drainBatchesForOneNode(), to not use `Metadata.currentLeader()`. Instead rely on `MetadataCache` that is immutable. So access to it is unsynchronized.\r\n2. This PR repurposes `MetadataCache` as an immutable snapshot of Metadata. This is a wrapper around public `Cluster`. `MetadataCache`'s API/functionality should be extended for internal client usage Vs public `Cluster`. For example, this PR adds `MetadataCache.leaderEpochFor()`\r\n3. Rename `MetadataCache` to `MetadataSnapshot` to make it explicit its immutable.\r\n\r\n**Note both `Cluster` and `MetadataCache` are not syncronized, hence reduce synchronization from the hot path for high partition counts.**\r\n\r\nReviewers: Jason Gustafson ","shortMessageHtmlLink":"KAFKA-16226; Reduce synchronization between producer threads (apache#…"}},{"before":null,"after":"0760ca5e942eb67407b9d3a3c46620c5a3e97140","ref":"refs/heads/3.7","pushedAt":"2024-03-07T21:24:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"KAFKA-16025: Fix orphaned locks when rebalancing and store cleanup race on unassigned task directories (#15088)\n\nKAFKA-16025 describes the race condition sequence in detail. When this occurs, it can cause the impacted task's initializing to block indefinitely, blocking progress on the impacted task, and any other task assigned to the same stream thread. The fix I have implemented is pretty simple, simply re-check whether a directory is still empty after locking it during the start of rebalancing, and if it is, unlock it immediately. This preserves the idempotency of the method when it coincides with parallel state store cleanup executions.\r\n\r\nReviewers: Anna Sophie Blee-Goldman ","shortMessageHtmlLink":"KAFKA-16025: Fix orphaned locks when rebalancing and store cleanup ra…"}},{"before":"2185004083ebb8f0b3a443132b5a33908c459c65","after":"5dd382ccbd1fada55cc44a5223dcae56e0e8811d","ref":"refs/heads/trunk","pushedAt":"2024-03-07T21:12:45.000Z","pushType":"push","commitsCount":55,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"MINOR: Use INFO logging for tools tests (#15487)\n\nReviewers: Luke Chen , Chia-Ping Tsai ","shortMessageHtmlLink":"MINOR: Use INFO logging for tools tests (apache#15487)"}},{"before":"c19195074e9fbed4d46fa2c2c1f0d37685b6b1d7","after":"ca7ac065a91ac9c15ae5f9b09b3f336c1753b11d","ref":"refs/heads/kafka_16226_add_concurrent_metadta_test","pushedAt":"2024-02-26T12:47:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"make sure executor service is shutdown","shortMessageHtmlLink":"make sure executor service is shutdown"}},{"before":"e4f899714d36b53ec670e914243454ba478c67d4","after":"c19195074e9fbed4d46fa2c2c1f0d37685b6b1d7","ref":"refs/heads/kafka_16226_add_concurrent_metadta_test","pushedAt":"2024-02-23T11:29:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"add co-author\n\nCo-authored-by: Zhifeng Chen ","shortMessageHtmlLink":"add co-author"}},{"before":"ddc5d1dc349d98dc430fb1f67a6f4ca108dc00e4","after":"2185004083ebb8f0b3a443132b5a33908c459c65","ref":"refs/heads/trunk","pushedAt":"2024-02-23T11:28:44.000Z","pushType":"push","commitsCount":27,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"KAFKA-16251: Fix for not sending heartbeat while fenced (#15392)\n\nFix to ensure that a consumer that has been fenced by the coordinator stops sending heartbeats while it is on the FENCED state releasing its assignment (waiting for the onPartitionsLost callback to complete). Once the callback completes, the member transitions to JOINING and it's then when it should resume sending heartbeats again.\r\n\r\nReviewers: Lucas Brutschy ","shortMessageHtmlLink":"KAFKA-16251: Fix for not sending heartbeat while fenced (apache#15392)"}},{"before":"8af154c583fb760b0bc2098d30a9efe816fbba53","after":"e4f899714d36b53ec670e914243454ba478c67d4","ref":"refs/heads/kafka_16226_add_concurrent_metadta_test","pushedAt":"2024-02-22T11:37:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"add co-author\n\nCo-authored-by: Zhifeng Chen ","shortMessageHtmlLink":"add co-author"}},{"before":"42aea2d7231cdd9dd89256ec84d37ef9b5482327","after":"8af154c583fb760b0bc2098d30a9efe816fbba53","ref":"refs/heads/kafka_16226_add_concurrent_metadta_test","pushedAt":"2024-02-19T12:47:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"rename","shortMessageHtmlLink":"rename"}},{"before":null,"after":"42aea2d7231cdd9dd89256ec84d37ef9b5482327","ref":"refs/heads/kafka_16226_add_concurrent_metadta_test","pushedAt":"2024-02-16T18:26:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"KAFKA-16226 Add test for concurrently updatingMetadata and fetching snapshot/cluster","shortMessageHtmlLink":"KAFKA-16226 Add test for concurrently updatingMetadata and fetching s…"}},{"before":"d24abe0edebad37e554adea47408c3063037f744","after":"ddc5d1dc349d98dc430fb1f67a6f4ca108dc00e4","ref":"refs/heads/trunk","pushedAt":"2024-02-16T12:32:59.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"MINOR: Added ACLs authorizer change during migration (#15333)\n\nThis trivial PR makes clear when it's the right time to switch from AclAuthorizer to StandardAuthorizer during the migration process.\r\n\r\nReviewers: Luke Chen ","shortMessageHtmlLink":"MINOR: Added ACLs authorizer change during migration (apache#15333)"}},{"before":"092bee8f076a401f02ac2666145e65107fcc8cb4","after":"804c62999ccd0b1642e12067eade67c7cf08ba4d","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-14T17:51:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"remove synchronization when simply reading from snapshot","shortMessageHtmlLink":"remove synchronization when simply reading from snapshot"}},{"before":"ec4a8aaadbc95cfcf0de2f5e1385373f095298ca","after":"d24abe0edebad37e554adea47408c3063037f744","ref":"refs/heads/trunk","pushedAt":"2024-02-14T12:31:36.000Z","pushType":"push","commitsCount":16,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"MINOR: Refactor GroupMetadataManagerTest (#15348)\n\n`GroupMetadataManagerTest` class got a little under control. We have too many things defined in it. As a first steps, this patch extracts all the inner classes. It also extracts all the helper methods. However, the logic is not changed at all.\r\n\r\nReviewers: Omnia Ibrahim , Justine Olshan ","shortMessageHtmlLink":"MINOR: Refactor GroupMetadataManagerTest (apache#15348)"}},{"before":"7e50b1f8b52f4c78befd19cc395c34f54f69278c","after":"092bee8f076a401f02ac2666145e65107fcc8cb4","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-13T18:09:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"fetch() should be unsynchronized too","shortMessageHtmlLink":"fetch() should be unsynchronized too"}},{"before":"5496797d766c07128e12be1fbc8c641efffed0fb","after":"7e50b1f8b52f4c78befd19cc395c34f54f69278c","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-13T12:21:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"further rename MetadataCache -> MetadataSnapshot","shortMessageHtmlLink":"further rename MetadataCache -> MetadataSnapshot"}},{"before":"0e648398f9c8559c2b2d0314d1347463327f3fbe","after":"5496797d766c07128e12be1fbc8c641efffed0fb","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-13T12:13:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"Rename MetadataCache, make cache volatile, add javadocs","shortMessageHtmlLink":"Rename MetadataCache, make cache volatile, add javadocs"}},{"before":"a75ab88d680f91fc80ed19ca30b07b3e9f16fc2e","after":"0e648398f9c8559c2b2d0314d1347463327f3fbe","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-12T19:05:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"Optional to OptionalInt","shortMessageHtmlLink":"Optional<Integer> to OptionalInt"}},{"before":"f10131341ba0b2d7e4f959b0760d853d31369e5c","after":"a75ab88d680f91fc80ed19ca30b07b3e9f16fc2e","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-09T17:48:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"fix method name","shortMessageHtmlLink":"fix method name"}},{"before":"3c20d4e54a4efcd83859dcf6bda4eaa015f6c8ee","after":"ec4a8aaadbc95cfcf0de2f5e1385373f095298ca","ref":"refs/heads/trunk","pushedAt":"2024-02-09T17:47:25.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"[MINOR] Fix docker image build by introducing bash (#15347)\n\nThe base eclipse-temuring:21-jre-alpine image got modified and had `bash` removed from it. This broke our build, since downstream steps utilizing bash scripts depended on it. This patch explicitly installs bash","shortMessageHtmlLink":"[MINOR] Fix docker image build by introducing bash (apache#15347)"}},{"before":"43025e525fa46ed7c2ee3033cffac2e16dca3e53","after":"f10131341ba0b2d7e4f959b0760d853d31369e5c","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-09T17:43:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"fix method name","shortMessageHtmlLink":"fix method name"}},{"before":"406770d67c1b7f742bdf376b3ff95fb3238118d8","after":"43025e525fa46ed7c2ee3033cffac2e16dca3e53","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-09T17:39:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"fix cluster ctor","shortMessageHtmlLink":"fix cluster ctor"}},{"before":"bac7504408413adef34e6b960563747b7f1cce1c","after":"406770d67c1b7f742bdf376b3ff95fb3238118d8","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-09T17:37:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"clean up comments","shortMessageHtmlLink":"clean up comments"}},{"before":"cb9bf7d77c8e51b35b84f43552b319049b1dab1a","after":"bac7504408413adef34e6b960563747b7f1cce1c","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-09T17:28:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"Using MetadataCache as immutable cache instead of InternalCluster","shortMessageHtmlLink":"Using MetadataCache as immutable cache instead of InternalCluster"}},{"before":"1050d2fd0589a9c1bdbf6818a67a1cb4a96accc3","after":"cb9bf7d77c8e51b35b84f43552b319049b1dab1a","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-09T12:49:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"Make MetadataCache immutable","shortMessageHtmlLink":"Make MetadataCache immutable"}},{"before":"857c971b3c7e566f59fcc4e375ae010d6bd92330","after":"1050d2fd0589a9c1bdbf6818a67a1cb4a96accc3","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-08T15:21:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"actually add file InternalCluster.java to git","shortMessageHtmlLink":"actually add file InternalCluster.java to git"}},{"before":"21f504378a7877d18e71af2eadfff7af3a352abf","after":"857c971b3c7e566f59fcc4e375ae010d6bd92330","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-08T15:20:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"Introduce InternalCluster\n\nRemove no longer needed changes to public classes","shortMessageHtmlLink":"Introduce InternalCluster"}},{"before":"4cc4f1e05f133c9c0512408df91ed5b4e528a543","after":"21f504378a7877d18e71af2eadfff7af3a352abf","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-07T11:59:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"remove Cluster.leaderEpochFor","shortMessageHtmlLink":"remove Cluster.leaderEpochFor"}},{"before":"ca32a8fd077fc41b4aae5449b55f523e4df8afd7","after":"4cc4f1e05f133c9c0512408df91ed5b4e528a543","ref":"refs/heads/kafka_15415_reduce_contention","pushedAt":"2024-02-07T11:44:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"improve edge case checking in ProducerBatch.maybeUpdateLeaderEpoch\n\nProducerBatch.maybeUpdateLeaderEpoch should only update leader-epoch is new one is greater","shortMessageHtmlLink":"improve edge case checking in ProducerBatch.maybeUpdateLeaderEpoch"}},{"before":"728666f3ad61e9bd49719ee7220bb2dd946fcb55","after":"d6b4e3b63d4f9fd1997889efcd4e5fc939baab2a","ref":"refs/heads/3.6","pushedAt":"2024-02-06T16:01:14.000Z","pushType":"push","commitsCount":59,"pusher":{"login":"msn-tldr","name":"Mayank Shekhar Narula","path":"/msn-tldr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/42991652?s=80&v=4"},"commit":{"message":"Update jetty to 9.4.53.v20231009 for CVE-2023-36478 (#15291)\n\nSimilar to #14877 but for 3.6\r\n\r\nReviewer: Bruno Cadonna ","shortMessageHtmlLink":"Update jetty to 9.4.53.v20231009 for CVE-2023-36478 (apache#15291)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMy0wOFQxMjo1MTowNS4wMDAwMDBazwAAAAQQJnOs","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMi0wNlQxNjowMToxNC4wMDAwMDBazwAAAAPzicLG"}},"title":"Activity · msn-tldr/kafka"}