CN107423425B - 一种对k/v格式的数据快速存储和查询方法 - Google Patents
一种对k/v格式的数据快速存储和查询方法 Download PDFInfo
- Publication number
- CN107423425B CN107423425B CN201710649925.2A CN201710649925A CN107423425B CN 107423425 B CN107423425 B CN 107423425B CN 201710649925 A CN201710649925 A CN 201710649925A CN 107423425 B CN107423425 B CN 107423425B
- Authority
- CN
- China
- Prior art keywords
- data
- file
- index
- storing
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种充分利用计算机资源实现对K/V格式的数据快速存储和查询方法。它包括如下操作步骤:S1、分离对数据的读和写操作;该读操作就是查询操作,该写操作就是存储操作;S2、在磁盘上分片存储数据;将数据按照预定的分片算法存储到不同的文件分片,分片算法除了要求性能高效外,还需确保同一个K的数据存储在同一个分片文件上;S3、建立数据索引;定时读取分片文件,将数据索引后重新存储到索引文件;S4、实施读操作。本发明方法分离对数据的读和写操作,在磁盘上分片存储数据,并发建立数据索引,为数据提供快速的存储和查询的方法。
Description
技术领域
本发明涉及大数据量的K/V格式数据快速存取方法,特别是一种充分利用计算机资源实现对K/V格式的数据快速存储和查询方法。
背景技术
随着互联网的发展,系统存储和读取的数据越来越多,对数据的读写性能要求也越来越高,计算分片和数据分片已成为储取和读取数据必不可少的手段了。目前的存储技术实现,存储和查询操作都要考虑保证数据的强一致性,对计算机CPU的利用不充分,存储和查询数据性能较差。但是对于很多应用场景,查询数据的量远远多于存储数据的量,且查询操作对数据强一致性要求不高,只要求数据最终一致性就能满足需求,但对查询数据的性能要求很高,这种情况下对数据读写性能的要求就高于对数据强一致的要求,我们就可以考虑牺牲数据的强一致性来换取数据读写性能的提升。
发明内容
本发明的目的在于提供一种充分利用计算机资源实现对K/V格式的数据快速存储和查询方法,它主要解决上述现有技术所存在的技术问题,本发明方法分离对数据的读和写操作,在磁盘上分片存储数据,并发建立数据索引,为数据提供快速的存储和查询的方法。
为解决上述技术问题,本发明是这样实现的:
一种对K/V格式的数据快速存储和查询方法,其特征在于:它包括如下操作步骤:
S1、分离对数据的读和写操作;该读操作就是查询操作,该写操作就是存储操作;
S2、在磁盘上分片存储数据;将数据按照预定的分片算法存储到不同的文件分片,分片算法除了要求性能高效外,还需确保同一个K的数据存储在同一个分片文件上;
S3、建立数据索引;定时读取分片文件,将数据索引后重新存储到索引文件;
S4、实施读操作。
所述的对K/V格式的数据快速存储和查询方法,其特征在于:所述S2进一步包括如下步骤:
步骤S201:为了充分利用CPU资源,根据计算机CPU的核心数启动同数量的数据分片服务;
步骤S202:计算机收到客户端发来的写请求,参数为K和V,将写请求随机发给任一分片服务;
步骤S203:预先设置文件的分片总数N,分片文件编号A的算法公式为:A=crc32(K)%N;根据公式可算出当前请求的K的分片文件编号A;
步骤204:数据分片服务利用CPU、内存和磁盘资源把数据写入编号为A的分片文件上;分片文件中存储的数据内容是T:Key:Value,T是操作类型,如:新增、修改和删除,Key:Value是数值对。
所述的对K/V格式的数据快速存储和查询方法,其特征在于:所述S3、S4进一步包括如下步骤:
步骤S301:为了充分利用CPU资源,根据CPU的核心数启动同数量的索引服务;
步骤S302:根据CPU的核心数启动同数量的数据查询服务;
步骤S303:索引服务并发的将分片文件中的数据读取出来,根据索引规则建立文件索引重新存储数据;
步骤S304:查询服务收到客户端的查询请求,将请求按K并发的根据K的索引信息在索引文件中查找并读取数据,并将符合条件的数据汇总后返回给客户端。
所述的步骤S303的具体做法是:把索引文件分成以64K为单位的物理存储块,一个索引文件是由连续的64K大小的存储块构成,将分片文件中的数据顺序读出并重新写入索引文件,读取数据的时候以一个存储块作为基本读取单位,索引服务会记录每条数据的K对应的存储块地址,并将每个K的索引信息报告给查询服务,以提高查询速度。
所述的对K/V格式的数据快速存储和查询方法,其特征在于:所述的步骤S203中crc32也可以是MD5、SHA1、SHA256、SHA384、SHA512的数据摘要算法。
所述的对K/V格式的数据快速存储和查询方法,其特征在于:所述的数据分片文件和索引文件是磁盘文件,或是任意的存储介质或存储服务。
藉由上述技术方案,本发明的优点如下:
1、数据的存取一般瓶颈首先出现在I/O上,一般难以充分利用计算机资源,本发明可以根据负载情况启停分片服务和索引服务,动态的调整计算机CPU和内存的使用情况,有效的提高了硬件资源的使用率,显著提升了数据的整体存取速度。
2、本发明在数据非强一致性要求的场景下,可按需求分别扩展分片文件数量、索引文件数量、分片服务和查询服务的数量,也即可最大限度的利用计算机硬件资源来提高数据的存储和存储性能。为了提高I/O性能可将计算机磁盘换为固态硬盘。
附图说明
图1是本发明方法中写操作的具体步骤示意图。
图2是本发明方法中读操作的具体步骤示意图。
图3是本发明实施例的框架结构示意图。
具体实施方式
本发明公开了一种充分利用计算机资源实现对K/V格式的数据快速存储和查询方法。它包括如下操作步骤:
S1、分离对数据的读和写操作;该读操作就是查询操作,该写操作就是存储操作。
S2、在磁盘上分片存储数据;将数据按照预定的分片算法存储到不同的文件分片,分片算法除了要求性能高效外,还需确保同一个K的数据存储在同一个分片文件上。
S3、建立数据索引;定时读取分片文件,将数据索引后重新存储到索引文件。
S4、实施读操作。
如图1所示:所述S2进一步包括如下步骤:
步骤S201:为了充分利用CPU资源,根据计算机CPU的核心数启动同数量的数据分片服务。
步骤S202:计算机收到客户端发来的写请求,参数为K和V,将写请求随机发给任一分片服务。
步骤S203:预先设置文件的分片总数N,分片文件编号A的算法公式为:A=crc32(K)%N;根据公式可算出当前请求的K的分片文件编号A。
步骤204:数据分片服务利用CPU、内存和磁盘资源把数据写入编号为A的分片文件上;分片文件中存储的数据内容是T:Key:Value,T是操作类型,如:新增、修改和删除,Key:Value是数值对。
如图2所示:所述S3、S4进一步包括如下步骤:
步骤S301:为了充分利用CPU资源,根据CPU的核心数启动同数量的索引服务。
步骤S302:根据CPU的核心数启动同数量的数据查询服务。
步骤S303:索引服务并发的将分片文件中的数据读取出来,根据索引规则建立文件索引重新存储数据。
步骤S304:查询服务收到客户端的查询请求,将请求按K并发的根据K的索引信息在索引文件中查找并读取数据,并将符合条件的数据汇总后返回给客户端。
本发明中,所述的步骤S303的具体做法是:把索引文件分成以64K为单位的物理存储块,一个索引文件是由连续的64K大小的存储块构成,将分片文件中的数据顺序读出并重新写入索引文件,读取数据的时候以一个存储块作为基本读取单位,索引服务会记录每条数据的K对应的存储块地址,并将每个K的索引信息报告给查询服务,以提高查询速度。
作为变化例,所述的步骤S203中crc32也可以是CRC32、MD5、SHA1、SHA256、SHA384、SHA512的数据摘要算法。
作为可实施方式,所述的数据分片文件和索引文件是磁盘文件,或是任意的存储介质或存储服务。
实施例
以一台16核CPU的计算机为例,本发明的架构设计如图3。
综上所述仅为本发明的较佳实施例而已,并非用来限定本发明的实施范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰,都应为本发明的技术范畴。
Claims (5)
1.一种对 K/V 格式的数据快速存储和查询方法,其特征在于:它包括如下操作步骤:
S1、分离对数据的读和写操作;该读操作就是查询操作,该写操作就是存储操作;
S2、在磁盘上分片存储数据;将数据按照预定的分片算法存储到不同的文件分片,分片算法除了要求性能高效外,还需确保同一个 K 的数据存储在同一个分片文件上;
S3、建立数据索引;定时读取分片文件,将数据索引后重新存储到索引文件;
S4、实施读操作;
所述S2进一步包括如下步骤:
步骤S201:为了充分利用 CPU 资源,根据计算机 CPU 的核心数启动同数量的数据分片服务;
步骤S202:计算机收到客户端发来的写请求,参数为 K 和 V,将写请求随机发给任一分片服务;
步骤S203:预先设置文件的分片总数 N,分片文件编号 A 的算法公式为:A = crc32(K) % N;根据公式可算出当前请求的 K 的分片文件编号 A;
步骤204:数据分片服务利用 CPU、内存和磁盘资源把数据写入编号为 A 的分片文件上;分片文件中存储的数据内容是T:Key:Value,T是操作类型,Key:Value 是数值对。
2.根据权利要求1所述的对 K/V 格式的数据快速存储和查询方法,其特征在于:所述S3、S4进一步包括如下步骤:
步骤S301:为了充分利用 CPU 资源,根据CPU的核心数启动同数量的索引服务;
步骤S302:根据CPU的核心数启动同数量的数据查询服务;
步骤S303:索引服务并发的将分片文件中的数据读取出来,根据索引规则建立文件索引重新存储数据;
步骤S304:查询服务收到客户端的查询请求,将请求按K并发的根据K的索引信息在索引文件中查找并读取数据,并将符合条件的数据汇总后返回给客户端。
3.根据权利要求2所述的对 K/V 格式的数据快速存储和查询方法,其特征在于:所述的步骤S303的具体做法是:把索引文件分成以64K为单位的物理存储块,一个索引文件是由连续的64K大小的存储块构成,将分片文件中的数据顺序读出并重新写入索引文件,读取数据的时候以一个存储块作为基本读取单位,索引服务会记录每条数据的K对应的存储块地址,并将每个K的索引信息报告给查询服务,以提高查询速度。
4.根据权利要求2或3所述的对 K/V 格式的数据快速存储和查询方法,其特征在于:所述的步骤S203中crc32 替换为 MD5、SHA1、SHA256、SHA384、SHA512的数据摘要算法。
5.根据权利要求2或3所述的对 K/V 格式的数据快速存储和查询方法,其特征在于:所述的数据分片文件和索引文件是磁盘文件,或是任意的存储介质或存储服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710649925.2A CN107423425B (zh) | 2017-08-02 | 2017-08-02 | 一种对k/v格式的数据快速存储和查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710649925.2A CN107423425B (zh) | 2017-08-02 | 2017-08-02 | 一种对k/v格式的数据快速存储和查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423425A CN107423425A (zh) | 2017-12-01 |
CN107423425B true CN107423425B (zh) | 2020-08-14 |
Family
ID=60437412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710649925.2A Active CN107423425B (zh) | 2017-08-02 | 2017-08-02 | 一种对k/v格式的数据快速存储和查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423425B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733753B (zh) * | 2018-04-10 | 2021-08-03 | 网宿科技股份有限公司 | 一种文件读取方法及应用实体 |
CN109582640B (zh) * | 2018-11-15 | 2020-12-01 | 深圳市酷开网络科技有限公司 | 一种基于滑动窗口的数据去重存储方法、装置及存储介质 |
CN109934564A (zh) * | 2019-03-20 | 2019-06-25 | 泰信利美信息科技(常州)有限公司 | 企业知识产权管理系统的统一管理系统 |
CN110806942B (zh) * | 2019-11-08 | 2024-05-07 | 广州华多网络科技有限公司 | 数据处理的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426544A (zh) * | 2011-11-04 | 2012-04-25 | 浪潮(北京)电子信息产业有限公司 | 任务分配方法和系统 |
CN103714096A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 基于Lucene的倒排索引系统构建、数据处理方法及装置 |
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | 中国移动通信集团北京有限公司 | 一种数据逻辑分区的方法和系统 |
CN104794162A (zh) * | 2015-03-25 | 2015-07-22 | 中国人民大学 | 实时数据存储与查询方法 |
CN104980454A (zh) * | 2014-04-02 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种资源数据共享方法、服务器及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290361A1 (en) * | 2012-04-30 | 2013-10-31 | Eric A. Anderson | Multi-geography cloud storage |
-
2017
- 2017-08-02 CN CN201710649925.2A patent/CN107423425B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426544A (zh) * | 2011-11-04 | 2012-04-25 | 浪潮(北京)电子信息产业有限公司 | 任务分配方法和系统 |
CN103714096A (zh) * | 2012-10-09 | 2014-04-09 | 阿里巴巴集团控股有限公司 | 基于Lucene的倒排索引系统构建、数据处理方法及装置 |
CN103838770A (zh) * | 2012-11-26 | 2014-06-04 | 中国移动通信集团北京有限公司 | 一种数据逻辑分区的方法和系统 |
CN104980454A (zh) * | 2014-04-02 | 2015-10-14 | 腾讯科技(深圳)有限公司 | 一种资源数据共享方法、服务器及系统 |
CN104794162A (zh) * | 2015-03-25 | 2015-07-22 | 中国人民大学 | 实时数据存储与查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107423425A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200150890A1 (en) | Data Deduplication Method and Apparatus | |
US10127233B2 (en) | Data processing method and device in distributed file storage system | |
CN102609360B (zh) | 一种数据处理方法、装置及系统 | |
CN107423425B (zh) | 一种对k/v格式的数据快速存储和查询方法 | |
US10649905B2 (en) | Method and apparatus for storing data | |
US11580162B2 (en) | Key value append | |
US11544159B2 (en) | Techniques for managing context information for a storage device while maintaining responsiveness | |
EP3376393B1 (en) | Data storage method and apparatus | |
EP3037988A1 (en) | Configuration method and device for hash database | |
EP2735978A1 (en) | Storage system and management method used for metadata of cluster file system | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
US11886729B2 (en) | Data storage method and apparatus | |
CN110764706A (zh) | 存储系统、数据管理方法及存储介质 | |
WO2014188528A1 (ja) | メモリ装置、計算機システム及びメモリ装置の制御方法 | |
CN113360093B (zh) | 内存系统和设备 | |
WO2021213281A1 (zh) | 数据读取方法和系统 | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
US20140258247A1 (en) | Electronic apparatus for data access and data access method therefor | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
EP4321981A1 (en) | Data processing method and apparatus | |
CN105260264A (zh) | 一种快照实现方法及快照系统 | |
US10552077B2 (en) | Techniques for managing partitions on a storage device | |
WO2024001863A1 (zh) | 一种数据处理方法及相关设备 | |
CN112084141A (zh) | 一种全文检索系统扩容方法、装置、设备及介质 | |
US10558618B1 (en) | Metadata compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |