-
Notifications
You must be signed in to change notification settings - Fork 11.9k
RIP‐82 Implement Timer transaction message and index based on RocksDB
- Current State: Draft
- Authors: zk-drizzle
- Shepherds: li zhou
- Mailing List Discussion: [email protected]
- Pull Request: #PR_NUMBER
- Released: <released_version>
What do we need to do
- Will we add a new module?
No
- Will we add new APIs?
Yes.
- Will we add new feature?
Yes.
Are there any problems of our current project?
At present, the implementation of timer message, transaction message and Index based on the file version is complex. RocksDB's KV storage model is introduced to optimize the implementation of the above three modules, which can simplify the business logic, improve the maintainability of the code, and improve the stability of the system.
Chinese version:
目前基于文件版的定时消息、事务消息、Index的实现上的代码逻辑实现较为复杂,通过引入的RocksDB的KV存储模型用来优化实现上述的三个模块,在一定程度上简化业务逻辑,提升代码可维护性,提升系统稳定性。
The code logic implementation of timer message, transaction message and Index was simplified, the code maintainability was improved, and the system stability was improved.
Chinese version:
简化定时消息、事务消息、Index的代码逻辑实现,提升代码可维护性,提升系统稳定性。
- What problem is this proposal designed to solve?
The KV storage structure model of RocksDB is used to optimize and implement the timer message, transaction message and Index module。
Chinese version:
利用RocksDB的KV存储结构模型,对定时消息、事务消息、Index模块的进行优化与实现。
- To what degree should we solve the problem?
The KV storage structure of RocksDB is used to realize the original functions and add some new features
Chinese version:
利用RocksDB的KV存储结构较好的实现原有功能并新增部分特性。
- What problem is this proposal NOT designed to solve?
Nothing specific.
- Are there any limits of this proposal?
Nothing specific.
Add 3 new feature, the main content is implement of timer message 、transaction message、Index based on rocksdb.
1.Relying on the efficient characteristics of key-value storage, a timelix-driven mechanism is constructed to tile the timer message index, which reduces the repeated calculation and storage overhead in the process of message rolling.
2.The traditional dual queue matching model was replaced by the key-value read-write model, which accurately matched the transaction state, reduced the complexity of state checking, and made the code logic more concise and maintainability improved.
3.Based on the key-value model, it naturally adapts to the reading and writing of index data, retains the original function, and adds the pagination query ability, which further simplifies the implementation logic and enhances the maintainability.
Chinese version:
1.依托键值存储的高效特性,构建时间轴驱动机制,平铺定时消息索引,减少消息滚动过程中的重复计算与存储开销。

2.通过键值读写模型取代传统双队列匹配模型,精准匹配事务状态,降低状态检查的复杂度,代码逻辑更简洁且可维护性提升。

3.基于键值模型天然适配索引数据读写,保留原有功能的同时新增分页查询能力,进一步简化实现逻辑并增强可维护性。

- Method signature changes
Nothing specific.
- Method behavior changes
Nothing specific.
- CLI command changes
Nothing specific.
- Log format or content changes Nothing specific.
- Are backward and forward compatibility taken into consideration?
Fully compatible
- Are there deprecated APIs?
Nothing specific.
- How do we do migration?
Nothing specific.
We will implement the proposed changes by 1 phases.
- How does alternatives solve the issue you proposed?
Nothing specific.
- Pros and Cons of alternatives
Nothing specific.
Copyright © 2016~2022 The Apache Software Foundation.
- Home
- RocketMQ Improvement Proposal
- User Guide
- Community