CN105095417A - 存储业务数据的方法、装置及数据库节点 - Google Patents

存储业务数据的方法、装置及数据库节点 Download PDF

Info

Publication number
CN105095417A
CN105095417A CN201510409164.4A CN201510409164A CN105095417A CN 105095417 A CN105095417 A CN 105095417A CN 201510409164 A CN201510409164 A CN 201510409164A CN 105095417 A CN105095417 A CN 105095417A
Authority
CN
China
Prior art keywords
database node
data
dilatation
business datum
base cluster
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.)
Pending
Application number
CN201510409164.4A
Other languages
English (en)
Inventor
沈建荣
谭国斌
窦锦帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiaomi Technology Co Ltd
Xiaomi Inc
Original Assignee
Xiaomi Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201510409164.4A priority Critical patent/CN105095417A/zh
Publication of CN105095417A publication Critical patent/CN105095417A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开是关于一种存储业务数据的方法、装置及数据库节点,用以提高用户定位的准确性。所述方法包括:检测是否需要对数据库节点所在的数据库集群进行扩容;如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。本公开技术方案可以避免新生的业务数据存储到同一个数据库节点,缓解数据库节点由于存储新生的业务数据引起的“热点”问题,避免针对最新创建的数据库节点设计缓存系统,大大简化了数据库集群的复杂度,并且更有利于数据库集群的后期维护。

Description

