CN112416610A - 一种证券柜台大并发数据保存数据库的系统 - Google Patents
一种证券柜台大并发数据保存数据库的系统 Download PDFInfo
- Publication number
- CN112416610A CN112416610A CN202011370778.3A CN202011370778A CN112416610A CN 112416610 A CN112416610 A CN 112416610A CN 202011370778 A CN202011370778 A CN 202011370778A CN 112416610 A CN112416610 A CN 112416610A
- Authority
- CN
- China
- Prior art keywords
- database
- counter
- processing
- core
- data
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000014759 maintenance of location Effects 0.000 claims 4
- 238000004891 communication Methods 0.000 abstract description 2
- 230000004044 response Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于证券柜台领域。本发明提供了一种证券柜台大并发数据保存数据库的系统,包括用户和交易所,所述用户端和交易所之间通过柜台进行交互,所述柜台包括核心进程和数据库进程,所述核心进程负责报单消息的业务处理,所述数据库进程,负责把柜台的消息进行处理,组装成SQL语句最后写入数据库,所述核心进程和数据库进程连接。本发明提供的方法独立出一个数据库进程,专门负责保存延时高的数据保存工作,这样即使核心处理进程崩溃也不影响数据存储工作;保证数据高可靠,核心进程和数据库进程之间只有一个通信通道,而核心进程处理消息有多个线程,本方案使用无锁的disruptor汇聚转发,保证时延低。
Description
技术领域
本发明属于证券柜台领域,涉及一种证券柜台大并发数据保存数据库的系统。
背景技术
证券柜台特点:延时低,这个是最核心特点,报单更快的穿过柜台到达交易所才能抢占先机;瞬时并发大,有可能1毫秒内有上百个报单或者更多;数据高可靠,报单数据很重要,不能有丢失,否则资金结算错误。
现有证券柜台保存数据方案有两种。方案一:串行处理;柜台处理一个报单后再处理保存数据库,然后再处理下一个报文;由于数据库需要访问硬盘会比较慢,处理时延一般是毫秒级,而报单业务处理时延一般是微秒级,这样导致报单的整体时延被拖慢到毫秒级。
方案二:并行处理: 柜台处理一个报单后,把数据放到一个缓存的数据区,立即处理下一个报单,这样能保证报单整体时延低,同时起另一个线程来并行处理缓存的数据保存到数据库。此方案有两个问题:1)如果柜台进程出问题崩溃,此时另一个线程也会崩溃,会导致缓存中的数据丢失;不能保证高可靠;2)另外柜台是多个线程处理,这多个线程的数据都要保存到同一个缓存数据区,就需要用到锁保证不冲突,这个锁也会降低时延。
发明内容
1、所要解决的技术问题:
现有证券柜台保存数据进程多时,会导致数据丢失,保存时需要用到锁来保证不冲突,但是这个锁降低时延。
2、技术方案:
为了解决以上问题,本发明提供了一种证券柜台大并发数据保存数据库的系统,包括用户和交易所,所述用户端和交易所之间通过柜台进行交互,所述柜台包括核心进程和数据库进程,所述核心进程负责报单消息的业务处理,所述数据库进程,负责把柜台的消息进行处理,组装成SQL语句最后写入数据库,所述核心进程和数据库进程连接。
所述核心进程内有多个业务线程,每个业务线程处理一种类型的报文。
还包括转发线程,每个所述业务线程都和转发线程连接,所述转发线程都所述数据库连接,所述转发线程处理数据时将消息发送给数据库进程。
所述转发线程处理数据时通过ZeroMQ消息队列发送到数据库进程。
所述处理用户请求的第一业务线程通过无锁的disruptor发送到转发线程。
3、有益效果:
本发明提供的方法独立出一个数据库进程,专门负责保存延时高的数据保存工作,这样即使核心处理进程崩溃也不影响数据存储工作;保证数据高可靠,核心进程和数据库进程之间只有一个通信通道,而核心进程处理消息有多个线程,本方案使用无锁的disruptor汇聚转发,保证时延低。
附图说明
图1为证券柜台保存数据库的示意图。
具体实施方式
下面通过附图和实施例来对本发明进行详细说明。
如图1所示,发明提供了一种证券柜台大并发数据保存数据库的系统,包括用户和交易所,所述用户端和交易所之间通过柜台进行交互,所述柜台包括核心进程和数据库进程,所述核心进程负责报单消息的业务处理,所述数据库进程,负责把柜台的消息进行处理,组装成SQL语句最后写入数据库,所述核心进程和数据库进程连接。
实施例1
所述核心进程内有多个业务线程,每个业务线程处理一种类型的报文。如图1所示,核心进程有多个业务线程,第一业务线程接收处理用户请求的信息,并发送道转发线程,所述第二业务线程接收交易所请求的信息,并发送到转发线程,第n业务线程用于用户响应,将从交易所的响应信息发送到用户,第m业务线程用于接收交易所响应后的信息并发送到转发线程,所述转发线程将在处理数据时将消息发送到数据库进程。
核心进程内有多个业务处理线程和一个转发线程,由于有多个方向的报文,和多种类型报文,例如查询业务和交易业务,为提高效率降低时延,不同方向和类型的报文由不同线程处理。最后由转发线程发送给数据库进程处理。
由于业务线程处理和转发线程处理都是内存操作,时延都是微秒级,所以消息经过核心进程后都会立即转发到数据库进程,如果出现大并发数据比如1毫秒上百单,最后数据都会积压在数据库进程中,此时如果核心进程崩溃,并不会影响数据库进程,数据不会丢失。后续柜台进行数据恢复或者下场结算也不会有问题。
实施例2
在实施例1的基础上,
所述转发线程处理数据时通过ZeroMQ消息队列发送到数据库进程。ZeroMQ是一个基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是性能很高时延低的消息队列。数据库进程接收到zeromq消息缓存消息,并进行比较慢的数据库保存操作,经过测试,ZeroMq最大支持每秒发送500万条消息,每秒最大接收60万条消息,由于本实施实例中ZeroMq用于进程间通信,不经过网络,时延最快是微秒级。
实施例3
在实施例1或实施2的基础上,所述处理用户请求的第一业务线程通过无锁的disruptor发送到转发线程。Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,不同方向和类型的报文由不同业务线程处理,而这些多线程的数据最后都要写入一个数据区,最后由转发线程发送给数据库进程处理。所以这里会有多个业务线程和一个转发线程竞争同一个数据区,如果采用锁的方案时延比较高会影响整个柜台的时延。这里采用无锁的disruptor框架来实现,时延要低很多,普通锁的时延都是微秒甚至几十微秒级别,而本实施实例中disruptor经过测试消息写入缓存时延是百纳秒级别。
本发明系统中消息处理的时延只有业务线程处理和disruptor发送部分,而且disruptor是无锁的,整体时延在微秒级。后续的转发线程和数据库进程是并行处理的不影响时延。
虽然本发明已以较佳实施例公开如上,但它们并不是用来限定本发明的,任何熟习此技艺者,在不脱离本发明之精神和范围内,自当可作各种变化或润饰,因此本发明的保护范围应当以本申请的权利要求保护范围所界定的为准。
Claims (5)
1.一种证券柜台大并发数据保存数据库的系统,包括用户和交易所,所述用户端和交易所之间通过柜台进行交互,其特征在于:所述柜台包括核心进程和数据库进程,所述核心进程负责报单消息的业务处理,所述数据库进程,负责把柜台的消息进行处理,组装成SQL语句最后写入数据库,所述核心进程和数据库进程连接。
2.如权利要求1所述的证券柜台大并发数据保存数据库的系统,其特征在于:所述核心进程内有多个业务线程,每个业务线程处理一种类型的报文。
3.如权利要求2所述的证券柜台大并发数据保存数据库的系统,其特征在于:还包括转发线程,每个所述业务线程都和转发线程连接,所述转发线程都所述数据库连接,所述转发线程处理数据时将消息发送给数据库进程。
4.如权利要求3所述的证券柜台大并发数据保存数据库的系统,其特征在于:所述转发线程处理数据时通过ZeroMQ消息队列发送到数据库进程。
5.如权利要求3所述的证券柜台大并发数据保存数据库的系统,其特征在于:所述处理用户请求的第一业务线程通过无锁的disruptor发送到转发线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011370778.3A CN112416610A (zh) | 2020-11-30 | 2020-11-30 | 一种证券柜台大并发数据保存数据库的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011370778.3A CN112416610A (zh) | 2020-11-30 | 2020-11-30 | 一种证券柜台大并发数据保存数据库的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112416610A true CN112416610A (zh) | 2021-02-26 |
Family
ID=74830525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011370778.3A Pending CN112416610A (zh) | 2020-11-30 | 2020-11-30 | 一种证券柜台大并发数据保存数据库的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416610A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170116255A1 (en) * | 2015-10-23 | 2017-04-27 | Oracle International Corporation | System and method for use of lock-less techniques with a multidimensional database |
CN109544037A (zh) * | 2018-12-19 | 2019-03-29 | 上海金融期货信息技术有限公司 | 一种无侵入式证券期货交易事前风控网关系统 |
CN109831394A (zh) * | 2017-11-23 | 2019-05-31 | 杭州华为数字技术有限公司 | 数据处理方法、终端以及计算机存储介质 |
-
2020
- 2020-11-30 CN CN202011370778.3A patent/CN112416610A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170116255A1 (en) * | 2015-10-23 | 2017-04-27 | Oracle International Corporation | System and method for use of lock-less techniques with a multidimensional database |
CN109831394A (zh) * | 2017-11-23 | 2019-05-31 | 杭州华为数字技术有限公司 | 数据处理方法、终端以及计算机存储介质 |
CN109544037A (zh) * | 2018-12-19 | 2019-03-29 | 上海金融期货信息技术有限公司 | 一种无侵入式证券期货交易事前风控网关系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103577551B (zh) | 一种数据批量提交到数据库的方法和装置 | |
CN106777026B (zh) | 支持微服务架构事务最终一致性的方法、装置及系统 | |
US8621484B2 (en) | Handling potential deadlocks and correctness problems of reduce operations in parallel systems | |
US6671767B2 (en) | Storage subsystem, information processing system and method of controlling I/O interface | |
CN114116665B (zh) | 数据库中并行写入事务日志以提升处理效率的方法 | |
EP2432155B1 (en) | Call list transmission processing method and system of charging system | |
CN110535924B (zh) | 一种轨道交通服务器通信方法及系统 | |
CN100501685C (zh) | 用于在奇偶错误检测之后维持数据完整性的装置和方法 | |
CN104392377A (zh) | 一种云交易系统 | |
US20130318059A1 (en) | Transfer of data from transactional data sources to partitioned databases in restartable environment | |
AU2021320315A1 (en) | Electronic trading system and method based on point-to-point mesh architecture | |
KR101499890B1 (ko) | Low Latency 프레임워크 시스템 | |
CN112416610A (zh) | 一种证券柜台大并发数据保存数据库的系统 | |
US9201745B2 (en) | Method of improving replica server performance and a replica server system | |
CN112116471B (zh) | 一种证券算法交易过程中的实时算法交易总线系统 | |
CN114138833A (zh) | 用于关系型数据库与缓存数据库数据同步的方法及系统 | |
CN116633875B (zh) | 一种多业务耦合并发通信的时间保序调度方法 | |
CN113742043A (zh) | 一种服务器后端任务异步拆分方法 | |
CN104115127A (zh) | 存储系统和数据管理方法 | |
CN102591740B (zh) | 用于从主站向次站备份事务块的系统和方法 | |
CN116827880A (zh) | 一种缓存空间管理方法及装置 | |
CN114844907B (zh) | 一种基于mq异步收发的银行交易高速低连接数实现方法 | |
CN111698301A (zh) | 一种保证服务延续的服务管理方法、装置及存储介质 | |
CN110389861A (zh) | 用于审计日志的智能备份系统 | |
CN112132685B (zh) | 信息处理方法及装置、计算机设备及计算机可读存储介质 |
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 |