CN112750040B - 应用于内存交易系统实现线程安全的数据处理方法、系统、应用、装置、处理器及存储介质 - Google Patents
应用于内存交易系统实现线程安全的数据处理方法、系统、应用、装置、处理器及存储介质 Download PDFInfo
- Publication number
- CN112750040B CN112750040B CN202110095610.4A CN202110095610A CN112750040B CN 112750040 B CN112750040 B CN 112750040B CN 202110095610 A CN202110095610 A CN 202110095610A CN 112750040 B CN112750040 B CN 112750040B
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- operation processing
- linked list
- hash
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法,其中,该方法包括数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理,且该无锁哈希查找表的数据容量确定,整个数据操作过程均无需线程锁,利用原子操作即可确保内存交易系统的线程安全。本发明还涉及一种相应的系统、应用、装置、处理器及其计算机可读存储介质。采用了本发明的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法、系统、应用、装置、处理器及其计算机可读存储介质,在不加线程锁的情况下保证线程安全,用于维护交易网关的账户路由信息和交易引擎的证券基础信息、证券账户信息,保证业务处理效率。
Description
技术领域
本发明涉及证券交易领域,尤其涉及交易数据的线程安全技术领域,具体是指一种应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法、系统、应用、装置、处理器及其计算机可读存储介质。
背景技术
证券公司低延时交易系统是一种内存交易系统,数据的存储与维护都是直接使用内存数据,而不是依赖于数据库访问。交易系统中,通常有多个线程访问数据,需要解决数据读写的线程安全问题,而为了提高性能,避免使用线程锁。
1、交易网关订单路由表线程安全问题。
证券公司低延时交易系统有多个组件,如交易网关、交易引擎组件、报盘系统等。交易网关维护一份账户路由表数据,不同的客户发单到交易网关时,根据该路由表发送到对应的交易节点进行后续处理。日间开户的账户需要支持当日交易时,除了在交易引擎开户外,还需在交易网关的账户路由表中增加新开客户信息。交易网关在TCP连接线程中查询账户路由表,并发往目标交易引擎;在交易总线回调线程中,接收新开户消息,将新账户插入到账户路由表。交易网关对速度要求较高,需要在不加线程锁的情况下,保证账户路由表线程安全。
2、交易引擎跨流水线数据线程安全问题。
证券公司低延时交易系统核心交易引擎中,主要以流水线的方式进行业务处理,每一级流水线都可以是一个独立线程,负责一部分业务处理逻辑,上下游流水线间通过无锁队列连接。该系统的无锁设计原则要求相同数据的读写处理逻辑放在同一级流水线进行,在不加线程锁的情况下可以保证线程安全。但是有部分数据会被多个流水线同时访问,如证券基础信息、证券账户信息,无法将这类数据的读写都放在一个流水线进行,在不加锁的情况下无法保证线程安全。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种既能保证线程安全,又能保证业务处理效率高的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法、系统、应用、装置、处理器及其计算机可读存储介质。
为了实现上述目的,本发明的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法、系统、应用、装置、处理器及其计算机可读存储介质如下:
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法,其主要特点是,所述的方法包括数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理,其中,
所述的数据插入操作处理为单线程操作,具体包括以下步骤:
(1-1)在初始化时确定哈希查找表的数据容量,首先在链表节点数组中创建节点,从而所述的链表节点数组的数组元素数原子自增;
(1-2)通过无锁哈希查找表的键值将所述的节点哈希映射并存储到对应的哈希桶中,在链表中将新节点原子写为尾结点原子,完成插入操作;
所述的数据删除操作处理为单线程操作,具体包括以下步骤:
(2-1)首先查询该删除数据的键值在所述的链表节点数组中所对应的链表节点,通过原子写的方式修改所述的链表结构;
(2-2)将步骤(2-1)查询到的所述的链表节点从所述的链表结构中剔除,并将该节点设置为无效节点,完成删除操作;
所述的数据查询操作处理为多线程操作,具体包括以下步骤:
(3-1)通过标准的哈希算法将所述的键值哈希映射到对应的哈希桶中,进行哈希映射处理;
(3-2)在所述的步骤(3-1)所述的哈希桶所对应的链表中进行遍历查找;
所述的数据遍历操作处理,具体包括以下步骤:
(4-1)跳过所述的链表结构中相应的无效节点,直接遍历所述的链表节点数组,完成遍历操作;
其中,所述的数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理均无需线程锁,利用原子操作即可确保内存交易系统的线程安全。
较佳地,所述的链表结构为通过原子访问连接在一起的链表结构。
较佳地,所述的链表节点数组用于按插入顺序存储所有的链表节点。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理系统,其主要特点是,所述的系统包括数据插入操作处理模块、数据删除操作处理模块、数据查询操作处理模块和数据遍历操作处理模块,其中,
所述的数据插入操作处理模块仅允许单线程操作,具体包括:
节点创建操作单元,用于在所述的链表节点数组中创建节点,从而所述的链表节点数组的数组元素数原子自增;
节点映射操作单元,用于通过无锁哈希查找表的键值将链表结构哈希映射并存储到对应的哈希桶中,在链表中将新节点原子写为尾结点,以完成插入操作;
所述的数据删除操作处理模块仅允许单线程操作,具体包括:
链表修改操作单元,用于查询该删除数据的键值在所述的链表节点数组中所对应的链表节点,通过原子写的方式修改所述的链表结构;
节点删除操作单元,将查询到的所述的删除数据的链表节点从所述的链表结构中剔除,并将该节点设置为无效节点,完成删除操作;
所述的数据查询操作处理模块允许多线程操作,具体包括:
哈希映射处理单元,用于通过标准的哈希算法将查询数据的键值哈希映射到对应的哈希桶中,进行哈希映射处理;
数据查询操作单元,用于在所述的哈希映射处理单元的哈希桶所对应的链表中进行数据遍历查询;
所述的数据遍历操作处理模块允许多线程操作,具体包括:
数据遍历操作单元,用于跳过所述的链表结构中相应的无效节点,直接遍历所述的链表节点数组,完成遍历操作。
该基于上述数据操作处理系统在内存交易系统中的应用,其主要特点是,所述的数据操作处理系统在证券交易过程对该内存交易系统中的交易网关账户路由信息表进行操作处理,所述的交易网关账户路由信息表的数据容量确定,且符合单线程写操作以及多线程读操作的条件约束,所述的单线程为交易总线回调线程,所述的多线程为TCP连接线程,该应用用于完成将无锁哈希查找表存储到所述的交易网关账户路由信息表中。
较佳地,所述的交易总线回调线程,用于增加和删除所述的交易网关账户路由信息表中存储的账户路由信息;
所述的TCP连接线程,用于连接并访问所述的交易网关账户路由信息表中的账户路由信息。
该基于上述数据操作处理系统在内存交易系统中的应用,其主要特点是,所述的数据操作处理系统在证券交易过程对该内存交易系统中的交易引擎跨流水线数据进行操作处理,用于存储所述的交易引擎跨流水线数据。
较佳地,所述的交易引擎跨流水线数据包括证券基础信息以及证券账户信息。
较佳地,所述的证券基础信息以及证券账户信息均在多级流水线中进行相应的数据查询和访问;
所述的证券基础信息以及证券账户信息均在单级流水线中进行相应的数据增加和删除。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理的装置,其主要特点是,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述计算机可执行指令被所述处理器执行时,实现上述应用于内存交易系统基于无锁哈希查找表实现线程安全数据操作处理方法的各个步骤。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理的处理器,其主要特点是,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述应用于内存交易系统基于无锁哈希查找表实现线程安全数据操作处理方法的各个步骤。
该计算机可读存储介质,其特征在于,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述应用于内存交易系统基于无锁哈希查找表实现线程安全数据操作处理方法的各个步骤。
采用了本发明的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法、系统、应用、装置、处理器及其计算机可读存储介质,基于证券交易公司的低延时交易系统无锁设计原则,相较于现有技术能够有效的维护交易网关的账户路由信息和交易引擎的证券基础信息和证券账户信息,并且可以在不加线程锁的情况下保证线程安全,有效的解决交易网关订单路由表线程安全问题和交易引擎跨流水线数据线程安全问题,提升了交易系统的数据处理性能。
附图说明
图1为本发明的基于单写多读场景下线程安全的无锁哈希查找表数据结构示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
在详细说明根据本发明的实施例前,应该注意到的是,在下文中,术语“包括”、“包含”或任何其他变体旨在涵盖非排他性的包含,由此使得包括一系列要素的过程、方法、物品或者设备不仅包含这些要素,而且还包含没有明确列出的其他要素,或者为这种过程、方法、物品或者设备所固有的要素。
请参考图1所示,线程安全的无锁哈希表支持单线程写,多线程读,该哈希表结构中哈希桶存储的不是一般的链表,而是通过原子访问连接在一起的链表结构。该哈希表还有一个额外的链表节点数组,按插入顺序存储所有链表节点。该哈希表在初始化时就确定数据容量,即哈希桶的数量是确定的,数据插入或删除不会触发rehash操作,键值到桶的映射是确定的。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法,其中,所述的方法包括数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理,其中,
所述的数据插入操作处理为单线程操作,具体包括以下步骤:
(1-1)在初始化时确定哈希查找表的数据容量,首先在链表节点数组中创建节点,从而所述的链表节点数组的数组元素数原子自增;
(1-2)通过无锁哈希查找表的键值将所述的节点哈希映射并存储到对应的哈希桶中,在链表中将新节点原子写为尾结点原子,完成插入操作;
所述的数据删除操作处理为单线程操作,具体包括以下步骤:
(2-1)首先查询该删除数据的键值在所述的链表节点数组中所对应的链表节点,通过原子写的方式修改所述的链表结构;
(2-2)将步骤(2-1)查询到的所述的链表节点从所述的链表结构中剔除,并将该节点设置为无效节点,完成删除操作;
所述的数据查询操作处理为多线程操作,具体包括以下步骤:
(3-1)通过标准的哈希算法将所述的键值哈希映射到对应的哈希桶中,进行哈希映射处理;
(3-2)在所述的步骤(3-1)所述的哈希桶所对应的链表中进行遍历查找;
所述的数据遍历操作处理,具体包括以下步骤:
(4-1)跳过所述的链表结构中相应的无效节点,直接遍历所述的链表节点数组,完成遍历操作;
其中,所述的数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理均无需线程锁,利用原子操作即可确保内存交易系统的线程安全。
作为本发明的优选实施方式,所述的链表结构为通过原子访问连接在一起的链表结构。
作为本发明的优选实施方式,所述的链表节点数组用于按插入顺序存储所有的链表节点。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理系统,其中,所述的系统包括数据插入操作处理模块、数据删除操作处理模块、数据查询操作处理模块和数据遍历操作处理模块,其中,
所述的数据插入操作处理模块仅允许单线程操作,具体包括:
节点创建操作单元,用于在所述的链表节点数组中创建节点,从而所述的链表节点数组的数组元素数原子自增;
节点映射操作单元,用于通过无锁哈希查找表的键值将链表结构哈希映射并存储到对应的哈希桶中,在链表中将新节点原子写为尾结点,以完成插入操作;
所述的数据删除操作处理模块仅允许单线程操作,具体包括:
链表修改操作单元,用于查询该删除数据的键值在所述的链表节点数组中所对应的链表节点,通过原子写的方式修改所述的链表结构;
节点删除操作单元,将查询到的所述的删除数据的链表节点从所述的链表结构中剔除,并将该节点设置为无效节点,完成删除操作;
所述的数据查询操作处理模块允许多线程操作,具体包括:
哈希映射处理单元,用于通过标准的哈希算法将查询数据的键值哈希映射到对应的哈希桶中,进行哈希映射处理;
数据查询操作单元,用于在所述的哈希映射处理单元的哈希桶所对应的链表中进行数据遍历查询;
所述的数据遍历操作处理模块允许多线程操作,具体包括:
数据遍历操作单元,用于跳过所述的链表结构中相应的无效节点,直接遍历所述的链表节点数组,完成遍历操作。
该基于上述数据操作处理系统在内存交易系统中的应用,其中,所述的数据操作处理系统在证券交易过程对该内存交易系统中的交易网关账户路由信息表进行操作处理,所述的交易网关账户路由信息表的数据容量确定,且符合单线程写操作以及多线程读操作的条件约束,所述的单线程为交易总线回调线程,所述的多线程为TCP连接线程,该应用用于完成将无锁哈希查找表存储到所述的交易网关账户路由信息表中。
作为本发明的优选实施方式,所述的交易总线回调线程,用于增加和删除所述的交易网关账户路由信息表中存储的账户路由信息;
所述的TCP连接线程,用于连接并访问所述的交易网关账户路由信息表中的账户路由信息。
该基于上述数据操作处理系统在内存交易系统中的应用,其中,所述的数据操作处理系统在证券交易过程对该内存交易系统中的交易引擎跨流水线数据进行操作处理,用于存储所述的交易引擎跨流水线数据。
作为本发明的优选实施方式,所述的交易引擎跨流水线数据包括证券基础信息以及证券账户信息。
作为本发明的优选实施方式,所述的证券基础信息以及证券账户信息均在多级流水线中进行相应的数据查询和访问;
所述的证券基础信息以及证券账户信息均在单级流水线中进行相应的数据增加和删除。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理的装置,其中,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述计算机可执行指令被所述处理器执行时,实现上述应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法的各个步骤。
该应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理的处理器,其中,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法的各个步骤。
该计算机可读存储介质,其中,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法的各个步骤。
在本发明的一具体实施方式中,插入数据时,首先在链表节点数组中创建节点,数组元素数原子自增,然后哈希映射到对应的哈希桶,在链表中将新节点原子写为尾节点,插入操作线程安全。
在本发明的一具体实施方式中,删除数据时,首先查询到该键值对应的链表节点,然后原子写的方式修改链表结构,将该节点从链表中剔除,但不释放节点内存,依然维护在节点数组中,只是将该节点置为无效节点,删除操作线程安全。
在本发明的一具体实施方式中,查询数据时,通过标准的哈希算法映射到对应的哈希桶,然后在对应的链表中遍历查找。由于没有rehash操作,哈希映射不会受写线程影响,而桶链表中next节点的访问(图1中红色箭头)是原子的,读线程始终能读到最新的next节点,可以保证在链表中的遍历是线程安全的。
在本发明的一具体实施方式中,遍历数据时,直接遍历链表节点数组,需跳过无效节点。数组中节点数量的修改及节点置为无效都是原子操作,因此数据遍历也是线程安全的。
在本发明的一具体实施方式中,交易网关中账户路由信息的容量是确定的,账户路由信息的访问也符合单线程写(总线回调线程),多线程读(TCP连接线程)的条件,本发明描述的哈希表适用于交易网关账户路由信息的存储。
在本发明的一具体实施方式中,交易引擎中,证券数量及证券账户容量是确定的,证券基础信息和证券账户信息的增删只在第二级流水线进行,其查询访问在第二级和第三级流水线,因此,使用本发明描述的哈希表存储证券基础信息和证券账户信息,既保证线程安全,又符合证券公司低延时交易系统无锁设计原则,保证业务处理效率。
本发明所述的线程安全的无锁哈希查找表已经封装为标准容器,使用标准容器的调用方法即可直接使用该哈希查找表。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成的,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一实施例”、“一些实施例”、“示例”、“具体示例”、或“实施例”、“实施方式”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
采用了本发明的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法、系统、应用、装置、处理器及其计算机可读存储介质,基于证券交易公司的低延时交易系统无锁设计原则,相较于现有技术能够有效的维护交易网关的账户路由信息和交易引擎的证券基础信息和证券账户信息,并且可以在不加线程锁的情况下保证线程安全,有效的解决交易网关订单路由表线程安全问题和交易引擎跨流水线数据线程安全问题,提升了交易系统的数据处理性能。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (12)
1.一种应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法,其特征在于,所述的方法包括数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理,其中,
所述的数据插入操作处理为单线程操作,具体包括以下步骤:
(1-1)在初始化时确定哈希查找表的数据容量,首先在链表节点数组中创建节点,从而所述的链表节点数组的数组元素数原子自增;
(1-2)通过无锁哈希查找表的键值将所述的节点哈希映射并存储到对应的哈希桶中,在链表中将新节点原子写为尾结点原子,完成插入操作;
所述的数据删除操作处理为单线程操作,具体包括以下步骤:
(2-1)首先查询该删除数据的键值在所述的链表节点数组中所对应的链表节点,通过原子写的方式修改所述的链表结构;
(2-2)将步骤(2-1)查询到的所述的链表节点从所述的链表结构中剔除,并将该节点设置为无效节点,完成删除操作;
所述的数据查询操作处理为多线程操作,具体包括以下步骤:
(3-1)通过标准的哈希算法将所述的键值哈希映射到对应的哈希桶中,进行哈希映射处理;
(3-2)在所述的步骤(3-1)所述的哈希桶所对应的链表中进行遍历查找;
所述的数据遍历操作处理,具体包括以下步骤:
(4-1)跳过所述的链表结构中相应的无效节点,直接遍历所述的链表节点数组,完成遍历操作;
其中,所述的数据插入操作处理、数据删除操作处理、数据查询操作处理和数据遍历操作处理均无需线程锁,利用原子操作即可确保内存交易系统的线程安全。
2.根据权利要求1所述的应用于内存交易系统基于无锁哈希查找表实现线程安全数据操作处理方法,其特征在于,所述的链表结构为通过原子访问连接在一起的链表结构。
3.根据权利要求1所述的应用于内存交易系统基于无锁哈希查找表实现线程安全数据操作处理方法,其特征在于,所述的链表节点数组用于按插入顺序存储所有的链表节点。
4.一种应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理系统,其特征在于,所述的系统包括数据插入操作处理模块、数据删除操作处理模块、数据查询操作处理模块和数据遍历操作处理模块,其中,
所述的数据插入操作处理模块仅允许单线程操作,具体包括:
节点创建操作单元,用于在链表节点数组中创建节点,从而所述的链表节点数组的数组元素数原子自增;
节点映射操作单元,用于通过无锁哈希查找表的键值将链表结构哈希映射并存储到对应的哈希桶中,在链表中将新节点原子写为尾结点,以完成插入操作;
所述的数据删除操作处理模块仅允许单线程操作,具体包括:
链表修改操作单元,用于查询该删除数据的键值在所述的链表节点数组中所对应的链表节点,通过原子写的方式修改所述的链表结构;
节点删除操作单元,将查询到的所述的删除数据的链表节点从所述的链表结构中剔除,并将该节点设置为无效节点,完成删除操作;
所述的数据查询操作处理模块允许多线程操作,具体包括:
哈希映射处理单元,用于通过标准的哈希算法将查询数据的键值哈希映射到对应的哈希桶中,进行哈希映射处理;
数据查询操作单元,用于在所述的哈希映射处理单元的哈希桶所对应的链表中进行数据遍历查询;
所述的数据遍历操作处理模块允许多线程操作,具体包括:
数据遍历操作单元,用于跳过所述的链表结构中相应的无效节点,直接遍历所述的链表节点数组,完成遍历操作。
5.一种权利要求4所述的数据操作处理系统在内存交易系统中的应用方法,其特征在于,所述的数据操作处理系统在证券交易过程对该内存交易系统中的交易网关账户路由信息表进行操作处理,所述的交易网关账户路由信息表的数据容量确定,且符合单线程写操作以及多线程读操作的条件约束,所述的单线程为交易总线回调线程,所述的多线程为TCP连接线程,该方法用于完成将无锁哈希查找表存储到所述的交易网关账户路由信息表中。
6.根据权利要求5所述的内存交易系统中的应用方法,其特征在于,该方法用于应用到所述的交易网关账户路由信息表中;
所述的交易总线回调线程,用于增加和删除所述的交易网关账户路由信息表中存储的账户路由信息;
所述的TCP连接线程,用于连接并访问所述的交易网关账户路由信息表中的账户路由信息。
7.一种权利要求4所述的数据操作处理系统在内存交易系统中的应用方法,其特征在于,所述的数据操作处理系统在证券交易过程对该内存交易系统中的交易引擎跨流水线数据进行操作处理,用于存储所述的交易引擎跨流水线数据。
8.根据权利要求7所述的内存交易系统中的应用方法,其特征在于,所述的交易引擎跨流水线数据包括证券基础信息以及证券账户信息。
9.根据权利要求8所述的内存交易系统中的应用方法,其特征在于,所述的证券基础信息以及证券账户信息均在多级流水线中进行相应的数据查询和访问;
所述的证券基础信息以及证券账户信息均在单级流水线中进行相应的数据增加和删除。
10.一种应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理的装置,其特征在于,所述的装置包括:
处理器,被配置成执行计算机可执行指令;
存储器,存储一个或多个计算机可执行指令,所述计算机可执行指令被所述处理器执行时,实现权利要求1~3中任一项所述的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法的各个步骤。
11.一种应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理的处理器,其特征在于,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现权利要求1~3中任一项所述的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法的各个步骤。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现权利要求1~3中任一项所述的应用于内存交易系统基于无锁哈希查找表实现线程安全的数据操作处理方法的各个步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110043243 | 2021-01-13 | ||
CN2021100432433 | 2021-01-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112750040A CN112750040A (zh) | 2021-05-04 |
CN112750040B true CN112750040B (zh) | 2023-07-14 |
Family
ID=75653010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110095610.4A Active CN112750040B (zh) | 2021-01-13 | 2021-01-25 | 应用于内存交易系统实现线程安全的数据处理方法、系统、应用、装置、处理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112750040B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702628B1 (en) * | 2003-09-29 | 2010-04-20 | Sun Microsystems, Inc. | Implementing a fully dynamic lock-free hash table without dummy nodes |
KR20160132532A (ko) * | 2015-05-11 | 2016-11-21 | 신한카드 주식회사 | 계좌 정보를 처리하는 장치 및 방법 |
WO2016184029A1 (zh) * | 2015-05-18 | 2016-11-24 | 深圳市中兴微电子技术有限公司 | 支持哈希查找和路由查找的存储、查找方法和装置、存储介质 |
WO2018094777A1 (zh) * | 2016-11-25 | 2018-05-31 | 国云科技股份有限公司 | 一种证券实时交易关联分析的方法 |
KR20200009282A (ko) * | 2018-07-18 | 2020-01-30 | 주식회사 에이치티원 | 증권 직접 주문 시스템에서의 주문 데이터 처리 방법 및 이를 위한 컴퓨터 프로그램 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8079037B2 (en) * | 2005-10-11 | 2011-12-13 | Knoa Software, Inc. | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
-
2021
- 2021-01-25 CN CN202110095610.4A patent/CN112750040B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7702628B1 (en) * | 2003-09-29 | 2010-04-20 | Sun Microsystems, Inc. | Implementing a fully dynamic lock-free hash table without dummy nodes |
KR20160132532A (ko) * | 2015-05-11 | 2016-11-21 | 신한카드 주식회사 | 계좌 정보를 처리하는 장치 및 방법 |
WO2016184029A1 (zh) * | 2015-05-18 | 2016-11-24 | 深圳市中兴微电子技术有限公司 | 支持哈希查找和路由查找的存储、查找方法和装置、存储介质 |
WO2018094777A1 (zh) * | 2016-11-25 | 2018-05-31 | 国云科技股份有限公司 | 一种证券实时交易关联分析的方法 |
KR20200009282A (ko) * | 2018-07-18 | 2020-01-30 | 주식회사 에이치티원 | 증권 직접 주문 시스템에서의 주문 데이터 처리 방법 및 이를 위한 컴퓨터 프로그램 |
Non-Patent Citations (1)
Title |
---|
面向GPU的内存管理与应用;徐延东;华蓓;;电子技术(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112750040A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108389118B (zh) | 资产管理系统、方法及装置、电子设备 | |
CN110471795B (zh) | 区块链状态数据恢复方法及装置、电子设备 | |
US9378216B2 (en) | Filesystem replication using a minimal filesystem metadata changelog | |
EP2324440B1 (en) | Providing data structures for determining whether keys of an index are present in a storage system | |
CN110175188A (zh) | 一种区块链状态数据缓存和查询方法、设备及存储介质 | |
CN109359222A (zh) | 数据存储方法及系统、设备和存储介质 | |
JP6050503B2 (ja) | 階層キャッシュを用いたメールのインデックス化および検索 | |
RU2003119149A (ru) | Система и способ для предварительной выборки данных в кэш-памяти, основанной на интервале неудач | |
CN105684020B (zh) | 硬件平台中的订单账簿管理设备 | |
EP1806668B1 (en) | System and method for managing log information for transaction | |
CN106843770A (zh) | 一种分布式文件系统中小文件数据存储、读取方法及装置 | |
CN111444192B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN109767274B (zh) | 一种对海量发票数据进行关联存储的方法及系统 | |
CN105468644A (zh) | 一种用于在数据库中进行查询的方法与设备 | |
CN112750040B (zh) | 应用于内存交易系统实现线程安全的数据处理方法、系统、应用、装置、处理器及存储介质 | |
CN106599247A (zh) | LSM‑tree结构中数据文件的合并方法及装置 | |
US9767216B2 (en) | Method and system for capturing and applying changes to a data structure | |
CN113312008A (zh) | 一种文件读写业务的处理方法、系统、设备以及介质 | |
US7469256B1 (en) | Cached persistent data management through state tracking | |
CN110928923A (zh) | 一种基于区块链的数据存储方法及系统 | |
CN110597827A (zh) | 一种接口控制文件数据的存储方法及系统 | |
US20200249876A1 (en) | System and method for data storage management | |
US9710514B1 (en) | Systems and methods for efficient storage access using metadata | |
EP0820015B1 (en) | Method and apparatus for controlling storage means in information processing system | |
US20070260614A1 (en) | Lock-free implementation of an ordered single-writer multiple-readers data structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |