CN106445703A - 一种解决数据传输中防并发脏读方法 - Google Patents

一种解决数据传输中防并发脏读方法 Download PDF

Info

Publication number
CN106445703A
CN106445703A CN201610842168.6A CN201610842168A CN106445703A CN 106445703 A CN106445703 A CN 106445703A CN 201610842168 A CN201610842168 A CN 201610842168A CN 106445703 A CN106445703 A CN 106445703A
Authority
CN
China
Prior art keywords
data
thread
data transmission
transmission
data transfer
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
Application number
CN201610842168.6A
Other languages
English (en)
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.)
Jinan Inspur Hi Tech Investment and Development Co Ltd
Original Assignee
Jinan Inspur Hi Tech Investment and Development 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 Jinan Inspur Hi Tech Investment and Development Co Ltd filed Critical Jinan Inspur Hi Tech Investment and Development Co Ltd
Priority to CN201610842168.6A priority Critical patent/CN106445703A/zh
Publication of CN106445703A publication Critical patent/CN106445703A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种解决数据传输中防并发脏读方法,属于数据传输保障技术,本发明包括多线程下数据读取后立即锁定;在数据正式开始传输前再根据线程唯一码获取一遍数据;数据传输;数据传输完毕。本发明实现了在系统间多线程传输数据的情况下,数据准确、无重复的保障机制。接口无需采用事务隔离机制,而是通过不同线程对数据增加独占标记、传输、传输完毕后释放独占标记的机制来实现。

Description

一种解决数据传输中防并发脏读方法
技术领域
本发明涉及数据传输保障技术,尤其涉及一种解决数据传输中防并发脏读方法。通过一种更可靠、更高效的技术,保证数据传递的准确性与高效性,使得数据不被多线程重复传输。
背景技术
在业界存在大量的系统之间数据传输、数据对接的应用场景。对于多线程情况下的防止数据“重复读”、“重复传输”方面,一般都是采用数据库的事务隔离来实现。事务的隔离级别可以做到避免脏读、未提交读、不可重复读和幻读。但是事务隔离级别越高,对性能的影响也会越大。
在资金支付业务下、尤其是每日几十万笔支付请求的情况下,要求数据必须快速、准确、无重复的被传输。如果处理比好,轻的造成数据传输效率低下而满足不了业务处理需要,严重的情况会造成重复付款,给用户带来直接的经济损失。
发明内容
为了解决该问题,本发明提出了一种解决数据传输中防并发脏读方法。发明即对该种情况进行了深入分析后,提出的处理机制,能够保证系统之间数据传递时,更加的准确(指不重复)、高效。
主要通过以下步骤完成:
1、多线程下数据读取后立即锁定
每个线程在数据库中取出符合条件的数据(一般是传输状态为未传输、传输失败的情况,以及数据锁定字段没有“线程唯一码”)。数据读取后立即将该线程的唯一码更新到数据锁定字段上。
注意:此处在更新锁定字段的时间间歇,有可能被另一线程读取。本实现机制是允许此类情况发生的,因为后面步骤会进一步过滤掉。
2、在数据正式开始传输前再根据线程唯一码获取一遍数据
根据第1步中更新的“线程唯一码”,获取真正能够被该线程传输的数据。主要目的是排除从线程读取到锁定期间被其他线程再次读取的情况。
3、数据传输
根据2中获取到的允许被该线程传输的数据,执行传输处理逻辑。
4、数据传输完毕
数据传输完毕后,一方面需要更新相应记录的“传输状态”,另一方面需要将相应记录的数据锁定字段的值清空。
本发明的有益效果是
在多线程读取并传输同一组数据时,不会出现多次读取及多次传输而导致的数据重复性问题;
读取数据后立即加上“线程唯一码”;
传输数据前再次根据唯一码获取一遍数据,进一步防止因并发而导致的重复性可能;
类似于先到先得的原则。
多线程并发的情况下,数据传输更加高效;
多线程之间数据读取,因省略了“事务隔离控制”的方式,所以数据读取与处理性能更高;
采用“线程唯一码”锁定数据的方式,能够保证数据不被重复传输。
附图说明
图1是本发明的实现逻辑图。
具体实施方式
下面对本发明的内容进行更加详细的阐述:
一种解决数据传输中防并发脏读方法包括以下内容和步骤:
A、系统数据传输流程,如附图1所示。
B、下面是解决数据传输中防并发脏读技术的实现方法。
1、读取待传输的数据。
关键字定义表
字段编号 字段名称 字段类型 说明
dataID 单据ID Varchar(36) 当前单据ID
syncField 占用字段 Varchar(36) 当前记录的加锁字段
部分逻辑处理如下:
2、锁定第1步读取的数据。
部分处理逻辑如下:
3、数据校验完毕后,在正式传输前需要根据第二步中的guid码再次获取待传输数据。
4、数据传输完毕后,根据传输的结果来更新数据传输状态、清空已写入的线程唯一码。代码略。

Claims (3)

1.一种解决数据传输中防并发脏读方法,其特征在于,
包括以下步骤:
1)多线程下数据读取后立即锁定
每个线程在数据库中取出符合条件的数据;数据读取后立即将该线程的唯一码更新到数据锁定字段上;
2)在数据正式开始传输前再根据线程唯一码获取一遍数据;
3)数据传输
根据步骤2)中获取到的允许被该线程传输的数据,执行传输处理逻辑;
4)数据传输完毕
数据传输完毕后,一方面需要更新相应记录的传输状态,另一方面需要将相应记录的数据锁定字段的值清空。
2.根据权利要求1所述的方法,其特征在于,
步骤1)中的数据是传输状态为未传输、传输失败的情况,以及数据锁定字段没有线程唯一码。
3.根据权利要求1所述的方法,其特征在于,
在步骤2)中,根据步骤1)中更新的“程唯一码,获取真正能够被该线程传输的数据;主要目的是排除从线程读取到锁定期间被其他线程再次读取的情况。
CN201610842168.6A 2016-09-22 2016-09-22 一种解决数据传输中防并发脏读方法 Pending CN106445703A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610842168.6A CN106445703A (zh) 2016-09-22 2016-09-22 一种解决数据传输中防并发脏读方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610842168.6A CN106445703A (zh) 2016-09-22 2016-09-22 一种解决数据传输中防并发脏读方法

Publications (1)

Publication Number Publication Date
CN106445703A true CN106445703A (zh) 2017-02-22

Family

ID=58166863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610842168.6A Pending CN106445703A (zh) 2016-09-22 2016-09-22 一种解决数据传输中防并发脏读方法

Country Status (1)

Country Link
CN (1) CN106445703A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446183A (zh) * 2017-08-31 2019-03-08 北京京东尚科信息技术有限公司 全局防重的方法和装置
CN111880675A (zh) * 2020-06-19 2020-11-03 维沃移动通信(杭州)有限公司 界面显示方法、装置及电子设备
CN113505134A (zh) * 2021-05-21 2021-10-15 武汉旷视金智科技有限公司 多线程数据处理方法、多线程底库数据入库方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1661562A (zh) * 2004-02-23 2005-08-31 鸿富锦精密工业(深圳)有限公司 多线程发送资料系统及方法
CN1853166A (zh) * 2003-09-30 2006-10-25 英特尔公司 用于多线程的线程管理的方法和装置
CN104376086A (zh) * 2014-11-19 2015-02-25 浪潮(北京)电子信息产业有限公司 数据处理方法和装置
CN105700939A (zh) * 2016-04-21 2016-06-22 北京京东尚科信息技术有限公司 一种分布式系统中多线程同步的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1853166A (zh) * 2003-09-30 2006-10-25 英特尔公司 用于多线程的线程管理的方法和装置
CN1661562A (zh) * 2004-02-23 2005-08-31 鸿富锦精密工业(深圳)有限公司 多线程发送资料系统及方法
CN104376086A (zh) * 2014-11-19 2015-02-25 浪潮(北京)电子信息产业有限公司 数据处理方法和装置
CN105700939A (zh) * 2016-04-21 2016-06-22 北京京东尚科信息技术有限公司 一种分布式系统中多线程同步的方法和系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446183A (zh) * 2017-08-31 2019-03-08 北京京东尚科信息技术有限公司 全局防重的方法和装置
CN109446183B (zh) * 2017-08-31 2022-04-26 北京京东尚科信息技术有限公司 全局防重的方法和装置
CN111880675A (zh) * 2020-06-19 2020-11-03 维沃移动通信(杭州)有限公司 界面显示方法、装置及电子设备
CN111880675B (zh) * 2020-06-19 2024-03-15 维沃移动通信(杭州)有限公司 界面显示方法、装置及电子设备
CN113505134A (zh) * 2021-05-21 2021-10-15 武汉旷视金智科技有限公司 多线程数据处理方法、多线程底库数据入库方法及装置
CN113505134B (zh) * 2021-05-21 2023-02-24 武汉旷视金智科技有限公司 多线程数据处理方法、多线程底库数据入库方法及装置

Similar Documents

Publication Publication Date Title
CN105761139A (zh) 对账系统及方法
CN110362617B (zh) 基于多并发技术从数据库快速导出批量数据方法和系统
CN106445703A (zh) 一种解决数据传输中防并发脏读方法
US20110119675A1 (en) Concurrent Data Processing and Electronic Bookkeeping
CN107403379B (zh) 一种数据处理方法、装置和区块链核心分布式系统
CN107993147A (zh) 热点账户的余额控制方法及装置
DE102012210420A1 (de) Verfahren für ein systemeigenes Programm für das Übernehmen desselben Transaktionskontextes, wenn durch das in einer separaten Umgebung laufende primäre Programm aufgerufen
TWI687875B (zh) 分布式事務處理方法及裝置
CN101350022B (zh) 基于数据库逻辑锁的变更处理方法
CN110188103A (zh) 数据对账方法、装置、设备和存储介质
CN105701294B (zh) 实现芯片复杂工程修改的方法及系统
CN106095678A (zh) 用于Windows平台下数据库业务操作的自动化结果检查方法
CN111241083A (zh) 票据清算方法、装置、电子设备及计算机可读存储介质
CN106096997A (zh) 清单组价方法、系统及装置
CN108415758B (zh) 分布式事务协调方法及装置
CN110162532B (zh) 交易数据处理方法和设备
CN106293995A (zh) 制造执行系统的数据备份系统及方法
CN109542922B (zh) 针对实时服务数据的处理方法及相关系统
US9384228B2 (en) Implementing a multi-column/multi-row constraint in a relational database table
CN102629362A (zh) 一种企业年金账户管理系统中实现灵活账户结构的方法
CN112099934A (zh) 一种批处理方法、系统、计算机设备及存储介质
CN102193987A (zh) 基于oltp的增加节点数据关系的方法及系统
KR101456189B1 (ko) 특허 평가 엔진을 이용한 특허 자동 평가 방법 및 평가 서버
CN115965451A (zh) 数据核检方法、装置、电子设备、介质和程序产品
CN111475578B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170222