存储业务数据的方法、装置及数据库节点
技术领域
本公开涉及互联网技术领域,尤其涉及一种存储业务数据的方法、装置及数据库节点。
背景技术
数据库分片(sharding)是将原来单一数据库的记录按照一定的规则进行切分,把数据分散到多台数据库节点上存储,从而突破单机限制,使数据库系统能以可扩容的方式应对不断上涨的海量数据,由于分片对上层应用来说是透明的,因此多个物理上分布的数据库节点在逻辑上依然是一个数据库。相关技术中对数据库进行分片时,根据增量区间对数据进行分库,例如,每够1千万条业务数据存储在新的数据库节点上,由于新生的业务数据的读写频率远远高于旧有的数据,因此会带来“热点”问题,也即,可能会有较多(例如,80%)的访问操作都落在了最新的数据库节点上,为了解决“热点”问题,需要针对最新创建的数据库节点设计缓存系统,缓存系统会增加数据库系统的复杂度,不利于数据库的后期维护。
发明内容
为克服相关技术中存在的问题,本公开实施例提供一种存储业务数据的方法、装置及数据库节点,用以缓解数据库节点由于存储新生的业务数据引起的“热点”问题。
根据本公开实施例的第一方面,提供一种存储业务数据的方法,包括:
检测是否需要对数据库节点所在的数据库集群进行扩容;
如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
在一实施例中,所述检测是否需要对数据库节点所在的数据库集群进行扩容,可包括:
确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
如果所述当前已存储的业务数据的存储空间大于所述第一预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
在一实施例中,所述检测是否需要对数据库节点所在的数据库集群进行扩容,可包括:
确定数据库节点当前已存储的业务数据的存储空间与所述数据库节点的总存储空间;
如果所述当前已存储的业务数据的存储空间与所述总存储空间的比值大于所述第二预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
在一实施例中,所述确定所述数据库集群需要扩容的数据库节点的数量,可包括:
向所述数据库集群对应的服务器客户端发送对所述数据库集群进行扩容的提醒;
接收来自所述服务器客户端根据所述提醒返回的所述数据库集群需要扩容的数据库节点的数量。
在一实施例中,所述根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据,可包括:
根据所述需要扩容的数据库节点的数量确定所述数据库集群中的扩容后的数据库节点的总数量;
确定所述需要存储的业务数据的第二编号相对于所述总数量的余数;
根据所述余数和所述第一编号确定是否需要存储所述业务数据。
在一实施例中,所述方法还可包括:
在对所述数据库集群扩容后,确定所述数据库节点中已存储的冗余数据;
将所述冗余数据删除。
在一实施例中,所述确定所述数据库节点中已存储的冗余数据,可包括:
确定所述数据库节点相对应的拷贝的数据库节点的第三编号;
确定所述已存储的业务数据的第四编号相对于所述总数量的余数;
将所述余数与所述拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
根据本公开实施例的第二方面,提供一种存储业务数据的装置,包括:
检测模块,被配置为检测是否需要对数据库节点所在的数据库集群进行扩容;
第一确定模块,被配置为如果所述检测模块检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
第二确定模块,被配置为根据所述第一确定模块确定的所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
在一实施例中,所述检测模块可包括:
第一确定子模块,被配置为确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
第二确定子模块,被配置为如果所述第一确定子模块确定所述当前已存储的业务数据的存储空间大于所述第一预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
在一实施例中,所述检测模块可包括:
第三确定子模块,被配置为确定数据库节点当前已存储的业务数据的存储空间与所述数据库节点的总存储空间;
第四确定子模块,被配置为如果所述第三确定子模块确定所述当前已存储的业务数据的存储空间与所述总存储空间的比值大于所述第二预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
在一实施例中,所述第一确定模块可包括:
发送子模块,被配置为向所述数据库集群对应的服务器客户端发送对所述数据库集群进行扩容的提醒;
接收子模块,被配置为接收来自所述服务器客户端根据所述所述发送子模块发送的所述提醒返回的所述数据库集群需要扩容的数据库节点的数量。
在一实施例中,所述第二确定模块可包括:
第五确定子模块,被配置为根据所述需要扩容的数据库节点的数量确定所述数据库集群中的扩容后的数据库节点的总数量;
第六确定子模块,被配置为确定所述需要存储的业务数据的第二编号相对于所述第五确定子模块确定的所述总数量的余数;
第七确定子模块,被配置为根据所述第六确定子模块确定的所述余数和所述第一编号确定是否需要存储所述业务数据。
在一实施例中,所述装置还可包括:
第三确定模块,被配置为在对所述数据库集群扩容后,确定所述数据库节点中已存储的冗余数据;
删除模块,被配置为将所述第三确定模块确定的所述冗余数据删除。
在一实施例中,所述第三确定模块可包括:
第八确定子模块,被配置为确定所述数据库节点相对应的拷贝的数据库节点的第三编号;
第九确定子模块,被配置为确定所述已存储的业务数据的第四编号相对于所述总数量的余数;
第十确定子模块,被配置为将所述第九确定子模块确定的所述余数与所述第八确定子模块确定的所述拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
根据本公开实施例的第三方面,提供一种数据库节点,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
检测是否需要对所述数据库节点所在的数据库集群进行扩容;
如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
本公开的实施例提供的技术方案可以包括以下有益效果:在检测到需要对数据库集群进行扩容时,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据,从而可以避免新生的业务数据存储到同一个数据库节点,缓解数据库节点由于存储新生的业务数据引起的“热点”问题,避免针对最新创建的数据库节点设计缓存系统,大大简化了数据库集群的复杂度,并且更有利于数据库集群的后期维护。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1A是根据一示例性实施例示出的存储业务数据的方法的流程图。
图1B是根据一示例性实施例示出的存储业务数据的方法的场景图。
图1C是根据一示例性实施例示出的数据库节点的扩容场景图之一。
图1D是根据一示例性实施例示出的数据库节点的扩容场景图之二。
图1E是根据一示例性实施例示出的数据库节点的扩容场景图之三。
图2是根据一示例性实施例一示出的存储业务数据的方法的流程图。
图3是根据一示例性实施例二示出的存储业务数据的方法的流程图。
图4是根据一示例性实施例三示出的存储业务数据的方法的流程图。
图5是根据一示例性实施例示出的一种存储业务数据的装置的框图。
图6是根据一示例性实施例示出的另一种存储业务数据的装置的框图。
图7是根据一示例性实施例示出的一种适用于存储业务数据的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1A是根据一示例性实施例示出的存储业务数据的方法的流程图,图1B是根据一示例性实施例示出的存储业务数据的方法的场景图,图1C是根据一示例性实施例示出的数据库节点的扩容场景图之一,图1D是根据一示例性实施例示出的数据库节点的扩容场景图之二,图1E是根据一示例性实施例示出的数据库节点的扩容场景图之三;该存储业务数据的方法可以应用在数据库集群中的数据库节点上,如图1A所示,该存储业务数据的方法包括以下步骤S101-S103:
在步骤S101中,检测是否需要对数据库节点所在的数据库集群进行扩容,如果检测到需要对数据库集群进行扩容,执行步骤S102,如果检测到不需要对数据库集群进行扩容,执行步骤S104。
在一实施例中,可以通过数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值来确定是否需要对数据库集群进行扩容;在另一实施例中,可以通过数据库节点当前已存储的业务数据的存储空间与数据库节点的总存储空间来确定是否需要对数据库集群进行扩容。
在步骤S102中,如果检测到需要对数据库集群进行扩容,确定数据库集群需要扩容的数据库节点的数量。
在一实施例中,数据库节点可以向服务器客户端获取需要扩容的数据库的节点的数量,例如,数据库节点可以向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒,服务器客户端根据提醒向数据库节点返回数据库集群需要扩容的数据库节点的数量。
在步骤S103中,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
在一实施例中,根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量,确定需要存储的业务数据的第二编号相对于总数量的余数,根据余数和第一编号确定是否需要存储业务数据。在一实施例中,余数可以通过对总数量取第二编号的模数得到。在一实施例中,业务数据可以为用户在网站服务器上的记录信息,例如,对于新用户的注册信息,业务数据为新用户的用户表的记录数据,或者,用户针对一篇文章做了评论,业务数据为评论表中的评论记录,等等。
在步骤S104中,如果检测到不需要对数据库集群进行扩容,根据数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
下面结合图1B至图1E对本公开进行示例性说明,如图1B所示,在整个网站架构中的应用层11上,包括web服务器节点111和web服务器节点113,在web服务器节点111和web服务器节点113上分别设置有服务器客户端112和服务器客户端114。在数据层12,数据库节点121和数据库节点122为扩容前的数据库节点,数据库节点123和数据库节点124为扩容后的数据库节点。
如图1C所示,在对数据库集群扩容前,有两个数据库节点,即,数据库节点121和数据库节点122,对于网站服务器新增的业务数据,可以根据业务数据的第二编号(id)按照对2的取模结果分别存储在数据库节点121和数据库节点122中。
当网站服务器的业务数据的数量上升时,数据库节点121和数据库节点122的数据访问性能下降,如图1D所示,可以通过复制数据库节点121和数据库节点122的数据库,得到4个数据库节点,其中,数据库节点123和数据库节点124分别为数据库节点121和数据库节点122的拷贝。此外,对于拷贝之后的数据库节点中会有一些业务数据为冗余数据,因此可以将冗余数据删除,从而避免数据库集群中所存储的业务数据在多个数据库节点上重复存储。本领域技术人员可以理解的是,上述4个数据库节点仅作为示例性说明,并不能形成对本公开的限制,当数据库集群在4个数据库节点的情形下需要扩容时,仍可以通过拷贝数据库集群中已有数据库节点的方式实现数据库集群的扩容,通过拷贝方式对数据库集群进行扩容,能够使扩容后的数据库集群的存储空间达到了线性扩容的数倍,因此可以避免对数据库集群进行频繁的扩容操作。
本实施例中,在检测到需要对数据库集群进行扩容时,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据,从而可以避免新生的业务数据存储到同一个数据库节点,缓解数据库节点由于存储新生的业务数据引起的“热点”问题,避免针对最新创建的数据库节点设计缓存系统,大大简化了数据库集群的复杂度,并且更有利于数据库集群的后期维护。
在一实施例中,检测是否需要对数据库节点所在的数据库集群进行扩容,可包括:
确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
如果当前已存储的业务数据的存储空间大于第一预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
在一实施例中,检测是否需要对数据库节点所在的数据库集群进行扩容,可包括:
确定数据库节点当前已存储的业务数据的存储空间与数据库节点的总存储空间;
如果当前已存储的业务数据的存储空间与总存储空间的比值大于第二预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
在一实施例中,确定数据库集群需要扩容的数据库节点的数量,可包括:
向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒;
接收来自服务器客户端根据提醒返回的数据库集群需要扩容的数据库节点的数量。
在一实施例中,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据,可包括:
根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量;
确定需要存储的业务数据的第二编号相对于总数量的余数;
根据余数和第一编号确定是否需要存储业务数据。
在一实施例中,方法还可包括:
在对数据库集群扩容后,确定数据库节点中已存储的冗余数据;
将冗余数据删除。
在一实施例中,确定数据库节点中已存储的冗余数据,可包括:
确定数据库节点相对应的拷贝的数据库节点的第三编号;
确定已存储的业务数据的第四编号相对于总数量的余数;
将余数与拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
具体如何在数据库节点上存储业务数据的,请参考后续实施例。
至此,本公开实施例提供的上述方法,可以避免新生的业务数据存储到同一个数据库节点,缓解数据库节点由于存储新生的业务数据引起的“热点”问题,避免针对最新创建的数据库节点设计缓存系统,大大简化了数据库集群的复杂度,并且更有利于数据库集群的后期维护。
下面以具体实施例来说明本公开实施例提供的技术方案。
图2是根据一示例性实施例一示出的存储业务数据的方法的流程图;本实施例利用本公开实施例提供的上述方法,以数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值来确定为数据库集群进行扩容以及如何确定扩容后的数据库集群中的数据库节点的数量为例进行示例性说明,本实施例结合图1B至图1E进行举例说明,如图2所示,包括如下步骤:
在步骤S201中,确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值,如果当前已存储的业务数据的存储空间大于第一预设阈值,执行步骤S202,如果当前已存储的业务数据的存储空间小于或者等于第一预设阈值,执行步骤S206。
在步骤S202中,如果当前已存储的业务数据的存储空间大于第一预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
在步骤S201和步骤S202中,在一实施例中,数据库节点可以通过其记录的已经存储的业务数据所占的存储空间是否大于第一预设阈值,如果已经存储的业务数据所占的存储空间大于第一预设阈值,表示当前数据库节点由于存储性能不能够存储更多的业务数据,在此情形下,确定需要对数据库节点所在的数据库集群进行扩容。在一实施例中,第一预设阈值可以根据数据库节点的具体存储性能来确定,本公开对第一预设预知的大小不做限制,本领域技术人员可以理解的是,同一数据库集群内不同的数据库节点对应的第一预设阈值可以不相同,也可以相同,本公开对此不做限制。
在步骤S203中,向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒。
在步骤S204中,接收来自服务器客户端根据提醒返回的数据库集群需要扩容的数据库节点的数量。
在步骤S203和步骤S204中,在一实施例中,以数据库节点121为例进行示例性说明,当数据库节点121根据其已存储的业务数据所占的存储空间大于第一预设阈值时,数据库节点121可以向web服务器节点111的服务器客户端112发送需要扩容的提醒,以告知服务器客户端112其已不能存储更多的业务数据。服务器客户端112接收到提醒后,可以向相应的网络管理人员做出提示,在网络管理人员通过手动方式将数据库节点123和数据库节点124扩容到数据库集群中后,服务器客户端112记录已扩容的数据库节点的数量,并向数据库节点121发送已扩容的数据库节点的数量,以使数据库节点121根据数据库集群在扩容之前的数据库节点的数量和需要扩容的数据库节点的数量确定当前数据库集群中的数据库节点的总数量。
在步骤S205中,根据需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
步骤S205的描述可以参见上述步骤S102的描述,在此不再详述。
在步骤S206中,如果检测到不需要对数据库集群进行扩容,根据数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
步骤S206的描述可以参见上述步骤S104的描述,在此不再详述。
本实施例在具有上述实施例的有益技术效果的基础上,通过数据库节点的当前已存储的业务数据的存储空间是否大于第一预设阈值来确定是否需要对数据库节点所在的数据库集群进行扩容,从而可以根据数据库节点的性能瓶颈来对数据库集群进行扩容,降低数据库节点的访问压力。
图3是根据一示例性实施例二示出的存储业务数据的方法的流程图;本实施例利用本公开实施例提供的上述方法,以数据库节点当前已存储的业务数据的存储空间与总存储空间的比值大于第二预设阈值来确定为数据库集群进行扩容以及如何确定需要存储的业务数据为例进行示例性说明,本实施例结合图1B至图1E进行举例说明,如图3所示,包括如下步骤:
在步骤S301中,确定数据库节点当前已存储的业务数据的存储空间与数据库节点的总存储空间,如果当前已存储的业务数据的存储空间与总存储空间的比值大于第二预设阈值,执行步骤S302,如果当前已存储的业务数据的存储空间与总存储空间的比值小于或者等于第二预设阈值,执行步骤S307。
在步骤S302中,如果当前已存储的业务数据的存储空间与总存储空间的比值大于第二预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
在步骤S301和步骤S302中,在一实施例中,数据库节点可以通过其记录的已经存储的业务数据所占的存储空间与总存储空间的比值是否大于第二预设阈值,如果比值大于第二预设阈值,表示当前数据库节点由于存储性能不能够存储更多的业务数据,在此情形下,确定需要对数据库节点所在的数据库集群进行扩容。在一实施例中,第二预设阈值可以根据数据库节点的具体存储性能来确定,本公开对第二预设预知的大小不做限制,本领域技术人眼可以理解的是,同一数据库集群内不同的数据库节点对应的第二预设阈值可以不相同,也可以相同,本公开对此不做限制。
在步骤S303中,确定数据库集群需要扩容的数据库节点的数量。
在步骤S304中,根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量。
在步骤S305中,确定需要存储的业务数据的第二编号相对于总数量的余数。
在步骤S306中,根据余数和第一编号确定是否需要存储业务数据。
在步骤S304至步骤S306中,如图1B所示,需要扩容的数据库节点的数量为2个,则数据库集群中的数据库节点的总数量为4,数据库节点121对应的第一编号为1,需要存储的业务数据的第二编号为9,则对于数据库节点121,将9除以4得到的余数为1,由于余数1与数据库节点121对应的第一编号(id)1相同,因此将第二编号为9的业务数据存储到数据库节点121,再例如,需要存储的业务数据的第二编号为10,则对于数据库节点121,将10除以4得到的余数为2,由于余数2与数据库节点121对应的第一编号(id)1不相同,因此不能够将第二编号为10的业务数据存储到数据库节点121。本领域技术人员可以理解的是,数据库节点122、数据库节点123、数据库节点124均可以执行与数据库节点121相同的动作,从而确定来自业务层的业务数据是否存储在自身的数据库节点上。
在步骤S307中,如果检测到不需要对数据库集群进行扩容,根据数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
步骤S307的描述可以参见上述步骤S104的描述,在此不再详述。
本实施例在具有上述实施例的有益技术效果的基础上,根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量,确定需要存储的业务数据的第二编号相对于总数量的余数,根据余数和第一编号确定是否需要存储业务数据,从而可以将同一时间段的来自业务层1的业务数据分散存储到数据库集群中的不同的数据库节点上,有效地避免来自业务层11的访问操作都落在了最新的数据库节点上,从而分散了数据库节点的访问压力。
图4是根据一示例性实施例三示出的存储业务数据的方法的流程图;本实施例利用本公开实施例提供的上述方法,以如何确定扩容后的数据库集群中的数据库节点中的冗余数据为例进行示例性说明,本实施例结合图1B至图1E进行举例说明,如图4所示,包括如下步骤:
在步骤S401中,确定数据库节点相对应的拷贝的数据库节点的第三编号。
在步骤S402中,确定已存储的业务数据的第四编号相对于总数量的余数。
在步骤S403中,将余数与拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
在步骤S404中,将冗余数据删除。
作为一个示例性场景,如图1E所示,以数据库节点121为例进行示例性说明,数据库节点121在数据库集群中的第三编号为1,数据库节点121拷贝的数据库节点为数据库节点123,数据库节点123的第三编号为3,在数据库节点121中已存储的业务数据的第四编号分别为1、3、5、7,数据库集群中的数据库节点的总数量为4,已存储的业务数据的第四编号1、3、5、7相对于4的余数为1、3、1、3,将1、3、1、3分别与数据库节点123的第三编号3相比较,确定第四编号为3、7的余数与123的第三编号3相同,因此将3、7对应的业务数据作为冗余数据。
本实施例在具有上述实施例的有益技术效果的基础上,由于对数据库节点进行拷贝会导致业务数据重复存储到拷贝的数据库节点上,通过将已存储的业务数据的第四编号相对于总数量的余数与拷贝的数据库节点的第三编号相同的业务数据作为冗余数据删除,从而可以有效分散数据库节点的访问压力,提高数据库集群的访问性能。
图5是根据一示例性实施例示出的一种存储业务数据的装置的框图,应用在数据库节点上,如图5所示,存储业务数据的装置包括:
检测模块51,被配置为检测是否需要对数据库节点所在的数据库集群进行扩容;
第一确定模块52,被配置为如果检测模块51检测到需要对数据库集群进行扩容,确定数据库集群需要扩容的数据库节点的数量;
第二确定模块53,被配置为根据第一确定模块52确定的需要扩容的数据库节点的数量、数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储业务数据。
图6是根据一示例性实施例示出的另一种存储业务数据的装置的框图,如图6所示,在上述图5所示实施例的基础上,在一实施例中,检测模块51可包括:
第一确定子模块511,被配置为确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
第二确定子模块512,被配置为如果第一确定子模块511确定当前已存储的业务数据的存储空间大于第一预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
在一实施例中,检测模块51可包括:
第三确定子模块513,被配置为确定数据库节点当前已存储的业务数据的存储空间与数据库节点的总存储空间;
第四确定子模块514,被配置为如果第三确定子模块513确定当前已存储的业务数据的存储空间与总存储空间的比值大于第二预设阈值,确定需要对数据库节点所在的数据库集群进行扩容。
在一实施例中,第一确定模块52可包括:
发送子模块521,被配置为向数据库集群对应的服务器客户端发送对数据库集群进行扩容的提醒;
接收子模块522,被配置为接收来自服务器客户端根据发送子模块521发送的提醒返回的数据库集群需要扩容的数据库节点的数量。
在一实施例中,第二确定模块53可包括:
第五确定子模块531,被配置为根据需要扩容的数据库节点的数量确定数据库集群中的扩容后的数据库节点的总数量;
第六确定子模块532,被配置为确定需要存储的业务数据的第二编号相对于第五确定子模块531确定的总数量的余数;
第七确定子模块533,被配置为根据第六确定子模块532确定的余数和第一编号确定是否需要存储业务数据。
在一实施例中,装置还可包括:
第三确定模块54,被配置为在对数据库集群扩容后,确定数据库节点中已存储的冗余数据;
删除模块55,被配置为将第三确定模块54确定的冗余数据删除。
在一实施例中,第三确定模块54可包括:
第八确定子模块541,被配置为确定数据库节点相对应的拷贝的数据库节点的第三编号;
第九确定子模块542,被配置为确定已存储的业务数据的第四编号相对于总数量的余数;
第十确定子模块543,被配置为将第九确定子模块542确定的余数与第八确定子模块541确定的拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图7是根据一示例性实施例示出的一种适用于存储业务数据的装置的框图。例如,装置700可以被提供为一服务器,该服务器上设置有数据库节点。参照图7,装置700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理部件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述存储业务数据的方法,所述方法包括:
检测是否需要对数据库节点所在的数据库集群进行扩容;
如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
装置700还可以包括一个电源组件726被配置为执行装置700的电源管理,一个有线或无线网络接口750被配置为将装置700连接到网络,和一个输入输出(I/O)接口758。装置700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器732,上述指令可由装置700的处理组件722执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端/服务端的处理器执行时,使得移动终端/服务端能够执行一种存储业务数据的方法,所述方法包括:
检测是否需要对数据库节点所在的数据库集群进行扩容;
如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (15)

1.一种存储业务数据的方法,其特征在于,所述方法包括:
检测是否需要对数据库节点所在的数据库集群进行扩容;
如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
2.根据权利要求1所述的方法,其特征在于,所述检测是否需要对数据库节点所在的数据库集群进行扩容,包括:
确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
如果所述当前已存储的业务数据的存储空间大于所述第一预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
3.根据权利要求1所述的方法,其特征在于,所述检测是否需要对数据库节点所在的数据库集群进行扩容,包括:
确定数据库节点当前已存储的业务数据的存储空间与所述数据库节点的总存储空间;
如果所述当前已存储的业务数据的存储空间与所述总存储空间的比值大于所述第二预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
4.根据权利要求1所述的方法,其特征在于,所述确定所述数据库集群需要扩容的数据库节点的数量,包括:
向所述数据库集群对应的服务器客户端发送对所述数据库集群进行扩容的提醒;
接收来自所述服务器客户端根据所述提醒返回的所述数据库集群需要扩容的数据库节点的数量。
5.根据权利要求1所述的方法,其特征在于,所述根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据,包括:
根据所述需要扩容的数据库节点的数量确定所述数据库集群中的扩容后的数据库节点的总数量;
确定所述需要存储的业务数据的第二编号相对于所述总数量的余数;
根据所述余数和所述第一编号确定是否需要存储所述业务数据。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在对所述数据库集群扩容后,确定所述数据库节点中已存储的冗余数据;
将所述冗余数据删除。
7.根据权利要求6所述的方法,其特征在于,所述确定所述数据库节点中已存储的冗余数据,包括:
确定所述数据库节点相对应的拷贝的数据库节点的第三编号;
确定所述已存储的业务数据的第四编号相对于所述总数量的余数;
将所述余数与所述拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
8.一种存储业务数据的装置,其特征在于,所述装置包括:
检测模块,被配置为检测是否需要对数据库节点所在的数据库集群进行扩容;
第一确定模块,被配置为如果所述检测模块检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
第二确定模块,被配置为根据所述第一确定模块确定的所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
9.根据权利要求8所述的装置,其特征在于,所述检测模块包括:
第一确定子模块,被配置为确定数据库节点当前已存储的业务数据的存储空间是否大于第一预设阈值;
第二确定子模块,被配置为如果所述第一确定子模块确定所述当前已存储的业务数据的存储空间大于所述第一预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
10.根据权利要求8所述的装置,其特征在于,所述检测模块包括:
第三确定子模块,被配置为确定数据库节点当前已存储的业务数据的存储空间与所述数据库节点的总存储空间;
第四确定子模块,被配置为如果所述第三确定子模块确定所述当前已存储的业务数据的存储空间与所述总存储空间的比值大于所述第二预设阈值,确定需要对所述数据库节点所在的数据库集群进行扩容。
11.根据权利要求8所述的装置,其特征在于,所述第一确定模块包括:
发送子模块,被配置为向所述数据库集群对应的服务器客户端发送对所述数据库集群进行扩容的提醒;
接收子模块,被配置为接收来自所述服务器客户端根据所述所述发送子模块发送的所述提醒返回的所述数据库集群需要扩容的数据库节点的数量。
12.根据权利要求8所述的装置,其特征在于,所述第二确定模块包括:
第五确定子模块,被配置为根据所述需要扩容的数据库节点的数量确定所述数据库集群中的扩容后的数据库节点的总数量;
第六确定子模块,被配置为确定所述需要存储的业务数据的第二编号相对于所述第五确定子模块确定的所述总数量的余数;
第七确定子模块,被配置为根据所述第六确定子模块确定的所述余数和所述第一编号确定是否需要存储所述业务数据。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三确定模块,被配置为在对所述数据库集群扩容后,确定所述数据库节点中已存储的冗余数据;
删除模块,被配置为将所述第三确定模块确定的所述冗余数据删除。
14.根据权利要求13所述的装置,其特征在于,所述第三确定模块包括:
第八确定子模块,被配置为确定所述数据库节点相对应的拷贝的数据库节点的第三编号;
第九确定子模块,被配置为确定所述已存储的业务数据的第四编号相对于所述总数量的余数;
第十确定子模块,被配置为将所述第九确定子模块确定的所述余数与所述第八确定子模块确定的所述拷贝的数据库节点的第三编号相同的业务数据作为冗余数据。
15.一种数据库节点,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
检测是否需要对所述数据库节点所在的数据库集群进行扩容;
如果检测到需要对所述数据库集群进行扩容,确定所述数据库集群需要扩容的数据库节点的数量;
根据所述需要扩容的数据库节点的数量、所述数据库节点的第一编号与需要存储的业务数据的第二编号确定是否需要存储所述业务数据。
CN201510409164.4A 2015-07-13 2015-07-13 存储业务数据的方法、装置及数据库节点 Pending CN105095417A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510409164.4A CN105095417A (zh) 2015-07-13 2015-07-13 存储业务数据的方法、装置及数据库节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510409164.4A CN105095417A (zh) 2015-07-13 2015-07-13 存储业务数据的方法、装置及数据库节点

Publications (1)

Publication Number Publication Date
CN105095417A true CN105095417A (zh) 2015-11-25

Family

ID=54575854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510409164.4A Pending CN105095417A (zh) 2015-07-13 2015-07-13 存储业务数据的方法、装置及数据库节点

Country Status (1)

Country Link
CN (1) CN105095417A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375395A (zh) * 2016-08-30 2017-02-01 厦门中学西渐信息科技有限公司 节点服务器的负载均衡方法和系统
CN106776961A (zh) * 2016-12-05 2017-05-31 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备
CN107103426A (zh) * 2017-04-26 2017-08-29 郑州云海信息技术有限公司 批量删除序列号与多个订单号绑定关系的方法及装置
CN107544848A (zh) * 2017-08-30 2018-01-05 深圳云天励飞技术有限公司 集群扩展方法、装置、电子设备及存储介质
CN109828960A (zh) * 2018-12-14 2019-05-31 平安科技(深圳)有限公司 日志库扩容方法、系统、计算机装置及可读存储介质
CN110019125A (zh) * 2017-11-27 2019-07-16 北京京东尚科信息技术有限公司 数据库管理的方法和装置
CN110019300A (zh) * 2017-11-16 2019-07-16 中兴通讯股份有限公司 分布式数据库的数据访问方法及其系统
CN111796769A (zh) * 2020-06-30 2020-10-20 中国工商银行股份有限公司 云平台日志存储系统扩容方法及装置
CN112765211A (zh) * 2020-12-31 2021-05-07 中铁二院工程集团有限责任公司 铁路地质灾害监测分布式数据库集群的扩展方法与系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521297A (zh) * 2011-11-30 2012-06-27 北京人大金仓信息技术股份有限公司 无共享数据库集群中实现系统动态扩展的方法
CN102930062A (zh) * 2012-11-30 2013-02-13 南京富士通南大软件技术有限公司 一种数据库快速水平扩展的方法
CN102968503A (zh) * 2012-12-10 2013-03-13 曙光信息产业(北京)有限公司 数据库系统的数据处理方法以及数据库系统
WO2013157099A1 (ja) * 2012-04-18 2013-10-24 株式会社Murakumo データベースの管理方法、データベースシステム、及び、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521297A (zh) * 2011-11-30 2012-06-27 北京人大金仓信息技术股份有限公司 无共享数据库集群中实现系统动态扩展的方法
WO2013157099A1 (ja) * 2012-04-18 2013-10-24 株式会社Murakumo データベースの管理方法、データベースシステム、及び、プログラム
CN102930062A (zh) * 2012-11-30 2013-02-13 南京富士通南大软件技术有限公司 一种数据库快速水平扩展的方法
CN102968503A (zh) * 2012-12-10 2013-03-13 曙光信息产业(北京)有限公司 数据库系统的数据处理方法以及数据库系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375395B (zh) * 2016-08-30 2019-06-11 厦门中学西渐信息科技有限公司 节点服务器的负载均衡方法和系统
CN106375395A (zh) * 2016-08-30 2017-02-01 厦门中学西渐信息科技有限公司 节点服务器的负载均衡方法和系统
CN106776961A (zh) * 2016-12-05 2017-05-31 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备
CN107103426A (zh) * 2017-04-26 2017-08-29 郑州云海信息技术有限公司 批量删除序列号与多个订单号绑定关系的方法及装置
CN107544848B (zh) * 2017-08-30 2019-10-25 深圳云天励飞技术有限公司 集群扩展方法、装置、电子设备及存储介质
CN107544848A (zh) * 2017-08-30 2018-01-05 深圳云天励飞技术有限公司 集群扩展方法、装置、电子设备及存储介质
CN110019300B (zh) * 2017-11-16 2023-06-09 金篆信科有限责任公司 分布式数据库的数据访问方法及其系统
CN110019300A (zh) * 2017-11-16 2019-07-16 中兴通讯股份有限公司 分布式数据库的数据访问方法及其系统
CN110019125A (zh) * 2017-11-27 2019-07-16 北京京东尚科信息技术有限公司 数据库管理的方法和装置
CN110019125B (zh) * 2017-11-27 2021-12-14 北京京东尚科信息技术有限公司 数据库管理的方法和装置
CN109828960A (zh) * 2018-12-14 2019-05-31 平安科技(深圳)有限公司 日志库扩容方法、系统、计算机装置及可读存储介质
CN109828960B (zh) * 2018-12-14 2024-05-28 平安科技(深圳)有限公司 日志库扩容方法、系统、计算机装置及可读存储介质
CN111796769A (zh) * 2020-06-30 2020-10-20 中国工商银行股份有限公司 云平台日志存储系统扩容方法及装置
CN111796769B (zh) * 2020-06-30 2024-02-27 中国工商银行股份有限公司 云平台日志存储系统扩容方法及装置
CN112765211A (zh) * 2020-12-31 2021-05-07 中铁二院工程集团有限责任公司 铁路地质灾害监测分布式数据库集群的扩展方法与系统

