CN106202462A - 为数据配置数据锁的方法及装置 - Google Patents

为数据配置数据锁的方法及装置 Download PDF

Info

Publication number
CN106202462A
CN106202462A CN201610561942.6A CN201610561942A CN106202462A CN 106202462 A CN106202462 A CN 106202462A CN 201610561942 A CN201610561942 A CN 201610561942A CN 106202462 A CN106202462 A CN 106202462A
Authority
CN
China
Prior art keywords
data
lock
processing request
key
identification information
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.)
Granted
Application number
CN201610561942.6A
Other languages
English (en)
Other versions
CN106202462B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201610561942.6A priority Critical patent/CN106202462B/zh
Publication of CN106202462A publication Critical patent/CN106202462A/zh
Application granted granted Critical
Publication of CN106202462B publication Critical patent/CN106202462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details

Abstract

本发明提供了一种为数据配置数据锁的方法和装置,该方法包括:接收数据处理请求;依据接收到的数据处理请求确定目标数据;依据目标数据确定与数据处理请求对应的数据锁的标识信息;依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁;基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。上述方案实现了精确快速地获取到相应的数据锁的目的,从而保证了数据的一致性;进一步地,避免了当多个数据操作请求获取数据锁时无法正确分配各数据请求相应的数据锁的情况,提高了数据请求的处理效率。

Description

