CN103870570B - 一种基于远程日志备份的 HBase 数据可用性及持久性的方法 - Google Patents

一种基于远程日志备份的 HBase 数据可用性及持久性的方法 Download PDF

Info

Publication number
CN103870570B
CN103870570B CN201410095611.9A CN201410095611A CN103870570B CN 103870570 B CN103870570 B CN 103870570B CN 201410095611 A CN201410095611 A CN 201410095611A CN 103870570 B CN103870570 B CN 103870570B
Authority
CN
China
Prior art keywords
node
hbase
data
backup
persistence
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
CN201410095611.9A
Other languages
English (en)
Other versions
CN103870570A (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.)
Shanghai Axiomtek cloud computing Ltd
Original Assignee
Shanghai Axiomtek Cloud Computing 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 Shanghai Axiomtek Cloud Computing Ltd filed Critical Shanghai Axiomtek Cloud Computing Ltd
Priority to CN201410095611.9A priority Critical patent/CN103870570B/zh
Publication of CN103870570A publication Critical patent/CN103870570A/zh
Application granted granted Critical
Publication of CN103870570B publication Critical patent/CN103870570B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于远程日志备份的HBase数据可用性及持久性的方法,HBase的数据节点写入时,首先通过分布式系统封装日志记录,并通过网络把日志备份到预先指定的远程节点,保证数据的可用性和持久性,并以此为基础,把大量用户数据和日志记录暂存在内存中,减少数据处理过程中的数据持久化进程;当HBase的数据节点处于空闲的时候,主动把内存中的数据持久化到文件系统,减轻内存存储压力,减少写操作过程中发生持久化进程的频率,提高数据写入的时间性能。这种基于远程日志备份的HBase数据可用性及持久性的方法保证了数据的可用性、持久性,大大提高数据写入速度、提高系统性能。

Description

一种基于远程日志备份的HBase数据可用性及持久性的方法
技术领域
本发明涉及一种基于远程日志备份的非关系型数据库数据可用性和持久性的解决方案,尤其涉及一种基于远程日志备份的HBase数据可用性及持久性的方法。
背景技术
非关系型数据库是指有别于传统的关系型数据库的一种新型数据库,在海量数据存储、高并发访问支持等方面表现出很好的性能。HBase,也就是Hadoop Database,是一种基于列存储的非关系型数据库。HBase是Apache Hadoop的子项目,在Hadoop架构中处于结构化存储层:下层需要=依托分布式文件系统HDFS;为上层的MapReduce计算模块提供高性能、高可靠、高可扩展性、基于列存储的分布式存储系统。HBase可以存储结构化数据,也可以存储半结构化或者非结构化的数据。此外,HBase中表会被分割为子表,即HRegion;MemStore为HRegion所拥有的实例;WALEdit主体为KeyValue的List,记录了系统的日志信息;applyFamilyMapToMemstore方法为数据写入内存Memstore的方法;WALEdit类主体为KeyValue的List,记录了系统的日志信息;addFamilyMapToWALEdit方法为构造数据并写入WALEdit的方法;append方法为添加信息的方法;startRLP方法为将日志数据通过备份进程接口备份到远程节点的方法。
当前HBase采用数据持久化保证数据持久性和基本可用性,并用预写日志机制进一步保证数据可用性。虽然这套可用性、持久性解决方案能够保证数据持久性和基本可用性,但是其在数据处理过程中引入大量的持久化进程,这些持久化进程是磁盘写操作,会大大降低了系统写操作的时间性能和用户体验。所以更加高效的可用性、持久性方案非常需要关注。
发明内容
本发明所要解决的技术问题是,提供一种能够提高写操作的时间性能的基于远程日志备份的HBase数据可用性及持久性的方法。
为了解决上述技术问题,本发明是通过以下技术方案实现的:
一种基于远程日志备份的HBase数据可用性及持久性的方法,HBase的数据节点写入时,首先把数据暂存在内存中,通过分布式系统封装日志记录,并通过网络把日志备份到预先指定的远程节点,保证数据的可用性和持久性,并以此为基础,把大量用户数据和日志记录暂存在内存中,减少数据处理过程中的数据持久化进程;当HBase的数据节点处于空闲状态的时候,主动把内存中暂存的数据持久化到文件系统,减轻内存存储压力,减少写操作过程中发生持久化进程的频率,提高数据写入的时间性能。
优选的,所述HBase的数据节点写入并备份包括以下流程:
a、HBase的数据节点启动,并且初始化远程日志备份进程,即启动远程日志备份服务,作为集群中某个或多个节点远程备份日志的目标节点;同时获取当前节点备份日志的目标节点或节点群的IP,作为整个HBase的数据节点上所有HRegion发起远程日志备份时共享的变量;
b、当HRegion调用写操作处理过程时,把用户数据写入内存存储单元,然后构造日志记录WAL写入本地节点内存,不发起不等待日志持久化进程;而是把WAL及相关信息发送到远程备份节点,并等待备份节点发来的写入确认;
c、当HBase的数据节点接收到集群中某个节点发来的WAL时,把它写入本地日志文件,立即返回写入确认,日志同步进程稍后会把日志及时写入文件系统;
d、如果HRegion的写操作进程在规定时间内收到超过一半的目标节点返回的写确认就认为远程日志备份成功,并返回写操作成功;否则认为备份失败,并返回写操作失败。
优选的,所述步骤b和步骤d中HRegion的写操作包括以下步骤:
1、首先尝试获取需要的锁;
2、检查HRegion和HBase的数据节点状态,此时检查是否需要持久化;
3、更新时间戳;
4、数据写入内存MemStore,即执行applyFamilyMapToMemstore方法;
5、随后构造并写WALEdit,执行addFamilyMapToWALEdit方法;
6、通过append方法把WAL日志写入本地日志系统,但不会持久化;
7、构造远程日志备份数据,调用startRLP方法把日志数据通过备份进程接口备份到远程节点;如果返回true则写操作执行成功,否则执行失败,且无论成功与否都要释放行锁定。
优选的,所述日志备份过程中传输的数据包括日志数据单元、确认数据及日志同步通知。
优选的,所述HBase的数据节点包括空存储状态、存储状态、预备持久化状态和持久化状态四种状态;所述HBase的数据节点处于空存储状态时,如果接收到的是读操作请求,HBase的数据节点承载的MemStore中没有写入数据、还是空置的,所以HBase的数据节点仍然处在空存储状态;当HBase的数据节点处于空存储状态时,如果HBase的数据节点接收到写操作请求,就会有用户数据写入某个或某几个MemStore,此时HBase的数据节点转入存储状态,若处于存储状态的HBase的数据节点没有任何的操作正在进行,也没有任何的请求需要响应,则进入预备持久化状态;如果HBase的数据节点处于预备持久化状态,则会判断当前待持久化队列是否为空,如果待持久化队列为空,则直接转入空存储状态,如果队列不为空则启动等待计时器,如果等待计时器时间到达,节点仍然没有正在运行的任务或者没有收到任何操作请求,节点会启动持久化进程,把日志写入文件系统,当前的HBase的数据节点进入持久化状态;当处于预备持久化状态的HBase的数据节点在等待计时的过程中,如果有读写请求或者节点需要运行其他任务,则立即停止等待计时,节点终止预备持久化状态、重新进入存储状态;而处于持久化状态的HBase的数据节点不会被中断,直至完成了一个持久化过程,比如把日志文件或者某个HRegion的MemStore数据全部写入了文件系统,则重新转入预备持久化状态。
与现有技术相比,本发明的有益之处在于:这种基于远程日志备份的HBase数据可用性及持久性的方法通过节点间日志备份,保证了数据的可用性、持久性,通过把数据暂存在内存中、减少数据处理过程中的持久化频率,可以大大提高数据写入速度、提高系统性能,同时能够改善数据写入时间对MemStore大小的敏感度;通过节点空闲时主动把内存数据持久化到文件系统,减轻内存压力,减少数据写入过程中的持久化频率,提高系统写操作的时间性能。
附图说明
下面结合附图对本发明进一步说明。
图1是基于远程日志备份的HBase数据可用性及持久性的方法示意图;
图2是基于远程日志备份的HBase数据可用性及持久性的方法中的数据写入过程流程图;
图3是基于远程日志备份的HBase数据可用性及持久性的方法中日志备份的节点通信示意图;
图4是基于远程日志备份的HBase数据可用性及持久性的方法中节点状态和状态转换示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细描述。
如图1所示一种基于远程日志备份的HBase数据可用性及持久性的方法,HBase的数据节点写入时,首先通过分布式系统封装日志记录,并通过网络把日志备份到预先指定的远程节点,保证数据的可用性和持久性,并以此为基础,把大量用户数据和日志记录暂存在内存中,减少数据处理过程中的数据持久化进程;当HBase的数据节点处于空闲的时候,主动把内存中的数据持久化到文件系统,减轻内存存储压力,减少写操作过程中发生持久化进程的频率,提高数据写入的时间性能。所述HBase的数据节点处理分为两个阶段;第一阶段时,HBase的数据节点把数据暂存在内存中,并封装日志记录备份到远程节点;第二阶段时,HBase的数据节点处于空闲状态时,主动把内存中的暂存的数据持久化到文件系统。
所述HBase的数据节点写入并备份包括以下流程:
a、HBase的数据节点启动,并且初始化远程日志备份进程,即启动远程日志备份服务,作为集群中某个或多个节点远程备份日志的目标节点;同时获取当前节点备份日志的目标节点或节点群的IP,作为整个HBase的数据节点上所有HRegion发起远程日志备份时共享的变量;
b、当HRegion调用写操作处理过程时,把用户数据写入内存存储单元,然后构造日志记录WAL写入本地节点内存,不发起不等待日志持久化进程;而是把WAL及相关信息发送到远程备份节点,并等待备份节点发来的写入确认;
c、当HBase的数据节点接收到集群中某个节点发来的WAL时,把它写入本地日志文件,立即返回写入确认,日志同步进程稍后会把日志及时写入文件系统;
d、如果HRegion的写操作进程在规定时间内收到超过一半的目标节点返回的写确认就认为远程日志备份成功,并返回写操作成功;否则认为备份失败,并返回写操作失败。
如图2所示,所述HRegion的写操作包括以下步骤:
1、首先尝试获取需要的锁;
2、检查HRegion和HBase的数据节点状态,此时检查是否需要持久化;
3、更新时间戳;
4、数据写入内存MemStore,即执行applyFamilyMapToMemstore方法;
5、随后构造并写WALEdit,执行addFamilyMapToWALEdit方法;
6、通过append方法把WAL日志写入本地日志系统,但不会持久化;
7、构造远程日志备份数据,调用startRLP方法把日志数据通过备份进程接口备份到远程节点;如果返回true则写操作执行成功,否则执行失败,且无论成功与否都要释放行锁定。
结合本发明所构筑的平台体系结构来看,在日志备份过程中需要设计一个轻型的客户端,所述客户端程序需要完成如下功能:
一、封装并备份日志记录及相关信息。HBase节点处理写操作请求的过程中,需要封装日志记录及相关信息,包括日志记录WAL,数据表信息、HRegion信息、集群信息等。随后HBase节点需要通过网络程序接口把封装好的日志数据立即备份到预先指定的远程节点。远程备份节点有系统预先分配,通常这些远程备份节点不止一个。
二、等待远程备份节点返回的确认信息。备份节点接收到日志数据后会为源节点构造并返回一个确认信息。所以HBase客户端节点还需要等待来自远程备份节点的确认信息,并根据确认信息的状态判断写操作的最终状态:至少要有一半以上的节点备份成功才能认为写操作是成功的,否则写操作返回失败。
三、发送同步信息到远程备份节点。当HBase节点发起了持久化进程,其部分日志数据就可以删除,所以节点需要以客户端的身份把持久化信息告知自己的备份节点。
所述服务器端程序需要完成如下功能:
一、存储远程节点备份的日志记录。服务端接收远程节点发送过来的日志数据,并把它们写入本地日志系统,随后立即向源节点返回确认信息:告知源节点是否成功接收了备份的日志数据。写入日志记录的时候需要表信息、HRegion信息等数据,所以接收到的日志数据必须包括这些信息。
二、响应远程节点的同步信息。向客户端软件分发密钥及哈希函数:服务器端为每位客户生成2个哈希函数及2个主密钥,发送给客户端服务程序。
三、响应远程节点的日志读取操作。HBase的备份节点要有效的响应远程节点的日志读取请求:即把本节点为指定表和HRegion保存的日志记录按照给定的序列数要求读出并通过网络接口返回给源节点。
当上述客户端与服务器端进行通信时,在基于远程日志备份的数据可用性、持久性方案中,日志备份时的节点通信通过网络传输方式实现。
所述日志备份过程中传输的数据主要包括:
1、日志数据单元(Log Data Unit)。日志数据单元是包含了HBase预写日志WAL信息的数据,是远程备份过程中由客户端封装并发往远程节点保存的日志数据。它的数据包括数据帧序号、日志记录、表的名称、HRegion信息等。具体描述如下:
数据帧序号ID:也是该日志数据的唯一标识符,用于客户端和服务端通信时进行数据帧的确认;
日志记录单元:记录了HBase日志信息WALEdit,WALEdit封装了一个KeyValue键值对列表,里面记录了系统的日志信息,是日志数据单元的核心数据;
表的名称:被操作的数据表名称,是一个字节数组;
HRegion信息:是HRegionInfo的一个对象,描述了被操作HRegion的信息,包括Region名称、Region的ID、Region的起始和结束键值、是否离线等信息;
集群ID:ClusterId;
isDeferredLog:布尔型变量,表示日志是否是延迟日志;
时间信息now:当前毫秒数,为了保证数据的一直,时间信息在客户端发起RLP过程的时候写入。
2、确认数据(ACK)。确认数据ACK用于远程备份过程中的服务端向客户端确认已经收到发来的日志数据。当服务端接收了来自源节点的日志数据后,会在写入日志系统后直接构造并发送一个确认数据:数据类型即确认帧ACK,然后把源节点日志数据中数据帧序号取出作为确认数据帧的序号,随后发回源节点。确认数据帧的结构很简单,包括一个类型标识符、一个数据帧序号和一个成功与否的标识:
数据帧序号ID:告诉源节点确认的具体对象,从接收到的日志数据单元中直接取出。
isSucc:布尔型变量,接收到的日志记录是否成功写入内存。
3、日志同步通知(Log Sync Notification)。日志同步通知是节点执行持久化进程后主动的构造并发送给远程备份节点的同志信息,告知备份节点序列数小于给定值的日志记录都可以弃置。其数据字段如下:
序列数:与已经持久化数据相关的最大日志记录序列数。
HRegion名称:执行持久化进程的HRegion名称,用字节数组表示。
表名称:执行持久化进程的表的名称,用字节数组表示。
isMetaRegion:布尔类型变量,标识是否是元数据Region。
如图3所示,所述客户端和服务端的通信过程主要分为两种,远程备份日志和日志持久化同步通知,具体地:
所述远程备份日志,即处理写操作的过程中,客户端把日志记录封装成日志数据单元(LDU)并备份到预先指定的远程节点;服务端接收到日志数据单元后会把具体数据取出,写入本地日志文件;随后服务端构造确认数据ACK返回给客户端节点。
所述日志持久化同步通知,即节点成功执行一次持久化进程后,日志中的相关记录就可以考虑清理,所以此时节点需要以客户端的身份构造日志同步通知(LSN)告知远程备份节点相关的持久化信息;远程节点接收到日志同步通知后取出其中的序列数,并把持久化信息写入本地日志文件。
这种基于远程日志备份的HBase数据可用性及持久性的方法其节点处于空闲状态时,会主动发起节点日志和数据的持久化进程,减轻节点内存存储压力,减少写操作过程中因为内存压力执行持久化进程的频率。
如图4所示,所述HBase的数据节点分为空存储状态、存储状态、预备持久化状态和持久化状态;具体的:
所述空存储状态即节点承载的所有HRegion包含的MemStore都是空的,内存里面没有任何用户数据需要持久化。
所述存储状态即节点承载的HRegion中有部分或者全部的MemStore存储有用户数据,与空存储状态的区别就是节点的MemStore是否存储有数据。节点处于存储状态时,节点需要持久化但是当前有任务需要运行所以不应该执行持久化进程。
所述预备持久化状态即存储状态的节点,如果没有任务正在进行或者需要被调度运行,那么节点进入预备持久化状态:首先节点承载的HRegion中有数据是存储在内存中的,其次当前节点没有任何的任务在运行或者需要运行。
所述持久化状态即持久化状态下的节点正在进行日志文件或者用户数据持久化。此时是数据库写文件系统的时候,不可以被打断直到一次持久化进程完全结束。
所述HBase的数据节点之间空存储状态、存储状态、预备持久化状态和持久化状态的转换如下:
处于空存储状态的节点如果接收到的是读操作请求,节点承载的MemStore中没有写入数据、还是空置的,所以节点仍然处在空存储状态。
处于空存储状态的节点如果接收到写操作请求,就会有用户数据写入某个或某几个MemStore,此时节点转入存储状态。
处于存储状态的节点如果没有任何的操作正在进行,也没有任何的请求需要响应,则进入预备持久化状态。
处于预备持久化状态的节点,会判断当前待持久化队列是否为空。如果待持久化队列为空,则直接转入空存储状态。如果队列不为空则启动等待计时器。如果等待计时器时间到达,节点仍然没有正在运行的任务或者没有收到任何操作请求,节点会启动持久化进程,把日志写入文件系统,当前的HRegionServer节点进入持久化状态。
处于预备持久化状态的节点在等待计时的过程中,如果有读写请求或者节点需要运行其他任务,则立即停止等待计时,节点终止预备持久化状态、重新进入存储状态。
处于持久化状态的节点不会被中断,直至完成了一个持久化过程,比如把日志文件或者某个HRegion的MemStore数据全部写入了文件系统,则重新转入预备持久化状态。
HBase的数据节点在不同状态下执行的具体流程描述如下:
1、HBase的数据节点正常启动后,启动属于当前节点的持久化线程Flusher,并把节点状态设置为空存储状态,随后开始侦听当前节点是否处于空闲状态,进入步骤2;
2、等待并处理操作请求,如果HBase的数据节点收到写操作请求后,转入步骤4;如果收到的是读操作请求,则转入步骤3;
3、把节点状态置为忙,响应读操作请求,保持节点原有状态不变;如果原来状态为空存储状态,则转入步骤2;如果原来状态为预备持久化状态,则进入步骤5;
4、把节点状态置为忙;随后处理写操作流程;写操作结束后节点状态变成存储状态,如果没有读写请求,则开启一个新的空闲写过程,进入步骤5;如果还有读写操作请求,执行步骤2;
5、进入预备持久化状态,如果当前待持久化队列为空,进入步骤2;否则启动等待计时器,并继续侦听等待读写操作请求:如果有接收到读写操作请求,重置Flusher线程包含的所有状态为初始值,结束当前的空闲写过程,执行步骤2;如果计时器已经到时仍然没有操作请求和正在运行的任务,则继续进行当前空闲写过程,重新执行步骤6。
6、进入持久化状态,执行持久化进程。根据Flusher线程当前状态,决定需要写文件系统的对象:如果当前是一个新的空闲写过程,则把日志文件持久化;如果正在继续运行一个原有的空闲写过程,则选择一个HRegion把其内存中的数据持久化到文件系统。持久化进程结束后,进入步骤5。
根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对本发明的一些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何限制。