Similar Documents

Publication Publication Date Title
CN105095417A (zh) 存储业务数据的方法、装置及数据库节点
US10606806B2 (en) Method and apparatus for storing time series data
CN108289034B (zh) 一种故障发现方法和装置
CN107315814B (zh) 一种kdb数据库数据迁移后数据一致性验证方法及系统
CN111460129B (zh) 标识生成的方法、装置、电子设备和存储介质
US11263080B2 (en) Method, apparatus and computer program product for managing cache
CN105550306A (zh) 多副本数据的读写方法及系统
CN111314158B (zh) 大数据平台监控方法、装置及设备、介质
CN110162512A (zh) 一种日志检索方法、装置及存储介质
CN107040576A (zh) 信息推送方法及装置、通讯系统
CN103716384A (zh) 跨数据中心实现云存储数据同步的方法和装置
US11093357B2 (en) Method for managing disks, electronic device and computer program product
CN110096413A (zh) 一种磁盘定位方法、系统及电子设备和存储介质
CN109165112A (zh) 一种元数据集群的故障恢复方法、系统及相关组件
CN110737655A (zh) 用于上报数据的方法和装置
CN104348905A (zh) 一种离线推送消息的方法及装置
US10853892B2 (en) Social networking relationships processing method, system, and storage medium
CN108768766B (zh) 对数据链路的状态信息进行显示的方法、装置及存储介质
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
CN107609038B (zh) 数据清理方法和装置
CN109254880B (zh) 一种处理数据库宕机的方法及装置
CN107154960B (zh) 用于确定分布式存储系统的服务可用性信息的方法与设备
CN111949479B (zh) 交互系统和索引创建情况的确定方法、设备
CN104239307A (zh) 用户信息存储方法和系统
CN111190858B (zh) 软件信息存储方法、装置、设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20151125