CN111580959A - 一种数据写入方法、数据写入装置、服务器及存储介质 - Google Patents
一种数据写入方法、数据写入装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111580959A CN111580959A CN202010337976.3A CN202010337976A CN111580959A CN 111580959 A CN111580959 A CN 111580959A CN 202010337976 A CN202010337976 A CN 202010337976A CN 111580959 A CN111580959 A CN 111580959A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- migration
- memory
- written
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005192 partition Methods 0.000 claims abstract description 158
- 238000013508 migration Methods 0.000 claims description 237
- 230000005012 migration Effects 0.000 claims description 237
- 238000004590 computer program Methods 0.000 claims description 2
- 238000011156 evaluation Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000001617 migratory effect Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据写入方法、数据写入装置、服务器及存储介质,该方法包括:获取集群包括的第一节点的第一内存占用数据;在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;获取所述目标分区的当前状态,以及所述第一节点的节点类型;根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。通过本申请实施例所述的数据写入方法,实现了对内存不足的节点进行待写入数据的写入操作,避免现有技术中的中某一节点的内存不足导致的写入成功率较低的问题。
Description
技术领域
本申请涉及分布式缓存技术领域,尤其涉及一种数据写入方法、数据写入装置、服务器及存储介质。
背景技术
Redis是一种支持存储key-value等多种数据结构的数据库。目前,在Redis 数据库中的某一节点的内存不足的情况下,若该某一节点存在待写入数据,则可能会存在写入失败的问题。
发明内容
本申请实施例提供了一种数据写入方法、数据写入装置、服务器及存储介质,以解决现有技术中某一节点的内存不足导致的写入成功率较低的问题。
根据本申请实施例的第一方面,提供一种数据写入方法,包括:
获取集群包括的第一节点的第一内存占用数据;
在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;
获取所述目标分区的当前状态,以及所述第一节点的节点类型;
根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。
在本申请的可选实施例中,在所述当前状态为迁移状态,且所述第一节点的节点类型为迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
将所述待写入数据迁移至所述迁入节点;
在所述目标分区对应的第一写入数据从所述迁出节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第一写入数据中。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
确定所述迁出节点包括的第一迁移分区;
将所述第一迁移分区对应的第二写入数据从所述迁出节点迁移至所述迁入节点,并将所述待写入数据写入所述第二写入数据迁移之后的迁出节点。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
从所述第一节点分布的多个分区中,确定第二迁移分区;
将所述第一节点的节点类型更新为迁出节点;
若所述第二迁移分区与所述目标分区为不同分区,将所述第二迁移分区对应的第三写入数据从节点类型更新后的第一节点迁移至所述迁入节点;
将所述待写入数据写入所述第三写入数据迁移之后的第一节点。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
从所述第一节点分布的多个分区中,确定第三迁移分区;
将所述第一节点的节点类型更新为迁出节点;
若所述第三迁移分区与所述目标分区为同一分区,将所述目标分区的当前状态更新为迁移状态;
将所述待写入数据迁移至所述迁入节点;
在所述目标分区对应的第四写入数据从节点类型更新后的第一节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第四写入数据中。
在本申请的可选实施例中,所述预先确认的迁入节点为根据第二节点的第二内存占用数据确定的节点,所述第二节点为所述集群包括的节点中除所述第一节点外的节点。
在本申请的可选实施例中,所述第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种;或者,
所述第一内存占用量、所述第一内存占用率以及所述第一剩余内存量中的任一种,以及对所述第一节点进行请求访问的第一增长速度;
当所述第一内存占用数据包括第一内存占用量的情况下,所述预设内存占用条件包括:所述第一内存占用量大于等于预设占用量阈值;
当所述第一内存占用数据包括第一内存占用率的情况下,所述预设内存占用条件包括:所述第一内存占用率大于等于预设占用率阈值;
当所述第一内存占用数据包括第一剩余内存量的情况下,所述预设内存占用条件包括:所述第一剩余内存量小于等于预设剩余量阈值;
当所述第一内存占用数据包括第一增长速度的情况下,所述预设内存占用条件包括:所述第一增长速度大于等于预设速度阈值。
根据本申请实施例的第二方面,提供一种数据写入装置,包括:
获取模块,用于获取集群包括的第一节点的第一内存占用数据;
在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;以及,
获取所述目标分区的当前状态,以及所述第一节点的节点类型;
写入模块,用于根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。
在本申请的可选实施例中,在所述当前状态为迁移状态,且所述第一节点的节点类型为迁出节点的情况下,所述写入模块,进一步用于将所述待写入数据迁移至所述迁入节点;在所述目标分区对应的第一写入数据从所述迁出节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第一写入数据中。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为迁出节点的情况下,所述写入模块,进一步用于确定所述迁出节点包括的第一迁移分区;将所述第一迁移分区对应的第二写入数据从所述迁出节点迁移至所述迁入节点,并将所述待写入数据写入所述第一迁移分区对应的第二写入数据迁移之后的迁出节点。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,所述写入模块,进一步用于从所述第一节点分布的多个分区中,确定第二迁移分区;将所述第一节点的节点类型更新为迁出节点;若所述第二迁移分区与所述目标分区为不同分区,将所述第二迁移分区对应的第三写入数据从所述迁出节点迁移至所述迁入节点;将所述待写入数据写入所述第三写入数据迁移之后的迁出节点。
在本申请的可选实施例中,所述写入模块,进一步用于从所述第一节点分布的多个分区中,确定第三迁移分区;将所述第一节点的节点类型更新为迁出节点;若所述第三迁移分区与所述目标分区为同一分区,将所述目标分区的当前状态更新为迁移状态;将所述待写入数据迁移至所述迁入节点;在所述目标分区对应的第四写入数据从所述迁出节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第四写入数据中。
在本申请的可选实施例中,所述预先确认的迁入节点为根据第二节点的第二内存占用数据确定的节点,所述第二节点为所述集群包括的节点中除所述第一节点外的节点。
在本申请的可选实施例中,所述第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种;或者,
所述第一内存占用量、所述第一内存占用率以及所述第一剩余内存量中的任一种,以及对所述第一节点进行请求访问的第一增长速度;
当所述第一内存占用数据包括第一内存占用量的情况下,所述预设内存占用条件包括:所述第一内存占用量大于等于预设占用量阈值;
当所述第一内存占用数据包括第一内存占用率的情况下,所述预设内存占用条件包括:所述第一内存占用率大于等于预设占用率阈值;
当所述第一内存占用数据包括第一剩余内存量的情况下,所述预设内存占用条件包括:所述第一剩余内存量小于等于预设剩余量阈值;
当所述第一内存占用数据包括第一增长速度的情况下,所述预设内存占用条件包括:所述第一增长速度大于等于预设速度阈值。
根据本申请实施例的第三方面,提供一种服务器,包括处理器和存储器,所述处理器和存储器耦合,所述存储器用于存储计算机程序指令,当所述处理器执行所述计算机程序指令时,使得服务器执行上述第一方面所述的数据写入方法。
根据本申请实施例的第四方面,提供一种计算机存储介质,所述计算机存储介质中存储有程序指令,当所述程序指令在服务器上运行时,使得服务器执行上述第一方面所述的数据写入方法。
根据本申请实施例的第五方面,提供一种芯片,所述芯片与服务器中的存储器耦合,使得所述芯片在运行时调用所述存储器中存储的程序指令,使得所述服务器执行上述第一方面所述的数据写入方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
获取集群包括的第一节点的第一内存占用数据;在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;确定所述目标分区的当前状态,以及所述第一节点的节点类型;根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。
可见,在本申请实施例中,若检测到第一节点满足预设内存占用条件,则可以确定第一节点的内存不足。这样,本申请可以获取第一节点的节点类型,以及待写入数据在第一节点上所属的目标分区的当前状态,从而可以根据当前状态、节点类型和预先确认的迁入节点,对待写入数据执行写入操作,进而可以避免现有技术中的中某一节点的内存不足导致的写入成功率较低的问题。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种数据写入***的结构示意图;
图2A为本申请实施例提供的一种数据写入方法的流程示意图;
图2B为本申请实施例提供的一种写入操作的流程示意图;
图2C为本申请实施例提供的另一种写入操作的流程示意图;
图2D为本申请实施例提供的又一种写入操作的流程示意图;
图3为本申请实施例提供的一种数据写入装置的结构框图;
图4为本申请实施例提供的一种服务器的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。
本申请实施例公开了一种数据写入方法、数据写入装置、服务器及存储介质,若检测到第一节点满足预设内存占用条件时,则可以确定第一节点的内存不足,故可以获取第一节点的节点类型,以及待写入数据在第一节点上所属的目标分区的当前状态,从而可以根据当前状态、节点类型和预先确认的迁入节点,对待写入数据执行写入操作,进而可以避免现有技术中的中某一节点的内存不足导致的写入成功率较低的问题。以下分别进行详细说明。
首先,图1为本申请实施例示出的一种数据写入***。如图1所示,数据写入***可以包括服务器(例如proxy服务器)以及Redis集群,其中,Redis 集群包括n个节点(即图1中的节点1、节点2、…、节点n),n为大于1的正整数。由于节点之间相互通信,例如,节点之间可以通过二进制协议进行通信,故每个节点可以存储有集群的状态信息。
另外,Redis集群的键空间分割为固定数量的分区(即slot),例如,Redis 集群的键空间分割为16384个slot,将各个分区分别指派至对应的节点上。当需要存储写入数据(例如key-value)时,可以通过预设哈希算法(例如 CRC16(key)Mod 16384)获取写入数据需要映射的分区,故分区与写入数据存在映射关系。
基于上述的数据写入***,客户端通过服务器与Redis集群进行通信,从而可以根据客户端中的待写入数据更新Redis集群中对应的节点。避免现有技术中需要旁路***进行数据写入导致的写入数据的及时性较差的问题。
下面对本申请实施例公开的数据写入方法进行详细介绍。
图2A为本申请实施例提供的一种数据写入方法的流程示意图。所述方法可以应用于电子设备,示例性的,该电子设备可以为数据写入***中的服务器,本申请对此不做特殊限制。本申请实施例以服务器为例进行说明的,如图2A所示,所述方法包括:
201、获取集群包括的第一节点的第一内存占用数据。
其中,第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种;或者,
第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种,以及对第一节点进行请求访问的第一增长速度。
在本申请实施例中,服务器可以按照预设周期获取第一节点的请求访问量。这样,服务器可以存储上一周期获取到的第一节点的历史请求访问量,并根据历史请求访问量和当前周期获取到的第一节点的当前请求访问量,确定第一增长速度。进一步地,可以计算当前请求访问量与历史请求访问量之间的差值得到访问增长量,并计算访问增长量与预设周期的比值得到第一增长速度。上述确定第一增长速度的方法只是示例性说明,本申请对此不做特殊限制。
可以理解的是,本申请中的集群可以为Redis集群。
202、在根据第一内存占用数据确定第一节点满足预设内存占用条件,且检测到第一节点存在待写入数据的情况下,获取待写入数据在第一节点上所属的目标分区。
其中,当第一内存占用数据包括第一内存占用量的情况下,预设内存占用条件包括:第一内存占用量大于等于预设占用量阈值;当第一内存占用数据包括第一内存占用率的情况下,预设内存占用条件包括:第一内存占用率大于等于预设占用率阈值;当第一内存占用数据包括第一剩余内存量的情况下,预设内存占用条件包括:第一剩余内存量小于等于预设剩余量阈值;当第一内存占用数据包括第一增长速度的情况下,预设内存占用条件包括:第一增长速度大于等于预设速度阈值。
可以理解的是,本申请中的待写入数据可以为key-value,由于分区与 key-value存在映射关系,故可以通过预设哈希算法(例如CRC16(key)Mod 16384函数)获取待写入数据需要映射的目标分区。
203、获取目标分区的当前状态,以及第一节点的节点类型。
其中,当前状态可以包括迁移状态或者非迁移状态,第一节点的节点类型可以包括迁出节点或者非迁出节点。
可以理解的是,集群的各个节点之间可以数据共享,即集群的各个节点可以构建一个去中心化的网络。这样,服务器可以向集群中的目标节点发送状态获取指令,状态获取指令用于指示获取目标分区的当前状态,以及第一节点的节点类型。这样,该目标节点可以根据状态获取指令向服务器发送状态信息,以便服务器可以从状态信息中获取到目标分区的当前状态,以及第一节点的节点类型。其中,目标节点可以为集群中的任一节点,或者为第一节点。
204、根据当前状态、节点类型和预先确认的迁入节点,对待写入数据执行写入操作。
本申请实施例可以应用于以下场景,若第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种,则本申请可以应用于第一节点的内存不足的场景;若第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种,以及对第一节点进行请求访问的第一增长速度,则本申请可以应用于第一节点的内存不足,以及第一节点的请求访问量急速增长的场景,等等。
针对上述场景,在现有的技术方案中,若继续对该某一节点进行写入操作,则写入操作会被拒绝。示例性的,如图2B所示,服务器首先向节点NodeA 发送待写入数据的写入指令,例如,该写入指令可以为“set key value”指令;由于节点NodeA内存满足预设内存占用条件,故节点NodeA向服务器发送内存用完的报错指令,例如,该报错指令可以为“err:OOM”指令。可见,现有的技术方案中会存在大量写入操作被拒绝的问题。
针对上述问题,在本申请实施例中,可以根据当前状态、第一节点的节点类型和预先确认的迁入节点,对待写入数据执行写入操作。其中写入操作可以分为以下几种情况:
第一种情况为,目标分区的当前状态为迁移状态,且第一节点的节点类型为迁出节点。
在本申请实施例中,针对该第一种情况,服务器可以将待写入数据迁移至迁入节点,并在目标分区对应的第一写入数据从迁出节点迁移至迁入节点的情况下,将待写入数据写入迁入节点上的第一写入数据中。
可以理解的是,本申请对将待写入数据迁移至迁入节点和将目标分区对应的第一写入数据从迁出节点迁移至迁入节点的时序不做限定。
应理解,集群中的分区与写入数据存在分区映射关系,故可以基于分区映射关系获取到目标分区对应的第一写入数据。
可见,本申请实施例考虑到目标分区的当前状态为迁移状态,故待写入数据对应的第一写入数据也需要迁移至迁入节点,从而可以将待写入数据直接迁移至迁入节点,无需将待写入数据写入迁出节点,避免了占用迁出节点的内存。并且,在第一写入数据迁移至迁入节点之后,可以在迁入节点中根据待写入数据更新第一写入数据,从而提高了待写入数据的写入成功率。
示例性的,如图2C所示,服务器首先向迁出节点NodeB发送待写入数据的写入指令,例如,写入指令可以为“set key value”指令。由于迁出节点NodeB内存不足,故迁出节点NodeB向服务器发送内存用完的报错指令,例如,报错指令可以为“err:OOM”指令。接着,由于目标分区为迁移状态,故存在预先确认的迁入节点NodeC,从而服务器可以向迁出节点NodeB发送待写入数据的迁移指令,例如,迁移指令可以为“migrate key value NodeC”指令。然后,服务器可以继续向NodeB发送待写入数据的写入指令。紧接着,若目标分区对应的第一写入数据从迁出节点NodeB迁移至迁入节点NodeC,则迁出节点NodeB向服务器发送重定向异常指令,例如,重定向异常指令可以为“ask”指令,进一步地,“ask”指令的格式可以如下:(error)ask <slot><targetIP>:<targetPort>,这样,服务器可以从重定向异常指令中获取迁入节点NodeC的节点信息(即targetIP和targetPort等);其次,服务器向迁入节点NodeC发送连接指令,例如,连接指令可以为asking指令,接着继续向迁入节点NodeC发送待写入数据的写入指令,待写入数据在迁入节点NodeC 写入成功后,向服务器发送写入完成指令,例如,写入完成指令可以为“ok”指令。
第二种情况为,目标分区的当前状态为非迁移状态,且第一节点的节点类型为迁出节点。
在本申请实施例中,针对该第二种情况,服务器可以确定迁出节点包括的第一迁移分区,将第一迁移分区对应的第二写入数据从迁出节点迁移至迁入节点,并将待写入数据写入第二写入数据迁移之后的迁出节点。
可以理解的是,第一迁移分区中的第二写入数据可以包括第一迁移分区中的第一指定数量的写入数据,或者,包括第一迁移分区中的全部写入数据,本申请实施例对此不做特殊限制。其中,第一指定数量的写入数据可以为从第一迁移分区中随机确定的写入数据。
可见,本申请实施例考虑到目标分区为非迁移状态,故待写入数据对应的写入数据可能并非需要迁移至迁入节点,故通过将迁出节点上第一迁移分区对应的第二写入数据进行迁移,使得迁出节点释放了存储空间,从而可以将待写入数据写入迁出节点,提高了待写入数据的写入成功率。
示例性的,如图2D所示,服务器首先向迁出节点NodeB发送待写入数据的写入指令,例如,写入指令可以为“set key value”指令。由于迁出节点 NodeB内存不足,故迁出节点NodeB向服务器发送内存用完的报错指令,例如,报错指令可以为“err:OOM”指令。接着,服务器向迁出节点NodeB发送信息获取指令,信息获取指令可以用于指示获取集群中各个节点的相关信息,相关信息可以为节点是否为迁出节点,以及当节点的节点类型为迁出节点的情况下,迁出节点中的迁移分区的分区标识,等等。例如,信息获取指令可以为“cluster nodes”指令。然后,服务器向迁出节点NodeB发送第一迁移分区对应的第二写入数据的数据获取指令,该第一迁移分区为迁出节点NodeB中的迁移分区。例如,数据获取指令可以为“get keysinslot<slot><count>”。紧接着,服务器向NodeB发送将第二写入数据迁移至迁入节点NodeC(图2D中未画出)的数据迁移指令,例如,数据迁移指令可以为“migrate x NodeC”指令, x为第一迁移分区对应的第二写入数据。其次,服务器向迁出节点NodeB继续发送待写入数据的写入指令。当待写入数据在迁出节点中写入成功后,迁出节点NodeB向服务器发送写入完成指令,例如,写入完成指令可以为“ok”指令。
第三种情况为,目标分区的当前状态为非迁移状态,且第一节点的节点类型为非迁出节点。其中,第三种情况可以包括但不限于以下几种:
(1)服务器可以从第一节点分布的多个分区中,确定第二迁移分区;将第一节点的节点类型更新为迁出节点;若第二迁移分区与目标分区为不同分区,将第二迁移分区对应的第三写入数据从节点类型更新后的第一节点迁移至迁入节点;将待写入数据写入第三写入数据迁移之后的第一节点。
应理解,第二迁移分区对应的第三写入数据可以包括第二迁移分区中的第二指定数量的写入数据,或者,包括第二迁移分区中的全部写入数据,本申请实施例对此不做特殊限制。其中,第二指定数量的写入数据可以为从第二迁移分区中随机确定的写入数据。第二指定数量可以与第一指定数量为同一数值。
可以理解的是,从第一节点分布的多个分区中,确定第二迁移分区可以包括:从第一节点分布的多个分区中随机获取第二迁移分区;或者,
获取第一节点分布的多个分区分别对应的分区内存占用数据,并根据分区内存占用数据,从多个分区中确定第二迁移分区。这样,可以获取到内存占用量较少的第二迁移分区。
(2)从第一节点分布的多个分区中,确定第三迁移分区;将第一节点的节点类型更新为迁出节点;若第三迁移分区与目标分区为同一分区,将目标分区的当前状态更新为迁移状态;将待写入数据迁移至迁入节点;在目标分区对应的第四写入数据从节点类型更新后的第一节点迁移至迁入节点的情况下,将待写入数据写入迁入节点上的第四写入数据中。需要说明的是,本申请对若第三迁移分区与目标分区为同一分区,将目标分区的当前状态更新为迁移状态的步骤,以及将第一节点的节点类型更新为迁出节点的步骤的时序不做限定。
可以理解的是,第三迁移分区的获取方法与第二迁移分区的获取方法类似,不再赘述。
(3)服务器可以将目标分区的当前状态更新为迁移状态(也就是说,服务器将目标分区作为第五迁移分区),这样,将第一节点的节点类型更新为迁出节点;将待写入数据迁移至迁入节点;在目标分区对应的第五写入数据从节点类型更新后的第一节点迁移至迁入节点的情况下,将待写入数据写入迁入节点上的第五写入数据中。需要说明的是,本申请对将目标分区的当前状态更新为迁移状态的步骤,以及将第一节点的节点类型更新为迁出节点的步骤的时序不做限定。
可见,在第三种情况中,由于第一节点为非迁出节点,故在现有的技术方案中,第一节点的内存无法进行释放,从而造成写入成功率较低的问题。而本申请实施例可以预先确定第一节点对应的迁入节点,且确定第一节点中的迁移分区,并将第一节点的节点类型设置为迁出节点。这样,第一节点中的迁移分区对应的写入数据可以迁移至迁入节点,使得第一节点释放了存储空间,从而可以将待写入数据写入内存释放后的第一节点,进而提高了写入成功率。
其中,在本申请可以通过但不限于以下方式确定迁入节点:
方式一、服务器可以在集群中增加一个新节点,并将该新节点作为迁入节点。这样,实现了对集群进行扩容的目的。
方式二、预先确认的迁入节点可以为根据第二节点的第二内存占用数据确定的节点,第二节点为集群包括的节点中除第一节点外的节点。
在一种可选实施例中,第二内存占用数据可以包括第二内存占用量、第二内存占用率以及第二剩余内存量中的任一种。此时,可以通过以下方式确定迁入节点:
(a)服务器可以根据第二内存占用数据对第二节点进行排序,并根据第二节点的排序结果从第二节点中确定迁入节点。
在可选实施例中,若第二节点的排序结果越靠前,则第二节点的剩余内存越多。此时,可以确定排名最靠前的第二节点为迁入节点。
相反,若第二节点的排序结果越靠前,则第二节点的剩余内存越少。此时,可以确定排名最靠后的第二节点为迁入节点。
(b)服务器可以第二节点中获取第一候选节点,其中,当第二内存占用数据包括第二内存占用量的情况下,第一候选节点的第二内存占用量小于等于第一预设阈值;当第二内存占用数据包括第二内存占用率的情况下,第一候选节点的第二内存占用率小于等于第二预设阈值;当第二内存占用数据包括第二剩余内存量的情况下,第一候选节点的第二剩余内存量大于等于第三预设阈值。应理解,第一预设阈值小于预设占用量阈值,第二预设阈值小于预设占用率阈值,第三预设阈值大于预设剩余量阈值。这样,可以获取到剩余内存量较多的第一候选节点,由于该第一候选节点可以提供待写入数据的占用内存,故可以从第一候选节点中获取迁入节点。例如,可以从第一候选节点中随机获取迁入节点。
在另一种可选实施例中,第二内存占用数据可以包括:第二内存占用量、第二内存占用率以及第二剩余内存量中的任一种,以及对第二节点进行请求访问的第二增长速度。第二增长速度的获取方法可以参考步骤201中的第一增长速度的获取方法,此处不再赘述。此时,可以通过以下方式确定迁入节点:
(c)服务器从首先第二节点中获取第二候选节点。第二候选节点的获取过程可以参考第一候选节点的获取过程,此处不再赘述。接着根据第二增长速度,从第二候选节点中获取迁入节点。
进一步地,一种方式为可以确定最小第二增长速度对应的第二候选节点为迁入节点。
另一种方式为:根据第二增长速度从第二候选节点中获取第三候选节点,并从第三候选节点中确定迁入节点。其中,第三候选节点的第二增长速度小于等于第四预设阈值,以使得获取到的第三候选节点的访问增长量较低,避免第二候选节点在一定时间段内的内存占用量快速增长,这样,可以从第三候选节点中随机获取迁入节点。
(d)为了方便叙述,本申请实施例以第二内存占用数据包括:第二内存占用量和第二增长速度为例进行说明。服务器获取预先设置的第二内存占用量对应的第一权重,以及第二增长速度对应的第二权重。然后,计算第一权重和第二节点的第二内存占用量的乘积得到第二节点的第一内存评价值,计算第二权重和第二节点的第二增长速度的乘积得到第二节点的增长速度评价值。接着,计算第一内存评价值和增长速度评价值之间的和值得到第二节点的第一总评价值,确定最小第一总评价值对应的第二节点为迁入节点。
需要说明的是,若第二内存占用数据包括第二内存占用率和第二增长速度,则获取迁入节点的方式可以参考第二内存占用数据包括第二内存占用量和第二增长速度为例进行说明的过程,此处不再赘述。
若第二内存占用数据包括第二剩余内存量和第二增长速度,则可以获取第二内存评价值和增长速度评价值,第二内存评价值的获取过程可以参考第一内存评价值的获取方法,此处不再赘述。这样,可以获取增长速度评价值的第一倒数,并计算第二内存评价值和第一倒数之间的和值得到第二节点的第二总评价值,确定最大第二总评价值对应的第二节点为迁入节点。
(e)为了方便叙述,本申请实施例以第二内存占用数据包括:第二内存占用量和第二增长速度为例进行说明。服务器可以将第二内存占用量和第二增长速度进行归一化处理得到归一化后的第二内存占用量和归一化后的第二增长速度;然后,计算归一化后的第二内存占用量和归一化后的第二增长速度之间的和值得到第二节点的第三总评价值,确定最小第三总评价值对应的第二节点为迁入节点。
需要说明的是,若第二内存占用数据包括第二内存占用率和第二增长速度,则获取迁入节点的方式可以参考第二内存占用数据包括第二内存占用量和第二增长速度为例进行说明的过程,此处不再赘述。
若第二内存占用数据包括第二剩余内存量和第二增长速度,则可以获取归一化后的第二内存剩余内存量和归一化后的第二增长速度。这样,可以获取归一化后的第二增长速度的第二倒数,并计算归一化后的第二剩余内存量和第二倒数之间的和值得到第二节点的第四总评价值,确定最大第四总评价值对应的第二节点为迁入节点。
上述确定迁入节点的方式只是示例性说明,本发明对此不做特殊限制。
在一种可选实施例中,由于第一节点的内存占用较大,若集群中的各个节点负载均衡,则表示集群中包括的第二节点也存在内存占用较大的问题。此时,需要采用方式一中所述的方法确定迁入节点。综上,本申请可以判断集群中的各个节点的负载是否均衡,若均衡,则采用方式一所述的方法确定迁入节点;若不均衡,则采用方式二所述的方法确定迁入节点。
可以理解的是,判断集群中的各个节点负载是否均衡可以包括:获取集群中的各个节点的内存数据(即第一内存占用量、第一内存占用率或者第一剩余内存量),若各个节点中的任两个节点的内存数据之间的差值大于等于第五预设阈值,则确定集群中的各个节点负载不均衡,若各个节点中的任两个节点的内存数据之间的差值小于第六预设阈值,则确定集群中的各个节点负载均衡,第六预设阈值小于等于第五预设阈值。
进一步地,本申请还考虑到若对第一节点进行请求访问的第一增长速度过快,则可能会将迁入节点压垮。故,本申请可以首先判断第一节点的第一增长速度是否小于等于第七预设阈值,且集群包括的各个节点的负载是否均衡,当检测到第一节点的第一增长速度小于等于第七预设阈值,且集群包括的各个节点的负载不均衡时,可以通过方式二所述的方法确定迁入节点;当检测到第一节点的第一增长速度大于第七预设阈值,和/或,集群包括的各个节点的负载均衡时,可以通过方式一所述的方法确定迁入节点。其中,第七预设阈值大于预设速度阈值。
另外,考虑到数据写入过程的风险较高,为了降低风险,本申请可以在服务器中设置有开关,通过工作人员确定是否打开开关,若服务器检测到对开关的打开指令,则触发执行根据当前状态、节点类型和预先确认的迁入节点,对待写入数据执行写入操作的步骤。
采用上述方法,若检测到第一节点满足预设内存占用条件,则可以确定第一节点的内存不足,故可以获取第一节点的节点类型,以及待写入数据在第一节点上所属的目标分区的当前状态,从而可以根据当前状态、节点类型和预先确认的迁入节点,对待写入数据执行写入操作,进而可以避免现有技术中的中某一节点的内存不足导致的写入成功率较低的问题。
图3为本申请实施例示出的一种数据写入装置的结构框图,如图3所示,包括:
获取模块301,用于获取集群包括的第一节点的第一内存占用数据;
在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;以及,
获取所述目标分区的当前状态,以及所述第一节点的节点类型;
写入模块302,用于根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。
在本申请的可选实施例中,在所述当前状态为迁移状态,且所述第一节点的节点类型为迁出节点的情况下,写入模块302,进一步用于将所述待写入数据迁移至所述迁入节点;在所述目标分区对应的第一写入数据从所述迁出节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第一写入数据中。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为迁出节点的情况下,写入模块302,进一步用于确定所述迁出节点包括的第一迁移分区;将所述第一迁移分区对应的第二写入数据从所述迁出节点迁移至所述迁入节点,并将所述待写入数据写入所述第二写入数据迁移之后的迁出节点。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,写入模块302,进一步用于从所述第一节点分布的多个分区中,确定第二迁移分区;
将所述第一节点的节点类型更新为迁出节点;
若所述第二迁移分区与所述目标分区为不同分区,将所述第二迁移分区对应的第三写入数据从节点类型更新后的第一节点迁移至所述迁入节点;
将所述待写入数据写入所述第三写入数据迁移之后的第一节点。
在本申请的可选实施例中,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,写入模块302,进一步用于从所述第一节点分布的多个分区中,确定第三迁移分区;
将所述第一节点的节点类型更新为迁出节点;
若所述第三迁移分区与所述目标分区为同一分区,将所述目标分区的当前状态更新为迁移状态;
将所述待写入数据迁移至所述迁入节点;
在所述目标分区对应的第四写入数据从节点类型更新后的第一节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第四写入数据中。
在本申请的可选实施例中,所述预先确认的迁入节点为根据第二节点的第二内存占用数据确定的节点,所述第二节点为所述集群包括的节点中除所述第一节点外的节点。
在本申请的可选实施例中,所述第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种;或者,
所述第一内存占用量、所述第一内存占用率以及所述第一剩余内存量中的任一种,以及对所述第一节点进行请求访问的第一增长速度;
当所述第一内存占用数据包括第一内存占用量的情况下,所述预设内存占用条件包括:所述第一内存占用量大于等于预设占用量阈值;
当所述第一内存占用数据包括第一内存占用率的情况下,所述预设内存占用条件包括:所述第一内存占用率大于等于预设占用率阈值;
当所述第一内存占用数据包括第一剩余内存量的情况下,所述预设内存占用条件包括:所述第一剩余内存量小于等于预设剩余量阈值;
当所述第一内存占用数据包括第一增长速度的情况下,所述预设内存占用条件包括:所述第一增长速度大于等于预设速度阈值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图4为本申请实施例提供的一种服务器结构示意图,该服务器1700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器 (central processingunits,CPU)1722(例如,一个或一个以上处理器)和存储器1732,一个或一个以上存储应用程序1742或数据1744的存储介质1730 (例如一个或一个以上海量存储设备)。其中,存储器1732和存储介质1730 可以是短暂存储或持久存储。存储在存储介质1730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1722可以设置为与存储介质1730通信,在服务器 1700上执行存储介质1730中的一系列指令操作。
服务器1700还可以包括一个或一个以上电源1726,一个或一个以上有线或无线网络接口1750,一个或一个以上输入输出接口1758,和/或,一个或一个以上操作***1741,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
上述图2A实施例中由服务器所执行的步骤可以基于该图4所示的服务器结构。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置,服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据写入方法,其特征在于,包括:
获取集群包括的第一节点的第一内存占用数据;
在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;
获取所述目标分区的当前状态,以及所述第一节点的节点类型;
根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。
2.根据权利要求1所述的方法,其特征在于,在所述当前状态为迁移状态,且所述第一节点的节点类型为迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
将所述待写入数据迁移至所述迁入节点;
在所述目标分区对应的第一写入数据从所述迁出节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第一写入数据中。
3.根据权利要求1所述的方法,其特征在于,在所述当前状态为非迁移状态,且所述第一节点的节点类型为迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
确定所述迁出节点包括的第一迁移分区;
将所述第一迁移分区对应的第二写入数据从所述迁出节点迁移至所述迁入节点,并将所述待写入数据写入所述第二写入数据迁移之后的迁出节点。
4.根据权利要求1所述的方法,其特征在于,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
从所述第一节点分布的多个分区中,确定第二迁移分区;
将所述第一节点的节点类型更新为迁出节点;
若所述第二迁移分区与所述目标分区为不同分区,将所述第二迁移分区对应的第三写入数据从节点类型更新后的第一节点迁移至所述迁入节点;
将所述待写入数据写入所述第三写入数据迁移之后的第一节点。
5.根据权利要求1所述的方法,其特征在于,在所述当前状态为非迁移状态,且所述第一节点的节点类型为非迁出节点的情况下,所述根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作,包括:
从所述第一节点分布的多个分区中,确定第三迁移分区;
将所述第一节点的节点类型更新为迁出节点;
若所述第三迁移分区与所述目标分区为同一分区,将所述目标分区的当前状态更新为迁移状态;
将所述待写入数据迁移至所述迁入节点;
在所述目标分区对应的第四写入数据从节点类型更新后的第一节点迁移至所述迁入节点的情况下,将所述待写入数据写入所述迁入节点上的第四写入数据中。
6.根据权利要求1至5任一项所述的方法,其特征在于,
所述预先确认的迁入节点为根据第二节点的第二内存占用数据确定的节点,所述第二节点为所述集群包括的节点中除所述第一节点外的节点。
7.根据权利要求1至5任一项所述的方法,其特征在于,
所述第一内存占用数据包括:第一内存占用量、第一内存占用率以及第一剩余内存量中的任一种;或者,
所述第一内存占用量、所述第一内存占用率以及所述第一剩余内存量中的任一种,以及对所述第一节点进行请求访问的第一增长速度;
当所述第一内存占用数据包括第一内存占用量的情况下,所述预设内存占用条件包括:所述第一内存占用量大于等于预设占用量阈值;
当所述第一内存占用数据包括第一内存占用率的情况下,所述预设内存占用条件包括:所述第一内存占用率大于等于预设占用率阈值;
当所述第一内存占用数据包括第一剩余内存量的情况下,所述预设内存占用条件包括:所述第一剩余内存量小于等于预设剩余量阈值;
当所述第一内存占用数据包括第一增长速度的情况下,所述预设内存占用条件包括:所述第一增长速度大于等于预设速度阈值。
8.一种数据写入装置,其特征在于,包括:
获取模块,用于获取集群包括的第一节点的第一内存占用数据;
在根据所述第一内存占用数据确定所述第一节点满足预设内存占用条件,且检测到所述第一节点存在待写入数据的情况下,获取所述待写入数据在所述第一节点上所属的目标分区;以及,
获取所述目标分区的当前状态,以及所述第一节点的节点类型;
写入模块,用于根据所述当前状态、所述节点类型和预先确认的迁入节点,对所述待写入数据执行写入操作。
9.一种服务器,其特征在于,包括处理器和存储器,所述处理器和存储器耦合,所述存储器用于存储计算机程序指令,当所述处理器执行所述计算机程序指令时,使得服务器执行权利要求1至7中任一所述的数据写入方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有程序指令,当所述程序指令在服务器上运行时,使得服务器执行如权利要求1至7任一所述的数据写入方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337976.3A CN111580959B (zh) | 2020-04-26 | 2020-04-26 | 一种数据写入方法、数据写入装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010337976.3A CN111580959B (zh) | 2020-04-26 | 2020-04-26 | 一种数据写入方法、数据写入装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580959A true CN111580959A (zh) | 2020-08-25 |
CN111580959B CN111580959B (zh) | 2023-02-28 |
Family
ID=72111695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010337976.3A Active CN111580959B (zh) | 2020-04-26 | 2020-04-26 | 一种数据写入方法、数据写入装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580959B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256433A (zh) * | 2020-10-30 | 2021-01-22 | 上海哔哩哔哩科技有限公司 | 基于Kafka集群的分区迁移方法和装置 |
CN113778692A (zh) * | 2021-11-10 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置、计算机设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201133236A (en) * | 2010-03-17 | 2011-10-01 | Phison Electronics Corp | Data access method, memory controller, memory storage system |
CN103229487A (zh) * | 2012-12-27 | 2013-07-31 | 华为技术有限公司 | 分布式存储***中的分区平衡方法、装置及服务器 |
CN105049508A (zh) * | 2015-07-21 | 2015-11-11 | 齐鲁工业大学 | 一种云数据迁移方法 |
CN109408405A (zh) * | 2018-10-15 | 2019-03-01 | Oppo广东移动通信有限公司 | 内存页交换方法、装置、终端及存储介质 |
CN109918381A (zh) * | 2019-03-13 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN110019372A (zh) * | 2018-08-21 | 2019-07-16 | 平安科技(深圳)有限公司 | 数据监控方法、装置、服务器及存储介质 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
-
2020
- 2020-04-26 CN CN202010337976.3A patent/CN111580959B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201133236A (en) * | 2010-03-17 | 2011-10-01 | Phison Electronics Corp | Data access method, memory controller, memory storage system |
CN103229487A (zh) * | 2012-12-27 | 2013-07-31 | 华为技术有限公司 | 分布式存储***中的分区平衡方法、装置及服务器 |
CN105049508A (zh) * | 2015-07-21 | 2015-11-11 | 齐鲁工业大学 | 一种云数据迁移方法 |
CN110019372A (zh) * | 2018-08-21 | 2019-07-16 | 平安科技(深圳)有限公司 | 数据监控方法、装置、服务器及存储介质 |
CN109408405A (zh) * | 2018-10-15 | 2019-03-01 | Oppo广东移动通信有限公司 | 内存页交换方法、装置、终端及存储介质 |
CN109918381A (zh) * | 2019-03-13 | 2019-06-21 | 北京百度网讯科技有限公司 | 用于存储数据的方法和装置 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
FENGJUN SHANG 等: "Hotness-aware page partition management method", 《NEURAL COMPUTING AND APPLICATIONS》 * |
徐琼瑶: "分级存储中数据迁移机制的实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256433A (zh) * | 2020-10-30 | 2021-01-22 | 上海哔哩哔哩科技有限公司 | 基于Kafka集群的分区迁移方法和装置 |
CN112256433B (zh) * | 2020-10-30 | 2022-04-05 | 上海哔哩哔哩科技有限公司 | 基于Kafka集群的分区迁移方法和装置 |
CN113778692A (zh) * | 2021-11-10 | 2021-12-10 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置、计算机设备和存储介质 |
CN113778692B (zh) * | 2021-11-10 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 一种数据处理的方法及装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111580959B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780386B (zh) | 一种数据存储的方法、装置和*** | |
CN108132949B (zh) | 数据库集群中数据迁移的方法及装置 | |
CN112506659B (zh) | 一种边缘设备的管理方法以及相关装置 | |
CN110489059B (zh) | 数据集群存储的方法、装置及计算机设备 | |
CN110569233A (zh) | 一种热点数据的管理方法、装置及*** | |
US11573725B2 (en) | Object migration method, device, and system | |
WO2020042427A1 (zh) | 基于数据分片的对账方法、装置、计算机设备及存储介质 | |
CN111464355A (zh) | Kubernetes容器集群的伸缩容控制方法、装置和网络设备 | |
CN112100293A (zh) | 数据处理方法、数据访问方法、装置及计算机设备 | |
US10554737B2 (en) | Method and apparatus for leveling loads of distributed databases | |
CN111580959B (zh) | 一种数据写入方法、数据写入装置、服务器及存储介质 | |
CN110557304B (zh) | 一种地址探测方法、设备及计算机可读存储介质 | |
CN114285795B (zh) | 一种虚拟设备的状态控制方法、装置、设备及存储介质 | |
CN112256433B (zh) | 基于Kafka集群的分区迁移方法和装置 | |
CN109840051B (zh) | 一种存储***的数据存储方法及装置 | |
US20240160528A1 (en) | Data Storage Method and Apparatus in Storage System | |
CN108459926B (zh) | 数据异地备份方法、装置及计算机可读介质 | |
CN112631994A (zh) | 数据迁移方法及*** | |
US11301436B2 (en) | File storage method and storage apparatus | |
CN112491722A (zh) | 一种地址表维护方法、装置、设备 | |
CN114493602B (zh) | 区块链交易的执行方法、装置、电子设备和存储介质 | |
CN111901448B (zh) | 一种集群节点故障场景ctdb虚拟ip均衡分配方法 | |
US10241878B2 (en) | System and method of data allocation providing increased reliability of storage | |
CN110046040B (zh) | 分布式任务处理方法及***和存储介质 | |
CN113904953B (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 |