数据更新方法、分发节点及海量存储集群系统技术方案

技术编号:6993543 阅读:209 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数据更新方法、分发节点及海量存储集群系统。其中分发节点包括:命令控制模块,用于通过一个更新线程接接收管理装置发送的更新命令;下发模块,用于通过多个读取线程从所述命令控制模块读取所述更新命令,并根据所述更新命令将数据分别下发到相应的数据节点。本发明专利技术的数据更新方法、分发节点及海量存储集群系统,仅通过一个更新线程接收更新命令,避免了现有技术中多线程同时更新的锁问题,提高了系统整体处理效率;同时设置多个读取线程读取更新命令,同时对多个更新命令进行数据下发,提高了数据下发的效率。

【技术实现步骤摘要】

本专利技术涉及一种数据存储技术,尤其涉及一种数据更新方法、分发节点及海量存 储集群系统。
技术介绍
在现有的各种实时系统中对海量数据实现实时查询和同步更新是比较困难的,目 前常见的策略通过提升单机硬件性能来提高数据承载量,或者通过把数据按照使用方式不 同来划分存储单元。现有技术中存在以下缺陷1、由于多线程的同时更新,系统需要选择一条更新线程而锁住其他更新线程,在 处理更新时存在随机I/O操作,导致整体效率提升困难,大部分效率损失在I/O锁竞争和更 新线程调度。2、查询和更新使用相同的线程,导致权限模糊,数据流向不确定,如果查询或更新 出现问题,会影响到整个系统。3、为了保障数据的安全性很多系统采用多副本方式,就是说一个副本在2台或者 3个数据节点中保存,进而提高数据安全性,这种方式看似安全其实存在数据安全隐患,当 系统代码出现bug时可能使多个数据副本写坏或者丢失;还有当数据同步时如果采用A通 知B,B通知C这种逐个通知的更新方式,会使更新不及时,每个节点都是更新同步的关键节 点,各个节点间数据容易不一致。4、随着数据规模的增长过分依赖某个数据中心节点,导致中心节点压力过大,性 能降低,系统横向扩展困难。5、很多业务系统都要求每周7拉4小时不间断服务,在小数据量时可以通过几台 冗余服务器来保障,但是在海量数据的情况下就要考虑整个系统中每个分发节点离线所带 来的影响,而且当机器规模达到一定程度后,比如一千台机器,那么每周、甚至每天可能都 会有机器损坏,对系统的正常运行影响较大。
技术实现思路
本专利技术的目的在于,提供一种数据更新方法、分发节点及海量存储集群系统,在保 持数据下发效率的同时,避免了多线程同时更新的锁问题,提高了系统整体处理效率。为实现上述目的,根据本专利技术的一个方面,提供一种数据更新方法,包括 通过一个更新线程接收所述更新命令;通过多个读取线程读取所述更新命令,并根据所述更新命令将数据分别下发到相 应的数据节点。为实现上述目的,根据本专利技术的另一个方面,提供一种分发节点,包括命令控制模块,用于通过一个更新线程接接收管理装置发送的更新命令;下发模块,用于通过多个读取线程从所述命令控制模块读取所述更新命令,并根4据所述更新命令将数据分别下发到相应的数据节点。为实现上述目的,根据本专利技术的另一个方面,提供一种海量存储集群系统,包括 管理装置、采用树状结构组织的分发节点和数据节点,所述分发节点,用于通过一个更新线程接收所述更新命令;并通过多个读取线程 读取所述更新命令,并根据所述更新命令将数据分别下发到相应的数据节点。本专利技术的数据更新方法、分发节点及海量存储集群系统,仅通过一个更新线程接 收更新命令,避免了现有技术中多线程同时更新的锁问题,提高了系统整体处理效率;同时 设置多个读取线程读取更新命令,同时对多个更新命令进行数据下发,提高了数据下发的 效率。优选地,分发节点还包括查询模块,用于根据所述管理装置发送的查询命令通过 一个或多个查询线程对其他分发节点和/或数据节点进行查询。查询和更新使用不同的线 程,使得数据流向清晰,查询、更新权限明晰,查询端或者更新端出现问题不会影响到整个 系统。更优地,分发节点中的下发模块还判断是否接收到所述数据节点发送的更新数据 成功信息,如果没有接收到,则发送数据不成功,下发模块重复发送数据到数据节点。这样 可以保证各个节点数据的一致性,不会因为下端数据模块出现处理故障而数据丢失。另外,在海量存储集群系统中,分发节点可以包括多个层级,不同层级的分发节点 之间交叉相连,逐级下发或查询数据;管理装置中存储还存储各个层级分发节点之间的层 次关系及数据下发命令表,根据层次关系及数据下发命令表控制不同层级的分发节点逐级 分发数据或查询数据。最上层的分发节点可以接收数据的更新或者查询,根据规则可以迅 速的逐级找到下级节点中的数据,实现数据的实时查询和同步更新。进一步的,每个分发节点还有对应的冗余节点,冗余节点,存储与分发节点相同的 数据,执行与分发节点相同的操作。各层级分发节点(包括冗余节点)之间交叉相连,任何 节点损坏都不会影响系统正常运转。可以根据需要随意增加分发节点的层级或某个分发节 点的冗余节点,便于系统的横向及纵向扩展。另外数据节点也可以根据实际需要随意增加。 降低了各个节点的负载压力,提高了各个节点的工作性能。附图说明图1是本专利技术分发节点的实施例结构图;图2是更新缓存模块中更新命令的存储结构实施例示意图;图3是更新缓存模块中更新命令的存储结构另一实施例示意图;图4是本专利技术海量存储集群系统实施例结构图;图5是本专利技术海量存储集群系统分发节点的一种树状结构示意图;图6是本专利技术海量存储集群系统分发节点的另一种树状结构示意图;图7是本专利技术数据分发方法实施例结构图;图8是本专利技术数据分发方法另一实施例结构图。具体实施例方式以下结合附图对本专利技术进行详细说明。装置实施例图1是本专利技术分发节点的实施例结构图。如图1所示,本实施例包括命令控制模块102,用于通过一个更新线程接接收管理装置发送的更新命令;下 发模块104,用于通过多个读取线程从命令控制模块102读取更新命令,并根据更新命令将 数据分别下发到相应的数据节点。本实施例中,仅通过一个更新线程接收更新命令,避免了现有技术中多线程同时 更新的锁问题;同时为了保证数据下发的效率,设置多个读取线程读取更新命令,同时对多 个更新命令进行数据下发。优选地,本实施例分发节点还包括更新缓存模块103,用于按照更新命令的顺序 对所述更新命令进行存储;下发模块104,从更新缓存模块103中读取更新命令。通过对更新命令的缓存,不影响数据下发的效率,而且更新线程写入磁盘后才会 给发送端反馈,提高了数据的安全可靠性,不会因为死机、断电带来数据丢失。另外,通过对 更新命令的存储,可以记录各个下端数据模块数据的发送量和发送速度,并可以在下端数 据模块数据规模达到一定程度,需要分裂到几台机器上时,可以根据存储的更新命令重放 更新数据。当某个数据节点出现问题时(故障离线或者处理缓慢)通过更新缓存模块也可 以恢复其数据,进而保证系统中多副本的同步。图2是更新缓存模块中更新命令的存储结构示意图。如图2所示,显示了更新命 令存储的形式,图中每一排都表示磁盘上的一个文件,是按照命令顺序在磁盘上保存的。每 个更新命令保存后才会给上层回应信息,负责更新队列的更新线程只有一个这样可以避免 多个更新线程带来的全局锁问题。读取线程存在多个,每个读取线程负责一个叶子节点上数据模块的数据更新,并 且每个读取线程记录自己发送消息的位置。图3是更新缓存模块中更新命令的存储结构另一实施例示意图。如图3所示,由 于数据模块形式多样所以更新的命令结构及形式也多样,为此更新命令存储时增加了命令 类型。由于每个读取线程都负责自己的下端数据模块,所以可以为读取线程增加命令识别 表来识别这个更新命令是否是该读取线程需要的,只有当命令识别表中的命令类型和更新 队列的命令头中的命令类型一致时才发送给其负责的下端数据模块,否则抛弃。这样,每个 读取线程只要负责自己读取的更新命令而不需要关心外部传送来的所有更新命令。更优地,下发模块104还判断是否接收到所述数据节点发送的更新数据成功信 息,如果没有接收到,则本文档来自技高网...

【技术保护点】
一种分发节点,其特征在于,包括:命令控制模块,用于通过一个更新线程接收管理装置发送的更新命令;下发模块,用于通过多个读取线程从所述命令控制模块读取所述更新命令,并根据所述更新命令将数据分别下发到相应的数据节点。

【技术特征摘要】

【专利技术属性】
技术研发人员:韩金宇罗治国兰建明孙少陵黄晓庆
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1