Claims (4)

1.一种基于远程日志备份的HBase数据可用性及持久性的方法,其特征在于:HBase的数据节点写入时,首先把数据暂存在内存中,通过分布式系统封装日志记录,并通过网络把日志备份到预先指定的远程节点;当HBase的数据节点处于空闲状态时,主动把内存中暂存的中的数据持久化到文件系统;
所述HBase的数据节点包括空存储状态、存储状态、预备持久化状态和持久化状态四种状态;所述HBase的数据节点处于空存储状态时,如果接收到的是读操作请求,HBase的数据节点承载的MemStore中没有写入数据、还是空置的,所以HBase的数据节点仍然处在空存储状态;当HBase的数据节点处于空存储状态时,如果HBase的数据节点接收到写操作请求,就会有用户数据写入某个或某几个MemStore,此时HBase的数据节点转入存储状态,若处于存储状态的HBase的数据节点没有任何的操作正在进行,也没有任何的请求需要响应,则进入预备持久化状态;如果HBase的数据节点处于预备持久化状态,则会判断当前待持久化队列是否为空,如果待持久化队列为空,则直接转入空存储状态,如果队列不为空则启动等待计时器,如果等待计时器时间到达,节点仍然没有正在运行的任务或者没有收到任何操作请求,节点会启动持久化进程,把日志写入文件系统,当前的HBase的数据节点进入持久化状态;当处于预备持久化状态的HBase的数据节点在等待计时的过程中,如果有读写请求或者节点需要运行其他任务,则立即停止等待计时,节点终止预备持久化状态、重新进入存储状态;而处于持久化状态的HBase的数据节点不会被中断,直至完成了一个持久化过程,把日志文件或者某个HRegion的MemStore数据全部写入了文件系统,则重新转入预备持久化状态;
在日志备份过程中需要设计一个轻型的客户端,所述客户端具有如下功能:
一、封装并备份日志记录及相关信息:HBase节点处理写操作请求的过程中,需要封装日志记录及相关信息,包括日志记录WAL,数据表信息、HRegion信息和集群信息,随后HBase节点需要通过网络程序接口把封装好的日志数据立即备份到预先指定的远程节点;
二、等待远程备份节点返回的确认信息:备份节点接收到日志数据后会为源节点构造并返回一个确认信息,所以HBase客户端节点还需要等待来自远程备份节点的确认信息,并根据确认信息的状态判断写操作的最终状态:至少要有一半以上的节点备份成功才能认为写操作是成功的,否则写操作返回失败;
三、发送同步信息到远程备份节点:当HBase节点发起了持久化进程,其部分日志数据就可以删除,所以节点需要以客户端的身份把持久化信息告知自己的备份节点;
所述客户端与服务器端通信连接,所述服务器端具有如下功能:
(1)、存储远程节点备份的日志记录:服务端接收远程节点发送过来的日志数据,并把它们写入本地日志系统,随后立即向源节点返回确认信息:告知源节点是否成功接收了备份的日志数据;
(2)、响应远程节点的同步信息:向客户端软件分发密钥及哈希函数:服务器端为每位客户生成2个哈希函数及2个主密钥,发送给客户端服务程序;
(3)、响应远程节点的日志读取操作,HBase的备份节点要有效的响应远程节点的日志读取请求:即把本节点为指定表和HRegion保存的日志记录按照给定的序列数要求读出并通过网络接口返回给源节点;
当上述客户端与服务器端进行通信时,日志备份时的节点通信通过网络传输方式实现。
2.根据权利要求1所述的基于远程日志备份的HBase数据可用性及持久性的方法,其特征在于:所述HBase的数据节点写入并备份包括以下步骤:
(a)HBase的数据节点启动,并且初始化远程日志备份进程,即启动远程日志备份服务,作为集群中某个或多个节点远程备份日志的目标节点;同时获取当前节点备份日志的目标节点或节点群的IP,作为整个HBase的数据节点上所有HRegion发起远程日志备份时共享的变量;
(b)当HRegion调用写操作处理过程时,把用户数据写入内存存储单元,然后构造日志记录WAL写入本地节点内存,不发起不等待日志持久化进程;而是把WAL及相关信息发送到远程备份节点,并等待备份节点发来的写入确认;
(c)当HBase的数据节点接收到集群中某个节点发来的WAL时,把它写入本地日志文件,立即返回写入确认,日志同步进程稍后会把日志及时写入文件系统;
(d)如果HRegion的写操作进程在规定时间内收到超过一半的目标节点返回的写确认就认为远程日志备份成功,并返回写操作成功;否则认为备份失败,并返回写操作失败。
3.根据权利要求2所述的基于远程日志备份的HBase数据可用性及持久性的方法,其特征在于:所述步骤(b)和步骤(d)中HRegion的写操作包括以下步骤:
(1)首先尝试获取需要的锁;
(2)检查HRegion和HBase的数据节点状态,此时检查是否需要持久化;
(3)更新时间戳;
(4)数据写入内存MemStore,即执行applyFamilyMapToMemstore方法;
(5)随后构造并写WALEdit,执行addFamilyMapToWALEdit方法;
(6)通过append方法把WAL日志写入本地日志系统,但不会持久化;
(7)构造远程日志备份数据,调用startRLP方法把日志数据通过备份进程接口备份到远程节点;如果返回true则写操作执行成功,否则执行失败,且无论成功与否都要释放行锁定。
4.根据权利要求1所述的基于远程日志备份的HBase数据可用性及持久性的方法,其特征在于:所述日志备份过程中传输的数据包括日志数据单元、确认数据及日志同步通知。
CN201410095611.9A 2014-03-14 2014-03-14 一种基于远程日志备份的 HBase 数据可用性及持久性的方法 Active CN103870570B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410095611.9A CN103870570B (zh) 2014-03-14 2014-03-14 一种基于远程日志备份的 HBase 数据可用性及持久性的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410095611.9A CN103870570B (zh) 2014-03-14 2014-03-14 一种基于远程日志备份的 HBase 数据可用性及持久性的方法

