CN110309156A - 数据库系统、数据库更新、扩容方法及设备 - Google Patents

数据库系统、数据库更新、扩容方法及设备 Download PDF

Info

Publication number
CN110309156A
CN110309156A CN201810172457.9A CN201810172457A CN110309156A CN 110309156 A CN110309156 A CN 110309156A CN 201810172457 A CN201810172457 A CN 201810172457A CN 110309156 A CN110309156 A CN 110309156A
Authority
CN
China
Prior art keywords
data
node
subsystem
memory space
host node
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
CN201810172457.9A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201810172457.9A priority Critical patent/CN110309156A/zh
Publication of CN110309156A publication Critical patent/CN110309156A/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/23Updating
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24547Optimisations to support specific applications; Extensibility of optimisers
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management

Landscapes

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

Abstract

本申请实施例提供一种数据库系统、数据库更新、扩容方法及设备。本申请实施例提供一种新的数据库架构,基于主从节点对存储空间的共享机制,主节点与从节点之间可灵活、方便地对外提供数据写入和查询功能。这种数据库架构基于主从节点对存储空间的共享机制,可直接在存储空间上连接新的从节点实现系统扩容,满足不断增长的并发查询业务需求,操作简单,效率较高。

Description

数据库系统、数据库更新、扩容方法及设备
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库系统、数据库更新、扩容方法及设备。
背景技术
随着大数据应用越来越普及,人们对大数据分析查询的需求越来越多,分析型数据库应运而生。
目前,分析型数据库通常采用大规模并行处理(Massively ParallelProcessing,MPP)架构。MPP架构通过将数据平均分布到多个数据节点上来实现大规模数据的存储;通过将查询请求并行地分布到多个数据节点上,由每个数据节点执行计算,并由主机执行结果汇总,来实现并行查询。
随着业务需求的不断增长,MPP架构需要增加数据节点来改善整个架构的服务性能。但是,现有MPP架构增加数据节点会涉及大规模数据的重分布,实现难度较大,耗时较长。
发明内容
本申请的多个方面提供一种数据库系统、数据库更新、扩容方法及设备,用以提供一种新的、易于扩容的数据库架构,改善数据库系统的服务性能。
本申请实施例提供一种数据库系统,包括:至少一个子系统,所述至少一个子系统包括主节点、若干从节点以及所述主节点和所述若干从节点共享的存储空间;
所述主节点,用于向所属子系统中的存储空间写入数据;
所述从节点,用于从所属子系统中的存储空间查询由所属子系统中的主节点写入的数据,以对外提供查询功能。
本申请实施例提供一种数据库更新方法,适用于数据库系统的至少一个子系统中的主节点,所述方法包括:
响应于外部的写指令向所属子系统中的存储空间写入数据;
基于数据写入事件向所属子系统中的若干从节点发送更新通知,以使所述若干从节点利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述若干从节点共享所属子系统中的所述存储空间。
本申请实施例提供一种数据库更新方法,适用于数据库系统的至少一个子系统中的从节点,所述方法包括:
接收所属子系统中主节点发送的更新通知,所述更新通知是所述主节点基于向所属子系统中的存储空间写入数据的数据写入事件发送的;
根据所述更新通知,利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述从节点共享所属子系统中的所述存储空间。
本申请实施例提供一种数据库扩容方法,适用于数据库系统中的管理设备,所述方法包括:
根据所述数据库系统中至少一个子系统中已有从节点的查询耗时,监测所述至少一个子系统各自的整体查询耗时;
从所述至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统;
将所述目标子系统的存储空间挂载至新的从节点,以使所述新的从节点从所述目标子系统的存储空间查询由所述目标子系统中的主节点写入的数据,以对外提供查询功能。
本申请实施例提供一种主节点,包括:存储器、处理器以及通信组件;
所述存储器,用于存储一条或多条计算机指令;
所述处理器,耦合至所述存储器,用于执行所述一条或多条计算机指令,以用于:
响应于外部的写指令向所属子系统中的存储空间写入数据;
基于数据写入事件通过所述通信组件向所属子系统中的若干从节点发送更新通知,以使所述若干从节点利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述若干从节点共享所属子系统中的所述存储空间。
本申请实施例提供一种从节点,包括:存储器、处理器以及通信组件;
所述通信组件,用于接收所属子系统中主节点发送的更新通知,所述更新通知是所述主节点基于向所属子系统中的存储空间写入数据的数据写入事件发送的;
所述存储器,用于存储一条或多条计算机指令;
所述处理器,耦合至所述存储器和所述通信组件,用于执行所述一条或多条计算机指令,以用于:
根据所述更新通知,利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述从节点共享所属子系统中的所述存储空间。
本申请实施例提供一种管理设备,位于数据库系统中实现,所述管理设备包括:存储器和处理器;
所述存储器,用于存储一条或多条计算机指令;
所述处理器,耦合至所述存储器,用于执行所述一条或多条计算机指令,以用于:
根据所述数据库系统中至少一个子系统中已有从节点的查询耗时,监测所述至少一个子系统各自的整体查询耗时;
从所述至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统;
将所述目标子系统的存储空间挂载至新的从节点,以使所述新的从节点从所述目标子系统的存储空间查询由所述目标子系统中的主节点写入的数据,以对外提供查询功能。
在本申请实施例中,提供一种新的数据库架构,该数据库架构包括至少一个子系统,在子系统中,主节点和从节点共享同一存储空间中的数据,基于主从节点对存储空间的共享机制,主节点与从节点之间可灵活、方便地对外提供数据写入和查询功能。这种数据库架构基于主从节点对存储空间的共享机制,可直接将存储空间挂载至新的从节点实现系统扩容,满足不断增长的并发查询业务需求,操作简单,效率较高。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的一种数据库系统的结构示意图;
图2为本申请一示例性实施例提供的另一种数据库系统的结构示意图;
图3为本申请一实施例提供的又一种数据库系统的结构示意图;
图4为本申请另一示例性实施例提供的一种数据库更新方法的流程示意图;
图5为本申请另一示例性实施例提供的另一种数据库更新方法的流程示意图;
图6为本申请另一示例性实施例提供的又一种数据库更新方法的流程示意图;
图7为本申请又一示例性实施例提供的一种数据库更新方法的流程示意图;
图8为本申请又一示例性实施例提供的又一种数据库更新方法的流程示意图
图9为本申请又一示例性实施例提供的一种数据库扩容方法的流程示意图;
图10为本申请又一示例性实施例提供的一种主节点的结构示意图;
图11为本申请又一示例性实施例提供的一种从节点的结构示意图;
图12为本申请又一示例性实施例提供的一种管理设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中采用增加MPP架构的数据节点的方式来改善数据库系统的服务性能,这种方式会涉及大规模数据的重分布,实现难度较大,耗时较长。针对现有技术存在的问题,本申请一些实施例提供一种新的数据库架构,该数据库架构包括至少一个子系统,在子系统中,主节点和从节点共享同一存储空间中的数据,基于主从节点对存储空间的共享机制,主节点与从节点之间可灵活、方便地对外提供数据写入和查询功能。这种数据库架构基于主从节点对存储空间的共享机制,可直接将存储空间挂载至新的从节点实现系统扩容,满足不断增长的并发查询业务需求,操作简单,效率较高。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种数据库系统的结构示意图。如图1所示,该数据库系统10包括:至少一个子系统20,至少一个子系统20包括主节点201、若干从节点202以及主节点201和若干从节点202共享的存储空间。
其中,主节点201,主要用于向其所属子系统20中的存储空间写入数据,以对外提供数据写入功能。即,数据库系统10的外部使用者可以通过主节点201向相应存储空间中写入数据。除此之外,主节点201也可以从所属子系统20中的存储空间查询数据,以对外提供查询功能。
从节点202,主要用于从所属子系统20中的存储空间查询由所属子系统中主节点201写入的数据,以对外提供查询功能。即,数据库系统10的外部使用者可以通过从节点202查询数据库系统10中存储的有关数据。
对每个子系统20而言,从节点202的个数可按实际需要进行设定,且从节点202之间不分主次。不同子系统20之间的从节点202个数可以相同也可以不同;不同子系统20的存储空间内存储的数据可以相同也可以不同。一般来说,不同子系统20的存储空间内存储的数据不完全相同。当不同子系统20的存储空间内存储的数据不同时,每个子系统20可响应与其存储空间内的数据相对应的读/写指令。
对每个子系统20中的存储空间来说,主要用于存储其所属子系统中的数据。在本申请各实施例中,并不限定每个子系统20中的存储空间的大小,例如,可以是500MB、800MB或50GB等。不同子系统20中的存储空间的大小可以相同,也可以不相同。另外,在本申请各实施例中,也不限定每个子系统20中用于提供存储空间的存储介质的实现形式,例如可以是相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)以及磁盒式磁带等中的任意一种。不同子系统20中用于提供存储空间的存储介质的类型可以相同,也可以不相同。
在本实施例中,数据库系统10基于各子系统20中的主节点201和从节点202可对外提供数据查询/写入功能,也即是当数据库系统10接收到外部的读/写指令时,可由各个子系统20中的主节点201和/或从节点202响应于该读/写指令对外提供数据查询/写入功能。可选地,可以将外部的写指令分发到各子系统20中的主节点201,由各个子系统20中的主节点201响应于写指令向所属子系统20中的存储空间写入数据,以对外提供数据写入功能;将外部的读指令分发到各子系统20中的从节点202,由各个子系统20中的从节点202响应于读指令从所属子系统20中的存储空间中查询数据,以对外提供查询功能。或者,可以将外部的写指令分发到各子系统20中的主节点201,由各个子系统20中的主节点201响应于写指令向所属子系统20中的存储空间写入数据,以对外提供数据写入功能;将外部的读指令分发到各子系统20中的主节点201和/或从节点202,由各个子系统20中的主节点201和/或从节点202响应于读指令从所属子系统20中的存储空间中查询数据,以对外提供查询功能。
当数据库系统10接收到一个或一组读/写指令时,可通过规则运算获知每个读/写指令应该被分发到哪个子系统20中的哪个节点,之后直接将读/写指令分发到对应节点即可。可选地,数据库系统10可以采用数据库中间件执行读/写指令的分发操作。本申请实施例并不限定数据库中间件的实现方式,凡是可以实现读/写指令分发操作的中间件均适用于本申请实施例。例如,该数据库中间件可以是目前市面上已经存在的中间件,例如Cobar、Mycat、Oneproxy等,也可以是自行开发的中间件。
可选地,可以根据各主节点201或从节点202的当前负载以及最大负载能力进行读/写指令的分发。在该可选实施方式中,优先将读/写指令分发给当前负载较小的主节点201或从节点202。或者,
可选地,也可以根据各子系统20对应的业务逻辑或业务数据范围等进行读/写指令的分发。在该可选实施方式中,一般是判断读/写指令涉及的数据所属的业务逻辑或业务数据范围,进而确定负责该读/写指令所涉及的业务逻辑或业务数据范围的子系统20,将该读/写指令分发给所确定的子系统20中的主节点201或从节点202。
本实施例中,在每个子系统20中,主节点201和从节点202共享同一存储空间中的数据,主节点可以向存储空间写入数据,从节点可以从该存储空间中查询由主节点写入的数据,基于主从节点对存储空间的共享机制,主节点与从节点之间可灵活、方便地对外提供数据写入和查询功能。这种数据库架构基于主从节点对存储空间的共享机制,可直接将存储空间挂载至新的从节点实现系统扩容,满足不断增长的并发查询业务需求,无需对存储空间中的数据进行重分布,操作简单,效率较高。
在本申请各实施例中,从节点202至少可采用但不限于以下三种方式对外提供查询功能:
第一种方式:从节点202可响应于外部的读指令,从其所属子系统20的存储空间中读取读指令对应的数据并输出。由于从节点202所属子系统20中的主节点201可对外提供数据写入功能,对于那些会发生变化的数据,将由主节点201写入存储空间中,可以保证存储空间中存储的都是最新的数据。基于此,从节点202可从存储空间中提取最新的数据并输出,满足查询需求。
第二种方式:从节点202可按照设定的更新逻辑,根据其所属子系统20的存储空间中的数据对本地缓存数据进行更新,这样当接收到外部的读指令时,可直接从本地缓存中读取读指令对应的数据并输出。在该实施方式中,从节点202通过将其所属子系统20的存储空间中的数据更新至本地缓存中,进而在接收到读指令时,直接从本地缓存中读取相应数据,可大大缩短响应时间,提高读取效率。值得说明的是,对于那些会发生变化的数据,只要从节点202的更新逻辑设计合理,可保证从节点202的本地缓存数据为最新数据,满足查询需求。其中,从节点202的更新逻辑以及相关操作将在后文中进行详细说明。
第三种方式:从节点202可按照设定的更新逻辑,根据其所属子系统20的存储空间中的数据对本地缓存数据进行更新,在响应于外部的读指令时,优先从本地缓存中读取读指令对应的数据并输出;当未能从本地缓存中读取到读指令对应的数据时,可以再到其所属子系统20的存储空间中读取该读指令对应的数据并输出。在该实施方式中,从节点202在接收到读指令时,优先从本地缓存中读取相应数据,可大大缩短响应时间,提高读取效率;当未能从本地缓存中读取到相应数据(例如可能因为更新延迟等)时,进一步从其所属子系统的存储空间中读取数据,有利于保证查询操作的成功率,提高用户感受。
无论是上述哪种方式,从节点202都可从其所属子系统20的存储空间中查询由所属子系统20中的主节点201写入的数据,以对外提供查询功能。
在一示例性实施例中,从节点202可采用上述第二种方式对外提供查询功能。进一步,从节点202基于其所属子系统20的存储空间中的数据写入事件对其本地缓存数据执行同步更新操作,以保证其本地缓存数据的新鲜度,进而基于本地缓存数据对外提供查询功能。
在该示例性实施例中,主节点201可用于:响应于外部的写指令向其所属子系统20中的存储空间写入数据,并基于数据写入事件向其所属子系统中的若干从节点202发送更新通知。即,当主节点201接收到外部的写指令时,一方面可以向其所属子系统20中的存储空间写入数据,另一方面基于向其所属子系统20中的存储空间写入数据的事件(简称为数据写入事件)向其所属系统中的若干从节点202发送更新通知。该更新通知主要用于触发主节点201所属子系统20中各个从节点202对本地缓存数据进行更新。对从节点202来说,可根据其所属子系统20中主节点201发送的更新通知,利用其所属子系统20中的存储空间(这里的存储空间实际上是数据写入事件涉及的存储空间)中的数据更新本地缓存数据,实现数据同步,进而可基于本地缓存数据对外提供查询功能。
在此说明,在上述示例性实施例中,并不限定主节点201基于外部的写指令向其所属子系统20的存储空间中写入数据与主节点201基于数据写入事件向所属系统中的若干从节点202发送更新通知之间的执行顺序。例如,主节点201可以先行执行一种操作,再行执行另一种操作,或者,主节点201也可以并行执行两种操作。优选地,主节点201可以先行基于外部的写指令向其所属子系统20的存储空间中写入数据,在成功写入数据之后,再行基于该数据写入事件向其所属系统中的若干从节点202发送更新通知。
在上述示例性实施例中,并不限定主节点201基于外部的写指令向其所属子系统20的存储空间中写入数据的实施方式。例如,在一种实施方式中,外部的写指令中可以直接携带所需写入的数据,基于此,主节点201接收外部的写指令,从写指令中解析出所需写入的数据,并将所需写入的数据写入到其所属子系统20的存储空间中。或者,在另一种实施方式中,外部的写指令中携带所需写入的数据的存储地址或存储路径,基于此,主节点201接收外部的写指令,从写指令中解析出所需写入的数据的存储地址或存储路径,基于该存储地址或存储路径读取所需写入的数据,进而将所需写入的数据写入到其所属子系统20的存储空间中。或者,在又一种实施方式中,外部的写指令主要用于告知主节点201需要将后续接收到的数据写入相应存储空间中,基于此,主节点201接收外部的写指令,之后继续等待接收外部发送的所需写入的数据,并在接收到外部发送的所需写入的数据后,将所需写入的数据存储到其所属子系统20的存储空间中。
在上述示例性实施例中,当数据库系统10接收到外部的写指令时,可以根据规则运算将写指令分发给至少一个子系统20中某个子系统20中的主节点201。例如,假设需要数据库存储的数据包括X份,将每份数据进行编号,并根据规则预先设定每份数据与子系统的对应关系。基于此,当数据库系统10接收到外部的写指令时,确定该写指令要求写入的是哪份数据,进而根据数据与子系统的对应关系,确定写指令要求写入的数据对应的子系统20,进而将该写指令要求写入的数据分发至该数据对应的子系统20中的主节点201。当然,这只是一种示例性的数据存储方式和指令分发方式,本发明并不限于此。
在主节点201接收到外部的写指令时,向其所属子系统20中的存储空间写入数据。写入数据的方式可采用追加写入,追加写入的方式是指在已有数据的末追加写入新的数据。例如,当写指令要求向存储空间中已经存在的数据文件中写入数据时,主节点201可在该数据文件的末尾追加写入新的数据;当写指令要求向存储空间中尚不存在的数据文件中写入数据时,主节点201可以建立对应的数据文件并将相应数据写入该新创建的数据文件中。需要说明的是,上述写入数据的方式仅是示例性的,主节点201还可采用其它写入数据的方式,以实现对存储空间中数据的新增、修改或删除。
另外,在上述示例性实施例中,主节点201可调用用户态文件系统接口(Localfile system API)来监听数据写入事件,并在监听到数据写入事件时生成更新通知,以及通过用户态文件系统接口将更新通知发送至其所属子系统20中各个从节点202的用户态文件系统接口。相应地,从节点202可调用用户态文件系统接口持续监听更新通知,并在监听到更新通知时,判断更新通知是否与其本地缓存数据相关,如果判断结果为相关,从节点202将利用所属子系统20中的存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。用户态文件系统是一个实现在用户空间的文件系统框架,面向使用者提供了接口。使用者可以通过用户态文件系统提供的接口实现具体的文件操作。
当然,上述更新通知的生成及监听方式仅是示例性的,本申请实施例还可采用其它方式实现,例如采用插件或者补丁等方式,本申请实施例对此不作限定。
在一些示例性实施例中,考虑到从节点202的本地缓存空间有限,所以当所属子系统20存储的数据量小时,从节点202可以缓存所属子系统20的存储空间中所有的数据,当所属子系统20存储的数据量大时,从节点202可以缓存所属子系统20的存储空间中的部分数据,例如从节点202可以在本地缓存最近一段时间内读指令对应的存储空间中的数据。
其中,当从节点202的本地缓存数据是其所属子系统20的存储空间中的部分数据时,需要判断主节点201发送的更新请求是否与本地缓存数据相关,以确定是否需要更新本地缓存数据。可选地,主节点201在向从节点202发送更新通知时,可以将数据写入事件成功写入的数据的标识携带在更新通知中发送给所属子系统20中的若干从节点202。对从节点202来说,可当确定本地缓存数据中包含标识所标识的数据时,利用所属子系统20中的存储空间中标识所标识的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
上述数据标识可以是任何可唯一标识相应数据的信息,例如可以是上文提及的数据的编号,当然还可以是其它标识,例如文件名称、关键词等等。对从节点202来说,可以判断本地缓存中是否存在该数据标识所标识的数据;当本地缓存中存在该数据标识所标识的数据时,可以确定更新通知与其本地缓存数据相关,说明本地缓存数据需要更新,于是利用其所属子系统20中的存储空间中该数据标识所标识的数据更新本地缓存数据;当本地缓存中不存在该数据标识所标识的数据时,可以确定此次接收到的更新通知与本地缓存数据无法,说明本地缓存数据不需要更新。
进一步可选地,当从节点202确定更新通知与本地缓存数据不相关时,从节点202可以判断本地剩余的缓存空间是否满足触发主节点201产生更新通知的数据写入事件写入的数据所需的存储空间要求,当满足要求时,根据所属子系统20中的存储空间中的数据,将更新通知对应的数据缓存至本地;当不满足要求时,从节点202可根据预设规则将部分本地缓存数据删除,以留出足够的缓存空间来缓存该数据写入事件写入的数据。其中,本地缓存数据的删除规则,可以是删除最旧的数据,也可以是删除使用频率最低的数据,本申请实施例对此不作限定。
另外,当从节点202本地剩余的缓存空间不能满足该数据写入事件写入的数据所需的存储空间要求时,从节点202还可根据现有的本地缓存数据以及该数据写入事件写入的数据的权重,来确定是否为该数据写入事件写入的数据腾出缓存空间。其中,权重可以根据数据的历史使用频率、使用时间分布情况等等来确定。当现有的本地缓存数据中存在比该数据写入事件所需写入的数据的权重更低的本地缓存数据时,可以将该数据写入事件写入的数据的权重更低的本地缓存数据删除,从而为该数据写入事件写入的数据腾出缓存空间。
当从节点202确定更新通知与本地缓存数据不相关时,从节点202也可不执行本地缓存数据的更新。从节点202在响应与该数据写入事件写入的数据相对应的读指令时,将从所属子系统20的存储空间中获取数据并输出。
针对从节点202的本地缓存数据,除了基于主节点201发送的更新通知而触发更新操作之外,还可基于外部读指令触发更新操作。当从节点202接收的读指令与从节点202的本地缓存数据不对应时,从节点202可从存储空间中提取读指令所需的数据并输出,该读指令所需的数据将同时缓存至从节点202的本地缓存中,这种更新操作主要适用于增加或替换本地缓存数据。
本实施例中,主节点201响应于外部的写指令向其所属子系统20中的存储空间写入数据的同时,其所属子系统20中相关的从节点202将获知数据写入事件,从节点202将基于存储空间中的最新数据更新本地缓存,以实现同步更新。主节点201的写入操作和从节点202的本地缓存更新操作之间几乎没有延时,或者延迟很小,这保证了从节点202在响应外部的读指令时,可输出最新的数据。
图2为本申请一示例性实施例提供的另一种数据库系统的结构示意图,如图2所示,在图1所示的结构基础上,至少一个子系统20还包括:块设备服务器(Block Server)203,块设备服务器203挂载于所属子系统20中的存储空间,并与所属子系统20中的主节点201和若干从节点202连接。
块设备服务器203是一种I/O设备服务器,用于管理主节点201与存储空间之间、从节点202与存储空间之间的数据传输过程。块设备服务器203,主要用于根据其所属子系统20中的主节点201发送的写请求,向其所属子系统20中的存储空间写入数据写入事件需要写入的数据;以及根据其所属子系统20中的从节点202发送的读请求,将最新写入相应存储空间中的数据提供给发出读请求的从节点202,以供发出读请求的从节点202更新本地缓存数据。
基于块设备服务器203,对主节点201对外提供写入功能以及从节点202对外提供查询功能的过程进行详细说明。
对于主节点201来说,当接收到外部的写指令时,将向块设备服务器203发送写请求,以使块设备服务器203根据该写请求向其所属子系统20的存储空间中写入数据,并在将数据成功写入到其所属子系统20的存储空间中后,向主节点201发送数据写入成功的通知,同时在数据写入成功通知中携带成功写入的数据的标识。主节点201还用于接收器其所属子系统20中的块设备服务器203发送的数据写入成功通知,并可根据块设备服务器203发送的数据写入成功通知生成更新通知,将更新通知发送至其所属子系统20中的若干从节点202,以供若干从节点202更新本地缓存。
对于从节点202来说,当接收到外部的读指令时或者接收到其所属子系统20中主节点201发送的更新通知时,或者接收到其所属子系统20中主节点201发送的更新通知并根据更新通知判断出需要更新本地缓存数据时,将向块设备服务器203发送读请求,以使块设备服务器203根据该读请求将最新写入相应存储空间中的数据提供给从节点202。从节点202还用于接收其所属子系统20中的块设备服务器203发送的最新写入相应存储空间中的数据,并根据块设备服务器203提供的数据更新其本地缓存数据。
本实施例中,块设备服务器203可向各个节点提供不同的I/O接口,以满足不同节点所需的I/O要求,而块设备服务器203与存储空间之间则可通过统一的I/O接口进行数据传输,无需在存储空间侧考虑I/O的影响,由块设备服务器203进行传输过程的统一管理,降低了节点与存储空间之间数据传输过程的复杂度。
图3为本申请一示例性实施例提供的又一种数据库系统的结构示意图,如图3所示,数据库系统10还包括:分布式文件系统30和至少一个磁盘40,分布式文件系统30主要用于从至少一个磁盘40中为至少一个子系统20分配对应的存储空间。需要说明的是,图3是在图2所示的结构基础上,将存储空间以分布式文件系统30加至少一个磁盘40的形式展示,但是,应当理解的是,各实施例中的存储空间都可以是分布式文件系统30加至少一个磁盘40的布局形式,但又不限于此。
如图3所示,分布式文件系统30与至少一个子系统20的块设备服务器203连接,分布式文件系统30用于统筹管理至少一个磁盘40,从至少一个磁盘40中为至少一个子系统20分配对应的存储空间,并将至少一个子系统20与存储空间之间的对应关系分别写入至少一个子系统20的块设备服务器203中。
相应地,块设备服务器203具体用于:在接收到其所属子系统20中的主节点201发送的写请求时,可根据写请求将数据写入事件需要写入的数据写入块设备服务器203的缓存中,进而根据所属子系统20与存储空间之间的对应关系将数据写入事件需要写入的数据从块设备服务器203的缓存中写入对应的磁盘空间中;以及在接收到其所属子系统20中的从节点202发送的读请求时,可根据读请求从块设备服务器203的缓存中读取最新写入对应的磁盘空间中的数据并提供给发送读请求的从节点202,以供发送该读请求的从节点202更新本地缓存数据。
本实施例中,子系统20对应的存储空间可以是一段连续的磁盘空间,也可以多段不连续的磁盘空间之和。在初始化块设备服务器203时,分布式文件系统30可将块设备所属子系统20与存储空间的对应关系封装到块设备服务器203中。当主节点201向块设备服务器203发送写请求时,主节点201只需将数据写入块设备服务器203中的相应存储位置,而无需关注数据将被写入到哪个磁盘40中,块设备服务器203将根据主节点201的写入位置,以及块设备服务器203的存储位置与磁盘空间之间的对应关系,将主节点201的写入位置重新定位到相应磁盘40上。这样,主节点201的数据写入事件需要写入的数据将被写入到块设备服务器203的缓存中以及磁盘40中。
据此,块设备服务器203中的缓存数据可基于主节点201的数据写入事件同步更新,从而块设备服务器203的缓存中将包含主节点201最新写入的数据。当块设备服务器203接收到所属子系统20中从节点202的读请求时,可根据读请求从块设备服务器203的缓存中读取最新写入对应的磁盘空间中的数据并提供给发送读请求的从节点202。这样,从节点202在响应外部的读指令时,可以像操作本地磁盘一样从块设备服务器203的缓存数据中获取读指令所需的数据并输出,相比于从多个磁盘空间中分别提取数据减少了网络传输时间。
本实施例中,块设备服务器203与分布式文件系统30的配合,为主节点201和从节点202提供数据传输服务。一方面,主节点201在执行数据写入操作时,仅需将数据写入块设备服务器203即可,无需关注数据的实际物理存储位置,减少了主节点201的计算量;另一方面,从节点202在执行数据读取操作时,可直接从块设备服务器203的缓存中获取最新数据,无需再访问数据的实际物理存储位置,节省了网络开销;再一方面,当块设备服务器203中的缓存发送故障时,块设备服务器203可基于分布式文件系统30和磁盘40中的数据,快速恢复缓存,从而可尽量避免发生从节点202需要从磁盘空间中获取数据的情况。
在一示例性实施例中,如图3所示,数据库系统10还可包括:管理单元50。该管理单元50与至少一个子系统20中的主节点201和若干从节点202连接。本实施例仅以图3提供的数据库系统为例进行了管理单元50的展示,但并不限于图3所示的数据库系统,例如图1或图2所示的数据库系统也可以包括管理单元50。
管理单元50,用于根据至少一个子系统20中已有从节点202的查询耗时,监测至少一个子系统20各自的整体查询耗时,并从至少一个子系统20中确定整体查询耗时大于预设阈值的目标子系统,将目标子系统的存储空间挂载至新的从节点,以使新的从节点从目标子系统的存储空间查询由目标子系统中的主节点写入的数据,以对外提供查询功能。
管理单元50可监测至少一个子系统中已有从节点202的查询耗时,并根据至少一个子系统20中已有从节点202的查询耗时,汇总计算获得至少一个子系统20各自的整体查询耗时。例如,当前100个读指令被分发到其中一个子系统20,100个读指令将被分发到该子系统20中的10个从节点202上,每个从节点202将需要处理10个读指令,管理单元50可监测每个从节点202完成查询功能所用的查询耗时,并进行汇总获得该子系统20的整体查询耗时。当该整体查询耗时大于预设阈值时,说明每个从节点202处理的读指令个数过多,负载较重,这会导致数据库系统的并行处理效率降低,为此,可增加新的从节点202来分担处理读指令。
由于每个子系统20中主节点201和各从节点202共享同一存储空间,以及共享同一份数据,因此,在新增从节点时,主要是打通新增从节点与存储空间之间的访问通道,即将目标子系统的存储空间挂载至新的从节点,使得新的从节点能够访问目标子系统的存储空间中的数据并且可以基于该存储空间中的数据对外提供查询功能即可。在增加新的从节点的过程中,无需进行存储空间中数据的重分布,新的从节点可直接基于所属子系统20的存储空间中的数据对外提供查询功能,这使得数据库系统在提升服务性能时,操作上变得简单快捷,不仅避免了大量的数据迁移工作,还可避免数据重分布导致的主节点和从节点的数据不同步的问题。
值得说明的是,管理单元50除提供本实施例前面描述的功能外,上文提及的数据库中间件也可部署在管理单元50中实现,即管理单元50还可以负责数据库系统10的读/写指令的分发操作。
进一步,在上述或下述示例性实施例中,每个子系统20中的主节点201还可用于:基于本地缓存数据和/或存储空间中的数据对外提供查询功能。
本实施例中,主节点201也可用于对外提供查询功能,当主节点201对外提供查询功能时,与其所属子系统20中的若干从节点202地位相当,不分主次,主节点201可执行与从节点202相同的操作。关于主节点201对外提供查询功能的描述,可参见前面实施例中从节点202实现查询功能时的相关描述,在此不再赘述。
对于主节点201来说,其即可对外响应写指令,也可对外响应读指令,因此,为了节省网络资源,主节点201可在数据写入事件与其本地缓存数据相关时,直接更新其本地缓存数据,而无需再基于存储空间来执行同步更新。另外,在数据写入事件与其本地缓存数据不相关时,也可根据数据写入事件将数据写入到其本地缓存中,以便主节点201基于最新数据对外提供查询功能。
图4为本申请另一示例性实施例提供的一种数据库更新方法的流程示意图。该方法适用于数据库系统的至少一个子系统中的主节点,如图4所示,该方法包括:
400、响应于外部的写指令向主节点所属子系统中的存储空间写入数据。
401、基于数据写入事件向主节点所属子系统中的若干从节点发送更新通知,以使若干从节点利用存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,主节点和若干从节点共享所属子系统中的存储空间。
本实施例中,数据库系统包括:至少一个子系统,至少一个子系统包括主节点、若干从节点以及主节点和若干从节点共享的存储空间。数据库系统可对外提供查询功能和写入功能,也即是当数据库系统接收到外部的读/写指令时,由各个子系统中的主节点响应于写指令而对外提供写入功能,由各个子系统中的从节点响应于读指令而对外提供查询功能。
主节点可在向其所属子系统的存储空间写入数据成功后,向其所属子系统中的若干从节点发送更新通知,其所属子系统中的若干从节点在监听到更新通知后,将利用存储空间中的数据更新本地缓存数据,由于存储空间中的数据已基于主节点的数据写入事件执行了更新,因此,可保证从节点中缓存的数据的新鲜度,进而,从节点在对外提供查询功能时可基于本地缓存数据输出符合要求的查询结果。
图5为本申请另一示例性实施例提供的另一种数据库更新方法的流程示意图。该方法适用于数据库系统的至少一个子系统中的主节点,如图5所示,该方法包括:
500、响应于外部的写指令向主节点所属子系统中的存储空间写入数据。
501、将数据写入事件成功写入的数据的标识携带在更新通知中发送给主节点所属子系统中的若干从节点,以使若干从节点在确定本地缓存数据中包含标识所标识的数据时,利用该存储空间中标识所标识的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
在本实施例中,主节点在更新通知中携带有成功写入的数据的标识,更新通知发送给主节点所属子系统中的若干从节点后,从节点可根据标识判断更新通知是否与其本地缓存数据相关,如果判断结果为相关,则从节点将利用所属子系统中的存储空间中标识所标识的数据更新本地缓存数据。
基于此,从节点将基于本地缓存数据对外提供查询功能,当从节点响应的外部的读指令与其本地缓存数据对应时,从节点将从其本地缓存数据中提取读指令所需的数据并输出,由于从节点的本地缓存数据为最新的,因此,读指令可获得最新的且准确的查询结果。
图6为本申请另一示例性实施例提供的又一种数据库更新方法的流程示意图。该方法适用于数据库系统的至少一个子系统中的主节点,如图6所示,所述方法包括:
600、响应于外部的写指令向主节点所属子系统中的块设备服务器发送写请求,以使块设备服务器根据写请求,向其所属子系统中的存储空间中写入数据写入事件需要写入的数据。
601、基于数据写入事件向主节点所属子系统中的若干从节点发送更新通知,以使若干从节点根据主节点发送的更新通知,利用存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
本实施例中,主节点所属子系统中还包括块设备服务器,块设备服务器挂载于所属子系统中的存储空间,并与所属子系统中的主节点和若干从节点连接。块设备服务器介于主、从节点与存储空间之间,可以根据所属子系统中的主节点发送的写请求,向所属子系统中的存储空间写入数据写入事件需要写入的数据;以及根据其所属子系统中的从节点发送的读请求,将最新写入相应存储空间中的数据提供给发出读请求的从节点,以供发出读请求的从节点更新本地缓存数据,从而协助完成主节点和从节点与存储空间之间的数据传输。
本实施例中,块设备服务器可向各个节点提供不同的I/O接口,以满足不同节点所需的I/O要求,而块设备服务器与存储空间之间则可通过统一的I/O接口进行数据传输,无需在存储空间侧考虑I/O的影响,由块设备服务器进行传输过程的统一管理,降低了节点与存储空间之间数据传输过程的复杂度。
在一可选实施方式中,数据库系统中还包括分布式文件系统和至少一个磁盘。其中,分布式文件系统主要用于从至少一个磁盘中为数据库系统的至少一个子系统分配对应的存储空间,并将至少一个子系统与存储空间之间的对应关系分别写入至少一个子系统的块设备服务器中。
基于上述,步骤600的一种实现方式包括:
响应于外部的写指令向主节点所属子系统中的块设备服务器发送写请求,以使块设备服务器根据写请求将数据写入事件需要写入的数据写入块设备服务器的缓存中,并根据对应关系将数据写入事件需要写入的数据从块设备服务器的缓存中写入对应的磁盘空间中。
每个子系统对应的存储空间可以是一段连续的磁盘空间,也可以多段不连续的磁盘空间之和。块设备服务器中的缓存数据可基于主节点的数据写入事件同步更新,从而块设备服务器的缓存中将包含主节点新写入的数据。当块设备服务器接收到其所属子系统中从节点的读请求时,可根据读请求从块设备服务器的缓存中读取最新写入对应的磁盘空间中的数据并提供给发送读请求的从节点。这样,从节点在响应外部的读指令时,可以像操作本地磁盘一样从块设备服务器的缓存数据中获取读指令所需的数据并输出,相比于从多个磁盘空间中分别提取数据减少了网络传输时间。
块设备服务器与分布式文件系统的配合,为主节点和从节点提供数据传输服务。通过块设备管理每个子系统的存储空间中的数据,保证存储空间中数据的及时更新,并保证从节点可在响应外部的读指令时对外提供最新的数据。
图7为本申请又一示例性实施例提供的一种数据库更新方法的流程示意图。该方法适用于数据库系统的至少一个子系统中的主节点,如图7所示,该方法包括:
700、响应于外部的写指令向主节点所属子系统中的存储空间写入数据,并将数据写入本地缓存中。
701、基于数据写入事件向主节点所属子系统中的若干从节点发送更新通知,以使从节点根据主节点发送的更新通知,利用存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
702、响应于外部的读指令,从本地缓存数据和/或存储空间查询数据,以对外提供查询功能。
本实施例中,主节点也可对外提供查询功能,对于主节点来说,其即可对外响应写指令,也可对外响应读指令,因此,为了节省网络资源,主节点在响应于写指令时,除了将数据写入存储空间之外,还可以将数据写入本地缓存,以便在对外提供查询功能时提高查询效率。
图8为本申请又一示例性实施例提供的又一数据库更新方法的流程示意图。该方法适用于数据库系统的至少一个子系统中的从节点,如图8所示,该方法包括:
800、接收从节点所属子系统中主节点发送的更新通知,该更新通知是由主节点基于向其所属子系统中的存储空间写入数据的数据写入事件发送的。
801、根据该更新通知,利用该存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,主节点和从节点共享所属子系统中的存储空间。
本实施例中,从节点根据主节点发送的更新通知,利用存储空间中的数据更新本地缓存数据,由于存储空间中的数据已基于主节点的数据写入事件执行了更新,因此,可保证每个从节点中缓存的数据的新鲜度,进而,从节点在对外提供查询功能时可基于本地缓存数据输出符合要求的查询结果。
图9为本申请又一示例性实施例提供的一种数据库扩容方法的流程示意图。该方法适用于数据库系统中的管理单元,如图9所示,该方法包括:
900、根据数据库系统中至少一个子系统中已有从节点的查询耗时,监测至少一个子系统各自的整体查询耗时。
901、从至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统。
902、将目标子系统的存储空间挂载至新的从节点,以使新的从节点从目标子系统的存储空间查询由目标子系统中的主节点写入的数据,以对外提供查询功能。
在步骤900中,可通过监测数据库系统中至少一个子系统中已有从节点的查询耗时,并将至少一个子系统中已有从节点的查询耗时进行汇总计算,以获得各个子系统的整体查询耗时。从至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统,这说明目标子系统中每个从节点处理的读指令个数过多,可增加新的从节点来分担处理读指令。
由于每个子系统中主节点和所有从节点共享同一存储空间,以及共享同一份数据,因此,在新增从节点时,主要是打通新增从节点与存储空间之间的访问通道,即将目标子系统的存储空间挂载至新的从节点,使得新的从节点能够访问目标子系统的存储空间中的数据并且可以基于该存储空间中的数据对外提供查询功能即可。在增加新的从节点的过程中,无需进行数据重分布,新的从节点可直接基于所属子系统的存储空间中的数据对外提供查询功能,这使得数据库系统在提升服务性能时,操作上变得简单快捷,不仅避免了大量的数据迁移工作,还可避免数据重分布导致的主节点和从节点的数据不同步的问题。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如700、702等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
图10为本申请又一示例性实施例提供的一种主节点的结构示意图。主节点包括:存储器100、处理器101以及通信组件102。
存储器100,用于存储计算机程序,并可被配置为存储其它各种数据以支持在主节点上的操作。这些数据的示例包括用于在主节点操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器100可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器101,与存储器100耦合,用于执行存储器100中的计算机程序,以用于:
响应于外部的写指令向主节点所属子系统中的存储空间写入数据;
基于数据写入事件通过通信组件102向主节点所属子系统中的若干从节点发送更新通知,以使若干从节点利用存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。该主节点与其所属子系统中的若干从节点共享存储空间。
在一些实施例中,处理器101在基于数据写入事件通过通信组件102向主节点所属子系统中的若干从节点发送更新通知时,具体用于:
将数据写入事件成功写入的数据的标识携带在更新通知中通过通信组件102发送给主节点所属子系统中的若干从节点,以使若干从节点在确定本地缓存数据中包含标识所标识的数据时,利用存储空间中标识所标识的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
在一些实施例中,处理器101在响应于外部的写指令向主节点所属子系统中的存储空间写入数据时,具体用于:
响应于外部的写指令通过通信组件102向所属子系统中的块设备服务器发送写请求,以使块设备服务器根据写请求向存储空间中写入该数据写入事件需要写入的数据。
在一些实施例中,处理器101还用于:响应于外部的写指令向本地缓存写入数据;从本地缓存数据和/或存储空间中查询数据,以对外提供查询功能。
进一步,如图10所示,该主节点还包括:显示器103、电源组件105、音频组件104等其它组件。图10中仅示意性给出部分组件,并不意味着主节点只包括图10所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由主节点执行的各步骤。
图11为本申请又一示例性实施例提供的一种从节点的结构示意图。如图11所示,该从节点包括:存储器110、处理器111以及通信组件112。
通信组件112,用于接收从节点所属子系统中主节点发送的更新通知,该更新通知是主节点基于向其所属子系统中的存储空间写入数据的数据写入事件发送的。
存储器110,用于存储计算机程序,并可被配置为存储其它各种数据以支持在从节点上的操作。这些数据的示例包括用于在主节点操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器110可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器111,与存储器110耦合,用于执行存储器110中的计算机程序,以用于:
根据通信组件112接收到的更新通知,利用存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,主节点和从节点共享所属子系统中的存储空间。
进一步,如图11所示,该从节点还包括:显示器113、电源组件115、音频组件114等其它组件。图11中仅示意性给出部分组件,并不意味着从节点只包括图11所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由从节点执行的各步骤。
图12为本申请又一示例性实施例提供的一种管理设备的结构示意图。管理设备包括:存储器120、处理器121以及通信组件122。
存储器120,用于存储计算机程序,并可被配置为存储其它各种数据以支持在管理设备上的操作。这些数据的示例包括用于在主节点操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器120可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器121,与存储器120耦合,用于执行存储器120中的计算机程序,以用于:
根据数据库系统中至少一个子系统中已有从节点的查询耗时,监测至少一个子系统各自的整体查询耗时;
从至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统;
将目标子系统的存储空间挂载至新的从节点,以使新的从节点从目标子系统的存储空间查询由目标子系统中的主节点写入的数据,以对外提供查询功能。
进一步,如图12所示,该管理设备还包括:显示器123、电源组件125、音频组件124等其它组件。图12中仅示意性给出部分组件,并不意味着管理设备只包括图12所示组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由管理设备执行的各步骤。
其中,图10、图11和图12中的通信组件,可被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
其中,图10、图11和图12中的显示器,包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
其中,图10、图11和图12中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
其中,图10、图11和图12中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种数据库系统,其特征在于,包括:至少一个子系统,所述至少一个子系统包括主节点、若干从节点以及所述主节点和所述若干从节点共享的存储空间;
所述主节点,用于向所属子系统中的存储空间写入数据;
所述若干从节点,用于从所属子系统中的存储空间查询由所属子系统中的主节点写入的数据,以对外提供查询功能。
2.根据权利要求1所述的系统,其特征在于,
所述主节点具体用于:响应于外部的写指令向所属子系统中的存储空间写入数据,并基于数据写入事件向所属子系统中的若干从节点发送更新通知;
所述若干从节点具体用于:根据所属子系统中主节点发送的更新通知,利用所属子系统中的存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
3.根据权利要求2所述的系统,其特征在于,
所述主节点具体用于:将所述数据写入事件成功写入的数据的标识携带在所述更新通知中发送给所属子系统中的若干从节点;
所述若干从节点具体用于:当确定本地缓存数据中包含所述标识所标识的数据时,利用所属子系统中的存储空间中所述标识所标识的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
4.根据权利要求2所述的系统,其特征在于,所述至少一个子系统还包括:块设备服务器;所述块设备服务器挂载于所属子系统中的存储空间,并与所属子系统中的主节点和若干从节点连接;
所述块设备服务器,用于根据所属子系统中的主节点发送的写请求,向所属子系统中的存储空间写入所述数据写入事件需要写入的数据;以及根据所属子系统中的从节点发送的读请求,将最新写入相应存储空间中的数据提供给发出所述读请求的从节点,以供发出所述读请求的从节点更新本地缓存数据。
5.根据权利要求4所述的系统,其特征在于,还包括:分布式文件系统和至少一个磁盘;
所述分布式文件系统,用于从所述至少一个磁盘中为所述至少一个子系统分配对应的存储空间,并将所述至少一个子系统与存储空间之间的对应关系分别写入所述至少一个子系统的块设备服务器中;
所述块设备服务器具体用于:根据所述写请求将所述数据写入事件需要写入的数据写入所述块设备服务器的缓存中,并根据所述对应关系将所述数据写入事件需要写入的数据从所述块设备服务器的缓存中写入对应的磁盘空间中;以及根据所述读请求从所述块设备服务器的缓存中读取最新写入对应的磁盘空间中的数据并提供给发送所述读请求的从节点,以供发送所述读请求的从节点更新本地缓存数据。
6.根据权利要求1~5任一项所述的系统,其特征在于,还包括:管理单元,与所述至少一个子系统中的主节点和若干从节点连接;
所述管理单元,用于根据所述至少一个子系统中已有从节点的查询耗时,监测所述至少一个子系统各自的整体查询耗时,并从所述至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统,将所述目标子系统的存储空间挂载至新的从节点,以使所述新的从节点从所述目标子系统的存储空间查询由所述目标子系统中的主节点写入的数据,以对外提供查询功能。
7.根据权利要求1~5任一项所述的系统,其特征在于,所述主节点还用于:基于本地缓存数据和/或所述存储空间中的数据对外提供查询功能。
8.一种数据库更新方法,适用于数据库系统的至少一个子系统中的主节点,其特征在于,所述方法包括:
响应于外部的写指令向所属子系统中的存储空间写入数据;
基于数据写入事件向所属子系统中的若干从节点发送更新通知,以使所述若干从节点利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述若干从节点共享所属子系统中的所述存储空间。
9.根据权利要求8所述的方法,其特征在于,所述基于数据写入事件向所属子系统中的若干从节点发送更新通知,包括:
将所述数据写入事件成功写入的数据的标识携带在所述更新通知中发送给所属子系统中的若干从节点,以使所述若干从节点在确定本地缓存数据中包含所述标识所标识的数据时,利用所述存储空间中所述标识所标识的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能。
10.根据权利要求8所述的方法,其特征在于,所述响应于外部的写指令向所属子系统中的存储空间写入数据,包括:
响应于外部的写指令向所属子系统中的块设备服务器发送写请求,以使所述块设备服务器根据所述写请求向所述存储空间中写入所述数据写入事件需要写入的数据。
11.根据权利要求8所述的方法,其特征在于,还包括:
响应于外部的写指令向本地缓存写入数据;
基于本地缓存数据和/或所述存储空间中的数据对外提供查询功能。
12.一种数据库更新方法,适用于数据库系统的至少一个子系统中的从节点,其特征在于,所述方法包括:
接收所属子系统中主节点发送的更新通知,所述更新通知是所述主节点基于向所属子系统中的存储空间写入数据的数据写入事件发送的;
根据所述更新通知,利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述从节点共享所属子系统中的所述存储空间。
13.一种数据库扩容方法,适用于数据库系统中的管理设备,其特征在于,所述方法包括:
根据所述数据库系统中至少一个子系统中已有从节点的查询耗时,监测所述至少一个子系统各自的整体查询耗时;
从所述至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统;
将所述目标子系统的存储空间挂载至新的从节点,以使所述新的从节点从所述目标子系统的存储空间查询由所述目标子系统中的主节点写入的数据,以对外提供查询功能。
14.一种主节点,其特征在于,包括:存储器、处理器以及通信组件;
所述存储器,用于存储一条或多条计算机指令;
所述处理器,耦合至所述存储器,用于执行所述一条或多条计算机指令,以用于:
响应于外部的写指令向所属子系统中的存储空间写入数据;
基于数据写入事件通过所述通信组件向所属子系统中的若干从节点发送更新通知,以使所述若干从节点利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述若干从节点共享所属子系统中的所述存储空间。
15.一种从节点,其特征在于,包括:存储器、处理器以及通信组件;
所述通信组件,用于接收所属子系统中主节点发送的更新通知,所述更新通知是所述主节点基于向所属子系统中的存储空间写入数据的数据写入事件发送的;
所述存储器,用于存储一条或多条计算机指令;
所述处理器,耦合至所述存储器和所述通信组件,用于执行所述一条或多条计算机指令,以用于:
根据所述更新通知,利用所述存储空间中的数据更新本地缓存数据,以基于本地缓存数据对外提供查询功能;其中,所述主节点和所述从节点共享所属子系统中的所述存储空间。
16.一种管理设备,位于数据库系统中实现,其特征在于,所述管理设备包括:存储器和处理器;
所述存储器,用于存储一条或多条计算机指令;
所述处理器,耦合至所述存储器,用于执行所述一条或多条计算机指令,以用于:
根据所述数据库系统中至少一个子系统中已有从节点的查询耗时,监测所述至少一个子系统各自的整体查询耗时;
从所述至少一个子系统中确定整体查询耗时大于预设阈值的目标子系统;
将所述目标子系统的存储空间挂载至新的从节点,以使所述新的从节点从所述目标子系统的存储空间查询由所述目标子系统中的主节点写入的数据,以对外提供查询功能。
CN201810172457.9A 2018-03-01 2018-03-01 数据库系统、数据库更新、扩容方法及设备 Pending CN110309156A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810172457.9A CN110309156A (zh) 2018-03-01 2018-03-01 数据库系统、数据库更新、扩容方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810172457.9A CN110309156A (zh) 2018-03-01 2018-03-01 数据库系统、数据库更新、扩容方法及设备

Publications (1)

Publication Number Publication Date
CN110309156A true CN110309156A (zh) 2019-10-08

Family

ID=68073286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810172457.9A Pending CN110309156A (zh) 2018-03-01 2018-03-01 数据库系统、数据库更新、扩容方法及设备

Country Status (1)

Country Link
CN (1) CN110309156A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835915A (zh) * 2019-11-25 2021-05-25 中国移动通信集团辽宁有限公司 Mpp数据库系统、数据存储方法及数据查询方法
CN113723906A (zh) * 2021-08-05 2021-11-30 中核武汉核电运行技术股份有限公司 核电厂备件清单查询方法、装置、设备及存储介质
CN114138825A (zh) * 2021-11-24 2022-03-04 聚好看科技股份有限公司 一种服务器及为应用程序提供数据查询服务的方法
CN114676166A (zh) * 2022-05-26 2022-06-28 阿里巴巴(中国)有限公司 数据处理方法及装置
CN117349384A (zh) * 2023-12-04 2024-01-05 四川才子软件信息网络有限公司 一种数据库同步的方法、系统及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2555129A1 (en) * 2011-08-03 2013-02-06 Amadeus s.a.s. Method and system to maintain strong consistency of distributed replicated contents in a client/server system
CN105933391A (zh) * 2016-04-11 2016-09-07 青岛海信传媒网络技术有限公司 一种节点扩容方法、装置及系统
CN106648994A (zh) * 2017-01-04 2017-05-10 华为技术有限公司 一种备份操作日志的方法,设备和系统
CN107426265A (zh) * 2016-03-11 2017-12-01 阿里巴巴集团控股有限公司 数据一致性同步的方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2555129A1 (en) * 2011-08-03 2013-02-06 Amadeus s.a.s. Method and system to maintain strong consistency of distributed replicated contents in a client/server system
CN107426265A (zh) * 2016-03-11 2017-12-01 阿里巴巴集团控股有限公司 数据一致性同步的方法及设备
CN105933391A (zh) * 2016-04-11 2016-09-07 青岛海信传媒网络技术有限公司 一种节点扩容方法、装置及系统
CN106648994A (zh) * 2017-01-04 2017-05-10 华为技术有限公司 一种备份操作日志的方法,设备和系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835915A (zh) * 2019-11-25 2021-05-25 中国移动通信集团辽宁有限公司 Mpp数据库系统、数据存储方法及数据查询方法
CN112835915B (zh) * 2019-11-25 2023-07-18 中国移动通信集团辽宁有限公司 Mpp数据库系统、数据存储方法及数据查询方法
CN113723906A (zh) * 2021-08-05 2021-11-30 中核武汉核电运行技术股份有限公司 核电厂备件清单查询方法、装置、设备及存储介质
CN114138825A (zh) * 2021-11-24 2022-03-04 聚好看科技股份有限公司 一种服务器及为应用程序提供数据查询服务的方法
CN114676166A (zh) * 2022-05-26 2022-06-28 阿里巴巴(中国)有限公司 数据处理方法及装置
CN114676166B (zh) * 2022-05-26 2022-10-11 阿里巴巴(中国)有限公司 数据处理方法及装置
CN117349384A (zh) * 2023-12-04 2024-01-05 四川才子软件信息网络有限公司 一种数据库同步的方法、系统及设备
CN117349384B (zh) * 2023-12-04 2024-03-15 四川才子软件信息网络有限公司 一种数据库同步的方法、系统及设备

