[go: up one dir, main page]

CN110716698B - 数据分片副本部署方法及装置 - Google Patents

数据分片副本部署方法及装置 Download PDF

Info

Publication number
CN110716698B
CN110716698B CN201910944239.7A CN201910944239A CN110716698B CN 110716698 B CN110716698 B CN 110716698B CN 201910944239 A CN201910944239 A CN 201910944239A CN 110716698 B CN110716698 B CN 110716698B
Authority
CN
China
Prior art keywords
server
fragment
node
data
disk
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
Application number
CN201910944239.7A
Other languages
English (en)
Other versions
CN110716698A (zh
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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data Technologies Co 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN201910944239.7A priority Critical patent/CN110716698B/zh
Publication of CN110716698A publication Critical patent/CN110716698A/zh
Application granted granted Critical
Publication of CN110716698B publication Critical patent/CN110716698B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

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

Abstract

本申请提供一种数据分片副本部署方法及装置,该方法应用于包括配置服务器、分片服务器和zookeeper服务器的数据库集群中的配置服务器,该方法包括:获取数据库集群中各分片服务器的存储空间剩余量;监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器;将数据分片副本存储至目标分片服务器,以使目标分片服务器为数据分片副本分配端口。该方法可以实现对数据分片副本的自动化部署,提高了数据分片副本的部署效率,且不易出现错误。

Description

数据分片副本部署方法及装置
技术领域
本申请涉及数据库技术领域,具体涉及一种数据分片副本部署方法及装置。
背景技术
在对海量数据进行存储时,MongoDB数据库可通过数据分片技术将海量数据划分为多个数据分片,并将其分别存储在多台分片服务器上,以MongoDB集群的方式实现对海量数据的存储。在此基础上,为实现数据分片的冗余保护,还会为各数据分片设置对应的数据分片副本,并将各数据分片副本存储在各分片服务器中。
但MongoDB数据库不同于HDFS、Kafka和Solr等数据库,其不具备数据分片副本的自动化分配部署机制。而每一个数据分片副本又都需要分配一个用于存储该数据分片副本的分片服务器以及在该数据分片副本启动后,用于对该数据分片副本进行操作的端口,才能够被MongoDB数据库所使用,因此,如何为数据分片副本分配分片服务器和端口就成为亟待解决的问题。
目前,主要通过手动的方式为每一个数据分片副本分配分片服务器及端口,其实现效率较低,且容易出现错误。
发明内容
有鉴于此,本申请提供一种数据分片副本部署方法及装置。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种数据分片副本部署方法,应用于包括配置服务器和分片服务器的数据库集群中的配置服务器,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述方法包括:
获取所述数据库集群中各分片服务器的存储空间剩余量;
监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器,其中,所述第一存储结点用于存储数据分片信息,第一存储结点包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片;
将所述数据分片副本存储至目标分片服务器,并将所述数据分片副本的标识注册至zookeeper服务器中第二存储结点的目标第二存储子结点,目标第二存储子结点为预先指定的由目标分片服务器负责监听的第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作,其中,所述第二存储结点用于存储分片服务器信息,第二存储结点包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器。
根据本申请实施例的第二方面,提供一种数据分片副本部署方法,应用于包括配置服务器和分片服务器的数据库集群中的分片服务器,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述方法包括:
监听zookeeper服务器中第二存储结点的目标第二存储子结点,所述目标第二存储子结点为预先指定的由所述分片服务器负责监听的第二存储子结点;
当分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作。
根据本申请实施例的第三方面,提供一种数据分片副本部署装置,应用于包括配置服务器和分片服务器的数据库集群中的配置服务器,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述装置包括:
获取单元,用于获取所述数据库集群中各分片服务器的存储空间剩余量;
选择单元,用于监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器,其中,所述第一存储结点用于存储数据分片信息,第一存储结点包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片;
存储单元,用于将所述数据分片副本存储至目标分片服务器,并将所述数据分片副本的标识注册至zookeeper服务器中第二存储结点的目标第二存储子结点,目标第二存储子结点为预先指定的由目标分片服务器负责监听的第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作,其中,所述第二存储结点用于存储分片服务器信息,第二存储结点包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器。
根据本申请实施例的第四方面,提供一种数据分片副本部署装置,应用于包括配置服务器和分片服务器的数据库集群中的分片服务器,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述装置包括:
监听单元,用于监听zookeeper服务器中第二存储结点的目标第二存储子结点,所述目标第二存储子结点为预先指定的由所述分片服务器负责监听的第二存储子结点;
端口分配单元,用于当分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作。
本申请中通过在数据库集群已有配置服务器和分片服务器的基础上增加zookeeper服务器,使得配置服务器能够通过监听zookeeper服务器上的第一存储子结点获知数据库集群中新增有数据分片,并根据各分片服务器的存储空间剩余量确定出用于存储该数据分片的数据分片副本的目标分片服务器;并进一步通过将数据分片副本的标识注册至zookeeper服务器中的目标第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为数据分片副本分配端口,实现了对于数据分片副本的自动化部署,相较于手动方式为每一个副本分配分片服务器及端口,提高了数据分片副本的部署效率,且不易出现错误。此外,将数据库集群中与数据分片及数据分片副本相关的各类信息存储至zookeeper服务器中的各结点,可使用户通过查看各结点所存储的信息以掌握数据库集群内各数据分片及数据分片副本的分布情况。
附图说明
图1是本申请一示例性实施例示出的一种数据分片副本部署方法的流程图。
图2是本申请一示例性实施例示出的一种数据库集群的示意图。
图3是本申请一示例性实施例示出的一种zookeeper服务器中存储结点的示意图。
图4是本申请一示例性实施例示出的步骤102的实现流程图。
图5是本申请一示例性实施例示出的步骤1022的实现流程图。
图6是本申请一示例性实施例示出的另一种数据分片副本部署方法的流程图。
图7是本申请一示例性实施例示出的另一种数据库集群的示意图。
图8是本申请一示例性实施例示出的另一种zookeeper服务器中存储结点的示意图。
图9是本申请一示例性实施例示出的一种数据分片副本部署装置的结构示意图。
图10是本申请一示例性实施例示出的另一种数据分片副本部署装置的结构示意图。
图11是本申请一示例性实施例示出的另一种数据分片副本部署装置的结构示意图。
图12是本申请一示例性实施例示出的一种数据分片副本部署装置的硬件结构示意图。
图13是本申请一示例性实施例示出的另一种数据分片副本部署装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请进行详细描述。
为了清楚地说明本申请的数据分片副本部署方法,下面将分别从单侧的角度,对配置服务器侧及分片服务器侧所执行数据分片副本部署方法进行说明:
参见图1,图1为本申请提供的数据分片副本部署方法的流程图,该流程应用于包括配置服务器和分片服务器的数据库集群中的配置服务器。参考图2,图2为数据库集群的示意图,数据库集群中部署了配置服务和监控服务以及用于数据存储的服务器(本文中称为分片服务器),其中:
该配置服务可以是一个程序模块,该程序模块可以独立部署到物理服务器也可以与其他软件模块合并部署,本文中以配置服务独立部署到服务器(该服务器可以称为配置服务器)为例进行说明。
该监控服务可以是一个程序模块,该程序模块可以独立部署到物理服务器也可以与其他软件模块合并部署,本文中以监控服务器独立部署在服务器(该服务器可以称为zookeeper服务器或监控服务器)中。
所述分片服务器用于存储数据分片和数据分片副本。
作为一个实施例,这里的数据库集群可以是能够设置数据分片及数据分片副本的数据库集群,例如,可以是mongodb数据库集群。
作为一个实施例,zookeeper服务器中可以包括第一存储结点和第二存储结点。这里的第一存储结点用于存储数据分片信息,该数据分片信息可以包括但不限于存储有数据分片的分片服务器信息,以及存储各数据分片副本的分片服务器信息,以及相应分片服务器上的端口(用于对数据分片或数据分片副本进行操作的端口)信息。
示例性的,第一存储结点存储的信息可以以数据分片标识(用于唯一标识数据库集群中的一个数据分片)为关键字,一个数据分片标识对应多个分片服务器(包括存储该数据分片的分片服务器和存储该数据分片的数据分片副本的分片服务器)。
第一存储结点可以包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片,每一个第一存储子结点都存储有对应的数据分片的标识(即数据分片标识)、该数据分片及该数据分片的副本所存储的分片服务器的标识(即分片服务器标识),以及相应分片服务器上的端口信息。
第二存储结点用于存储分片服务器信息,该分片服务器信息可以包括但不限于分片服务器中存储的数据分片和数据分片副本信息,以及数据分片以及数据分片副本所对应的端口信息。
示例性的,第二存储结点存储的信息可以以分片服务器标识(用于唯一标识数据库集群中的一个分片服务器)为关键字,一个分片服务器标识对应至少一个数据分片或数据分片副本,以及各数据分片或数据分片副本在分片服务器上对应的端口信息。
第二存储结点可以包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器,每一个第二存储子结点存储有对应的分片服务器标识、该分片服务器上存储的数据分片和数据分片副本的标识、以及对应的端口信息。
图3示出了一种zookeeper服务器包括的存储结点的设置方式。参考图3,作为一个实施例,zookeeper服务器包括的第一存储结点为shardlist(数据分片目录)结点,第二存储结点是host(分片服务器)结点。这里的第一存储子结点可以包括shardlist结点存储的shard(数据分片)1子结点和shard2子结点,第二存储子结点可以包括host结点存储的node1.com子结点和node2.com子结点。此外,图3中还示出了shard(数据分片)结点,该shard结点作为shardlist结点和host结点的根结点,用于存储集群中所有数据分片及其副本的数据分片信息和所有分片服务器的分片服务器信息。对于数据分片而言,由于其存在数据分片副本,且数据分片和数据分片副本又存储在不同的分片服务器上,因此,以数据分片为单位创建第一存储子结点,以实现对每个数据分片及其副本所在分片服务器的分片服务器信息和相应端口信息的存储。对于分片服务器而言,每个分片服务器中通常都会存储多个数据分片或数据分片副本,因此,对于分片服务器而言,其需要以分片服务器为单位创建第二存储子结点,以实现对每台分片服务器所存储的数据分片和数据分片副本信息的存储。
如图1所示,该流程可包括以下步骤:
步骤101,获取数据库集群中各分片服务器的存储空间剩余量;
作为一个实施例,本步骤101中,配置服务器可通过多种方式实现分片服务器的存储空间剩余量的获取,例如,配置服务器可通过下发存储空间剩余量获取指令的方式来获取分片服务器的存储空间剩余量,也可以通过接收各分片服务器周期性上报的存储空间剩余量来获取分片服务器的存储空间剩余量。
作为一个实施例,这里的存储空间剩余量可以包括:磁盘剩余量,磁盘预测剩余量,和/或,内存剩余量等。
步骤102,监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器,其中,所述第一存储结点用于存储数据分片信息,第一存储结点包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片;
作为一个实施例,数据库集群中每新增一个数据分片,第一存储结点就会对应的新增一个第一存储子结点。仍以图3中shardlist结点作为第一存储结点为例,在数据库集群中新增有数据分片shard2时,则shardlist结点存储会新增shard2子结点。
作为一个实施例,当配置服务器需要监听zookeeper服务器中第一存储结点时,需要在对应结点上注册watcher(监视器),以使该结点存储的数据发生变化时,触发该watcher,从而向该配置服务器发送事件通知,以使配置服务器获知该结点存储的数据发生变化。例如,配置服务器可以在shardlist结点上注册watcher,以在shardlist结点的数据发生变化时(如新增shard2子结点时),shardlist结点通过watcher向配置服务器发送事件通知。在配置服务器获知第一存储结点的数据发生变化时,可查看第一存储结点的各第一存储子结点的信息,并与配置服务器当前存储的各数据分片标识进行比对,以确定是否出现新增的第一存储子结点。配置服务器在确定新增有第一存储子结点时,可查看该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,以确定新增数据分片的副本,同时可以避免将数据分片与数据分片副本存储在同一分片服务器。仍以前述的第一存储结点为shardlist结点,新增第一存储子结点为shard2子结点为例,配置服务器在确定shardlist结点的数据发生变化后,可查看shard2子结点存储的shard2标识和node1.com信息,这里的shard2即为新增数据分片的标识,该node1.com即为新增的数据分片所在的分片服务器的标识。
作为一个实施例,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择一个用于存储数据分片副本的目标分片服务器有多种实现方式,下文会具体举例,这里暂不赘述。
步骤103,将数据分片副本存储至目标分片服务器,并将数据分片副本的标识注册至zookeeper服务器中第二存储结点中的目标第二存储子结点,目标第二存储子结点为预先指定的由目标分片服务器负责监听的第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为数据分片副本分配端口,端口用于对数据分片副本进行操作,其中,所述第二存储结点用于存储分片服务器信息,第二存储结点包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器。
作为一个实施例,目标第二存储子结点为预先指定的由目标分片服务器负责监听的存储结点,该目标第二存储子结点用于存储目标分片服务器当前所存储的数据分片和数据分片副本的标识及其对应的端口。例如,可以将图3中所示的host结点存储的node2.com子结点作为目标第二存储子结点,该结点是由分片服务器标识为node2.com的分片服务器负责监听的存储结点。
作为一个实施例,配置服务器在将数据分片副本存储至目标分片服务器时,由于配置服务器并不能获知目标分片服务器上当前的空闲端口,因此可以先不为该数据分片副本分配端口,也可以先为该数据分片副本分配一个不可使用的端口,并在后续由目标分片服务器确定出可使用的端口后,将其替换,这里的不可使用的端口可以是0端口。若为数据分片副本先分配一个不可使用的端口,则在将数据分片副本的标识注册至目标第二存储子结点时,也可以将该不可使用的端口也注册至目标第二存储子结点。仍以目标第二存储子结点为图3中所示的host结点存储的node1.com子结点,数据分片副本的标识为shard2为例,若仅将数据分片副本的标识注册至第二存储结点,则在注册后node2.com子结点存储仅会存储有shard2。若将不可使用的端口0也注册至node2.com子结点,则注册后node1.com子结点存储会存储有shard2和0。
作为一个实施例,目标分片服务器为每一个数据分片副本所分配的端口,均是该目标分片服务器当前空闲端口中的一个,以使数据分片副本在启动后,用户能够通过该端口对数据分片副本进行操作。如上描述的为数据分片副本先分配一个不可使用的端口,在后续由目标分片服务器确定出可使用的端口后可将其替换。基于此,目标分片服务器在确定分配给数据分片副本的端口后,可将该端口重新注册至目标第二存储子结点,以覆盖之前注册的不可使用的端口。仍以前述的不可使用的端口为0例,如图3所示,若目标分片服务器确定出为数据分片副本分配的端口为27019,则在重新注册后node2.com子结点存储的0会被修改为27019。
至此,完成图1所示流程。
通过图1所示流程可以看出,本申请中,通过在数据库集群已有配置服务器和分片服务器的基础上增加了zookeeper服务器,使得配置服务器能够通过监听zookeeper服务器上的第一存储子结点获知数据库集群中新增有数据分片,并根据各分片服务器的存储空间剩余量确定出用于存储该数据分片的数据分片副本的目标分片服务器;并进一步通过将数据分片副本的标识注册至zookeeper服务器中的目标第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为数据分片副本分配端口,实现了对于数据分片副本的自动化部署,相较于手动方式为每一个副本分配分片服务器及端口,提高了数据分片副本的部署效率,且不易出现错误。此外,将数据库集群中与数据分片及数据分片副本相关的各类信息存储至zookeeper服务器中的各结点,可使用户通过查看各结点所存储的信息以掌握数据库集群内各数据分片及数据分片副本的分布情况。
下面将对步骤102如何根据各分片服务器的存储空间剩余量,从其他分片服务器中选择一个用于存储数据分片的副本的目标分片服务器进行描述。
参见图4,图4为本申请一示例性实施例示出的步骤102的实现流程图。如图4所示,该流程可以包括以下步骤:
步骤1021,从各分片服务器中选择出满足指定规则的至少一个候选分片服务器;
作为一个实施例,指定规则可以包括第一子规则和第二子规则。这里的第一子规则可以是候选分片服务器需与数据分片所在分片服务器不同,第二子规则可以是候选分片服务器的磁盘剩余量需大于某一数值、内存剩余量大于某一数值或存储空间剩余量大于某一数值等,候选服务器需同时满足上述第一子规则与第二子规则。这里对分片服务器进行筛选的目的在于剔除存储有数据分片的分片服务器以避免数据分片和数据分片副本被存储至同一分片服务器,以及剔除自身存储空间不适合存储数据分片副本的分片服务器,这里筛选后得到的候选服务器即为前述的其他分片服务器。
步骤1022,依据候选分片服务器的存储空间剩余量确定候选分片服务器的选中参数,选中参数为候选分片服务器被选中为目标分片服务器的依据;
作为一个实施例,选中参数是指候选分片服务器被选中为目标分片服务器的概率,可以通过计算每一候选分片服务器的存储空间剩余量占所有候选分片服务器的存储空间剩余量之和的比例,确定出各候选分片服务器的选中参数。选中参数越大,则说明该分片服务器的存储空间剩余量越大,该分片服务器被选中的概率越大。
步骤1023,依据候选分片服务器的选中参数从所有的候选分片服务器中选择目标分片服务器。
作为一个实施例,在一个数据分片仅存在有一个数据分片副本时,可在候选分片服务器的选中参数中确定出最大的选中参数,并将该最大的选中参数所对应的候选分片服务器确定为目标分片服务器。
在一个数据分片存在多个数据分片副本的情况下,可以依次按照上述策略选择用于存储各数据分片副本的分片服务器(存储不同分片副本的分片服务器不同),或者,基于分片副本的数量,按照上述策略选择匹配数量的分片服务器,分别存储各数据分片副本。
至此,完成图4所示流程。
下面将对存储空间剩余量包括磁盘预测剩余量以及内存剩余量的情况下,参考图5对步骤1022中如何根据存储空间剩余量确定选中参数进行描述。如图5所示,该流程可以包括以下步骤:
步骤10221,针对每一候选分片服务器,计算该候选分片服务器的磁盘预测剩余量与N的第一比值,以及计算该候选分片服务器的内存剩余量与M的第二比值,N为候选分片服务器的磁盘预测剩余量总和,M为分片服务器的内存剩余量总和;
作为一个实施例,存储空间剩余量包括磁盘预测剩余量以及内存剩余量,因此,需分别计算每一候选分片服务器的磁盘预测剩余量所对应的第一比值以及内存剩余量所对应的第二比值。这里的第一比值可以由以下公式计算得到:
Figure BDA0002223724410000121
在运行该公式前,可为每一分片服务器分配一个数字编号,以用于后续的计算。这里的nremain是指数字编号为n的分片服务器的磁盘预测剩余量,m是指候选分片服务器的数字编号的最大值,remain[n]是指数字编号为n的分片服务器的第一比值,n可以是每一分片服务器的数字编号。
类似的,第二比值可以由以下公式计算得到:
Figure BDA0002223724410000122
这里的nfree是指数字编号为n的分片服务器的内存剩余量,m是指候选分片服务器的数字编号的最大值,free[n]是指数字编号为n的分片服务器的第二比值,n可以是每一分片服务器的数字编号。
作为一个实施例,磁盘预测剩余量可以由分片服务器周期性的计算得到,分片服务器在得到磁盘预测剩余量后主动的将其发送至配置服务器,也可以是由配置服务器下发磁盘预测剩余量计算命令,以使分片服务器在接收到该命令后计算磁盘预测剩余量,并将其发送至配置服务器。
作为一个实施例,候选分片服务器的磁盘预测剩余量的获取方式会在下文详细描述,在此不再赘述。
步骤10222,将第一比例与第二比例进行设定计算得到选中参数。
作为一个实施例,可将第一比例与第二比例相加,以得到选中参数。
至此,完成图5所示流程。
下面将对步骤10221中预测磁盘预测剩余量的获取方式进行描述:
计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;
作为一个实施例,每一分片服务器可通过查看其对应的第二存储子结点存储的数据分片及数据分片副本,来确定该分片服务器上存储的数据分片和数据分片副本。
作为一个实施例,每一数据分片或数据分片副本在单位时间内的磁盘使用量可通过以下公式计算得到:
Figure BDA0002223724410000131
在运行该公式前,可为每一数据分片和数据分片副本分配一个数字编号,以用于后续的计算。这里的nj是指数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本,njs是指数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本的大小,createTime是指数据分片或数据分片副本存储至分片服务器的时刻,currentTime是指计算单位时间内的磁盘使用量时的时刻,m是指分片服务器的数字编号的最大值,use[nj]为数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本在单位时间内的磁盘使用量。
作为一个实施例,currentTime与createTime的单位可以是天、小时或分钟等,本申请并不对其做限定。
根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量。
作为一个实施例,磁盘预测剩余量的计算过程包括:
步骤a1:计算分片服务器的单位时间内磁盘平均使用量,这里的分片服务器的单位时间内磁盘平均使用量可基于前述的数据分片或数据分片副本在单位时间内的磁盘使用量计算得到。分片服务器的单位时间内磁盘平均使用量可通过如下公式计算:
Figure BDA0002223724410000141
这里的m是指分片服务器的数字编号的最大值,nj是指数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本,use[nj]为数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本在单位时间内的磁盘使用量,averagen是指数字编号为n的分片服务器的单位时间内磁盘平均使用量。
步骤a2:在步骤a1计算得到averagen的基础上,磁盘预测剩余量可通过以下公式计算得到:
Figure BDA0002223724410000142
这里的totaln是指数字编号为n的分片服务器的磁盘总容量,nj是指数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本,njs是指数字编号为n的分片服务器上的数字编号为j的数据分片或数据分片副本的大小,averagen是指数字编号为n的分片服务器的单位时间内磁盘平均使用量,d是指指定时长。
以上对步骤10221中预测磁盘预测剩余量的获取方式进行了描述。
下面将从分片服务器侧对本申请的数据分片副本部署方法进行描述。
参见图6,图6为本申请提供的数据分片副本部署方法的流程图,该流程应用于分片服务器。其中,数据库集群包括已部署配置服务进程的配置服务器和用于存储数据分片和数据分片副本的分片服务器,数据库集群还包括zookeeper服务器,zookeeper服务器分别与配置服务器和分片服务器连接。
关于数据库集群的架构以及各结点所存储的数据,可以参照配置服务器侧对相关内容的描述,这里不再赘述。
如图6所示,该流程可包括以下步骤:
步骤201,监听zookeeper服务器中第二存储结点的目标第二存储子结点,目标第二存储子结点为预先指定的由分片服务器负责监听的第二存储子结点;
关于数据库集群的结构以及zookeeper服务器中存储结点的设置,可参照配置服务器侧对相关内容的描述,这里不再赘述。
作为一个实施例,这里的分片服务器可以是数据库集群中的任意一个分片服务器,这里的目标第二存储结点是与该分片服务器所对应的存储结点。
步骤202,当分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为数据分片副本分配端口,端口用于对数据分片副本进行操作。
作为一个实施例,上述分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息可包括:
步骤b1:与前述配置服务器监听第一存储子结点的方式相类似。分片服务器可以通过在目标第二存储子结点上注册watcher,以在后续目标第二存储子结点存储的数据发生变化时,收到watcher发送的事件通知。仍以目标第二存储子结点为host结点存储的node2.com子结点为例,分片服务器可以在node2.com子结点上注册watcher,以使node2.com子结点的数据发生变化时(即新增shard2的注册信息时),node2.com子结点可以通过watcher向分片服务器发送的事件通知。
步骤b2:由于监听目标第二存储子结点的分片服务器只知道目标第二存储子结点的数据发生了变化,但并不知道具体发生了何种变化。因此,分片服务器还需主动查看目标第二存储子结点存储的所有数据分片的标识,以及第二存储结点存储的已启动数据库进程的数据分片和数据分片副本标识,进而确定出未启动的数据分片副本的标识,也就是新增的第一存储子结点对应的数据分片的数据分片副本的标识。例如,仍以前述的第二存储子结点为node2.com子结点为例,该结点存储有shard1和shard2,这表示标识为node2.com的分片服务器当前存储了标识为shard1和shard2的数据分片或数据分片副本。该node2.com子结点存储还存储有started(已启动)及与之关联的shard1,这表示标识为node2.com的分片服务器上当前已启动数据库进程的数据分片或数据分片副本的标识为shard1。进一步通过比较node2.com子结点所存储的所有数据分片或数据分片副本的标识与已启动数据库进程的数据分片或数据分片副本的标识,可以确定出未启动的数据分片副本为shard2。
作为一个实施例,这里为数据分片副本分配的端口是目标分片服务器上当前空闲的端口。如何在处于空闲状态的端口中选择出端口并分配给数据分片副本,可以随机的选择端口,也可以按端口号从大到小的顺序或是按端口号从小到大的顺序选择端口,本申请并不对具体的选择方式做具体限定。
至此,完成图6所示流程。
本申请中,作为一个实施例,当配置服务器获取分片服务器的磁盘预测剩余量时,分片服务器可执行以下步骤:
步骤c1:计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量;
步骤c2:将预测的磁盘预测剩余量发送给配置服务器。
关于分片服务器计算磁盘预测剩余量的过程,可以参照配置服务器侧对相关内容的描述,这里不再赘述。
以上对分片服务器如何获取磁盘预测剩余量进行了描述。
在本申请中,作为一个实施例,当目标分片服务器为数据分片副本分配端口后,则该目标分片服务器可启动该数据分片副本所对应的数据库进程,下面具体描述:
由于数据分片副本在存储至目标分片服务器并分配端口后,还需要将该数据分片副本所对应的数据库进程启动并初始化才能够被数据库集群所使用,因此分片服务器还需启动该数据分片副本所对应的数据库进程。
以上对目标分片服务器如何启动该数据分片副本所对应的数据库进程进行了描述。
在本申请中,作为一个实施例,目标分片服务器启动数据分片副本所对应的数据库进程后,目标分片服务器可以将目标分片服务器的标识和该数据分片副本对应的端口注册至新增的第一存储子结点中,以使路由服务器对该进程进行初始化,下面具体描述:
目标分片服务器将目标分片服务器的标识和端口注册至新增的第一存储子结点中,以使后续路由服务器能够根据该新增的第一存储子结点中的注册信息来判断是否要对数据分片副本对应的数据库进程执行初始化。参考图7,图7为本申请提供的另一种数据库集群的示意图,其中,还包括有与zookeeper服务器连接的路由服务器,路由服务器用于对数据分片副本对应的数据库进程执行初始化操作。
为了对数据分片进行冗余保护,可为每一个数据分片设置一个或多个数据分片副本,在数据分片对应的每一个数据分片副本所对应的数据库进程都被启动后,则可以对这些数据分片副本对应的数据库进程执行初始化操作。基于此,路由服务器监听到新增第一存储子结点时,可以判断该新增的第一存储子结点存储的目标分片服务器的标识数量或端口数量是否等于指定数量;若等于,则对该新增的第一存储子结点所对应数据分片的所有数据分片副本的数据库进程进行初始化。这里的指定数量是预先设定的数据分片所需设置的数据分片副本数量。也就是说,这里的判断是在判断新增的第一存储子结点对应的数据分片的所有数据分片副本的数据库进程是否都已经完成了启动,在新增的第一存储子结点存储的目标分片服务器的标识数量或端口数量等于指定数量时,则说明该新增的第一存储子结点对应的数据分片的数据分片副本的数据库进程都已经完成了启动,此时则可以对这些数据库进程同时执行初始化操作。
图8示出了另一种zookeeper服务器中存储结点的设置方式。参考图8,作为一个实施例,可将图8中所示的shard2子结点作为新增的第一存储子结点,该shard2子结点存储的node1.com及27019则可以表示shard2数据分片的原本存储在node1.com分片服务器上,其分配有27019端口、该shard2子结点存储的node2.com及27015则表示shard2数据分片副本被存储在node2.com分片服务器上,其分配有27015端口、该shard2子结点存储的node3.com及27016则表示shard2数据分片副本被存储在node3.com分片服务器上,其分配有27016端口。路由服务器可以判断shard2子结点存储的分片服务器的标识是否等于指定数量3,若等于,则可以启动node2.com分片服务器上的shard2对应的数据库进程以及node3.com分片服务器上的shard2对应的数据库进程。
本领域技术人员可以理解的是,这里的三个分片服务器标识以及三个端口只是用于举例说明,第一存储子结点存储的分片服务器标识以及端口的数量可根据预先设定的数据分片副本的数量而定。此外,将数据分片及数据分片副本存储至哪一台分片服务器也需根据实际情况确定,这里的三个分片服务器仅作为举例说明,而非具体限定。
以上对路由服务器如何对数据分片副本对应的数据库进行初始化进行了描述。
作为一个实施例,上述路由服务器确定新增的第一存储子结点对应的数据分片副本可以包括:
步骤d1:与前述目标分片服务器监听目标第二存储子结点的方式相类似。路由服务器可以通过在第一存储结点上注册watcher,以使第一存储结点存储的数据发生变化时,第一存储结点通过该watcher向目标分片服务器发送事件通知。
例如,以图8所示的shardlist结点为第一存储结点,shardlist结点存储的shard2子结点为新增的第一存储子结点为例,路由服务器可以在shardlist结点上注册watcher,以使shardlist结点的数据发生变化时(即新增shard2子结点时),shardlist结点可以通过该watcher向目标分片服务器发送事件通知。
步骤d2:由于路由服务器在获知第一存储结点的数据发生变化后,并不能够直接的获知第一存储结点的数据具体发生了何种变化。因此,路由服务器还需主动查看第一存储结点存储的所有第一存储子结点所存储的数据分片标识,以及第三存储结点,该第三存储结点存储有已完成数据库进程初始化操作的数据分片副本的标识信息。并进一步通过比较上述标识可以确定出还未完成数据库进程初始化的数据分片副本的标识。例如,可以将图8所示的alreadyinitialized(已初始化)结点作为第三存储结点,该结点存储的shard1表示标识为shard1的数据分片副本对应的数据库进程已经完成了初始化。根据第一存储结点存储的shard1子结点和shard2子结点,可知shard2子结点为第一存储结点新增的第一存储子结点。
以上对路由服务器如何确定第一存储结点新增的第一存储子结点进行了描述。
通过将数据分片副本所在的分片服务器信息与端口信息注册至zookeeper服务器中的相应结点,能够实现对于未初始化对应数据库进程的数据分片副本的统一查找,并进一步实现了对多个数据分片副本对应数据库进程的初始化操作,提高了初始化操作的效率。
与前述数据分片副本部署方法的实施例相对应,本申请还提供了一种数据分片副本部署装置的实施例。该数据分片副本部署装置应用于包括配置服务器和分片服务器的数据库集群中的配置服务器;所述数据库集群还包括zookeeper服务器,zookeeper服务器分别与所述配置服务器和分片服务器连接。
参考图9,数据分片副本部署装置包括:
获取单元910,用于获取所述数据库集群中各分片服务器的存储空间剩余量;
选择单元920,用于监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器,其中,所述第一存储结点用于存储数据分片信息,第一存储结点包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片;
存储单元930,用于将所述数据分片副本存储至目标分片服务器,并将所述数据分片副本的标识注册至zookeeper服务器中第二存储结点中的目标第二存储子结点,目标第二存储子结点为预先指定的由目标分片服务器负责监听的第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作,其中,所述第二存储结点用于存储分片服务器信息,第二存储结点包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器。
作为一个实施例,选择单元920具体用于从各分片服务器中选择出满足指定规则的至少一个候选分片服务器;
依据候选分片服务器的存储空间剩余量确定候选分片服务器的选中参数,所述选中参数为候选分片服务器被选中为目标分片服务器的依据;
依据候选分片服务器的选中参数从所有的候选分片服务器中选择所述目标分片服务器。
作为一个实施例,存储空间剩余量包括:磁盘预测剩余量以及内存剩余量。
作为一个实施例,在存储空间剩余量包括磁盘预测剩余量以及内存剩余量的情况下,所述选择单元920具体用于针对每一候选分片服务器,计算该候选分片服务器的磁盘预测剩余量与N的第一比值,以及计算该候选分片服务器的内存剩余量与M的第二比值,N为候选分片服务器的磁盘预测剩余量总和,M为分片服务器的内存剩余量总和;
将所述第一比例与第二比例进行设定计算得到所述选中参数。
作为一个实施例,前述的磁盘预测剩余量通过以下方式获取:
接收每一分片服务器发送的该分片服务器预测出的磁盘预测剩余量;
其中,所述分片服务器通过以下方式预测磁盘预测剩余量:计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据所述磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量。
与前述的数据分片副本部署方法的实施例相对应,本申请还提供了一种数据分片副本部署装置的实施例。应用于包括配置服务器和分片服务器的数据库集群中的分片服务器,所述数据库集群还包括zookeeper服务器,zookeeper服务器分别与所述配置服务器和分片服务器连接。
参考图10,数据分片副本部署装置包括:
监听单元1010,用于监听zookeeper服务器中第二存储结点的目标第二存储子结点,所述目标第二存储子结点为预先指定的由所述分片服务器负责监听的第二存储子结点;
端口分配单元1020,用于当分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作。
作为一个实施例,参考图11,数据分片副本部署装置还包括:
计算单元1030,用于计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据所述磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量;
发送单元1040,用于将预测的磁盘预测剩余量发送给所述配置服务器。
请参见图12,为本申请实施例提供的一种数据分片副本部署装置的硬件结构示意图。该数据分片副本部署装置应用于包括配置服务器和分片服务器的数据库集群中的配置服务器。该数据分片副本部署装置可以包括处理器1201、存储有机器可执行指令的机器可读存储介质1202。处理器1201与机器可读存储介质1202可经由系统总线1203通信。并且,通过读取并执行机器可读存储介质1202中与数据处理逻辑对应的机器可执行指令,处理器1201可执行上文描述的应用于配置服务器的数据分片副本部署方法。
本文中提到的机器可读存储介质1202可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
请参见图13,为本申请实施例提供的另一种数据分片副本部署装置的硬件结构示意图。该数据分片副本部署装置应用于包括配置服务器和分片服务器的数据库集群中的分片服务器。该数据分片副本部署装置可以包括处理器1301、存储有机器可执行指令的机器可读存储介质1302。处理器1301与机器可读存储介质1302可经由系统总线1303通信。并且,通过读取并执行机器可读存储介质1302中与数据处理逻辑对应的机器可执行指令,处理器1301可执行上文描述的应用于分片服务器的数据分片副本部署方法。
本文中提到的机器可读存储介质1302可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (12)

1.一种数据分片副本部署方法,应用于包括配置服务器和分片服务器的数据库集群中的配置服务器,其特征在于,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述方法包括:
获取所述数据库集群中各分片服务器的存储空间剩余量;
监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器,其中,所述第一存储结点用于存储数据分片信息,第一存储结点包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片;
将所述数据分片副本存储至目标分片服务器,并将所述数据分片副本的标识注册至zookeeper服务器中第二存储结点的目标第二存储子结点,目标第二存储子结点为预先指定的由目标分片服务器负责监听的第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作,其中,所述第二存储结点用于存储分片服务器信息,第二存储结点包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器。
2.根据权利要求1所述的方法,其特征在于,所述根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器包括:
从各分片服务器中选择出满足指定规则的至少一个候选分片服务器;
依据候选分片服务器的存储空间剩余量确定候选分片服务器的选中参数,所述选中参数为候选分片服务器被选中为目标分片服务器的依据;
依据候选分片服务器的选中参数从所有的候选分片服务器中选择所述目标分片服务器。
3.根据权利要求2所述的方法,其特征在于,所述存储空间剩余量包括:磁盘预测剩余量以及内存剩余量;
依据候选分片服务器的存储空间剩余量确定候选分片服务器的选中参数包括:
针对每一候选分片服务器,计算该候选分片服务器的磁盘预测剩余量与N的第一比值,以及计算该候选分片服务器的内存剩余量与M的第二比值,N为候选分片服务器的磁盘预测剩余量总和,M为分片服务器的内存剩余量总和;
将所述第一比值与第二比值进行设定计算得到所述选中参数。
4.根据权利要求3所述的方法,其特征在于,所述磁盘预测剩余量通过以下方式获取:
接收每一分片服务器发送的该分片服务器预测出的磁盘预测剩余量;
其中,所述分片服务器通过以下方式预测磁盘预测剩余量:计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据所述磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量。
5.一种数据分片副本部署方法,应用于包括配置服务器和分片服务器的数据库集群中的分片服务器,其特征在于,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述方法包括:
监听zookeeper服务器中第二存储结点的目标第二存储子结点,所述目标第二存储子结点为预先指定的由所述分片服务器负责监听的第二存储子结点;
当分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作。
6.根据权利要求5所述的方法,其特征在于,该方法进一步包括:
计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据所述磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量;
将预测的磁盘预测剩余量发送给所述配置服务器。
7.一种数据分片副本部署装置,应用于包括配置服务器和分片服务器的数据库集群中的配置服务器,其特征在于,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述装置包括:
获取单元,用于获取所述数据库集群中各分片服务器的存储空间剩余量;
选择单元,用于监听到zookeeper服务器中第一存储结点新增第一存储子结点时,获取该第一存储子结点存储的数据分片标识和存储该数据分片的分片服务器标识,根据各分片服务器的存储空间剩余量,从其他分片服务器中选择用于存储数据分片副本的目标分片服务器,其中,所述第一存储结点用于存储数据分片信息,第一存储结点包括至少一个第一存储子结点,每一个第一存储子结点对应一个数据分片;
存储单元,用于将所述数据分片副本存储至目标分片服务器,并将所述数据分片副本的标识注册至zookeeper服务器中第二存储结点的目标第二存储子结点,目标第二存储子结点为预先指定的由目标分片服务器负责监听的第二存储子结点,以使目标分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作,其中,所述第二存储结点用于存储分片服务器信息,第二存储结点包括至少一个第二存储子结点,每一个第二存储子结点对应一个分片服务器。
8.根据权利要求7所述的装置,其特征在于,
所述选择单元,具体用于从各分片服务器中选择出满足指定规则的至少一个候选分片服务器;
依据候选分片服务器的存储空间剩余量确定候选分片服务器的选中参数,所述选中参数为候选分片服务器被选中为目标分片服务器的依据;
依据候选分片服务器的选中参数从所有的候选分片服务器中选择所述目标分片服务器。
9.根据权利要求8所述的装置,其特征在于,所述存储空间剩余量包括:磁盘预测剩余量以及内存剩余量;
所述选择单元,具体用于针对每一候选分片服务器,计算该候选分片服务器的磁盘预测剩余量与N的第一比值,以及计算该候选分片服务器的内存剩余量与M的第二比值,N为候选分片服务器的磁盘预测剩余量总和,M为分片服务器的内存剩余量总和;
将所述第一比值与第二比值进行设定计算得到所述选中参数。
10.根据权利要求9所述的装置,其特征在于,所述磁盘预测剩余量通过以下方式获取:
接收每一分片服务器发送的该分片服务器预测出的磁盘预测剩余量;
其中,所述分片服务器通过以下方式预测磁盘预测剩余量:计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据所述磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量。
11.一种数据分片副本部署装置,应用于包括配置服务器和分片服务器的数据库集群中的分片服务器,其特征在于,所述数据库集群还包括zookeeper服务器,所述zookeeper服务器分别与所述配置服务器和分片服务器连接,所述装置包括:
监听单元,用于监听zookeeper服务器中第二存储结点的目标第二存储子结点,所述目标第二存储子结点为预先指定的由所述分片服务器负责监听的第二存储子结点;
端口分配单元,用于当分片服务器监听到目标第二存储子结点新增数据分片副本的注册信息时,为所述数据分片副本分配端口,所述端口用于对所述数据分片副本进行操作。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
计算单元,用于计算本分片服务器存储的每一数据分片在单位时间内的磁盘使用量,以及计算本分片服务器存储的每一数据分片副本在单位时间内的磁盘使用量;根据所有数据分片在单位时间内的磁盘使用量和所有数据分片副本在单位时间内的磁盘使用量计算单位时间内磁盘平均使用量,根据所述磁盘平均使用量、本分片服务器的磁盘总容量、以及本分片服务器当前的磁盘占用量预测指定时长结束后的磁盘预测剩余量;
发送单元,用于将预测的磁盘预测剩余量发送给所述配置服务器。
CN201910944239.7A 2019-09-30 2019-09-30 数据分片副本部署方法及装置 Active CN110716698B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910944239.7A CN110716698B (zh) 2019-09-30 2019-09-30 数据分片副本部署方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910944239.7A CN110716698B (zh) 2019-09-30 2019-09-30 数据分片副本部署方法及装置

Publications (2)

Publication Number Publication Date
CN110716698A CN110716698A (zh) 2020-01-21
CN110716698B true CN110716698B (zh) 2022-08-26

Family

ID=69211289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910944239.7A Active CN110716698B (zh) 2019-09-30 2019-09-30 数据分片副本部署方法及装置

Country Status (1)

Country Link
CN (1) CN110716698B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579039B (zh) * 2020-12-02 2024-02-02 北京金山云网络技术有限公司 一种表格副本的扩展方法、系统、装置及电子设备
CN114356347A (zh) * 2022-01-05 2022-04-15 中国建设银行股份有限公司 一种创建分片式数据库集群的方法及装置
CN114398371B (zh) * 2022-01-13 2024-06-04 深圳九有数据库有限公司 数据库集群系统多副本分片方法、装置、设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10291707B1 (en) * 2015-05-18 2019-05-14 Twitter, Inc. Systems and methods for balancing storage resources in a distributed database
CN107038059A (zh) * 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 虚拟机部署方法及装置
CN106527981B (zh) * 2016-10-31 2020-04-28 华中科技大学 一种基于配置的自适应分布式存储系统的数据分片方法
CN108829805A (zh) * 2018-06-06 2018-11-16 福建南威软件有限公司 一种基于MongoDB的分片存储方法

Also Published As

Publication number Publication date
CN110716698A (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
CN105808634B (zh) 分布式映射化简网络
CN110716698B (zh) 数据分片副本部署方法及装置
US11422980B2 (en) Policy-based selection and configuration of target site resources for data replication
CN109597567B (zh) 一种数据处理方法和装置
US9135040B2 (en) Selecting provisioning targets for new virtual machine instances
US12034600B2 (en) Method for federating a cluster from a plurality of computing nodes from different fault domains
CN110069210B (zh) 一种存储系统、存储资源的分配方法及装置
CN112367345B (zh) 数据处理方法、服务端设备及计算机可读存储介质
CN112765182A (zh) 云服务器集群间的数据同步方法及装置
CN109254839B (zh) 确定任务触发时间的方法、构建任务定时器的方法及系统
JP5503678B2 (ja) ホスト提供システム及びホスト提供方法
CN117492944A (zh) 任务调度方法、装置、电子设备及可读存储介质
WO2016180049A1 (zh) 一种存储管理方法及分布式文件系统
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
US9690576B2 (en) Selective data collection using a management system
CN110798492A (zh) 数据存储方法及装置、数据处理系统
CN107707395B (zh) 一种数据传输方法、装置和系统
CN106708865B (zh) 流处理系统中访问窗口数据的方法和装置
CN109451090B (zh) 一种域名解析方法及装置
CN109643248A (zh) 用于在高度分布式数据处理系统中自动且动态地将对于任务的责任分配给可用的计算组件的方法
US20150120793A1 (en) Managing device of distributed file system, distributed computing system therewith, and operating method of distributed file system
CN115242595B (zh) 网络设备发现方法、装置、电子设备和存储介质
CN113055495B (zh) 一种数据处理方法、装置及分布式存储系统
US8782364B2 (en) Determining availability of data elements in a storage system
CN108965169B (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
GR01 Patent grant
GR01 Patent grant