Publications (2)

Publication Number Publication Date
CN103870570A CN103870570A (zh) 2014-06-18
CN103870570B true CN103870570B (zh) 2018-04-27

Family

ID=50909100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410095611.9A Active CN103870570B (zh) 2014-03-14 2014-03-14 一种基于远程日志备份的 HBase 数据可用性及持久性的方法

Country Status (1)

Country Link
CN (1) CN103870570B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593829B1 (ko) 2014-10-06 2016-02-12 엘에스산전 주식회사 백업 기능을 갖는 plc 데이터 로그 모듈
CN104408165B (zh) * 2014-12-08 2018-04-13 畅捷通信息技术股份有限公司 高并发下的数据存储方法和装置
CN105760398A (zh) * 2014-12-18 2016-07-13 中兴通讯股份有限公司 一种日志记录系统及日志记录操作方法
CN104504062B (zh) * 2014-12-22 2018-06-05 浙江宇视科技有限公司 主备数据库数据同步方法及装置
CN104809212A (zh) * 2015-04-29 2015-07-29 苏州星熙数据科技有限公司 一种基于低延迟的HBase枚举系统设计方法
CN106294477B (zh) * 2015-06-05 2019-10-01 阿里巴巴集团控股有限公司 一种数据处理方法和装置
CN106598473B (zh) * 2015-10-15 2020-09-04 南京中兴新软件有限责任公司 消息持久化方法及装置
US9747174B2 (en) * 2015-12-11 2017-08-29 Microsoft Technology Licensing, Llc Tail of logs in persistent main memory
CN107045426B (zh) * 2017-04-14 2020-12-15 北京粉笔蓝天科技有限公司 一种多副本读取方法和系统
CN107273462B (zh) * 2017-06-02 2020-09-25 浪潮云信息技术股份公司 一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法
CN108108476A (zh) * 2018-01-03 2018-06-01 中科边缘智慧信息科技(苏州)有限公司 高可靠分布式日志系统的工作方法
CN108491160B (zh) * 2018-03-13 2021-11-26 北京奇艺世纪科技有限公司 一种数据写入方法及装置
CN109359118B (zh) * 2018-08-31 2021-06-01 创新先进技术有限公司 一种数据写入方法及装置
CN109542690A (zh) * 2018-11-30 2019-03-29 安徽继远软件有限公司 一种备份数据库数据的方法和装置
CN110134702A (zh) * 2019-05-17 2019-08-16 北京百度网讯科技有限公司 数据流拼接方法、装置、设备和存储介质
CN110532123B (zh) * 2019-08-30 2023-08-04 北京小米移动软件有限公司 HBase系统的故障转移方法及装置
WO2023125412A1 (en) * 2021-12-27 2023-07-06 Huawei Cloud Computing Technologies Co., Ltd. Method and system for synchronous data replication

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452927B2 (en) * 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
CN102521075A (zh) * 2011-12-01 2012-06-27 浪潮电子信息产业股份有限公司 一种快速可靠的文件增量备份方法
CN102737130A (zh) * 2012-06-21 2012-10-17 广州从兴电子开发有限公司 处理hdfs元数据的方法及系统
CN103514274A (zh) * 2013-09-17 2014-01-15 宁波东冠科技有限公司 非关系型数据库HBase的数据迁移方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HBase数据可用性和持久性研究与实现;唐长城;《中国科学技术大学》;20131129;17-22,28-38,57-58 *

