CN110413689B - 一种内存数据库的多节点数据同步方法与装置 - Google Patents
一种内存数据库的多节点数据同步方法与装置 Download PDFInfo
- Publication number
- CN110413689B CN110413689B CN201910580781.9A CN201910580781A CN110413689B CN 110413689 B CN110413689 B CN 110413689B CN 201910580781 A CN201910580781 A CN 201910580781A CN 110413689 B CN110413689 B CN 110413689B
- Authority
- CN
- China
- Prior art keywords
- copy buffer
- command
- file
- synchro
- store
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000001360 synchronised effect Effects 0.000 claims abstract description 96
- 230000004044 response Effects 0.000 claims abstract description 46
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (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
技术领域
本发明涉及计算机领域,更具体地,特别是指一种内存数据库的多节点数据同步方法与装置。
背景技术
随着网络技术飞速发展,数据呈现出大规模和高并发的特点,越来越多的互联网应用开始关注高并发读、低延时写、海量数据存储、高可扩展性、高可用性等新需求,而传统关系型数据库在面对这些情况时,已不能很好地满足其实时性,快速响应等需求。Redis作为一种基于键值对模型的高速缓存数据库,具有开源,网络化,基于内存,可进行数据持久化操作等特性,没有关系型数据库范式等特性约束,在很大程度上解决了关系型数据库所面临的问题。
但Redis存在复制缓冲区写满问题:为保证复制连接重新建立后,主从节点间能够执行部分同步,Redis的主节点使用复制缓冲区存放需传播到从节点的写命令。Redis使用的复制缓冲区是一个由主服务器维护的固定长度的先进先出对接,大小为1M,可调整固定长度的先进先出队列:出队、入队方式与普通先进先出队列一致,新元素由一边进入,旧元素由另一边弹出。复制缓冲区被写满后,队尾数据会覆盖队头数据。一旦复制缓冲区中存储的待同步数据被覆盖,主节点和从节点只能被迫执行一次完全同步。完全同步太过笨重,不仅占用CPU、消耗大量的内存空间,还会对系统性能产生极大影响。
针对现有技术中复制缓冲区溢出导致多节点失同步的问题,目前尚未有有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种内存数据库的多节点数据同步方法与装置,能够保护复制缓冲区内的数据不被覆盖,维持数据库内多节点之间的数据同步并且提高数据整体的同步效率。
基于上述目的,本发明实施例的第一方面提供了一种内存数据库的多节点数据同步方法,包括:
响应于收到同步命令,检测复制缓冲区和文件复制缓冲区的空间;
响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中;
响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中,并进一步将同步命令从文件复制缓冲区迁移到文件队列,将文件队列中的同步命令与磁盘中的待同步数据建立对应关系;
响应于复制缓冲区和文件复制缓冲区的空间均不足以存储同步命令,而等待文件复制缓冲区获得足以存储同步命令的空间。
在一些实施方式中,方法还包括:
响应于接收到执行同步命令的指示而执行以下步骤;
尝试从复制缓冲区直接读取并执行同步命令;
响应于同步命令未存储于复制缓冲区中,而尝试从文件复制缓冲区读取并执行同步命令;
响应于同步命令未存储于复制缓冲区或文件复制缓冲区中,而尝试从文件队列中取同步命令,并进一步根据对应关系而从磁盘中读取并同步待同步数据。
在一些实施方式中,复制缓冲区为由多个固定大小的内存块构成的内存队列;
在一些实施方式中,响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中包括:
将同步命令按照内存块的大小分段;
响应于复制缓冲区的空间足以存储同步命令,而将同步命令的一个未存储分段直接存储在复制缓冲区中。
在一些实施方式中,响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中包括:
响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令的一个未存储分段存储在文件复制缓冲区中。
在一些实施方式中,确定复制缓冲区的空间是否足以存储同步命令包括:
确定复制缓冲区当前使用率和预定阈值;
响应于复制缓冲区当前使用率未超过预定阈值而确定复制缓冲区的空间足以存储同步命令;
响应于复制缓冲区当前使用率超过预定阈值而确定复制缓冲区的空间不足以存储同步命令。
在一些实施方式中,待同步数据中包括文件头信息,待同步数据在磁盘中组织为链表形式。
在一些实施方式中,复制缓冲区、文件复制缓冲区、和文件队列均位于内存中;内存中还缓存有待同步数据的元数据。
在一些实施方式中,内存数据库为Redis。
本发明实施例的第二方面提供了一种内存数据库的多节点数据同步装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行如上所述的内存数据库的多节点数据同步方法。
本发明实施例的第三方面提供了一种内存数据库,包括多个节点,其中每个节点包括:
划分出复制缓冲区、文件复制缓冲区、和文件队列的内存;
存储有待同步数据的硬盘;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行上述的内存数据库的多节点数据同步方法。
本发明具有以下有益技术效果:本发明实施例提供的内存数据库的多节点数据同步方法与装置,通过响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中;响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中,并进一步将同步命令从文件复制缓冲区迁移到文件队列,将文件队列中的同步命令与磁盘中的待同步数据建立对应关系;响应于复制缓冲区和文件复制缓冲区的空间均不足以存储同步命令,而等待文件复制缓冲区获得足以存储同步命令的空间的技术方案,能够保护复制缓冲区内的数据不被覆盖,维持数据库内多节点之间的数据同步并且提高数据整体的同步效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的内存数据库的多节点数据同步方法的流程示意图;
图2为本发明提供的内存数据库的多节点数据同步方法的节点结构示意图;
图3为本发明提供的内存数据库的多节点数据同步方法的向复制缓冲区写入数据的详细流程图;
图4为本发明提供的内存数据库的多节点数据同步方法的从复制缓冲区读出数据的详细流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够保护复制缓冲区内的数据不被覆盖的多节点数据同步方法的一个实施例。图1示出的是本发明提供的内存数据库的多节点数据同步方法的流程示意图。
所述内存数据库的多节点数据同步方法,如图1所示,包括:
响应于收到同步命令,检测复制缓冲区和文件复制缓冲区的空间以执行以下步骤:
步骤S101:响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中;
步骤S103:响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中,并进一步将同步命令从文件复制缓冲区迁移到文件队列,将文件队列中的同步命令与磁盘中的待同步数据建立对应关系;
步骤S105:响应于复制缓冲区和文件复制缓冲区的空间均不足以存储同步命令,而等待文件复制缓冲区获得足以存储同步命令的空间。
在一些实施方式中,方法还包括:
响应于接收到执行同步命令的指示而执行以下步骤;
尝试从复制缓冲区直接读取并执行同步命令;
响应于同步命令未存储于复制缓冲区中,而尝试从文件复制缓冲区读取并执行同步命令;
响应于同步命令未存储于复制缓冲区或文件复制缓冲区中,而尝试从文件队列中取同步命令,并进一步根据对应关系而从磁盘中读取并同步待同步数据。
针对复制缓冲区写满问题,本发明实施例使用新复制缓冲区替换原有复制缓冲区以解决主节点因复制缓冲区同步数据丢失而进行完全同步的问题。在复制缓冲区写满后,将溢出数据同步到文件队列时客户端请求等待时间有必要被降低。为保证复制缓冲区的高可用性,有必要接触复制缓冲区与同步数据写入磁盘之间的关联,因此本发明实施例在复制缓冲区和文件队列间构建文件复制缓冲区。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,复制缓冲区为由多个固定大小的内存块构成的内存队列。大小固定的内存块可保证数据平滑地从内存队列过渡到文件队列中。
在一些实施方式中,响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中包括:
将同步命令按照内存块的大小分段;
响应于复制缓冲区的空间足以存储同步命令,而将同步命令的一个未存储分段直接存储在复制缓冲区中。
在一些实施方式中,响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中包括:
响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令的一个未存储分段存储在文件复制缓冲区中。
在一些实施方式中,确定复制缓冲区的空间是否足以存储同步命令包括:
确定复制缓冲区当前使用率和预定阈值;
响应于复制缓冲区当前使用率未超过预定阈值而确定复制缓冲区的空间足以存储同步命令;
响应于复制缓冲区当前使用率超过预定阈值而确定复制缓冲区的空间不足以存储同步命令。
在一些实施方式中,待同步数据中包括文件头信息,待同步数据在磁盘中组织为链表形式。
链表形式可以实现文件数据的随机访问和适应磁盘顺序写入需求。
在一些实施方式中,复制缓冲区、文件复制缓冲区、和文件队列均位于内存中;内存中还缓存有待同步数据的元数据。
内存的结构详见图2。复制缓冲区是基于内存的缓冲区,用于存储节点最近执行的写请求数据。复制缓冲区写满后,溢出数据最终保存到文件队列中。文件队列是基于磁盘文件实现的队列,用于存放溢出数据。文件复制缓冲区用于临时存储复制缓冲区溢出数据,以内存块为单位将存储的数据发送到文件队列中。
元数据(Metadata),又称中介数据、中继数据,是描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。这可以减少磁盘IO访问次数,避免每次访问文件块都先读取文件头信息。
在一些实施方式中,内存数据库为Redis。
根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据图3和图4所示的具体实施例进一步阐述本发明的详细实施方式。
参考图3,当有新数据需要写入新复制缓冲区时,首先尝试能否立刻将数据写入复制缓冲区。在将新数据写入复制缓冲区前,还需判断当前内存块剩余容量是否足够。如果不够,则表示待写入数据跨越不止一个内存块。当前内存块写满后,将复制缓冲区中下一个内存块作为当前内存块。每写满一个内存块,就判断复制缓冲区中内存块的使用是否超过设定的阈值。
为提高复制缓冲区中数据写入文件队列的效率,本发明引入复制缓冲区使用率参数。当复制缓冲区使用率超过设定阈值,则将缓冲区中超出阈值的数据(下称溢出数据)写入文件复制缓冲区。阈值是决定复制缓冲区使用效率的关键。如果阈值设置过低,复制缓冲区大部分空间将被浪费;如果阈值设置过高,则会导致新数据写入复制缓冲区时存储空间不够,需要阻塞等待溢出数据写入文件复制缓冲区,降低性能。
如果复制缓冲区内存块使用率未超过设定阈值,则直接将数据写入当前内存块。否则,尝试先将溢出数据写入到文件复制缓冲区,然后再由文件复制缓冲区将该数据发送到文件队列。如果文件复制缓冲区空间足够,则可直接将复制缓冲区中溢出数据同步到文件复制缓冲区中。如果文件复制缓冲区空间不足,说明文件复制缓冲区仍有大量需要同步到文件队列的数据。为避免数据丢失,此时复制缓冲区只能阻塞等待。合理设置文件复制缓冲区大小,可以有效减少复制缓冲区在上述情景的阻塞等待,从而提高性能。
参考图4,当需要从新复制缓冲区中读取数据时,首先尝试从复制缓冲区中读取待同步数据。如果复制缓冲区包含所需读取数据,则直接从复制缓冲区读取该部分数据。如果该数据不存在复制缓冲区中,则尝试从文件复制缓冲区中读取缺失数据。如果文件复制缓冲区包含所缺失数据,则直接从文件复制缓冲区读取所需数据。如果文件复制缓冲区中未存储待同步数据,则从文件队列中读取缺失数据。
从上述实施例可以看出,本发明实施例提供的内存数据库的多节点数据同步方法,通过响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中;响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中,并进一步将同步命令从文件复制缓冲区迁移到文件队列,将文件队列中的同步命令与磁盘中的待同步数据建立对应关系;响应于复制缓冲区和文件复制缓冲区的空间均不足以存储同步命令,而等待文件复制缓冲区获得足以存储同步命令的空间的技术方案,能够保护复制缓冲区内的数据不被覆盖,维持数据库内多节点之间的数据同步并且提高数据整体的同步效率。
需要特别指出的是,上述内存数据库的多节点数据同步方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于内存数据库的多节点数据同步方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够保护复制缓冲区内的数据不被覆盖的多节点数据同步装置的一个实施例。内存数据库的多节点数据同步装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行如上所述的内存数据库的多节点数据同步方法。
结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
基于上述目的,本发明实施例的第三个方面,提出了一种能够保护复制缓冲区内的数据不被覆盖的内存数据库的一个实施例。内存数据库包括多个节点,其中每个节点包括:
划分出复制缓冲区、文件复制缓冲区、和文件队列的内存;
存储有待同步数据的硬盘;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行上述的内存数据库的多节点数据同步方法。
从上述实施例可以看出,本发明实施例提供的内存数据库的多节点数据同步装置和内存数据库,通过响应于复制缓冲区的空间足以存储同步命令,而将同步命令直接存储在复制缓冲区中;响应于复制缓冲区的空间不足以存储同步命令、但文件复制缓冲区的空间足以存储同步命令,而将同步命令存储在文件复制缓冲区中,并进一步将同步命令从文件复制缓冲区迁移到文件队列,将文件队列中的同步命令与磁盘中的待同步数据建立对应关系;响应于复制缓冲区和文件复制缓冲区的空间均不足以存储同步命令,而等待文件复制缓冲区获得足以存储同步命令的空间的技术方案,能够保护复制缓冲区内的数据不被覆盖,维持数据库内多节点之间的数据同步并且提高数据整体的同步效率。
需要特别指出的是,上述内存数据库的多节点数据同步装置和内存数据库的实施例采用了所述内存数据库的多节点数据同步方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述内存数据库的多节点数据同步方法的其他实施例中。当然,由于所述内存数据库的多节点数据同步方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述内存数据库的多节点数据同步装置和内存数据库也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种内存数据库的多节点数据同步方法,其特征在于,包括:
响应于收到同步命令,检测复制缓冲区和文件复制缓冲区的空间;
响应于复制缓冲区的空间足以存储所述同步命令,而将所述同步命令直接存储在所述复制缓冲区中;
响应于所述复制缓冲区的空间不足以存储所述同步命令、但文件复制缓冲区的空间足以存储所述同步命令,而将所述同步命令存储在所述文件复制缓冲区中,并进一步将所述同步命令从所述文件复制缓冲区迁移到文件队列,将所述文件队列中的所述同步命令与磁盘中的待同步数据建立对应关系;
响应于所述复制缓冲区和所述文件复制缓冲区的空间均不足以存储所述同步命令,等待所述文件复制缓冲区获得足以存储所述同步命令的空间。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于接收到执行所述同步命令的指示而执行以下步骤;
尝试从所述复制缓冲区直接读取并执行所述同步命令;
响应于所述同步命令未存储于所述复制缓冲区中,而尝试从所述文件复制缓冲区读取并执行所述同步命令;
响应于所述同步命令未存储于所述复制缓冲区或所述文件复制缓冲区中,而尝试从所述文件队列中取所述同步命令,并进一步根据所述对应关系而从所述磁盘中读取并同步所述待同步数据。
3.根据权利要求2所述的方法,其特征在于,所述复制缓冲区为由多个固定大小的内存块构成的内存队列;
响应于所述复制缓冲区的空间足以存储所述同步命令,而将所述同步命令直接存储在所述复制缓冲区中包括:
将所述同步命令按照所述内存块的大小分段;
响应于所述复制缓冲区的空间足以存储所述同步命令,而将所述同步命令的一个未存储分段直接存储在所述复制缓冲区中。
4.根据权利要求3所述的方法,其特征在于,响应于所述复制缓冲区的空间不足以存储所述同步命令、但所述文件复制缓冲区的空间足以存储所述同步命令,而将所述同步命令存储在所述文件复制缓冲区中包括:
响应于所述复制缓冲区的空间不足以存储所述同步命令、但所述文件复制缓冲区的空间足以存储所述同步命令,而将所述同步命令的一个未存储分段存储在所述文件复制缓冲区中。
5.根据权利要求3或4所述的方法,其特征在于,确定所述复制缓冲区的空间是否足以存储所述同步命令包括:
确定复制缓冲区当前使用率和预定阈值;
响应于所述复制缓冲区当前使用率未超过所述预定阈值而确定所述复制缓冲区的空间足以存储所述同步命令;
响应于所述复制缓冲区当前使用率超过所述预定阈值而确定所述复制缓冲区的空间不足以存储所述同步命令。
6.根据权利要求1所述的方法,其特征在于,所述待同步数据中包括文件头信息,所述待同步数据在所述磁盘中组织为链表形式。
7.根据权利要求1所述的方法,其特征在于,所述复制缓冲区、所述文件复制缓冲区、和所述文件队列均位于内存中;所述内存中还缓存有所述待同步数据的元数据。
8.根据权利要求1所述的方法,其特征在于,所述内存数据库为Redis。
9.一种内存数据库的多节点数据同步装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行如权利要求1-8中任意一项所述的内存数据库的多节点数据同步方法。
10.一种内存数据库,其特征在于,包括多个节点,其中每个节点包括:
划分出复制缓冲区、文件复制缓冲区、和文件队列的内存;
存储有待同步数据的硬盘;
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行如权利要求1-8中任意一项所述的内存数据库的多节点数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580781.9A CN110413689B (zh) | 2019-06-29 | 2019-06-29 | 一种内存数据库的多节点数据同步方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580781.9A CN110413689B (zh) | 2019-06-29 | 2019-06-29 | 一种内存数据库的多节点数据同步方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413689A CN110413689A (zh) | 2019-11-05 |
CN110413689B true CN110413689B (zh) | 2022-04-26 |
Family
ID=68359992
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910580781.9A Active CN110413689B (zh) | 2019-06-29 | 2019-06-29 | 一种内存数据库的多节点数据同步方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413689B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559052B (zh) * | 2020-12-15 | 2022-11-25 | 类人思维(山东)智慧科技有限公司 | 一种指令集调用方法、装置、终端及存储介质 |
CN112698789B (zh) * | 2020-12-29 | 2022-03-15 | 广州鼎甲计算机科技有限公司 | 数据缓存方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725186A (zh) * | 2004-07-23 | 2006-01-25 | 中兴通讯股份有限公司 | 一种多数据库数据同步方法 |
CN101030449A (zh) * | 2006-03-03 | 2007-09-05 | 华邦电子股份有限公司 | 闪存数据存取控制器与方法 |
CN103377100A (zh) * | 2012-04-26 | 2013-10-30 | 华为技术有限公司 | 一种数据备份方法、网络节点及系统 |
CN109669960A (zh) * | 2018-12-25 | 2019-04-23 | 钛马信息网络技术有限公司 | 在微服务中通过多级缓存避免缓存雪崩的系统及方法 |
CN109905457A (zh) * | 2019-01-09 | 2019-06-18 | 广州视源电子科技股份有限公司 | 主从服务器数据同步方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108228481A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于保证数据一致性的方法和设备 |
-
2019
- 2019-06-29 CN CN201910580781.9A patent/CN110413689B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1725186A (zh) * | 2004-07-23 | 2006-01-25 | 中兴通讯股份有限公司 | 一种多数据库数据同步方法 |
CN101030449A (zh) * | 2006-03-03 | 2007-09-05 | 华邦电子股份有限公司 | 闪存数据存取控制器与方法 |
CN103377100A (zh) * | 2012-04-26 | 2013-10-30 | 华为技术有限公司 | 一种数据备份方法、网络节点及系统 |
CN109669960A (zh) * | 2018-12-25 | 2019-04-23 | 钛马信息网络技术有限公司 | 在微服务中通过多级缓存避免缓存雪崩的系统及方法 |
CN109905457A (zh) * | 2019-01-09 | 2019-06-18 | 广州视源电子科技股份有限公司 | 主从服务器数据同步方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
redis全量复制与部分复制;溪水静幽;《博客园》;20190622;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110413689A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110113420B (zh) | 基于nvm的分布式消息队列管理系统 | |
US10599637B2 (en) | Granular buffering of metadata changes for journaling file systems | |
CN108319654B (zh) | 计算系统、冷热数据分离方法及装置、计算机可读存储介质 | |
US8799213B2 (en) | Combining capture and apply in a distributed information sharing system | |
US7783601B2 (en) | Replicating and sharing data between heterogeneous data systems | |
WO2021062981A1 (zh) | Ssd数据存储节点管理方法、装置及计算机设备 | |
EP2541423B1 (en) | Replacement policy for resource container | |
US20190384775A1 (en) | Active Transaction List Synchronization Method and Apparatus | |
CN111124270B (zh) | 缓存管理的方法、设备和计算机程序产品 | |
CN111881116A (zh) | 数据迁移方法、数据迁移系统、计算机系统和存储介质 | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
CN113031864B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN110413689B (zh) | 一种内存数据库的多节点数据同步方法与装置 | |
JPWO2008139521A1 (ja) | リモートファイルシステム、端末装置およびサーバ装置 | |
CN114706836A (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
CN116755635B (zh) | 一种硬盘控制器缓存系统、方法、硬盘设备及电子设备 | |
CN112463073A (zh) | 一种对象存储分布式配额方法、系统、设备和存储介质 | |
CN111221642B (zh) | 一种数据处理方法、装置、存储介质及终端 | |
JPH07239808A (ja) | 分散データ管理方式 | |
CN111459402A (zh) | 磁盘可控缓冲写方法、控制器、混合io调度方法及调度器 | |
CN107832121B (zh) | 一种应用于分布式串行长事务的并发控制方法 | |
CN113051244B (zh) | 数据访问方法和装置、数据获取方法和装置 | |
CN112650694B (zh) | 一种数据读取方法、装置、缓存代理服务器及存储介质 | |
CN110196881B (zh) | 一种基于区块链的数据读写方法及区块链网络结构 | |
CN111625514B (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 |