{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":349172057,"defaultBranch":"main","name":"venice","ownerLogin":"linkedin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-03-18T18:04:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/357098?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717705928.0","currentOid":""},"activityList":{"items":[{"before":"43ba140e1ec3cdf97c3ca87d8b027d2d1e03b4a4","after":"4fa78e9980ab5165481521fb3ff79eba06e28508","ref":"refs/heads/javadoc","pushedAt":"2024-06-06T19:47:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@43ba140e1ec3cdf97c3ca87d8b027d2d1e03b4a4 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ 43ba140 🚀"}},{"before":"ad35b0a849f6aef1f0d224499960f90f1d0e49b2","after":"43ba140e1ec3cdf97c3ca87d8b027d2d1e03b4a4","ref":"refs/heads/javadoc","pushedAt":"2024-06-06T19:44:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[dvc][server][vpj][producer][controller] Refactored VeniceWriter's close (#1014)\n\nThe endAllSegments function will now write to all segments in parallel,\r\nand wait once at the end, rather than block for each one sequentially.\r\n\r\nThe close function now honors the venice.writer.close.timeout.ms config\r\nstrictly. Previously, it could wait longer than this during close.\r\n\r\nDeleted the following unused config from the VeniceWriter:\r\nvenice.writer.sleep.time.ms.when.topic.missing\r\n\r\nDeleted unnecessary overloads in ApacheKafkaProducerAdapter. In\r\nparticular, stopped relying on the flush with timeout API, because it\r\nonly exists in LinkedIn's fork of Kafka, and thus prevents moving to\r\nthe Apache fork of Kafka. Also deleted the API with a topic name,\r\nwhich was intended for the (now deleted) shared producer mode.\r\n\r\nMade VW::endSegment private, and changed all calls to that function \r\nfrom other classes to instead call VW::closePartition. This latter \r\nfunction handles blocking on the future of the former function.\r\n\r\nTweaked the synchronization to further reduce the change of race \r\nconditions when calling close multiple times.\r\n\r\nMiscellaneous:\r\n\r\n- TestRestartServerAfterDeletingSstFilesWithActiveActiveIngestion\r\n now has more robust resource closing logic.","shortMessageHtmlLink":"[dvc][server][vpj][producer][controller] Refactored VeniceWriter's cl…"}},{"before":"53767c051658dfe535e4a8c104d813ae535d7ac0","after":"43ba140e1ec3cdf97c3ca87d8b027d2d1e03b4a4","ref":"refs/heads/main","pushedAt":"2024-06-06T19:44:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"FelixGV","name":"Felix GV","path":"/FelixGV","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1248632?s=80&v=4"},"commit":{"message":"[dvc][server][vpj][producer][controller] Refactored VeniceWriter's close (#1014)\n\nThe endAllSegments function will now write to all segments in parallel,\r\nand wait once at the end, rather than block for each one sequentially.\r\n\r\nThe close function now honors the venice.writer.close.timeout.ms config\r\nstrictly. Previously, it could wait longer than this during close.\r\n\r\nDeleted the following unused config from the VeniceWriter:\r\nvenice.writer.sleep.time.ms.when.topic.missing\r\n\r\nDeleted unnecessary overloads in ApacheKafkaProducerAdapter. In\r\nparticular, stopped relying on the flush with timeout API, because it\r\nonly exists in LinkedIn's fork of Kafka, and thus prevents moving to\r\nthe Apache fork of Kafka. Also deleted the API with a topic name,\r\nwhich was intended for the (now deleted) shared producer mode.\r\n\r\nMade VW::endSegment private, and changed all calls to that function \r\nfrom other classes to instead call VW::closePartition. This latter \r\nfunction handles blocking on the future of the former function.\r\n\r\nTweaked the synchronization to further reduce the change of race \r\nconditions when calling close multiple times.\r\n\r\nMiscellaneous:\r\n\r\n- TestRestartServerAfterDeletingSstFilesWithActiveActiveIngestion\r\n now has more robust resource closing logic.","shortMessageHtmlLink":"[dvc][server][vpj][producer][controller] Refactored VeniceWriter's cl…"}},{"before":"53767c051658dfe535e4a8c104d813ae535d7ac0","after":"ad35b0a849f6aef1f0d224499960f90f1d0e49b2","ref":"refs/heads/javadoc","pushedAt":"2024-06-05T18:15:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@53767c051658dfe535e4a8c104d813ae535d7ac0 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ 53767c0 🚀"}},{"before":"d2d775057810d18c7f65c4ede5f81e60050e177f","after":"53767c051658dfe535e4a8c104d813ae535d7ac0","ref":"refs/heads/javadoc","pushedAt":"2024-06-05T18:13:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[changelog] Add isCaughtUp() API to VeniceChangelogConsumer interface (#1016)\n\nA simpler solution is just to provide an API that user can call to check whether all subscriptions have caught up.\r\nAdd specific record support for regular consumer.","shortMessageHtmlLink":"[changelog] Add isCaughtUp() API to VeniceChangelogConsumer interface (…"}},{"before":"d678216549d177557e87f0159bbf57776ea85bcf","after":"53767c051658dfe535e4a8c104d813ae535d7ac0","ref":"refs/heads/main","pushedAt":"2024-06-05T18:13:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sixpluszero","name":"Jialin Liu","path":"/sixpluszero","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8380335?s=80&v=4"},"commit":{"message":"[changelog] Add isCaughtUp() API to VeniceChangelogConsumer interface (#1016)\n\nA simpler solution is just to provide an API that user can call to check whether all subscriptions have caught up.\r\nAdd specific record support for regular consumer.","shortMessageHtmlLink":"[changelog] Add isCaughtUp() API to VeniceChangelogConsumer interface (…"}},{"before":"d678216549d177557e87f0159bbf57776ea85bcf","after":"d2d775057810d18c7f65c4ede5f81e60050e177f","ref":"refs/heads/javadoc","pushedAt":"2024-06-05T16:05:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@d678216549d177557e87f0159bbf57776ea85bcf 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ d678216 🚀"}},{"before":"db5c1faf76e9b47eddadc0c8b3e293579bcb6fc3","after":"d678216549d177557e87f0159bbf57776ea85bcf","ref":"refs/heads/javadoc","pushedAt":"2024-06-05T16:03:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[router] Set default config value to limit long tail retries to 2 (#1017)\n\nCurrent default for retry limit per route for long tail retry is -1, which is equivalient to unlimited retries. During high traffic or slow server responses, that could lead to retry storm which will flood the servers with many requests. This PR limits per route maximum retry limit to 2. Also reduces the default threshold for pending connection per server to 100, so that router does not send too many requests to an already slow host.\r\n\r\nvenice.router.long.tail.retry.max.route.for.multi.keys.req to 2 to limit retry storm.\r\nvenice.router.unhealthy.pending.connection.threshold.per.host to 100 to protect the server better.","shortMessageHtmlLink":"[router] Set default config value to limit long tail retries to 2 (#1017"}},{"before":"63274491b72f43b6119000d4643302448621d52c","after":"d678216549d177557e87f0159bbf57776ea85bcf","ref":"refs/heads/main","pushedAt":"2024-06-05T16:03:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"majisourav99","name":"Sourav Maji","path":"/majisourav99","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/62683561?s=80&v=4"},"commit":{"message":"[router] Set default config value to limit long tail retries to 2 (#1017)\n\nCurrent default for retry limit per route for long tail retry is -1, which is equivalient to unlimited retries. During high traffic or slow server responses, that could lead to retry storm which will flood the servers with many requests. This PR limits per route maximum retry limit to 2. Also reduces the default threshold for pending connection per server to 100, so that router does not send too many requests to an already slow host.\r\n\r\nvenice.router.long.tail.retry.max.route.for.multi.keys.req to 2 to limit retry storm.\r\nvenice.router.unhealthy.pending.connection.threshold.per.host to 100 to protect the server better.","shortMessageHtmlLink":"[router] Set default config value to limit long tail retries to 2 (#1017"}},{"before":"63274491b72f43b6119000d4643302448621d52c","after":"db5c1faf76e9b47eddadc0c8b3e293579bcb6fc3","ref":"refs/heads/javadoc","pushedAt":"2024-06-05T15:00:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@63274491b72f43b6119000d4643302448621d52c 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ 6327449 🚀"}},{"before":"13d7f9e0bd68c753f5fad8282321390dbb22e512","after":"63274491b72f43b6119000d4643302448621d52c","ref":"refs/heads/javadoc","pushedAt":"2024-06-05T14:58:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[specs][doc] FizzBee spec for the Venice's LeaderFollower protocol (#958)\n\nThis started off as a literal translation of TLA+ syntax to FizzBee syntax,\r\nbut after iterating further, it was made to model some failure scenarios\r\nwhich could occur in-between the distinct operations performed by\r\nleaders and followers.\r\n\r\nAuthored-by: Jayaprabhakar Kadarkarai ","shortMessageHtmlLink":"[specs][doc] FizzBee spec for the Venice's LeaderFollower protocol (#958"}},{"before":"e95a269470cd65a03e6a357a7d4a1c0aa72b2d59","after":"63274491b72f43b6119000d4643302448621d52c","ref":"refs/heads/main","pushedAt":"2024-06-05T14:58:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"FelixGV","name":"Felix GV","path":"/FelixGV","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1248632?s=80&v=4"},"commit":{"message":"[specs][doc] FizzBee spec for the Venice's LeaderFollower protocol (#958)\n\nThis started off as a literal translation of TLA+ syntax to FizzBee syntax,\r\nbut after iterating further, it was made to model some failure scenarios\r\nwhich could occur in-between the distinct operations performed by\r\nleaders and followers.\r\n\r\nAuthored-by: Jayaprabhakar Kadarkarai ","shortMessageHtmlLink":"[specs][doc] FizzBee spec for the Venice's LeaderFollower protocol (#958"}},{"before":"e95a269470cd65a03e6a357a7d4a1c0aa72b2d59","after":"13d7f9e0bd68c753f5fad8282321390dbb22e512","ref":"refs/heads/javadoc","pushedAt":"2024-06-04T17:15:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@e95a269470cd65a03e6a357a7d4a1c0aa72b2d59 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ e95a269 🚀"}},{"before":"5bd511ca8f39beb32489f6d4199a83a7ec389dfd","after":"e95a269470cd65a03e6a357a7d4a1c0aa72b2d59","ref":"refs/heads/javadoc","pushedAt":"2024-06-04T17:13:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[fast-client] IndexOutOfBoundsException in getReplicas due to bad casting (#1015)\n\nThere is a bug in our getReplicas code for both routing strategies: \r\nHelixScatterGatherRoutingStrategy and LeastLoadedClientRoutingStrategy\r\nwhere we accidentally cast requestId (a long) into an int and this can cause\r\ninteger overflow and return negative index.\r\n\r\nint startPos = (int) requestId % replicaCnt;\r\n\r\ninstead of \r\n\r\nint startPos = (int) (requestId % replicaCnt);","shortMessageHtmlLink":"[fast-client] IndexOutOfBoundsException in getReplicas due to bad cas…"}},{"before":"4854617777a5a06e927116d7719d008b441adeca","after":"e95a269470cd65a03e6a357a7d4a1c0aa72b2d59","ref":"refs/heads/main","pushedAt":"2024-06-04T17:13:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"xunyin8","name":"Xun Yin","path":"/xunyin8","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7265832?s=80&v=4"},"commit":{"message":"[fast-client] IndexOutOfBoundsException in getReplicas due to bad casting (#1015)\n\nThere is a bug in our getReplicas code for both routing strategies: \r\nHelixScatterGatherRoutingStrategy and LeastLoadedClientRoutingStrategy\r\nwhere we accidentally cast requestId (a long) into an int and this can cause\r\ninteger overflow and return negative index.\r\n\r\nint startPos = (int) requestId % replicaCnt;\r\n\r\ninstead of \r\n\r\nint startPos = (int) (requestId % replicaCnt);","shortMessageHtmlLink":"[fast-client] IndexOutOfBoundsException in getReplicas due to bad cas…"}},{"before":"4854617777a5a06e927116d7719d008b441adeca","after":"5bd511ca8f39beb32489f6d4199a83a7ec389dfd","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T21:00:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@4854617777a5a06e927116d7719d008b441adeca 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ 4854617 🚀"}},{"before":"6fef514323861d606081203f989e9fc414170424","after":"4854617777a5a06e927116d7719d008b441adeca","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T20:58:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[CI] Correct package name in CI test bucketing logic for accurate bucket allocation (#1011)\n\nFix package name in CI test bucketing logic for proper bucket allocation. Also,\r\nrearrange some tests to ensure the overall time to run E2E tests is below 30\r\nminutes.","shortMessageHtmlLink":"[CI] Correct package name in CI test bucketing logic for accurate buc…"}},{"before":"c98883dc5ad9b8424abb51cdb5ba2ee459aa6e54","after":"4854617777a5a06e927116d7719d008b441adeca","ref":"refs/heads/main","pushedAt":"2024-05-31T20:58:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sushantmane","name":"Sushant Mane","path":"/sushantmane","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7715725?s=80&v=4"},"commit":{"message":"[CI] Correct package name in CI test bucketing logic for accurate bucket allocation (#1011)\n\nFix package name in CI test bucketing logic for proper bucket allocation. Also,\r\nrearrange some tests to ensure the overall time to run E2E tests is below 30\r\nminutes.","shortMessageHtmlLink":"[CI] Correct package name in CI test bucketing logic for accurate buc…"}},{"before":"c98883dc5ad9b8424abb51cdb5ba2ee459aa6e54","after":"6fef514323861d606081203f989e9fc414170424","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T08:00:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@c98883dc5ad9b8424abb51cdb5ba2ee459aa6e54 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ c98883d 🚀"}},{"before":"6a8046893f26b4bc0ac1209ac42e6546c8d908ca","after":"c98883dc5ad9b8424abb51cdb5ba2ee459aa6e54","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T07:59:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[router] Delete dictionary for retired versions instead of existing versions (#1010)\n\nThere is a bug where future for dictionary downloads of existing versions would be removed, but instead, the intention is to delete for retired versions. This PR fixed the bug.\r\n\r\nA major change:\r\nPreviously it's the ZK callback thread that sends the requests to retrieve dictionary; now it's the router dictionary processing threads that send the requests and wait for response. This is the only way to make testing feasible and meaningful.","shortMessageHtmlLink":"[router] Delete dictionary for retired versions instead of existing v…"}},{"before":"a04a92cffaeabd54b3490887fb568cab79d40191","after":"c98883dc5ad9b8424abb51cdb5ba2ee459aa6e54","ref":"refs/heads/main","pushedAt":"2024-05-31T07:59:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"huangminchn","name":"Min Huang","path":"/huangminchn","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10958899?s=80&v=4"},"commit":{"message":"[router] Delete dictionary for retired versions instead of existing versions (#1010)\n\nThere is a bug where future for dictionary downloads of existing versions would be removed, but instead, the intention is to delete for retired versions. This PR fixed the bug.\r\n\r\nA major change:\r\nPreviously it's the ZK callback thread that sends the requests to retrieve dictionary; now it's the router dictionary processing threads that send the requests and wait for response. This is the only way to make testing feasible and meaningful.","shortMessageHtmlLink":"[router] Delete dictionary for retired versions instead of existing v…"}},{"before":"a04a92cffaeabd54b3490887fb568cab79d40191","after":"6a8046893f26b4bc0ac1209ac42e6546c8d908ca","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T02:45:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@a04a92cffaeabd54b3490887fb568cab79d40191 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ a04a92c 🚀"}},{"before":"40288650896ca127169a910c960868bcac10a415","after":"a04a92cffaeabd54b3490887fb568cab79d40191","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T02:44:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[server] Add retries for topic existence checks in SIT (#1003)\n\nCurrently, ingestion errors out if an exception is thrown during topic existence checks, even \r\nfor transient issues. This PR adds retries to mitigate this problem. Additionally, it includes a \r\ncheck to skip the compaction enabled verification for RT topics in SIT::validateMessage.","shortMessageHtmlLink":"[server] Add retries for topic existence checks in SIT (#1003)"}},{"before":"538fb6aa23c76f8217a1c34bf4256cca5b924e47","after":"a04a92cffaeabd54b3490887fb568cab79d40191","ref":"refs/heads/main","pushedAt":"2024-05-31T02:43:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sushantmane","name":"Sushant Mane","path":"/sushantmane","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7715725?s=80&v=4"},"commit":{"message":"[server] Add retries for topic existence checks in SIT (#1003)\n\nCurrently, ingestion errors out if an exception is thrown during topic existence checks, even \r\nfor transient issues. This PR adds retries to mitigate this problem. Additionally, it includes a \r\ncheck to skip the compaction enabled verification for RT topics in SIT::validateMessage.","shortMessageHtmlLink":"[server] Add retries for topic existence checks in SIT (#1003)"}},{"before":"538fb6aa23c76f8217a1c34bf4256cca5b924e47","after":"40288650896ca127169a910c960868bcac10a415","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T01:45:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@538fb6aa23c76f8217a1c34bf4256cca5b924e47 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ 538fb6a 🚀"}},{"before":"a16f16c5902155c748bafc5f251052e331f38f29","after":"538fb6aa23c76f8217a1c34bf4256cca5b924e47","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T01:43:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[controller] Support dangling topic check and deletion in topic cleanup service. (#974)\n\nAdd dangling topic checking functionality, TopicCleanupService will compare topics listed from source of truth pub sub system and topics from other type of pub sub client, if there is topic could not be found by source of truth pub sub system client but can be founded by other type of pub sub client, topic will be deleted if met by times more than CONTROLLER_DANGLING_TOPIC_OCCURRENCE_THRESHOLD_FOR_CLEANUP by such cases:\r\n\r\nReal-time topic, if store is not hybrid and no store version carries hybrid config, that topic is not valid.\r\nVersion topic, if store does not contain that version, the topic is not valid.\r\nIf there is no store available for that topic, the topic is not valid.\r\nAdd a config for source of truth admin client class: PUB_SUB_SOURCE_OF_TRUTH_ADMIN_ADAPTER_FACTORY_CLASS\r\nAdd a config for consistently decide a topic is dangling: CONTROLLER_DANGLING_TOPIC_OCCURRENCE_THRESHOLD_FOR_CLEANUP\r\nAdd a new config to enable this feature: CONTROLLER_DANGLING_TOPIC_CLEAN_UP_INTERVAL_SECOND. If its value is >0 and PUB_SUB_SOURCE_OF_TRUTH_ADMIN_ADAPTER_FACTORY_CLASS is not the same as PUB_SUB_ADMIN_ADAPTER_FACTORY_CLASS, the feature will be turned on. Otherwise, it will be disabled.\r\n\r\nCo-authored-by: Hao Xu ","shortMessageHtmlLink":"[controller] Support dangling topic check and deletion in topic clean…"}},{"before":"628361c182ceea231e830bb5bc5e0bcc66613ab3","after":"538fb6aa23c76f8217a1c34bf4256cca5b924e47","ref":"refs/heads/main","pushedAt":"2024-05-31T01:43:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"haoxu07","name":"Hao Xu","path":"/haoxu07","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5949273?s=80&v=4"},"commit":{"message":"[controller] Support dangling topic check and deletion in topic cleanup service. (#974)\n\nAdd dangling topic checking functionality, TopicCleanupService will compare topics listed from source of truth pub sub system and topics from other type of pub sub client, if there is topic could not be found by source of truth pub sub system client but can be founded by other type of pub sub client, topic will be deleted if met by times more than CONTROLLER_DANGLING_TOPIC_OCCURRENCE_THRESHOLD_FOR_CLEANUP by such cases:\r\n\r\nReal-time topic, if store is not hybrid and no store version carries hybrid config, that topic is not valid.\r\nVersion topic, if store does not contain that version, the topic is not valid.\r\nIf there is no store available for that topic, the topic is not valid.\r\nAdd a config for source of truth admin client class: PUB_SUB_SOURCE_OF_TRUTH_ADMIN_ADAPTER_FACTORY_CLASS\r\nAdd a config for consistently decide a topic is dangling: CONTROLLER_DANGLING_TOPIC_OCCURRENCE_THRESHOLD_FOR_CLEANUP\r\nAdd a new config to enable this feature: CONTROLLER_DANGLING_TOPIC_CLEAN_UP_INTERVAL_SECOND. If its value is >0 and PUB_SUB_SOURCE_OF_TRUTH_ADMIN_ADAPTER_FACTORY_CLASS is not the same as PUB_SUB_ADMIN_ADAPTER_FACTORY_CLASS, the feature will be turned on. Otherwise, it will be disabled.\r\n\r\nCo-authored-by: Hao Xu ","shortMessageHtmlLink":"[controller] Support dangling topic check and deletion in topic clean…"}},{"before":"628361c182ceea231e830bb5bc5e0bcc66613ab3","after":"a16f16c5902155c748bafc5f251052e331f38f29","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T00:31:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"Deploying to javadoc from @ linkedin/venice@628361c182ceea231e830bb5bc5e0bcc66613ab3 🚀","shortMessageHtmlLink":"Deploying to javadoc from @ 628361c 🚀"}},{"before":"5417a6304e9be785430460c3d448f59761b4693d","after":"628361c182ceea231e830bb5bc5e0bcc66613ab3","ref":"refs/heads/javadoc","pushedAt":"2024-05-31T00:29:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"github-actions[bot]","name":null,"path":"/apps/github-actions","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/15368?s=80&v=4"},"commit":{"message":"[controller][server] Add metric to track pub-sub admin operation failures (#1004)\n\nAdded a metric: `pub_sub_admin_op_failure_count` to track the count of failed\r\nadmin operations. This will allow us to monitor these failures and set up alerts.","shortMessageHtmlLink":"[controller][server] Add metric to track pub-sub admin operation fail…"}},{"before":"ecff0f9b0478688291bdf3d15807d449fae765eb","after":"628361c182ceea231e830bb5bc5e0bcc66613ab3","ref":"refs/heads/main","pushedAt":"2024-05-31T00:29:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sushantmane","name":"Sushant Mane","path":"/sushantmane","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7715725?s=80&v=4"},"commit":{"message":"[controller][server] Add metric to track pub-sub admin operation failures (#1004)\n\nAdded a metric: `pub_sub_admin_op_failure_count` to track the count of failed\r\nadmin operations. This will allow us to monitor these failures and set up alerts.","shortMessageHtmlLink":"[controller][server] Add metric to track pub-sub admin operation fail…"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXpCL8AA","startCursor":null,"endCursor":null}},"title":"Activity · linkedin/venice"}