CN105162837B - 海量数据存储环境下提升i/o吞吐率的方法及系统 - Google Patents
海量数据存储环境下提升i/o吞吐率的方法及系统 Download PDFInfo
- Publication number
- CN105162837B CN105162837B CN201510458460.3A CN201510458460A CN105162837B CN 105162837 B CN105162837 B CN 105162837B CN 201510458460 A CN201510458460 A CN 201510458460A CN 105162837 B CN105162837 B CN 105162837B
- Authority
- CN
- China
- Prior art keywords
- key
- data
- message queue
- value
- access agent
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及海量数据存储领域,提供一种海量数据存储环境下提升I/O吞吐率的方法及系统,以解决数据中心的I/O服务无法得到更好利用的问题,该系统包括数据中心、业务服务器、访问代理服务端、分类模块、消息队列构建模块。本发明提出的技术方案通过构建消息队列并通过消息队列将同类的操作进行合并以及组织成批量操作,大大减少了远程通信的次数和频度,从而显著提高了I/O吞吐率,解决了带宽和业务平台通信库的读写损耗过高导致无法更好地利用数据中心I/O服务的问题。
Description
技术领域
本发明涉及海量数据存储领域,特别涉及一种海量数据存储环境下提升I/O吞吐率的方法及系统。
背景技术
数据中心是一整套复杂的计算机基础设施,它不仅仅包括计算机、软硬件系统和其他与之配套的设备(例如通信、存储系统、供电设备等),还包含冗余的数据通信连接、环境控制设备、监控设备以及各种安全装置。
数据中心在海量存储设施方面通常提供了数种存储服务,其中包括:基于关系数据模型的存储服务、基于键/值对的存储服务、基于文档的存储服务等。数据中心在提供存储服务方面,通过采用高级、超强运算的硬件设施,保证了I/O服务的高性能。而业务平台在使用数据中心的存储服务时,为了提升存储I/O吞吐率,往往使用了多线程的设计。多线程的设计能够很大地提高I/O吞吐率,但是它也受到一些限制,比如会受到业务平台本身的带宽或内存的限制,又或者是业务服务器自身同时部署了多个业务导致CPU占用过高而被延迟,以至于业务平台在处理I/O时,I/O吞吐率提升到一定程度后就会达到瓶颈,无法继续提升,进而导致数据中心的I/O服务无法得到更好的利用。
发明内容
【要解决的技术问题】
本发明的目的是提供一种海量数据存储环境下提升I/O吞吐率的方法及系统,以解决数据中心的I/O服务无法得到更好利用的问题。
【技术方案】
本发明是通过以下技术方案实现的。
本发明首先涉及一种海量数据存储环境下提升I/O吞吐率的方法,该方法包括步骤:
A、对数据中心的键/值对存储服务端的操作进行分类得到不同的操作类型;
B、分别为各个操作类型构建消息队列;
C、当业务服务器的多线程端向访问代理服务端发送I/O操作请求时,访问代理服务端接收业务服务器的多线程端发送的I/O操作请求并将I/O操作请求按照不同的操作类型分发到对应的消息队列;
D、消息队列接收访问代理服务端发送的I/O操作请求,对进入各消息队列的操作请求进行合并和/或组织成批量操作,再提交到数据中心的键/值对存储服务端,并将I/O操作结果返回给访问代理服务端;
E、访问代理服务端接收消息队列发送的I/O操作结果并将I/O操作结果返回给业务服务器的多线程端。
作为一种优选的实施方式,所述步骤A中的操作类型包括:根据键名检索键值、提供键名和键值保存键/值对、根据键名删除键/值对、根据键名判断键/值对是否存在、根据键名让对应的键值依次递增或递减、根据键名检索相应的键值并存储新的键值、对列表数据结构的基本操作、对集合数据结构的基本操作。
作为另一种优选的实施方式,所述对列表数据结构的基本操作包括数据进栈和数据出栈。
作为另一种优选的实施方式,所述对集合数据结构的基本操作包括求数据交集、求数据并集和求数据差集。
本发明还涉及一种海量数据存储环境下提升I/O吞吐率的系统,该系统包括:
数据中心,其包括键/值对存储服务端;
业务服务器,其包括多线程端,所述业务服务器的多线程端被配置成:向访问代理服务端发送I/O操作请求、接收访问代理服务端返回的I/O操作结果;
访问代理服务端,其被配置成:接收业务服务器的多线程端发送的I/O操作请求并将I/O操作请求按照不同的操作类型分发到对应的消息队列、接收消息队列发送的I/O操作结果并将I/O操作结果返回给业务服务器的多线程端;
分类模块,其被配置成:对数据中心的键/值对存储服务端的操作进行分类得到不同的操作类型;
消息队列构建模块,用于分别为各个操作类型构建消息队列,所述消息队列被配置成:接收访问代理服务端发送的I/O操作请求,对进入各消息队列的操作请求进行合并和/或组织成批量操作,再提交到数据中心的键/值对存储服务端,并将I/O操作结果返回给访问代理服务端。
作为一种优选的实施方式,所述分类模块分类的操作类型包括:根据键名检索键值、提供键名和键值保存键/值对、根据键名删除键/值对、根据键名判断键/值对是否存在、根据键名让对应的键值依次递增或递减、根据键名检索相应的键值并存储新的键值、对列表数据结构的基本操作、对集合数据结构的基本操作。
作为另一种优选的实施方式,所述对列表数据结构的基本操作包括数据进栈和数据出栈。
作为另一种优选的实施方式,所述对集合数据结构的基本操作包括求数据交集、求数据并集和求数据差集。
【有益效果】
本发明提出的技术方案具有以下有益效果:
本发明通过构建消息队列并通过消息队列将同类的操作进行合并以及组织成批量操作,大大减少了远程通信的次数和频度,从而显著提高了I/O吞吐率,解决了带宽和业务平台通信库的读写损耗过高导致无法更好地利用数据中心I/O服务的问题。
附图说明
图1为本发明实施例一提供的海量数据存储环境下提升I/O吞吐率的系统的框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的具体实施方式进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
实施例一
实施例一提供一种海量数据存储环境下提升I/O吞吐率的系统,图1为本发明实施例一提供的海量数据存储环境下提升I/O吞吐率的系统的框图。如图1所示,该系统包括数据中心、业务服务器、访问代理服务端2、分类模块、消息队列构建模块。
数据中心包括键/值对存储服务端4。键/值对存储服务端4是数据中心存储服务器集群的组成部分。
业务服务器包括多线程端1,多线程端1可以运行于单台业务服务器,也可以运行于多台业务服务器,业务服务器的多线程端1被配置成:向访问代理服务端2发送I/O操作请求、接收访问代理服务端2返回的I/O操作结果。
访问代理服务端2负责汇总来自多线程端1的访问请求,访问代理服务端2被配置成:接收业务服务器的多线程端1发送的I/O操作请求并将I/O操作请求按照不同的操作类型分发到对应的消息队列3、接收消息队列3发送的I/O操作结果并将I/O操作结果返回给业务服务器的多线程端1。本实施例中,访问代理服务端2设置在消息队列3的前端。
分类模块被配置成:对数据中心的键/值对存储服务端4的操作进行分类得到不同的操作类型。具体地,操作类型包括:根据键名检索键值、提供键名和键值保存键/值对、根据键名删除键/值对、根据键名判断键/值对是否存在、根据键名让对应的键值依次递增或递减、根据键名检索相应的键值并存储新的键值、对列表数据结构的基本操作、对集合数据结构的基本操作。其中,对列表数据结构的基本操作包括数据进栈和数据出栈。对集合数据结构的基本操作包括求数据交集、求数据并集和求数据差集。
消息队列构建模块用于分别为各个操作类型构建消息队列3,每种操作类型对应的消息队列3可以是一个,也可以是多个。消息队列3被配置成:接收访问代理服务端2发送的I/O操作请求,对进入各消息队列4的操作请求进行合并和/或组织成批量操作,再提交到数据中心的键/值对存储服务端4,并将I/O操作结果返回给访问代理服务端2。本实施例中,消息队列3可以运行于单台服务器上,也可以运行于多台服务器上。另外,消息队列3设置在数据中心键/值对的存储服务端4的前端。
采用实施例一中的系统实现的海量数据存储环境下提升I/O吞吐率的方法可以参考下述具体方法实施例。
实施例二
实施例二提供一种海量数据存储环境下提升I/O吞吐率的方法,该方法包括以下步骤:
(a)、对数据中心的键/值对存储服务端4的操作进行分类得到不同的操作类型。具体地,操作类型包括:根据键名检索键值、提供键名和键值保存键/值对、根据键名删除键/值对、根据键名判断键/值对是否存在、根据键名让对应的键值依次递增或递减、根据键名检索相应的键值并存储新的键值、对列表数据结构的基本操作、对集合数据结构的基本操作。其中,对列表数据结构的基本操作包括数据进栈和数据出栈。其中,对集合数据结构的基本操作包括求数据交集、求数据并集和求数据差集。
(b)、构建分布式消息队列,即分别为各个操作类型构建消息队列3。每种操作类型对应的消息队列3可以是一个,也可以是多个。
(c)、当业务服务器的多线程端1向访问代理服务端2发送I/O操作请求时,访问代理服务端2接收业务服务器的多线程端1发送的I/O操作请求并将I/O操作请求按照不同的操作类型分发到对应的消息队列3。
(d)、消息队列3接收访问代理服务端2发送的I/O操作请求,对进入各消息队列3的操作请求进行合并和/或组织成批量操作,再提交到数据中心的键/值对存储服务端4,并将I/O操作结果返回给访问代理服务端2。
(e)、访问代理服务端2接收消息队列3发送的I/O操作结果并将I/O操作结果返回给业务服务器的多线程端1。
从以上实施例可以看出,本发明实施例通过构建消息队列并通过消息队列将同类的操作进行合并以及组织成批量操作,大大减少了远程通信的次数和频度,从而显著提高了I/O吞吐率,解决了带宽和业务平台通信库的读写损耗过高导致无法更好地利用数据中心I/O服务的问题。
Claims (2)
1.一种海量数据存储环境下提升I/O吞吐率的方法,其特征在于包括步骤:
A、对数据中心的键/值对存储服务端的操作进行分类得到不同的操作类型;
B、分别为各个操作类型构建消息队列;
C、当业务服务器的多线程端向访问代理服务端发送I/O操作请求时,访问代理服务端接收业务服务器的多线程端发送的I/O操作请求并将I/O操作请求按照不同的操作类型分发到对应的消息队列;
D、消息队列接收访问代理服务端发送的I/O操作请求,对进入各消息队列的操作请求进行合并和/或组织成批量操作,再提交到数据中心的键/值对存储服务端,并将I/O操作结果返回给访问代理服务端;
E、访问代理服务端接收消息队列发送的I/O操作结果并将I/O操作结果返回给业务服务器的多线程端;
所述步骤A中的操作类型包括:根据键名检索键值、提供键名和键值保存键/值对、根据键名删除键/值对、根据键名判断键/值对是否存在、根据键名让对应的键值依次递增或递减、根据键名检索相应的键值并存储新的键值、对列表数据结构的基本操作、对集合数据结构的基本操作;
所述对列表数据结构的基本操作包括数据进栈和数据出栈;
所述对集合数据结构的基本操作包括求数据交集、求数据并集和求数据差集。
2.一种海量数据存储环境下提升I/O吞吐率的系统,其特征在于包括:
数据中心,其包括键/值对存储服务端;
业务服务器,其包括多线程端,所述业务服务器的多线程端被配置成:向访问代理服务端发送I/O操作请求、接收访问代理服务端返回的I/O操作结果;
访问代理服务端,其被配置成:接收业务服务器的多线程端发送的I/O操作请求并将I/O操作请求按照不同的操作类型分发到对应的消息队列、接收消息队列发送的I/O操作结果并将I/O操作结果返回给业务服务器的多线程端;
分类模块,其被配置成:对数据中心的键/值对存储服务端的操作进行分类得到不同的操作类型;
消息队列构建模块,用于分别为各个操作类型构建消息队列,所述消息队列被配置成:接收访问代理服务端发送的I/O操作请求,对进入各消息队列的操作请求进行合并和/或组织成批量操作,再提交到数据中心的键/值对存储服务端,并将I/O操作结果返回给访问代理服务端;
所述分类模块分类的操作类型包括:根据键名检索键值、提供键名和键值保存键/值对、根据键名删除键/值对、根据键名判断键/值对是否存在、根据键名让对应的键值依次递增或递减、根据键名检索相应的键值并存储新的键值、对列表数据结构的基本操作、对集合数据结构的基本操作;
所述对列表数据结构的基本操作包括数据进栈和数据出栈;
所述对集合数据结构的基本操作包括求数据交集、求数据并集和求数据差集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510458460.3A CN105162837B (zh) | 2015-07-30 | 2015-07-30 | 海量数据存储环境下提升i/o吞吐率的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510458460.3A CN105162837B (zh) | 2015-07-30 | 2015-07-30 | 海量数据存储环境下提升i/o吞吐率的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105162837A CN105162837A (zh) | 2015-12-16 |
CN105162837B true CN105162837B (zh) | 2018-10-19 |
Family
ID=54803590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510458460.3A Active CN105162837B (zh) | 2015-07-30 | 2015-07-30 | 海量数据存储环境下提升i/o吞吐率的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105162837B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107729559B (zh) * | 2017-11-08 | 2020-06-23 | 携程旅游网络技术(上海)有限公司 | 数据库读写异步访问的方法、系统、设备及存储介质 |
CN109617974B (zh) * | 2018-12-21 | 2021-12-28 | 珠海金山办公软件有限公司 | 一种请求处理方法、装置及服务器 |
CN112395070A (zh) * | 2019-08-12 | 2021-02-23 | 阿里巴巴集团控股有限公司 | 数据处理系统及方法 |
CN111338567B (zh) | 2020-02-13 | 2021-09-17 | 苏州浪潮智能科技有限公司 | 一种基于Protocol Buffer的镜像缓存方法 |
CN117609178A (zh) * | 2023-10-08 | 2024-02-27 | 中信数字创新(上海)科技有限公司 | 一种面向应用程序的异构数据库兼容实现系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997509A (zh) * | 2013-02-20 | 2014-08-20 | 中国移动通信集团北京有限公司 | 一种基于面向服务的体系结构的服务处理方法及装置 |
-
2015
- 2015-07-30 CN CN201510458460.3A patent/CN105162837B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997509A (zh) * | 2013-02-20 | 2014-08-20 | 中国移动通信集团北京有限公司 | 一种基于面向服务的体系结构的服务处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105162837A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105162837B (zh) | 海量数据存储环境下提升i/o吞吐率的方法及系统 | |
US8190593B1 (en) | Dynamic request throttling | |
CN104092756B (zh) | 一种基于dht机制的云存储系统的资源动态分配方法 | |
US9495411B2 (en) | Increased parallelism performance of batch requests | |
CN107579926A (zh) | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 | |
US10693816B2 (en) | Communication methods and systems, electronic devices, and computer clusters | |
CN108200544A (zh) | 短信下发方法和短信平台 | |
CN109783472A (zh) | 表数据的迁移方法、装置、计算机设备和存储介质 | |
CN102307133A (zh) | 一种公有云平台虚拟机调度方法 | |
CN105446653B (zh) | 一种数据合并方法和设备 | |
CN107645410A (zh) | 一种基于OpenStack云平台的虚拟机管理系统及方法 | |
US20120066694A1 (en) | Event overflow handling by coalescing and updating previously-queued event notification | |
CN109726004B (zh) | 一种数据处理方法及装置 | |
CN105740063A (zh) | 一种数据处理方法及装置 | |
CN107025142A (zh) | 一种线程间消息传递方法、装置及电子设备 | |
DE112017001800T5 (de) | Technologien für dynamisches arbeitswarteschlangenmanagement | |
KR20210156243A (ko) | 딥러닝 프레임워크의 훈련 방법, 장치 및 저장 매체 | |
CN113590437B (zh) | 一种告警信息处理方法、装置、设备和介质 | |
CN107239342A (zh) | 一种存储集群任务管理方法及装置 | |
CN110928905A (zh) | 一种数据处理方法和装置 | |
CN114489997A (zh) | 定时任务调度方法、装置、设备和介质 | |
CN112799824A (zh) | 一种限流方法、装置、设备和存储介质 | |
CN103546557B (zh) | 一种平台级服务的数据交互方法、服务平台及系统 | |
CN114257550B (zh) | 接口访问流量的自动控制方法、装置、存储介质及服务器 | |
CN105550025B (zh) | 分布式基础设施即服务(IaaS)调度方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |