基于共享磁盘的数据库更新处理方法及系统的制作方法_2

文档序号:9597684阅读:来源:国知局
库更新处理方法另一实施例的流程示意图;
[0038]图5为本发明基于共享磁盘的数据库更新处理系统的系统架构图。
[0039]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0040]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0041]本发明提供一种基于共享磁盘的数据库更新处理方法,参照图1,在一实施例中,该基于共享磁盘的数据库更新处理方法包括:
[0042]步骤S10,主机接收到写事务请求时,读取共享磁盘中对应的数据页,并储存到主机缓存中;
[0043]本发明实施例提供的基于共享磁盘的数据库更新处理方法主要应用于数据库集群方案中,用于对数据库的更新进行控制。具体地,上述共享磁盘可以在主机当中,也可以在备机当中。在共享磁盘存储有Mysql (—个关系型数据库管理系统)数据库,根据Mysql数据库中数据存储的空间位置分为若干数据页。在主机中安装有客户端,用于访问修改共享磁盘中的数据页。当用户通过主机中安装的客户端发送写事务请求至主机当中,从而由主机根据该写事务请求读取共享磁盘中对应的数据页,并储存到主机缓存中。
[0044]步骤S20,主机根据所述写事务请求同步发送同步请求至备机;
[0045]步骤S30,所述备机根据所述同步请求读取共享磁盘中对应的数据页,并储存到备机缓存中;
[0046]主机在读取到共享磁盘中相关的数据页后,将根据写事务请求发送同步请求到备机中。具体地,该同步请求可以直接为写事务请求转发操作,也可以是根据读取到共享磁盘中相关的数据页进行修改数据的分析产生的同步请求,对此在以下实施例中进行详细说明。在备机接收到该同步请求后,在共享磁盘中读取对应的数据页,并储存到备机缓存中。可以理解的是,本实施例中,上述主机读取的数据页与备机读取的数据页一致。
[0047]步骤S40,所述备机根据所述同步请求对所述备机缓存中的数据页进行更新,并发送响应消息至所述主机;
[0048]步骤S50,所述主机根据所述响应消息和所述写事务请求对主机缓存中的数据页进行更新;
[0049]步骤S60,所述主机将主机缓存中更新后的数据页写入至所述共享磁盘中。
[0050]本实施例中,当备机的备机缓存中存储有数据页后,备机将会根据上述同步请求对备机缓存中的数据页进行修改;同时将返回响应消息到主机,以告诉主机可以进行数据页的修改。主机将根据该相应消息和上述写事务请求进行对主机缓存中的数据页进行修改,从而使得主机与备机中进行修改的指令是一致的,同时保证修改的数据页也是一致。在主机修改完主机缓存中的数据页后,将再次将缓存中的数据页更新到共享磁盘中,以完成写事务的所有操作。应当说明的是,在上述共享磁盘中,可以采用raid的方式对数据页进行备份,从而保证数据的可靠性。
[0051]本发明实施例通过在主机接收到写事务请求时,读取共享磁盘中对应的数据页,并储存到主机缓存中;主机根据所述写事务请求同步发送同步请求至备机;所述备机根据所述同步请求读取共享磁盘中对应的数据页,并储存到备机缓存中;所述备机根据所述同步请求对所述备机缓存中的数据页进行更新,并发送响应消息至所述主机;所述主机根据所述响应消息和所述写事务请求对主机缓存中的数据页进行更新;所述主机将主机缓存中更新后的数据页写入至所述共享磁盘中。由于主机在将同步请求发送至备机,并在接收到备机的相应响应操作后,才对主机缓存中的数据页进行更新,从而保证了主机缓存的数据页与备机缓存的数据页内容的一致性,缩短了主机和备机之间的数据更新延时的时间。
[0052]进一步地,参照图2,基于上述实施例,在本实施例中,上述步骤S20包括:
[0053]步骤S21,统计主机根据所述写事务请求对数据页中修改的数据内容和修改数据内容对应行的主键,以形成写入集合;
[0054]步骤S22,根据所述写入集合生成同步请求发送至备机。
[0055]本实施例中,主机将根据写事务请求统计需要对主机缓存中数据页修改的所有数据内容及该修改的所有数据内容对应所在数据行的主键,以形成写入集合。上述同步请求包括写入集合以及同步指令,将该同步请求发送至备机,以通知备机按照写入集合对备机缓存中的数据页进行更新。
[0056]进一步地,参照图3,基于上述实施例,在本实施例中,上述步骤S40包括:
[0057]步骤S41,所述备机根据所述同步请求对所述写入集合中的主键进行认证测试,以判断所述写入集合是否能写入到所述备机缓存中;若是,则执行步骤S42 ;若否,则执行步骤 S43 ;
[0058]步骤S42,所述备机将所述写入集合写入到备机缓存中,以更新所述备机缓存中的数据页;并生成认证成功响应消息发送至主机,以触发所述主机根据所述响应消息和所述写事务请求对主机缓存中的数据页进行更新;
[0059]步骤S43,所述备机生成认证失败消息发送至主机。
[0060]本实施例中,上述认证测试是判断上述写入集合是否能够被备机应用。具体地,可以判断上述写入集合中的主键是否能够在备机缓存的数据页查找到,即确定主机缓存的数据页与备机缓存的数据页在进行更新前是否一致。当认证通过时,则备机将发送认证成功的相应消息至主机,同时根据上述写入集合对备机缓存中的数据页进行修改更新处理。当认证未通过时,则直接反馈认证失败消息至主机,此时主机将不执行上述写事务请求对应的更新操作,并反馈相应的提示信息至用户操作界面,以告知用户当前的处理情况。
[0061 ] 进一步地,参照图4,基于上述实施例,在本实施例中,上述基于共享磁盘的数据库更新处理方法还包括:
[0062]步骤S70,所述备机进行备机缓存中数据页丢弃时,判断当前丢弃的数据页与所述共享磁盘对应的数据页是否一致;若一致,则执行步骤S80,若否,则执行步骤S90 ;
[0063]步骤S80,将当前丢弃的数据页进行丢弃处理;
[0064]步骤S90,将当前丢弃的数据页保存。
[0065]具体地,在数据页上都有checksum进行标识,判断备机缓存中的数据页是否与共享磁盘中的数据页一致,可以对数据页上的checksum进行比较即可。当不同时,则认为主机上对应的主机缓存数据页没有刷新到磁盘上,此时备机将不能将对应的背景缓存页进行丢弃,可以选择其他数据页进行丢弃。该丢弃操作可以发生在备机缓存大于预设值时。本实施例中,由于在备机进行数据页丢弃操作时,首先判断是否与共享磁盘中对应的数据页是否一致,从而可以保证在主机崩溃的情况下,可以将备机作为主机使用,以将备机缓存中更新的数据页重新写入共享磁盘中。
[0
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1