Also Published As

Publication number Publication date
CN103870570A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
CN103870570B (zh) 一种基于远程日志备份的 HBase 数据可用性及持久性的方法
CN105959151B (zh) 一种高可用的流式处理系统及方法
US8185493B2 (en) Solution method of in-doubt state in two-phase commit protocol of distributed transaction
CN103473318B (zh) 一种面向内存数据网格的分布式事务保障方法
CN110968586B (zh) 分布式事务处理方法及装置
CN105607954A (zh) 一种有状态容器在线迁移的方法和装置
CN101442558B (zh) 一种为p2sp网络提供索引服务的方法和系统
JP2014535081A (ja) クライアント/サーバシステムの分散した複製コンテンツの強一貫性を維持するための方法およびシステム
CN112988883B (zh) 数据库的数据同步方法、装置以及存储介质
CN103634411B (zh) 一种具有状态一致性的市场数据实时广播系统及方法
CN105306585B (zh) 一种多数据中心的数据同步方法
CN108280080A (zh) 一种数据同步方法、装置以及电子设备
CN103207867A (zh) 处理数据块的方法、发起恢复操作的方法和节点
CN103207894A (zh) 一种多路实时视频数据存储系统及其进行缓存控制的方法
CN106776829A (zh) 一种数据导出系统及其工作方法
CN106790563B (zh) 分布式存储系统和方法
WO2015106656A1 (zh) 一种跨数据中心的数据同步方法
CN108228581B (zh) Zookeeper兼容通信方法、服务器及系统
CN104899274A (zh) 一种内存数据库高效远程访问方法
CN111209467A (zh) 一种多并发多通道环境下的数据实时查询系统
CN106559241A (zh) 应用日志的收集、发送方法、装置、系统及日志服务器
CN110381077A (zh) 针对数字证书的处理方法和装置
CN104881749A (zh) 面向多租户的数据管理方法和数据存储系统
CN101778131A (zh) 数据同步系统
CN104468722A (zh) 一种航管训练系统中训练数据分类存储的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SHANGHAI AIXUN CLOUD COMPUTING CO., LTD.

Free format text: FORMER OWNER: GUANGZHOU MOBILEWISE INFORMATION SCIENCE + TECHNOLOGY CO., LTD.

Effective date: 20150323

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 510000 GUANGZHOU, GUANGDONG PROVINCE TO: 201499 FENGXIAN, SHANGHAI

TA01 Transfer of patent application right

Effective date of registration: 20150323

Address after: 201499 room 11, No. 2165, Lane 226, hope road, Shanghai, Fengxian District

Applicant after: Shanghai Axiomtek cloud computing Ltd

Address before: 510000, BCD1, building 23, 33 West Avenue, Whampoa, Guangzhou, Guangdong, Tianhe District

Applicant before: GUANGZHOU MOBILEWISE INFORMATION SCIENCE & TECHNOLOGY CO., LTD.

GR01 Patent grant
GR01 Patent grant