为数据配置数据锁的方法及装置
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种为数据配置数据锁的方法,及一种为数据配置数据锁的装置。
背景技术
随着时代的发展,计算机技术已经渗透至人们生活的方方面面,人们的生活已经越来越依赖各种终端应用程序,各种功能强大的终端应用程序不断涌现,为用户带来了更加便捷的体验。但是,在人们使用各种终端应用程序的过程中,将会产生大量的并发数据操作,为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接影响到一个数据库系统的并发处理能力和性能,数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问时,使得访问变得有序而设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,因此锁定机制的实现也就成为了各终端应用操作数据库的核心技术之一。
现有技术中,一方面,通过对每个数据处理请求分配相应的数据锁来保证数据的一致完整性,但是,在每次获取锁和释放锁的过程中需要做许多繁琐复杂的操作,从而将耗费大量的系统资源,且容易发生死锁的情况,导致无法响应数据处理请求;另一方面,通过对数据库中的多个数据组成的数据块进行加锁,在对数据块中的某条数据进行操作时,由于该数据处理请求已获取到相应的数据锁,当在处理该数据处理请求的过程中接收到对该数据块中其他数据的处理请求时,将导致拒绝其他数据请求操作该数据块中的其他数据,从而降低了数据库的并发度,因此该数据加锁方式大大降低了数据处理效率;再一方面,通过将数据锁存储至带标识信息的特定数据结构中,当多条数据请求对应数据锁的标识信息相同时,将导致无法正确分配各数据请求相应的数据锁的情况,从而将发生数据操作错误等无法预期的情况。
发明内容
为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:
本发明的实施例提出了一种为数据配置数据锁的方法,包括:
接收数据处理请求;
依据接收到的数据处理请求确定目标数据;
依据目标数据确定与数据处理请求对应的数据锁的标识信息;
依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁;
基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。
优选地,数据锁列表通过键值对的形式存储数据,键值对中的键与数据锁的标识信息相对应,键值对的值用于存储数据锁。
可选地,键值对的值为链表存储结构,该方法还包括:
创建用于分配至不同数据处理请求的多个数据锁,并将多个数据锁存储于数据锁列表的链表存储结构中。
优选地,依据目标数据确定与数据处理请求对应的数据锁的标识信息的步骤,具体包括:
通过预定的哈希算法对目标数据进行哈希计算,并将计算结果确定为与数据处理请求相应的数据锁的标识信息。
优选地,依据数据锁的标识信息,在预存的数据锁列表中确定数据锁所在的位置信息的步骤,包括:
将标识信息与预存的数据锁列表中各个键值对的键进行匹配,并将匹配成功的键对应的值的位置确定为数据锁所在的位置信息。
优选地,若位置信息对应多个数据锁,则基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求的步骤,包括:
从位置信息对应的多个数据锁中任选一个空闲数据锁作为相应的数据锁并分配至数据处理请求;
或者
依序从位置信息对应的多个数据锁中选择第一个空闲数据锁作为相应的数据锁并分配至数据处理请求。
可选地,该方法还包括:
判断预存的数据锁列表中对应的位置信息处是否存储有空闲的数据锁;
若判断没有空闲的数据锁时,生成新的数据锁,并将新生成的数据锁分配至相应的数据处理请求。
本发明的另一实施例提出了一种为数据配置数据锁的装置,包括:
接收模块,用于接收数据处理请求;
第一确定模块,用于依据接收到的数据处理请求确定目标数据;
第二确定模块,用于依据目标数据确定与数据处理请求对应的数据锁的标识信息;
第三确定模块,用于依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁;
提取及分配模块,用于基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。
优选地,数据锁列表通过键值对的形式存储数据,键值对中的键与数据锁的标识信息相对应,键值对的值用于存储数据锁。
可选地,键值对的值为链表存储结构,该装置还包括:
创建模块,用于创建用于分配至不同数据处理请求的多个数据锁,并将多个数据锁存储于数据锁列表的链表存储结构中。
优选地,第二确定模块,具体用于通过预定的哈希算法对目标数据进行哈希计算,并将计算结果确定为与数据处理请求相应的数据锁的标识信息。
优选地,第三确定模块用于将标识信息与预存的数据锁列表中各个键值对的键进行匹配,并将匹配成功的键对应的值的位置确定为数据锁所在的位置信息。
优选地,若位置信息对应多个数据锁,则提取及分配模块,用于从位置信息对应的多个数据锁中任选一个空闲数据锁作为相应的数据锁并分配至数据处理请求;
或者
依序从位置信息对应的多个数据锁中选择第一个空闲数据锁作为相应的数据锁并分配至数据处理请求。
可选地,该装置还包括:
判断模块,用于判断预存的数据锁列表中对应的位置信息处是否存储有空闲的数据锁;
生成及分配模块,用于若判断没有空闲的数据锁时,生成新的数据锁,并将新生成的数据锁分配至相应的数据处理请求。
本发明的实施例中,提出了一种为数据配置数据锁的方案,接收数据处理请求,依据接收到的数据处理请求确定目标数据,依据目标数据确定与数据处理请求对应的数据锁的标识信息,实现了根据接收到的数据处理请求精确的查找到与该数据处理请求对应数据锁的标识信息,为快速的获取到相应的数据锁提供了重要的前提保障,降低了分配数据锁的过程中消耗的系统资源,提高了系统的运行速度;随后,依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁,基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求,实现了精确快速地获取到相应的数据锁的目的,从而保证了数据的一致性;进一步地,避免了当多个数据操作请求获取数据锁的标识信息相同时,无法正确分配各数据请求相应的数据锁的情况,进一步地,提高了数据请求的处理效率。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明中一个实施例的为数据配置数据锁的方法的流程示意图;
图2为本发明中一个优选实施例的数据表链接存储结构示意图;
图3为本发明中另一实施例的为数据配置数据锁的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
图1为本发明中一个实施例的为数据配置数据锁的方法的流程示意图。
本发明的实施例中,各步骤所执行的内容概述如下:
步骤S110:接收数据处理请求;
步骤S120:依据接收到的数据处理请求确定目标数据;
步骤S130:依据目标数据确定与数据处理请求对应的数据锁的标识信息;
步骤S140:依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁;
步骤S150:基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。
本发明的实施例中,提出了一种为数据配置数据锁的方法,接收数据处理请求,依据接收到的数据处理请求确定目标数据,依据目标数据确定与数据处理请求对应的数据锁的标识信息,实现了根据接收到的数据处理请求精确的查找到与该数据处理请求对应数据锁的标识信息,为快速的获取到相应的数据锁提供了重要的前提保障,降低了分配数据锁的过程中消耗的系统资源,提高了系统的运行速度;随后,依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁,基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求,实现了精确快速地获取到相应的数据锁的目的,从而保证了数据的一致性;进一步地,避免了当多个数据操作请求获取数据锁的标识信息相同时,无法正确分配各数据请求相应的数据锁的情况,进一步地,提高了数据请求的处理效率。以下针对各个步骤的具体实现做进一步的说明:
步骤S110:接收数据处理请求。其中,数据处理请求包含至少一条数据处理请求。
例如,接收用户A发送的一条数据处理请求,或同时接收多个用户,如用户A和用户B发送的多条数据处理请求。
步骤S120:依据接收到的数据处理请求确定目标数据。
具体地,依据接收到的至少一条数据处理请求确定在数据库中与数据处理请求对应的目标数据。
例如,在终端设备中,用户A通过购物网站购物,当用户A点击购买商品M1时触发生成数据处理请求,购物网站的服务器接收到针对用户A购买M1的数据处理请求为删减商品M1库存的数据处理,随后,在数据库中查找与M1对应的目标数据,得到如M1的库存量为5等相关数据。
步骤S130:依据目标数据确定与数据处理请求对应的数据锁的标识信息。
具体地,依据目标数据确定与数据处理请求对应的数据操作,根据该数据操作确定该数据操作使用的数据锁的标识信息。
例如,在终端设备中,当用户A在购物网站点击购买商品M1时触发生成一条数据处理请求并发送至服务器,服务器端可确定针对用户A的操作对应的数据处理请求为删减商品M1对应库存的数据处理,确定与M1对应的目标数据,如M1的库存量:5,目标数据的标识信息为“UID003”等,预定数据锁的标识信息为0-9的10个数字,预定目标数据的标识信息中最后一位数字即为对应数据锁的标识信息,可确定与删减商品M1对应库存的数据处理请求相应的数据锁的标识信息为“3”。
优选地,步骤S130依据目标数据确定与数据处理请求对应的数据锁的标识信息的步骤,具体包括步骤S131(图中未示出):
步骤S131:通过预定的哈希算法对目标数据进行哈希计算,并将计算结果确定为与数据处理请求相应的数据锁的标识信息。
例如,在终端设备中,当用户A在购物网站点击购买商品M1时触发生成一条数据处理请求并发送至服务器,服务器端可确定用户A的操作对应的数据处理请求为删减商品M1库存的数据处理,确定与M1对应的目标数据,如M1的库存量:5,数据操作类型为删减库存,随后将M1对应的目标数据信息进行组合,如组合结果“商品名称M1-库存量5-数据操作类型删减库存”,将组合后的M1对应的目标数据通过MD5(Message Digest Algorithm 5,消息摘要算法第五版)加密后,再通过哈希算法进行计算,得到哈希值如“001”,即可确定与针对删减商品M1库存的数据处理请求相应的数据锁的标识信息为“001”。
本领域的技术人员应可理解,确定数据锁的标识信息的方法不限于上述所述方式,本发明虽然会以特定的确定数据锁的标识信息方式为例说明,并不对此进行限制。
步骤S140:依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁。
其中,数据锁列表通过键值对的形式存储数据,键值对中的键与数据锁的标识信息相对应,键值对的值用于存储数据锁。
具体地,依据数据锁的标识信息,在预存的以键值对的形式存储数据的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁,其中,多个数据锁可对应同一标识信息。
例如,预定数据锁列表LockTable通过键值对Key-Value的形式存储数据,Key-Value的Key与数据锁的标识信息相对应,Key-Value的Value用于存储数据锁,当确定数据锁的标识信息为“001”时,在数据锁列表LockTable中确定Key为“001”对应的Value中的包括4个数据锁,顺序获取未分配的数据锁,得到Value中位置信息为“2”的数据锁未分配,即可确定数据锁的位置信息为Key“001”对应的Value中第2个数据锁,如数据锁Lock2。
在一优选实施例中,当键值对的值为链表存储结构时,该方法还包括步骤S160(图中未示出):
步骤S160:创建用于分配至不同数据处理请求的多个数据锁,并将多个数据锁存储于数据锁列表的链表存储结构中。
例如,如图2所示,预定数据锁列表LockTable通过键值对Key-Value的形式存储数据,当预定Key-Value的Value为链表存储结构时,针对数据锁列表LockTable中的不同Key可分别创建多个数据锁,如针对LockTable中Key为“001”对应的Value中,创建数据锁Lock1、数据锁Lock2和数据锁Lock3,并将数据锁Lock1、Lock2和Lock3存储于LockTable中Key“001”对应Value的链表存储结构中。
通过本实施例,降低了来自多用户的多个数据处理请求针对同一数据时由于分配冲突而产生的资源消耗问题,同时,将多个数据锁存储于链表结构中,避免了当多个数据操作请求获取数据锁的标识信息相同时,无法正确分配各数据请求相应的数据锁的情况,进一步地,提高了数据请求的处理效率,保证了数据的一致性。
优选地,步骤S140中依据数据锁的标识信息,在预存的数据锁列表中确定数据锁所在的位置信息的步骤进一步包括步骤S141(图中未示出):
步骤S141:将标识信息与预存的数据锁列表中各个键值对的键进行匹配,并将匹配成功的键对应的值的位置确定为数据锁所在的位置信息。
例如,确定与数据处理请求相应的数据锁的标识信息为“001”,将标识信息“001”与预存的数据锁列表LockTable中各个键值对Key-Value的Key进行匹配,当将标识信息“001”与LockTable中Key-Value的Key“001”匹配成功后,将LockTable中Key-Value中的Key为“001”对应的Value的位置确定为数据锁所在的位置信息。
步骤S150:基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。
例如,已确定的位置信息为预存的数据锁列表LockTable中Key-Value中的Key为“001”对应的Value的位置,从预存的数据锁列表LockTable中提取Key“001”对应的Value中的相应数据锁Lock1,并将提取到的数据锁Lock1分配至相应的数据处理请求。
优选地,若位置信息对应多个数据锁,则步骤S150具体包括:
从位置信息对应的多个数据锁中任选一个空闲数据锁作为相应的数据锁并分配至数据处理请求;或者
依序从位置信息对应的多个数据锁中选择第一个空闲数据锁作为相应的数据锁并分配至数据处理请求。
例如,预存的数据锁列表LockTable键值对Key-Value中的Key为“001”对应的Value中包括3个数据锁,则从该3个数据锁中任选一个空闲数据锁作如数据锁Lock3为相应的数据锁,并将数据锁Lock3分配至相应的数据处理请求。
又例如,预存的数据锁列表LockTable键值对Key-Value中的Key为“001”对应的Value中包括3个数据锁,依序判断3个数据锁的空闲情况,并选择判断得到的第一个空闲数据锁,如判断得到的第一个空闲数据锁为Lock2,将数据锁Lock2分配至相应的数据处理请求。
又例如,在终端设备中,当用户A在购物网站点击购买商品M1时,用户B同时在该购物网站点击购买商品M2时,确定用户A和用户B的数据处理请求对应的标识信息同为“001”,在预存的数据锁列表LockTable键值对Key-Value中Key为“001”对应的Value中包括3个数据锁,Lock1、Lock2和Lock3,且该3个数据锁均处于空闲状态,则针对用户A的数据处理请求,从该3个数据锁中选择第一个空闲数据锁Lock1,并将数据锁Lock1分配至针对用户A删减商品M1的库存的数据处理请求,针对用户B的数据处理请求,从该3个数据锁中选择第二个空闲数据锁Lock2,并将数据锁Lock2分配至针对用户B删减商品M2的库存的数据处理请求。
又例如,在终端设备中,当用户A和用户B同时在购物网站点击购买商品M1时,可确定用户A和用户B的操作对应的数据处理请求均为删减商品M1库存的数据处理,确定用户A和用户B的数据处理请求对应的标识信息均为“001”,当针对用户A的删减商品M1库存的数据处理请求先获取到预存的数据锁列表LockTable键值对Key-Value中的Key“001”对应的Value中的相应数据锁Lock1,并修改商品M1的目标数据中数据处理标识信息为“数据处理中”,如用label-black来标识“数据处理中”;当针对用户B的删减商品M1库存的数据处理请求在获取相应数据锁前,检测到M1的目标数据中数据处理标识信息为label-black,则针对用户B的数据处理请求无法继续获取相应的数据锁,针对用户B的数据处理请求处于等待状态,当针对用户A的数据处理请求完成后,释放相应的数据锁Lock1,并将商品M1的目标数据中数据处理标识信息修改为“数据空闲可处理”,如用label-white来标识“数据空闲可处理”,当商品M1的目标数据中数据处理标识信息为label-white,则针对用户B的数据处理请求可获取到预存的数据锁列表LockTable键值对Key-Value中的Key为“001”对应的Value中的相应数据锁,如Lock2,并修改商品M1的目标数据中数据处理标识信息为label-black,随后执行针对用户B删减商品M1库存的数据操作。
又例如,在终端设备中,当用户A在购物网站点击购买商品M1和M2时,确定用户A的数据处理请求对应的标识信息为“001”,当针对用户A的删减商品M1库存的数据处理请求先获取到预存的数据锁列表LockTable键值对Key-Value中的Key“001”对应的Value中的相应数据锁Lock1,并修改商品M1的目标数据中数据处理标识信息为“数据处理中”,如用label-black来标识“数据处理中”,此时,用户B在购物网站点击购买商品M1和M2,确定用户B的数据处理请求对应的标识信息为“001”,由于M1的目标数据中数据处理标识信息为label-black,因此针对用户B的删减商品M2库存的数据处理请求可先获取到预存的数据锁列表LockTable键值对Key-Value中的Key“001”对应的Value中的相应数据锁Lock2,并修改商品M2的目标数据中数据处理标识信息为label-black,此时,用户A与用户B同时等待对方释放数据锁,将导致死锁的发生,根据预定规则,如超过30秒,用户A和用户B的数据处理请求无法继续执行的情况下,修改商品M1的目标数据中数据处理标识信息为“数据死锁”,如用label-grey来标识“数据死锁”,并修改商品M2的目标数据中数据处理标识信息为label-grey;随后任何其他数据请求操作商品M1和M2时将会被拒绝或强制等待,随后可根据预定解死锁规则,如根据用户B执行删减商品M2库存的数据处理请求后返回的标识信息判断得到用户B已完成执行删减商品M2库存的操作,随后强制释放已分配至用户B针对M2的数据锁Lock2,并修改商品M2的目标数据中数据处理标识信息为label-white,随后用户A可执行删减商品M2库存的数据处理请求。
在一优选实施例中,该方法还包括步骤S170(图中未示出)和步骤S180(图中未示出):
步骤S170:判断预存的数据锁列表中对应的位置信息处是否存储有空闲的数据锁;
步骤S180:若判断没有空闲的数据锁时,生成新的数据锁,并将新生成的数据锁分配至相应的数据处理请求。
例如,在终端设备中,用户A在购物网站点击购买商品M1时,当确定针对用户A的数据处理请求对应的标识信息为“001”时,判断预存的数据锁列表LockTable键值对Key-Value中Key为“001”对应的Value中是否存储有空闲的数据锁,若判断没有空闲的数据锁时(例如Key“001”对应的所有数据锁都已分配至数据处理请求且未被释放),则生成新的数据锁Lock4,并将新生成的数据锁Lock4分配至针对用户A的数据处理请求。
图3为本发明中另一实施例的为数据配置数据锁的装置的结构示意图。
本发明的实施例中,各模块所执行的内容概述如下:
接收模块310接收数据处理请求;
第一确定模块320依据接收到的数据处理请求确定目标数据;
第二确定模块330依据目标数据确定与数据处理请求对应的数据锁的标识信息;
第三确定模块340依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁;
提取及分配模块350基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。
本发明的实施例中,提出了一种为数据配置数据锁的装置,接收数据处理请求,依据接收到的数据处理请求确定目标数据,依据目标数据确定与数据处理请求对应的数据锁的标识信息,实现了根据接收到的数据处理请求精确的查找到与该数据处理请求对应数据锁的标识信息,为快速的获取到相应的数据锁提供了重要的前提保障,降低了分配数据锁的过程中消耗的系统资源,提高了系统的运行速度;随后,依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁,基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求,实现了精确快速地获取到相应的数据锁的目的,从而保证了数据的一致性;进一步地,避免了当多个数据操作请求获取数据锁的标识信息相同时,无法正确分配各数据请求相应的数据锁的情况,进一步地,提高了数据请求的处理效率。以下针对各个模块的具体实现做进一步的说明:
接收模块310接收数据处理请求。其中,数据处理请求包含至少一条数据处理请求。
例如,接收用户A发送的一条数据处理请求,或同时接收多个用户,如用户A和用户B发送的多条数据处理请求。
第一确定模块320依据接收到的数据处理请求确定目标数据。
具体地,依据接收到的至少一条数据处理请求确定在数据库中与数据处理请求对应的目标数据。
例如,在终端设备中,用户A通过购物网站购物,当用户A点击购买商品M1时触发生成数据处理请求,购物网站的服务器接收到针对用户A购买M1的数据处理请求为删减商品M1库存的数据处理,随后,在数据库中查找与M1对应的目标数据,得到如M1的库存量为5等相关数据。
第二确定模块330依据目标数据确定与数据处理请求对应的数据锁的标识信息。
具体地,依据目标数据确定与数据处理请求对应的数据操作,根据该数据操作确定该数据操作使用的数据锁的标识信息。
例如,在终端设备中,当用户A在购物网站点击购买商品M1时触发生成一条数据处理请求并发送至服务器,服务器端可确定针对用户A的操作对应的数据处理请求为删减商品M1对应库存的数据处理,确定与M1对应的目标数据,如M1的库存量:5,目标数据的标识信息为“UID003”等,预定数据锁的标识信息为0-9的10个数字,预定目标数据的标识信息中最后一位数字即为对应数据锁的标识信息,可确定与删减商品M1对应库存的数据处理请求相应的数据锁的标识信息为“3”。
优选地,第二确定模块330具体用于通过预定的哈希算法对目标数据进行哈希计算,并将计算结果确定为与数据处理请求相应的数据锁的标识信息。
例如,在终端设备中,当用户A在购物网站点击购买商品M1时触发生成一条数据处理请求并发送至服务器,服务器端可确定用户A的操作对应的数据处理请求为删减商品M1库存的数据处理,确定与M1对应的目标数据,如M1的库存量:5,数据操作类型为删减库存,随后将M1对应的目标数据信息进行组合,如组合结果“商品名称M1-库存量5-数据操作类型删减库存”,将组合后的M1对应的目标数据通过MD5(Message Digest Algorithm 5,消息摘要算法第五版)加密后,再通过哈希算法进行计算,得到哈希值如“001”,即可确定与针对删减商品M1库存的数据处理请求相应的数据锁的标识信息为“001”。
本领域的技术人员应可理解,确定数据锁的标识信息的方法不限于上述所述方式,本发明虽然会以特定的确定数据锁的标识信息方式为例说明,并不对此进行限制。
第三确定模块340依据数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁。
其中,数据锁列表通过键值对的形式存储数据,键值对中的键与数据锁的标识信息相对应,键值对的值用于存储数据锁。
具体地,依据数据锁的标识信息,在预存的以键值对的形式存储数据的数据锁列表中确定数据锁的位置信息,数据锁列表中预存有多个与标识信息对应的数据锁,其中,多个数据锁可对应同一标识信息。
例如,预定数据锁列表LockTable通过键值对Key-Value的形式存储数据,Key-Value的Key与数据锁的标识信息相对应,Key-Value的Value用于存储数据锁,当确定数据锁的标识信息为“001”时,在数据锁列表LockTable中确定Key为“001”对应的Value中的包括4个数据锁,顺序获取未分配的数据锁,得到Value中位置信息为“2”的数据锁未分配,即可确定数据锁的位置信息为Key“001”对应的Value中第2个数据锁,如数据锁Lock2。
在一优选实施例中,当键值对的值为链表存储结构时,该装置还包括创建模块(图中未示出):
创建模块创建用于分配至不同数据处理请求的多个数据锁,并将多个数据锁存储于数据锁列表的链表存储结构中。
例如,如图2所示,预定数据锁列表LockTable通过键值对Key-Value的形式存储数据,当预定Key-Value的Value为链表存储结构时,针对数据锁列表LockTable中的不同Key可分别创建多个数据锁,如针对LockTable中Key为“001”对应的Value中,创建数据锁Lock1、数据锁Lock2和数据锁Lock3,并将数据锁Lock1、Lock2和Lock3存储于LockTable中Key“001”对应Value的链表存储结构中。
通过本实施例,降低了来自多用户的多个数据处理请求针对同一数据时由于分配冲突而产生的资源消耗问题,同时,将多个数据锁存储于链表结构中,避免了当多个数据操作请求获取数据锁的标识信息相同时,无法正确分配各数据请求相应的数据锁的情况,进一步地,提高了数据请求的处理效率,保证了数据的一致性。
优选地,第三确定模块340匹配及确定单元将标识信息与预存的数据锁列表中各个键值对的键进行匹配,并将匹配成功的键对应的值的位置确定为数据锁所在的位置信息。
例如,确定与数据处理请求相应的数据锁的标识信息为“001”,将标识信息“001”与预存的数据锁列表LockTable中各个键值对Key-Value的Key进行匹配,当将标识信息“001”与LockTable中Key-Value的Key“001”匹配成功后,将LockTable中Key-Value中的Key为“001”对应的Value的位置确定为数据锁所在的位置信息。
提取及分配模块350基于位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至数据处理请求。
例如,已确定的位置信息为预存的数据锁列表LockTable中Key-Value中的Key为“001”对应的Value的位置,从预存的数据锁列表LockTable中提取Key“001”对应的Value中的相应数据锁Lock1,并将提取到的数据锁Lock1分配至相应的数据处理请求。
优选地,若位置信息对应多个数据锁,则提取及分配模块350具体用于从位置信息对应的多个数据锁中任选一个空闲数据锁作为相应的数据锁并分配至数据处理请求;或者
依序从位置信息对应的多个数据锁中选择第一个空闲数据锁作为相应的数据锁并分配至数据处理请求。
例如,预存的数据锁列表LockTable键值对Key-Value中的Key为“001”对应的Value中包括3个数据锁,则从该3个数据锁中任选一个空闲数据锁作如数据锁Lock3为相应的数据锁,并将数据锁Lock3分配至相应的数据处理请求。
又例如,预存的数据锁列表LockTable键值对Key-Value中的Key为“001”对应的Value中包括3个数据锁,依序判断3个数据锁的空闲情况,并选择判断得到的第一个空闲数据锁,如判断得到的第一个空闲数据锁为Lock2,将数据锁Lock2分配至相应的数据处理请求。
又例如,在终端设备中,当用户A在购物网站点击购买商品M1时,用户B同时在该购物网站点击购买商品M2时,确定用户A和用户B的数据处理请求对应的标识信息同为“001”,在预存的数据锁列表LockTable键值对Key-Value中Key为“001”对应的Value中包括3个数据锁,Lock1、Lock2和Lock3,且该3个数据锁均处于空闲状态,则针对用户A的数据处理请求,从该3个数据锁中选择第一个空闲数据锁Lock1,并将数据锁Lock1分配至针对用户A删减商品M1的库存的数据处理请求,针对用户B的数据处理请求,从该3个数据锁中选择第二个空闲数据锁Lock2,并将数据锁Lock2分配至针对用户B删减商品M2的库存的数据处理请求。
又例如,在终端设备中,当用户A和用户B同时在购物网站点击购买商品M1时,可确定用户A和用户B的操作对应的数据处理请求均为删减商品M1库存的数据处理,确定用户A和用户B的数据处理请求对应的标识信息均为“001”,当针对用户A的删减商品M1库存的数据处理请求先获取到预存的数据锁列表LockTable键值对Key-Value中的Key“001”对应的Value中的相应数据锁Lock1,并修改商品M1的目标数据中数据处理标识信息为“数据处理中”,如用label-black来标识“数据处理中”;当针对用户B的删减商品M1库存的数据处理请求在获取相应数据锁前,检测到M1的目标数据中数据处理标识信息为label-black,则针对用户B的数据处理请求无法继续获取相应的数据锁,针对用户B的数据处理请求处于等待状态,当针对用户A的数据处理请求完成后,释放相应的数据锁Lock1,并将商品M1的目标数据中数据处理标识信息修改为“数据空闲可处理”,如用label-white来标识“数据空闲可处理”,当商品M1的目标数据中数据处理标识信息为label-white,则针对用户B的数据处理请求可获取到预存的数据锁列表LockTable键值对Key-Value中的Key为“001”对应的Value中的相应数据锁,如Lock2,并修改商品M1的目标数据中数据处理标识信息为label-black,随后执行针对用户B删减商品M1库存的数据操作。
又例如,在终端设备中,当用户A在购物网站点击购买商品M1和M2时,确定用户A的数据处理请求对应的标识信息为“001”,当针对用户A的删减商品M1库存的数据处理请求先获取到预存的数据锁列表LockTable键值对Key-Value中的Key“001”对应的Value中的相应数据锁Lock1,并修改商品M1的目标数据中数据处理标识信息为“数据处理中”,如用label-black来标识“数据处理中”,此时,用户B在购物网站点击购买商品M1和M2,确定用户B的数据处理请求对应的标识信息为“001”,由于M1的目标数据中数据处理标识信息为label-black,因此针对用户B的删减商品M2库存的数据处理请求可先获取到预存的数据锁列表LockTable键值对Key-Value中的Key“001”对应的Value中的相应数据锁Lock2,并修改商品M2的目标数据中数据处理标识信息为label-black,此时,用户A与用户B同时等待对方释放数据锁,将导致死锁的发生,根据预定规则,如超过30秒,用户A和用户B的数据处理请求无法继续执行的情况下,修改商品M1的目标数据中数据处理标识信息为“数据死锁”,如用label-grey来标识“数据死锁”,并修改商品M2的目标数据中数据处理标识信息为label-grey;随后任何其他数据请求操作商品M1和M2时将会被拒绝或强制等待,随后可根据预定解死锁规则,如根据用户B执行删减商品M2库存的数据处理请求后返回的标识信息判断得到用户B已完成执行删减商品M2库存的操作,随后强制释放已分配至用户B针对M2的数据锁Lock2,并修改商品M2的目标数据中数据处理标识信息为label-white,随后用户A可执行删减商品M2库存的数据处理请求。
在一优选实施例中,该装置还包括判断模块(图中未示出)和生成及分配模块(图中未示出):
判断模块判断预存的数据锁列表中对应的位置信息处是否存储有空闲的数据锁;
生成及分配模块若判断没有空闲的数据锁时,生成新的数据锁,并将新生成的数据锁分配至相应的数据处理请求。
例如,在终端设备中,用户A在购物网站点击购买商品M1时,当确定针对用户A的数据处理请求对应的标识信息为“001”时,判断预存的数据锁列表LockTable键值对Key-Value中Key为“001”对应的Value中是否存储有空闲的数据锁,若判断没有空闲的数据锁时(例如Key“001”对应的所有数据锁都已分配至数据处理请求且未被释放),则生成新的数据锁Lock4,并将新生成的数据锁Lock4分配至针对用户A的数据处理请求。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种为数据配置数据锁的方法,包括:
接收数据处理请求;
依据接收到的数据处理请求确定目标数据;
依据所述目标数据确定与所述数据处理请求对应的数据锁的标识信息;
依据所述数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,所述数据锁列表中预存有多个与标识信息对应的数据锁;
基于所述位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至所述数据处理请求。
2.根据权利要求1所述的方法,其中,所述数据锁列表通过键值对的形式存储数据,所述键值对中的键与所述数据锁的标识信息相对应,所述键值对的值用于存储所述数据锁。
3.根据权利要求2所述的方法,其中,所述键值对的值为链表存储结构,该方法还包括:
创建用于分配至不同数据处理请求的多个数据锁,并将多个数据锁存储于所述数据锁列表的链表存储结构中。
4.根据权利要求1-3任一项所述的方法,其中,所述依据所述目标数据确定与所述数据处理请求对应的数据锁的标识信息的步骤,具体包括:
通过预定的哈希算法对所述目标数据进行哈希计算,并将计算结果确定为与所述数据处理请求相应的数据锁的标识信息。
5.根据权利要求2-4任一项所述的方法,其中,所述依据所述数据锁的标识信息,在预存的数据锁列表中确定数据锁所在的位置信息的步骤,包括:
将所述标识信息与所述预存的数据锁列表中各个键值对的键进行匹配,并将匹配成功的键对应的值的位置确定为所述数据锁所在的位置信息。
6.根据权利要求3-5任一项所述的方法,其中,若所述位置信息对应多个数据锁,则基于所述位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至所述数据处理请求的步骤,包括:
从所述位置信息对应的多个数据锁中任选一个空闲数据锁作为相应的数据锁并分配至所述数据处理请求;
或者
依序从所述位置信息对应的多个数据锁中选择第一个空闲数据锁作为相应的数据锁并分配至所述数据处理请求。
7.根据权利要求1-6任一项所述的方法,还包括:
判断预存的数据锁列表中对应的位置信息处是否存储有空闲的数据锁;
若判断没有空闲的数据锁时,生成新的数据锁,并将新生成的数据锁分配至相应的数据处理请求。
8.一种为数据配置数据锁的装置,包括:
接收模块,用于接收数据处理请求;
第一确定模块,用于依据接收到的数据处理请求确定目标数据;
第二确定模块,用于依据所述目标数据确定与所述数据处理请求对应的数据锁的标识信息;
第三确定模块,用于依据所述数据锁的标识信息,在预存的数据锁列表中确定数据锁的位置信息,所述数据锁列表中预存有多个与标识信息对应的数据锁;
提取及分配模块,用于基于所述位置信息从预存的数据锁列表中提取相应的数据锁,并将提取到的数据锁分配至所述数据处理请求。
9.根据权利要求8所述的装置,其中,所述数据锁列表通过键值对的形式存储数据,所述键值对中的键与所述数据锁的标识信息相对应,所述键值对的值用于存储所述数据锁。
10.根据权利要求9所述的装置,其中,所述键值对的值为链表存储结构,该装置还包括:
创建模块,用于创建用于分配至不同数据处理请求的多个数据锁,并将多个数据锁存储于所述数据锁列表的链表存储结构中。
CN201610561942.6A 2016-07-15 2016-07-15 为数据配置数据锁的方法及装置 Active CN106202462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610561942.6A CN106202462B (zh) 2016-07-15 2016-07-15 为数据配置数据锁的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610561942.6A CN106202462B (zh) 2016-07-15 2016-07-15 为数据配置数据锁的方法及装置

Publications (2)

Publication Number Publication Date
CN106202462A true CN106202462A (zh) 2016-12-07
CN106202462B CN106202462B (zh) 2020-05-01

Family

ID=57475221

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610561942.6A Active CN106202462B (zh) 2016-07-15 2016-07-15 为数据配置数据锁的方法及装置

Country Status (1)

Country Link
CN (1) CN106202462B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345495A (zh) * 2017-01-22 2018-07-31 北京国双科技有限公司 一种多线程的加锁方法及服务器
CN109815227A (zh) * 2018-12-13 2019-05-28 平安科技(深圳)有限公司 数据锁管理方法、装置、计算机设备及存储介质
CN110096231A (zh) * 2019-04-25 2019-08-06 新华三云计算技术有限公司 磁盘锁的处理方法及装置
CN110147379A (zh) * 2019-04-02 2019-08-20 平安科技(深圳)有限公司 基于数据锁的信息采集方法、装置、计算机设备
CN110334823A (zh) * 2019-06-17 2019-10-15 北京大米科技有限公司 预约方法、装置、电子设备及介质
CN111309717A (zh) * 2020-01-23 2020-06-19 普信恒业科技发展(北京)有限公司 一种稽核方法及系统
CN111324622A (zh) * 2020-02-20 2020-06-23 中国建设银行股份有限公司 一种资源抢购的处理方法、装置、设备及存储介质
WO2020168755A1 (zh) * 2019-02-20 2020-08-27 平安科技(深圳)有限公司 数据库操作控制方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402528A (zh) * 2010-09-13 2012-04-04 方正国际软件有限公司 多客户端数据处理方法、装置及系统
CN105138587A (zh) * 2015-07-31 2015-12-09 小米科技有限责任公司 数据访问方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402528A (zh) * 2010-09-13 2012-04-04 方正国际软件有限公司 多客户端数据处理方法、装置及系统
CN105138587A (zh) * 2015-07-31 2015-12-09 小米科技有限责任公司 数据访问方法、装置和系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345495A (zh) * 2017-01-22 2018-07-31 北京国双科技有限公司 一种多线程的加锁方法及服务器
CN109815227A (zh) * 2018-12-13 2019-05-28 平安科技(深圳)有限公司 数据锁管理方法、装置、计算机设备及存储介质
CN109815227B (zh) * 2018-12-13 2024-04-16 平安科技(深圳)有限公司 数据锁管理方法、装置、计算机设备及存储介质
WO2020168755A1 (zh) * 2019-02-20 2020-08-27 平安科技(深圳)有限公司 数据库操作控制方法、装置、计算机设备和存储介质
CN110147379A (zh) * 2019-04-02 2019-08-20 平安科技(深圳)有限公司 基于数据锁的信息采集方法、装置、计算机设备
WO2020199596A1 (zh) * 2019-04-02 2020-10-08 平安科技(深圳)有限公司 基于数据锁的信息采集方法、装置、计算机设备
CN110147379B (zh) * 2019-04-02 2023-06-30 平安科技(深圳)有限公司 基于数据锁的信息采集方法、装置、计算机设备
CN110096231A (zh) * 2019-04-25 2019-08-06 新华三云计算技术有限公司 磁盘锁的处理方法及装置
CN110334823A (zh) * 2019-06-17 2019-10-15 北京大米科技有限公司 预约方法、装置、电子设备及介质
CN111309717A (zh) * 2020-01-23 2020-06-19 普信恒业科技发展(北京)有限公司 一种稽核方法及系统
CN111324622A (zh) * 2020-02-20 2020-06-23 中国建设银行股份有限公司 一种资源抢购的处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106202462B (zh) 2020-05-01

