Open CocaineCong opened 3 months ago
If this proposal passes, please assign it to me.🫡
@chyezh could you helo on reviewing it?
@CocaineCong In Milvus 2.4.5, we will introduce wal service instead of original mqwrapper interface. new design will be given at #33285.
And we want a more simple interface of wal
instead of mqwrapper
.
Read
+ Append
instead of Produce
and Consume
.
Recently, the interface definition PR #33745 will be merged. You can see and review the definition in README, https://github.com/milvus-io/milvus/pull/33745#issuecomment-2159721055. And then I will give a new PR as an example to reimplement pulsar mq into wal.
Could you help to modify rocketMQ
proposal after those PR merged?
rocketMQ can be implement as the wal interface directly, and to be published at v2.4.5.
we need implement the following interface:
message.MessageID
walimpls.OpenerBuilderImpls
walimpls.OpenerImpls
walimpls.ScannerImpls
walimpls.WALImpls
@CocaineCong In Milvus 2.4.5, we will introduce wal service instead of original mqwrapper interface. new design will be given at #33285.
And we want a more simple interface of
wal
instead ofmqwrapper
.Read
+Append
instead ofProduce
andConsume
.Recently, the interface definition PR #33745 will be merged. You can see and review the definition in README, #33745 (comment). And then I will give a new PR as an example to reimplement pulsar mq into wal.
Could you help to modify
rocketMQ
proposal after those PR merged? rocketMQ can be implement as the wal interface directly, and to be published at v2.4.5.
ok, I got it. anything need my help just let me know.
related PR is ready at master branch: #34046
You can design and implement wal services based on RocketMQ now.
pulsar implementation is here, pkg/streaming/walimpls/impls/pulsar/
.
If the PR pass the walimpls.NewWALImplsTestFramework
unit test, we can start to review it. And please link your PR with issue #33285.
Moreover, ScannerImpls
interface should be implemented as a scanner without any server-side persistent state, such as Pulsar's Reader interface to avoid resource leak. If RocketMQ does not support this, please let me know. I will design scanner's garbage collection plan in future.
/assign @CocaineCong
related PR is ready at master branch: #34046
You can design and implement wal services based on RocketMQ now. pulsar implementation is here,
pkg/streaming/walimpls/impls/pulsar/
.If the PR pass the
walimpls.NewWALImplsTestFramework
unit test, we can start to review it. And please link your PR with issue #33285.Moreover,
ScannerImpls
interface should be implemented as a scanner without any server-side persistent state, such as Pulsar's Reader interface to avoid resource leak. If RocketMQ does not support this, please let me know. I will design scanner's garbage collection plan in future./assign @CocaineCong
got it.
Is there an existing issue for this?
Is your feature request related to a problem? Please describe.
Support for more types of MQ, more diversity
Describe the solution you'd like.
Describe an alternate solution.
No response
Anything else? (Additional Context)
title: support rocketmq in milvus
authors: @CocaineCong
creation-date: 2024-06-19
Support RocketMQ Option & RocketMQ API Controller
Milvus currently supports message queue (MQ) options for tasks such as asynchronous data processing, real-time data synchronization, and event-driven architectures. However, the existing MQ options are limited, and users may require additional flexibility and compatibility with different messaging systems.
Summary
This proposal suggests extending the message queue options in Milvus to include support for RocketMQ, a distributed messaging and streaming platform developed by the Apache Software Foundation.
RocketMQ provides features like high throughput, fault tolerance, scalability, and strong consistency, making it a popular choice for real-time messaging and event-driven applications.
Motivation
Goals
Preliminary Design
In total, we need to implement the interfaces in these files.
Design Details
later…