Similar Documents

Publication Publication Date Title
CN110309156A (zh) 数据库系统、数据库更新、扩容方法及设备
CN105338078B (zh) 用于存储系统的数据存储方法和装置
CN109493076A (zh) 一种Kafka消息唯一消费方法、系统、服务器及存储介质
US20140089259A1 (en) Operation method and apparatus for data storage system
CN103138912B (zh) 数据同步方法及系统
CN109902255B (zh) 页面混合浏览记录生成方法、装置、设备和存储介质
CN102158540A (zh) 分布式数据库实现系统及方法
CN110334070A (zh) 数据处理方法、系统、设备及存储介质
US8001150B2 (en) Device management method using nodes having additional attribute and device management client thereof
CN104965850A (zh) 一种基于开源技术的数据库高可用实现方法
CN103020236B (zh) 一种视频录像检索方法、系统及分布式数据库系统
WO2021227860A1 (zh) 一种数据同步的方法、装置、终端以及存储介质
CN108595483B (zh) 数据处理方法及相关装置
CN112363871A (zh) 一种数据回档方法、装置及存储介质
CN110532058B (zh) 容器集群服务的管理方法、装置、设备及可读存储介质
CN113515317A (zh) 数据恢复的方法、装置
CN110427426A (zh) 一种数据同步处理方法及装置
CN113301558B (zh) 一种消息传输方法、设备、系统及存储介质
CN113438275A (zh) 数据迁移方法、装置、存储介质及数据迁移设备
KR102247247B1 (ko) 데이터베이스 관리 방법
WO2021212493A1 (zh) 数据同步方法、装置、数据存储系统及计算机可读介质
CN112187889A (zh) 一种数据同步方法、装置及存储介质
CN116991858A (zh) 变更数据的采集方法、采集装置和数据采集系统
CN110019506B (zh) 日志记录处理方法和装置
WO2019091341A1 (zh) 快照创建方法、装置及系统

Legal Events

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

Application publication date: 20191008