{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":230089869,"defaultBranch":"master","name":"pulsar-client-go","ownerLogin":"streamnative","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2019-12-25T11:01:34.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/44651383?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1697060771.0","currentOid":""},"activityList":{"items":[{"before":"ade1f9c499efd5fa1b34c074ecebb6d466263a41","after":null,"ref":"refs/heads/dependabot/go_modules/golang.org/x/net-0.7.0","pushedAt":"2023-10-11T21:46:11.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"ed8ab884402881cb5bc998c21068b566518d50ff","ref":"refs/heads/dependabot/go_modules/golang.org/x/net-0.17.0","pushedAt":"2023-10-11T21:46:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump golang.org/x/net from 0.0.0-20220225172249-27dd8689420f to 0.17.0\n\nBumps [golang.org/x/net](https://github.com/golang/net) from 0.0.0-20220225172249-27dd8689420f to 0.17.0.\n- [Commits](https://github.com/golang/net/commits/v0.17.0)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/net\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump golang.org/x/net from 0.0.0-20220225172249-27dd8689420f to 0.17.0"}},{"before":"6babcf6b376a6a5f0940b5e40111e36e53f4eab0","after":null,"ref":"refs/heads/ewright/oauth2-config-check","pushedAt":"2023-09-02T00:21:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"tisonkun","name":"tison","path":"/tisonkun","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/18818196?s=80&v=4"}},{"before":"6acecf06aee5ab987b5e527d24a2aee7f82f3598","after":"7f91b2bcd798e1dc6ff27b10a557c8ee5440a83a","ref":"refs/heads/master","pushedAt":"2023-06-16T10:03:28.859Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[Issue 1027][producer] fix: split sendRequest and make reconnectToBroker and other operate in the same coroutine (#1029)","shortMessageHtmlLink":"[Issue 1027][producer] fix: split sendRequest and make reconnectToBro…"}},{"before":"5a1824b4e39d6802551c8e1a6e7956d972af62a6","after":"6acecf06aee5ab987b5e527d24a2aee7f82f3598","ref":"refs/heads/master","pushedAt":"2023-06-16T06:02:59.288Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Fix broken master by upgrading JRE to 17 (#1030)","shortMessageHtmlLink":"Fix broken master by upgrading JRE to 17 (apache#1030)"}},{"before":"811030457a4fff8c8ea682ffbe82ccc28a8e184d","after":"5a1824b4e39d6802551c8e1a6e7956d972af62a6","ref":"refs/heads/master","pushedAt":"2023-06-15T14:02:43.217Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[Issue 468] Add Support for NonDurable subscriptions (#992)","shortMessageHtmlLink":"[Issue 468] Add Support for NonDurable subscriptions (apache#992)"}},{"before":"4c8246c78c0678a72b57f3e171c1a4e6cff31450","after":"811030457a4fff8c8ea682ffbe82ccc28a8e184d","ref":"refs/heads/master","pushedAt":"2023-06-12T13:04:20.543Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"fix: Delete LICENSE-go-rate.txt (#1028)\n\nThis fixes https://github.com/apache/pulsar-client-go/issues/1023.\r\n\r\nThis is a follow-up to #952.","shortMessageHtmlLink":"fix: Delete LICENSE-go-rate.txt (apache#1028)"}},{"before":"2eb340511dbf0602f7c561a1d86e179098f4662b","after":"4c8246c78c0678a72b57f3e171c1a4e6cff31450","ref":"refs/heads/master","pushedAt":"2023-06-07T16:02:46.700Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"chore: improve logs on failTimeoutMessages (#1025)","shortMessageHtmlLink":"chore: improve logs on failTimeoutMessages (apache#1025)"}},{"before":"27e36250f35094b203483c946bc4406c6119ce62","after":"2eb340511dbf0602f7c561a1d86e179098f4662b","ref":"refs/heads/master","pushedAt":"2023-05-31T07:03:03.825Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"fix: use maphash instead of crypto/sha256 for hash function of hashmap in Schema.hash() (#1022)\n\n- replace sha256 hash function with hash/maphash\r\n- use uint64 (expected from maphash) as schema cache hashmap key\r\n- init static seed as it is random generated","shortMessageHtmlLink":"fix: use maphash instead of crypto/sha256 for hash function of hashma…"}},{"before":"3f4a18b7e8a12c807769b1f673ac09d7f1c900df","after":"27e36250f35094b203483c946bc4406c6119ce62","ref":"refs/heads/master","pushedAt":"2023-05-17T11:04:56.557Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[fix] Fix event time not being set when batching is disabled (#1015)\n\nFixes #1013\r\n\r\n### Motivation\r\n\r\nThe event time is not set when batching is disabled. The event time will be lost.\r\nThis is a regression bug in 0.10.0.\r\n\r\n### Modifications\r\n\r\n* Set the event time when sending single message","shortMessageHtmlLink":"[fix] Fix event time not being set when batching is disabled (apache#…"}},{"before":"3367cc0cf877faadce0671c412ec827af7d27a16","after":"3f4a18b7e8a12c807769b1f673ac09d7f1c900df","ref":"refs/heads/master","pushedAt":"2023-05-12T08:02:38.447Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[fix] Fix flaky test in `negative_acks_tracker_test.go` (#1017)","shortMessageHtmlLink":"[fix] Fix flaky test in negative_acks_tracker_test.go (apache#1017)"}},{"before":"d51e2920e705852143be408083541855c52b222e","after":"3367cc0cf877faadce0671c412ec827af7d27a16","ref":"refs/heads/master","pushedAt":"2023-05-11T10:02:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[fix][Flaky Test] Fix flaky test TestMaxPendingChunkMessages() (#1003)\n\n### Motivation\r\n\r\nOld TestMaxPendingChunkMessages() uses the concurrent message publish to make the consumer discard unavailable chunk. And it's flaky.\r\n\r\nSo the `sendSingeChunk()` is introduced to manual create scenarios where old chunks should be discarded.\r\n\r\n### Modifications\r\n\r\n- Fix `TestMaxPendingChunkMessages()`","shortMessageHtmlLink":"[fix][Flaky Test] Fix flaky test TestMaxPendingChunkMessages() (apach…"}},{"before":"2437caa14fb0e2f4ab34eaee08e9a83612244d0f","after":"d51e2920e705852143be408083541855c52b222e","ref":"refs/heads/master","pushedAt":"2023-05-10T09:02:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[Doc] Add links to client docs and feature matrix in README.md (#1014)\n\n### Motivation\r\n\r\nThe new [client feature matrix](https://pulsar.apache.org/client-feature-matrix/) page has been live, so this PR makes the required updates on the doc side.\r\n\r\n### Modifications\r\n\r\nAdd a paragraph to notify both users and contributors about the new client feature matrix.","shortMessageHtmlLink":"[Doc] Add links to client docs and feature matrix in README.md (apach…"}},{"before":"fc4f2892a2f4af2c13485adf77ae6fc31a65910f","after":"2437caa14fb0e2f4ab34eaee08e9a83612244d0f","ref":"refs/heads/master","pushedAt":"2023-05-06T02:13:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[feat][txn]Implement transactional consumer/producer API (#1002)\n\n* [feat][txn]Implement transactional consumer/producer API\r\n\r\n* rollback\r\n\r\n* fix test\r\n\r\n* optimize code\r\n\r\n* state check\r\n\r\n* fix callback\r\n\r\n* golangci-lint\r\n\r\n* add more test","shortMessageHtmlLink":"[feat][txn]Implement transactional consumer/producer API (apache#1002)"}},{"before":"55f0c7cfda647b5ed0c19882790e92418b8bd651","after":"fc4f2892a2f4af2c13485adf77ae6fc31a65910f","ref":"refs/heads/master","pushedAt":"2023-04-23T16:02:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[feat][schema] Support the schema type ProtoNativeSchema (#1006)\n\n* Support the ProtoNativeSchema\r\n\r\n* fix\r\n\r\n* fix\r\n\r\n* fix\r\n\r\n* fix\r\n\r\n* fix style\r\n\r\n* fix license header\r\n\r\n* address comments\r\n\r\n* fix\r\n\r\n* fix\r\n\r\n* Fix typo in logs\r\n\r\n---------\r\n\r\nCo-authored-by: Yunze Xu ","shortMessageHtmlLink":"[feat][schema] Support the schema type ProtoNativeSchema (apache#1006)"}},{"before":"2154d70c0fd9c215b9e494046e094f665396c983","after":"55f0c7cfda647b5ed0c19882790e92418b8bd651","ref":"refs/heads/master","pushedAt":"2023-04-14T10:03:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[improve][ci] try to fix bot workflow (#910)","shortMessageHtmlLink":"[improve][ci] try to fix bot workflow (apache#910)"}},{"before":"16b1fa34339843dbea5b9e57c7b2e51d3ded11a0","after":"2154d70c0fd9c215b9e494046e094f665396c983","ref":"refs/heads/master","pushedAt":"2023-04-14T08:03:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Fix reconnection backoff logic (#1008)\n\nSigned-off-by: xiaolongran ","shortMessageHtmlLink":"Fix reconnection backoff logic (apache#1008)"}},{"before":"4836eacf3319866b00b93fc634d96a785f6e7170","after":"16b1fa34339843dbea5b9e57c7b2e51d3ded11a0","ref":"refs/heads/master","pushedAt":"2023-04-10T16:03:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"ci: stablize golangci-lint task (#1007)\n\nModifications\r\n\r\n1. Replace the usage of golangci-lint action with barely bin commands.\r\n2. Support run with the specified version with one command `make lint` and store the binutil project-wise.\r\n\r\nSigned-off-by: tison ","shortMessageHtmlLink":"ci: stablize golangci-lint task (apache#1007)"}},{"before":"732f3d093e728c67f0a34382666f0daef25efdca","after":"4836eacf3319866b00b93fc634d96a785f6e7170","ref":"refs/heads/master","pushedAt":"2023-04-05T03:02:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[Doc] Fix missing link in the release process (#1000)","shortMessageHtmlLink":"[Doc] Fix missing link in the release process (apache#1000)"}},{"before":"09dea663222505d1c86f8f0ae24f95bc666f11b1","after":"732f3d093e728c67f0a34382666f0daef25efdca","ref":"refs/heads/master","pushedAt":"2023-04-03T06:03:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Add 0.10.0 change log (#997)\n\n* Add 0.10.0 change log\r\n\r\n* Apply suggestions from code review\r\n\r\nCo-authored-by: Jun Ma <60642177+momo-jun@users.noreply.github.com>\r\n\r\n* Refine changelog\r\n\r\n---------\r\n\r\nCo-authored-by: Jun Ma <60642177+momo-jun@users.noreply.github.com>","shortMessageHtmlLink":"Add 0.10.0 change log (apache#997)"}},{"before":"3954cef8a6661ce010e4e80697b01ace328206fa","after":"9cc6ee06286501061d474acfb6233e26db588479","ref":"refs/heads/branch-0.10.0","pushedAt":"2023-04-03T06:03:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Add 0.10.0 change log (#997)\n\n* Add 0.10.0 change log\n\n* Apply suggestions from code review\n\nCo-authored-by: Jun Ma <60642177+momo-jun@users.noreply.github.com>\n\n* Refine changelog\n\n---------\n\nCo-authored-by: Jun Ma <60642177+momo-jun@users.noreply.github.com>\n(cherry picked from commit 732f3d093e728c67f0a34382666f0daef25efdca)","shortMessageHtmlLink":"Add 0.10.0 change log (apache#997)"}},{"before":null,"after":"3954cef8a6661ce010e4e80697b01ace328206fa","ref":"refs/heads/branch-0.10.0","pushedAt":"2023-03-27T12:03:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Release 0.10.0","shortMessageHtmlLink":"Release 0.10.0"}},{"before":"20291f5cf5d5ea706e6a913c5d9eb303fedaef0d","after":"09dea663222505d1c86f8f0ae24f95bc666f11b1","ref":"refs/heads/master","pushedAt":"2023-03-24T10:02:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[feat][txn]Implement transactionImpl (#984)\n\nMaster Issue:https://github.com/apache/pulsar-client-go/issues/932\r\n### Motivation\r\nImplement transaction coordinator client.\r\n### Modifications\r\n1. Implement transaction coordinator\r\n2. implement transactionImpl\r\n3. Implement transaction in producer and consumer API","shortMessageHtmlLink":"[feat][txn]Implement transactionImpl (apache#984)"}},{"before":"6c3ee77e453a028f4d2dadbb41c357d90aa8d813","after":"20291f5cf5d5ea706e6a913c5d9eb303fedaef0d","ref":"refs/heads/master","pushedAt":"2023-03-23T09:03:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[feat] Support consumer client memory limit (#991)\n\n* feat: support consumer memory limit\r\n\r\n* fix: avoid data race\r\n\r\n* fix: shrinking triggered by memlimit\r\n\r\n* fix: fix flaky test\r\n\r\n* fix: fix flaky test\r\n\r\n* fix: modify trigger threshold\r\n\r\n* fix: fix memory limit controller unit test\r\n\r\n* fix: fix setRunning\r\n\r\n* fix: fix TestRegisterTrigger and TestMultiConsumerMemoryLimit","shortMessageHtmlLink":"[feat] Support consumer client memory limit (apache#991)"}},{"before":"04ad521e6d061768ff02ac9bf024932d45b2bd94","after":"6c3ee77e453a028f4d2dadbb41c357d90aa8d813","ref":"refs/heads/master","pushedAt":"2023-03-22T03:03:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"fix: fix retryAssert (#996)","shortMessageHtmlLink":"fix: fix retryAssert (apache#996)"}},{"before":"b8563cd809027ba85ce66c8c75621243e969864e","after":"04ad521e6d061768ff02ac9bf024932d45b2bd94","ref":"refs/heads/master","pushedAt":"2023-03-20T15:03:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Fix batched messages not ACKed correctly when batch index ACK is disabled (#994)\n\n* Fix batched messages not ACKed correctly when batch index ACK is disabled\r\n\r\nFixes https://github.com/apache/pulsar-client-go/issues/993\r\n\r\n### Motivation\r\n\r\nWhen batch index ACK is disabled, if N messages in a batch are\r\nacknowledged, currently only the batched message ID of the last message\r\nwill be acknowledged. This behavior is wrong because we need to\r\nacknowledge the whole batch.\r\n\r\n### Modifications\r\n\r\n- Create a `messageID` instance to ACK for this case\r\n- Add `TestConsumerBatchIndexAckDisabled` to cover this case\r\n\r\n* Fix ackRequest error\r\n\r\n* Fix wrong received msg id\r\n\r\n* Add comments","shortMessageHtmlLink":"Fix batched messages not ACKed correctly when batch index ACK is disa…"}},{"before":"bcbac9f2ae5c82c6b995cbfb8092f2a96c3aeb14","after":"b8563cd809027ba85ce66c8c75621243e969864e","ref":"refs/heads/master","pushedAt":"2023-03-15T08:02:54.826Z","pushType":"push","commitsCount":2,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[feat]: Support auto scaled consumer receiver queue (#976)\n\n* feat: support auto scaled receiver queue","shortMessageHtmlLink":"[feat]: Support auto scaled consumer receiver queue (apache#976)"}},{"before":"d782f147479d10b33f64a51e15be829f427d1c6e","after":"59decc34fee3691c0b47eb619d98c76d52ff0084","ref":"refs/heads/dependabot/go_modules/golang.org/x/text-0.3.8","pushedAt":"2023-03-13T03:13:47.988Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"Bump golang.org/x/text from 0.3.7 to 0.3.8\n\nBumps [golang.org/x/text](https://github.com/golang/text) from 0.3.7 to 0.3.8.\n- [Release notes](https://github.com/golang/text/releases)\n- [Commits](https://github.com/golang/text/compare/v0.3.7...v0.3.8)\n\n---\nupdated-dependencies:\n- dependency-name: golang.org/x/text\n dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"Bump golang.org/x/text from 0.3.7 to 0.3.8"}},{"before":"352c463194916cab7772c0729c9cdac14404e8bd","after":"bcbac9f2ae5c82c6b995cbfb8092f2a96c3aeb14","ref":"refs/heads/master","pushedAt":"2023-03-13T03:02:55.447Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"[perf]: More precise producer rate limiter (#989)\n\n* perf: more accurate producer rate limiter\r\n\r\n* perf: more accurate producer rate limiter","shortMessageHtmlLink":"[perf]: More precise producer rate limiter (apache#989)"}},{"before":"e269c42887c09c35d3f2cdcb4bc5a1699ccf2711","after":"352c463194916cab7772c0729c9cdac14404e8bd","ref":"refs/heads/master","pushedAt":"2023-03-10T02:30:08.832Z","pushType":"push","commitsCount":1,"pusher":{"login":"streamnativebot","name":"StreamNative Bot","path":"/streamnativebot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44651360?s=80&v=4"},"commit":{"message":"Optimize batch index ACK performance (#988)\n\n### Motivation\r\n\r\nCurrently, when `EnableBatchIndexAck` is true, the ACK performance is\r\nvery poor. There are two main reasons:\r\n1. Acknowledgment by list is not supported. It means that even N\r\n MessageIDs are grouped, there are still N ACK requests to send.\r\n2. The implementation of ACK grouping tracker is wrong. Give a batch\r\n that has N messages, when batch index ACK is enabled, each MessageID\r\n is cached. However, after all these N MessageIDs arrived, the current\r\n implementation does not clear them.\r\n\r\n### Modifications\r\n- Add a `func(id []*pb.MessageIdData)` to the ACK grouping tracker. When\r\n flushing individual ACKs, construct the slice and wrap the slice to\r\n `CommandAck` directly.\r\n- Refactor the implementation of the ACK grouping tracker:\r\n - Do not save each MessageID instance, instead, save the ledger id and\r\n the entry id as the key of `pendingAcks`.\r\n - Release the mutex before calling ACK functions\r\n- Add `TestTrackerPendingAcks` to verify the list of MessageIDs to ACK.\r\n\r\nAfter this change, the ACK order cannot be guaranteed, sort the\r\nacknowledged MessageIDs in the `ack_grouping_tracker_test.go`.","shortMessageHtmlLink":"Optimize batch index ACK performance (apache#988)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADlP9FLQA","startCursor":null,"endCursor":null}},"title":"Activity · streamnative/pulsar-client-go"}