Similar Documents

Publication Publication Date Title
CN106202462A (zh) 为数据配置数据锁的方法及装置
CN106503053B (zh) Utxo查询方法及装置
CN108900464A (zh) 电子装置、基于区块链的数据处理方法和计算机存储介质
EP3411840B1 (en) Computer-implemented system and method for determining the state of a machine executable contract implemented using a blockchain
CN106294607A (zh) 缓存数据的更新方法及更新装置
US20110137800A1 (en) Privacy preserving artificial immune system
CN109951547A (zh) 事务请求并行处理方法、装置、设备和介质
CN101506818A (zh) 计算机资源验证方法和计算机资源验证程序
CN111385294B (zh) 数据处理方法、系统、计算机设备和存储介质
CN112070608A (zh) 信息处理方法、装置、介质及电子设备
CN110443690A (zh) 一种差异数据对账的方法、装置、服务器和存储介质
JP2005122560A (ja) デッドロック事前検出プログラム
Pietri et al. Forking without clicking: on how to identify software repository forks
CN110264303A (zh) 一种基于分布式数据库的房屋交易方法及系统
CN115618304A (zh) 一种基于数据特征码的不出域数据集发布方法及系统
CN109828832A (zh) 基于区块链的数据流通方法、装置、设备和介质
JP7409297B2 (ja) 情報管理方法、及び情報管理プログラム
CN111383109A (zh) 一种图片的版权交易方法及装置
CN112822284B (zh) 基于动态代理的数据处理方法、装置及计算机设备
Gregoriadis et al. Analysis of arbitrary content on blockchain-based systems using BigQuery
CN108304467A (zh) 用于文本间匹配的方法
CN110309235B (zh) 一种数据处理方法、装置、设备及介质
Ryu et al. A detecting and tracing algorithm for unauthorized internet-news plagiarism using spatio-temporal document evolution model
KR100725920B1 (ko) 비디오 pat 소프트웨어 평가/인증 시스템 및 그 방법
CN116305219B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240116

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

TR01 Transfer of patent right