一种用于数据库的写入互斥方法及装置的制造方法_4

文档序号:9687473阅读:来源:国知局
目,依次创建用于向目标数据库写入数据的多条连接;相应的,所述数据写入单元具体用于,使用所述连接循环创建单元创建的多条连接向所述目标数据库写入数据。
[0096]本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
[0097]在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0098]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0099]1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0100]2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
【主权项】
1.一种用于数据库的写入互斥方法,其特征在于,所述方法在向同一个目标数据库执行同一写入任务的进程中实施,包括: 采用为所述进程预先指定的统一的用户名创建用于向目标数据库写入数据的连接,所述目标数据库为每个与其建立的连接分配唯一的连接标识; 获取已创建连接的连接标识,作为本地连接标识; 获取所述目标数据库中采用所述用户名的所有连接的连接标识列表; 判断所述连接标识列表中是否存在不同于所述本地连接标识的其他连接标识; 若是,关闭已创建的连接;若否,使用已创建的连接向所述目标数据库写入数据。2.根据权利要求1所述的用于数据库的写入互斥方法,其特征在于,所述目标数据库为MySQL数据库。3.根据权利要求2所述的用于数据库的写入互斥方法,其特征在于,所述采用为所述进程预先指定的统一的用户名创建用于向目标数据库写入数据的连接,采用如下方式实现: 调用MySQL C API提供的mysql_connect O函数,并将该函数的用户名参数的值设置为所述预先指定的统一的用户名。4.根据权利要求2所述的用于数据库的写入互斥方法,其特征在于,所述获取所述目标数据库中采用所述用户名的所有连接的连接标识列表,采用如下方式实现: 执行SQL语句从PROCESSLIST表中查询采用所述用户名的所有连接的连接标识列表,所述PROCESSLIST表存储在目标MySQL数据库的informat1n_schema库中。5.根据权利要求1所述的用于数据库的写入互斥方法,其特征在于,所述创建用于向目标数据库写入数据的连接是指,按照预先设定的连接数目,依次创建用于向目标数据库写入数据的多条连接。6.根据权利要求5所述的用于数据库的写入互斥方法,其特征在于,所述获取已创建连接的连接标识作为本地连接标识是指,依次获取已创建的每条连接的连接标识,组成本地连接标识列表。7.根据权利要求6所述的用于数据库的写入互斥方法,其特征在于,所述判断所述连接标识列表中是否存在不同于所述本地连接标识的其他连接标识是指,判断是否存在满足下列条件的连接标识:该连接标识包含在从所述目标数据库获取的连接标识列表中、但是未包含在本地连接标识列表中。8.根据权利要求1所述的用于数据库的写入互斥方法,其特征在于,当所述判断所述连接标识列表中是否存在不同于所述本地连接标识的其他连接标识的输出为“否”时,在执行所述使用已创建的连接向所述目标数据库写入数据的步骤之前,执行下述操作: 判断已创建的连接数目是否小于预先设定的连接数目; 若是,按照预先设定的连接数目,依次创建用于向目标数据库写入数据的多条连接;相应的,所述使用已创建的连接向所述目标数据库写入数据是指,使用已创建的多条连接向所述目标数据库写入数据。9.一种用于数据库的写入互斥装置,其特征在于,所述装置部署在向同一个目标数据库执行同一写入任务的设备中,包括: 连接创建单元,用于采用预先指定的统一的用户名创建用于向目标数据库写入数据的连接,所述目标数据库为每个与其建立的连接分配唯一的连接标识; 本地标识获取单元,用于获取已创建连接的连接标识,作为本地连接标识; 标识列表获取单元,用于获取所述目标数据库中采用所述用户名的所有连接的连接标识列表; 连接标识判断单元,用于判断所述连接标识列表中是否存在不同于所述本地连接标识的其他连接标识; 连接关闭单元,用于当所述连接标识判断单元的输出为“是”时,关闭已创建的连接;数据写入单元,用于当所述连接标识判断单元的输出为“否”时,使用已创建的连接向所述目标数据库写入数据。10.根据权利要求9所述的用于数据库的写入互斥装置,其特征在于,所述目标数据库为MySQL数据库。11.根据权利要求10所述的用于数据库的写入互斥装置,其特征在于,所述连接创建单元具体用于,调用MySQL C API提供的mysql_connect()函数来创建向目标数据库写入数据的连接,并且在调用该函数时将用户名参数的值设置为所述预先指定的统一的用户名。12.根据权利要求10所述的用于数据库的写入互斥装置,其特征在于,所述标识列表获取单元具体用于,执行SQL语句从PROCESSLIST表中查询采用所述用户名的所有连接的连接标识列表,所述PROCESSLIST表存储在目标MySQL数据库的informat1n_schema库中。13.根据权利要求9所述的用于数据库的写入互斥装置,其特征在于,所述连接创建单元具体用于,按照预先设定的连接数目,依次创建用于向目标数据库写入数据的多条连接。14.根据权利要求13所述的用于数据库的写入互斥装置,其特征在于,所述本地标识获取单元具体用于,依次获取已创建的每条连接的连接标识,组成本地连接标识列表。15.根据权利要求14所述的用于数据库的写入互斥装置,其特征在于,所述连接标识判断单元具体用于,判断是否存在满足下列条件的连接标识:该连接标识包含在从所述目标数据库获取的连接标识列表中、但是未包含在本地连接标识列表中。16.根据权利要求9所述的用于数据库的写入互斥方法,其特征在于,所述装置还包括: 连接数目判断单元,用于当所述连接标识判断单元的输出为“否”时,判断已创建的连接数目是否小于预先设定的连接数目; 连接循环创建单元,用于当所述连接数目判断单元的输出为“是”时,按照预先设定的连接数目,依次创建用于向目标数据库写入数据的多条连接;相应的,所述数据写入单元具体用于,使用所述连接循环创建单元创建的多条连接向所述目标数据库写入数据。
【专利摘要】本申请公开了一种用于数据库的写入互斥方法,包括:采用预先指定的统一的用户名创建用于向目标数据库写入数据的连接,所述目标数据库为每个与其建立的连接分配唯一的连接标识;获取已创建连接的连接标识,作为本地连接标识;获取所述目标数据库中采用所述用户名的所有连接的连接标识列表;判断所述连接标识列表中是否存在不同于所述本地连接标识的其他连接标识;若是,关闭已创建的连接;若否,使用已创建的连接向所述目标数据库写入数据。本申请同时提供一种用于数据库的写入互斥装置。采用本申请提供的方法,能够避免两个进程同时向目标数据库执行同样的写入操作,从而有效保证目标数据库中的数据的正确性。
【IPC分类】G06F17/30
【公开号】CN105447012
【申请号】CN201410401476
【发明人】刘杰
【申请人】阿里巴巴集团控股有限公司
【公开日】2016年3月30日
【申请日】2014年8月15日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1