# MultipleMsgStores **Repository Path**: taher_chan/MultipleMsgStores ## Basic Information - **Project Name**: MultipleMsgStores - **Description**: 快速存储和读取键值对(key-value)数据到大文件,并支持多线程并发写入和多线程并发读取。设计核心思想是按序存储多条键值对消息数据,并把若干条消息数据组合成一个消息块,并记录消息块地址。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-09-13 - **Last Updated**: 2023-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: 键值对大文件, 长期维护, 完全开源, 高性能存储, 完全自研 ## README # MultipleMsgStores ### 1、介绍 对键值对(key-value)数据进行快速存储和读取,并支持多线程并发写入和多线程并发读取。设计核心思想是按序存储多条键值对消息数据,并把若干条消息数据组合成一个消息块,并记录消息块地址。 ### 2、软件架构 #### 2.1、多消息存储文件结构设计 ![多消息存储文件结构设计](doc/img/多消息存储文件结构设计.png) #### 2.2、多消息生成与读取设计 ![多消息存储文件结构设计](doc/img/多消息生成与读取.png) #### 2.3、消息查找与消息索引设计 ![消息文件索引结构](doc/img/消息文件索引结构.png) ### 3、性能测试 #### 3.1、测试配置 CPU:i9 酷睿13代 内存:32G #### 3.2、测试结果 ![解析测试结果](doc/img/解析测试结果.png) ### 4、代码模块 4.1、生成消息文件模块:[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/tree/master/src/com/fastmms/generate) 4.2、解析消息文件模块:[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/tree/master/src/com/fastmms/analysis) ### 5、代码示例 5.1、测试生成消息文件、解析消息文件:[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/blob/master/src/com/fastmms/Test.java) 5.2、测试按消息序号和条数查询数据(如在1亿数据里查找第20万行之后的20条数据):[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/blob/master/src/com/fastmms/TestFindMsg.java) 5.3、1亿数据文件查询测试: ![数据查询结果](doc/img/数据查询结果.png) ### 6、功能支持 配置文件:[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/blob/master/src/com/fastmms/config/FastMmsConfig.java) 6.1、解析消息文件时,自定义解析线程数 6.2、生成消息文件时,自定义消息块的字节大小 6.3、可选择的解析模式:严格按序解析消息模式、非严格按序解析消息模式。(严格按序解析模式比非严格按序解析模式在解析耗时差值多10%-30%左右,数据量越大,解析耗时差值就越小) 6.4、支持按消息序号和消息条数查询数据 ### 7、技术支持 联系邮箱:taher_chan#163.com (把#换成@) ### 8、更新日志 8.1、全部更新日志:[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/commits/master) 8.2、主要功能更新日志: **2023-09-16** 提交更新第二版,重构优化生成、解析逻辑,比第一版提升10倍解析性能。[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/commit/31ea31fb86dde1f2996189e6b596ab400b01ce92) **2023-09-17** 新增严格按序解析消息模式。[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/commit/824f21ca0568a686292af2f0e0f1d417d29720ff) **2023-09-18** 新增按消息序号和消息条数查询数据,支持千万级、亿级数据查询,查找性能损耗 < 15毫秒(具体数据需根据机器性能决定),解析性能取决于所查询的条数。[点击查看](https://gitee.com/taher_chan/MultipleMsgStores/commit/749c83218e334d8145a75c8a0f2d1a22e7c375f5)