CN103186475A - 海量数据的接收存储方法及系统 - Google Patents

海量数据的接收存储方法及系统 Download PDF

Info

Publication number
CN103186475A
CN103186475A CN2011104521837A CN201110452183A CN103186475A CN 103186475 A CN103186475 A CN 103186475A CN 2011104521837 A CN2011104521837 A CN 2011104521837A CN 201110452183 A CN201110452183 A CN 201110452183A CN 103186475 A CN103186475 A CN 103186475A
Authority
CN
China
Prior art keywords
data
buffer memory
cache module
user data
user
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
CN2011104521837A
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.)
SHENZHEN YUNFAN CENTURY TECHNOLOGY CO., LTD.
Original Assignee
Shenzhen QVOD Technology 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 Shenzhen QVOD Technology Co Ltd filed Critical Shenzhen QVOD Technology Co Ltd
Priority to CN2011104521837A priority Critical patent/CN103186475A/zh
Publication of CN103186475A publication Critical patent/CN103186475A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种海量数据的接收存储方法,包括:为用户请求分配缓存标识;将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块;当所述缓存模块达到缓存上限时,将所述缓存模块中已缓存的用户数据进行数据入库处理。本发明还公开了一种海量数据的接收存储系统,该方法和系统可以减少数据接收和存储时的数据丢失问题,提高数据安全性。

Description

海量数据的接收存储方法及系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种海量数据的接收存储方法及系统。
背景技术
在现有的数据处理应用中,一般要经过数据接收、存储和处理三个大步骤,其中在接收和存储过程中,由于现有的方法一般采用数据实时接收和存储的方式,即通过数据接收端口,例如用于接收用户请求并产生用户数据的网页(web)程序,将用户数据实时发送给数据存储服务器,数据存储服务器对用户数据进行实时存储入库;然而,对于这样的接收存储方式,在接收过程中,容易在大量用户高并发请求时造成数据拥挤而丢失用户数据,或者在数据实时存储时,容易在数据存储服务器上造成硬盘IO过高而出现延时或卡死状态,影响数据安全性。
发明内容
有鉴于此,本发明提供了一种海量数据的接收存储方法及系统,可以减少数据接收和存储时的数据丢失问题,提高数据安全性。
为达上述目的,本发明的技术方案具体是这样实现的:
一种海量数据的接收存储方法,该方法包括:
为用户请求分配缓存标识;
将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块;
当所述缓存模块达到缓存上限时,将所述缓存模块中已缓存的用户数据进行数据入库处理。
较佳地,所述将用户数据写入所述缓存标识对应的缓存模块,包括:
读取所述缓存标识对应的缓存模块的缓存状态值,若所述缓存状态值达到预设的最大值,则将已缓存的用户数据写入数据服务器,清空缓存之后,将所述待缓存的用户数据写入所述缓存模块;若未达到预设的最大值,则对该缓存模块加锁,将待缓存的用户数据写入到该缓存模块后解除锁定。
较佳地,所述数据入库处理包括:
将所述缓存模块中缓存的所有用户数据写入数据服务器中,并清空缓存;
定时将所述数据服务器中保存的用户数据转移到临时数据库;
定时对所述临时数据库中保存的用户数据进行汇总和过滤,并将得到的最终用户数据写入正式数据库。
较佳地,该方法进一步包括:
定时检查所述缓存模块是否正常,若不正常,则将缓存模块将已缓存的用户数据写入数据服务器并清空缓存。
较佳地,所述不正常包括:
缓存的用户数据与预设的结构不同、缓存状态值不在预设的最大值之内、或缓存模块状态异常之中任意一项或多项。
较佳地,所述数据服务器中的用户数据以多个数据文件形式分布在不同硬盘中。
一种海量数据的接收存储系统,该系统包括:接口模块、多个缓存模块和数据存储模块;
所述接口模块,为用户请求分配缓存标识;并根据所述缓存标识,将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块;当所述缓存模块达到缓存上限时,指令所述缓存模块将已缓存的用户数据转移到所述数据存储模块;
所述缓存模块,用于缓存用户数据;根据所述接口模块的指令,将缓存的所有用户数据转移到所述数据存储模块;
所述数据存储模块,用于对从所述缓存模块接收到的用户数据进行数据入库处理。
较佳地,所述接口模块包括:
标识分配单元,用于接收用户请求,并为用户请求随机分配缓存标识;
缓存状态获取单元,用于读取所述缓存标识对应的缓存模块的缓存状态值;
数据写入单元,若所述缓存状态值达到预设的最大值,则指令所述缓存模块将已缓存的用户数据写入数据存储模块,清空缓存之后,将所述待缓存的用户数据写入所述缓存模块;若未达到预设的最大值,则对该缓存模块加锁,将待缓存的用户数据写入到该缓存模块后解除锁定。
较佳地,所述数据存储模块包括:数据服务器、临时数据库和正式数据库;
所述数据服务器,用于保存所述缓存模块写入的用户数据,并定时将自身保存的用户数据转移到临时数据库;
所述临时数据库,用于保存所述缓存模块写入的用户数据,并定时对自身保存的用户数据进行汇总和过滤,并将得到的最终用户数据写入正式数据库;
所述正式数据库,用于保存所述临时数据库写入的最终用户数据。
较佳地,所述接口模块进一步包括:
缓存检查单元,定时检查所述缓存模块是否正常,若不正常,则指令缓存模块将已缓存的用户数据写入数据服务器并清空缓存。
较佳地,所述缓存检查单元,在所述缓存模块缓存的用户数据与预设的结构不同、缓存状态值不在预设的最大值之内、或缓存模块状态异常之中任意一项或多项发生时,判定所述缓存模块不正常。
较佳地,所述数据服务器中的用户数据以多个数据文件形式分布在不同硬盘中。
由上述技术方案可见,本发明的这种海量数据的接收存储方法及系统,在用户数据的接收到正式存储入库之间对用户数据进行缓存,且同时通过对用户数据分配不同的缓存标识,从而将用户的数据均衡分配到不同的缓存模块中缓存,从而减少高并发用户请求可能造成的数据拥挤丢失。更进一步地,通过将用户数据形成的数据库文件分布在不同存储介质上,可以降低同一存储介质的并发IO数量,减少存储过程的延迟和卡死,提高数据安全性。
附图说明
图1为本发明实施例的海量数据接收存储方法流程图。
图2为本发明实施例的海量数据接收存储系统结构示意图。
图3为本发明实施例的接口模块结构示意图。
图4为本发明实施例的数据存储模块结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明主要是在用户数据的接收到正式存储入库之间对用户数据进行缓存,且同时通过对用户数据分配不同的缓存标识,从而将用户的数据均衡分配到不同的缓存模块中缓存,从而减少高并发用户请求可能造成的数据拥挤丢失。更进一步地,通过将用户数据形成的数据库文件分布在不同存储介质上,可以降低同一存储介质的并发IO数量,减少存储过程的延迟和卡死,提高数据安全性。
图1为本发明的海量数据接收存储方法流程图,如图1所示,该方法包括如下步骤:
步骤101,为用户请求分配缓存标识;
当用户请求数据时,对用户的请求分配缓存标识,具体分配方法可以随机分配,或者按照预设的规则分配,例如有9个缓存模块,则分配时,可以从第一个缓存模块开始按顺序分配,具体分配方式任意,且缓存标识的具体形式任意,数字、字母等都可以。
步骤102,将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块;
具体写入时,可以根据缓存模块的状态来写入,如果缓存已满,则需要先将缓存模块内的已缓存的用户数据转移并清空缓存后再写入;具体例如,可以先读取所述缓存标识对应的缓存模块的缓存状态值,若所述缓存状态值达到预设的最大值,则将已缓存的用户数据写入数据服务器,清空缓存之后,将所述待缓存的用户数据写入所述缓存模块;若未达到预设的最大值,则对该缓存模块加锁,将待缓存的用户数据写入到该缓存模块后解除锁定。加锁的作用是避免同时操作缓存模块,造成数据丢失。
步骤103,当所述缓存模块达到缓存上限时,将所述缓存模块中已缓存的用户数据进行数据入库处理。
具体入库处理即将缓存的用户数据保存到正式的数据库中,在入库过程可以将用户数据直接入库,也可以在入库之前也进一步对数据进行缓存和处理后再入库,例如可以先将所述缓存模块中已缓存的用户数据写入数据服务器,并清空缓存;
数据服务器定时将从缓存模块接收到的用户数据转移到临时数据库;
并定时对所述临时数据库中保存的用户数据进行汇总和过滤,并将得到的最终用户数据写入正式数据库。
另外,为了进一步减少存储介质的并发IO,所述数据服务器中的用户数据可以以多个数据文件形式分布在不同的存储介质,如硬盘、SSD中。
为进一步提高数据安全性,避免缓存问题,还可以定时检查所述缓存模块是否正常,若不正常,则将缓存模块已缓存的用户数据写入数据服务器并清空缓存。不正常可以包括:缓存的用户数据与预设的结构不同、缓存状态值不在预设的最大值之内、或缓存模块状态异常之中任意一项或多项。
另外,对于web应用,用户在请求网址时,还可以进一步在域名解析时,将使用不同网络的用户分流到对应网络内的web应用服务器,从而进一步分流用户请求。
本发明还提供一种海量数据的接收存储系统,如图2所示,该系统包括:接口模块201、多个缓存模块202和数据存储模块203;
所述接口模块201,为用户请求分配缓存标识;并根据所述缓存标识,将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块202;当所述缓存模块达到缓存上限时,指令所述缓存模块将已缓存的用户数据转移到所述数据存储模块203;
所述缓存模块202,用于缓存用户数据;根据所述接口模块的指令,将缓存的所有用户数据转移到所述数据存储模块203;
所述数据存储模块203,用于对从所述缓存模块202接收到的用户数据进行数据入库处理。
其中,所述接口模块201如图3所示,包括:
标识分配单元301,用于接收用户请求,并为用户请求随机分配缓存标识;
缓存状态获取单元302,与所述标识分配单元301相连,用于读取所述缓存标识对应的缓存模块202的缓存状态值;
数据写入单元303,与所述缓存状态获取单元302相连,若所述缓存状态值达到预设的最大值,则指令所述缓存模块202将已缓存的用户数据写入数据存储模块203,清空缓存之后,将待缓存的用户数据写入缓存模块202;若未达到预设的最大值,则对该缓存模块202加锁,将数据写入到该缓存模块202后解除锁定。
作为另一实施例,所述接口模块201可以进一步包括:
缓存检查单元304,定时检查所述缓存模块202是否正常,若不正常,则指令缓存模块202将已缓存的用户数据写入数据存储模块203并清空缓存。
其中,所述缓存检查单元304,在所述缓存模块202缓存的用户数据与预设的结构不同、缓存状态值不在预设的最大值之内、或缓存模块状态异常之中任意一项或多项发生时,判定所述缓存模块202不正常,具体检查缓存可以通过计划任务完成。
所述数据存储模块203如图4所示,包括:数据服务器401、临时数据库402和正式数据库403;
所述数据服务器401,用于保存所述缓存模块202写入的用户数据,并定时将自身保存的用户数据转移到临时数据库402;较佳地,所述数据服务器401中的用户数据以多个数据文件形式分布在不同硬盘中。
所述临时数据库402,用于保存所述缓存模块202写入的用户数据,并定时对自身保存的用户数据进行汇总和过滤,并将得到的最终用户数据写入正式数据库403;
所述正式数据库403,用于保存所述临时数据库402写入的最终用户数据。
对于web应用,上述接口模块201可以通过web程序如PHP程序实现,多个缓存模块202可以通过一台服务器启动多线程实现,也可以通过多台服务器如Memcached服务器实现。数据存储模块203则可以通过数据库服务器如sqlserver服务器实现。
另外,与方法实施例相应地,接口模块201也可以有多个,分布在不同网络内,用户在请求网址时,可以进一步在域名解析时,将使用不同网络的用户分流到对应网络内的接口模块如web服务器,从而进一步分流用户请求。
由上述的实施例可见,本发明的这种海量数据的接收存储方法及系统,在用户数据的接收到正式存储入库之间对用户数据进行缓存,且同时通过对用户数据分配不同的缓存标识,从而将用户的数据均衡分配到不同的缓存模块中缓存,从而减少高并发用户请求可能造成的数据拥挤丢失。更进一步地,通过将用户数据形成的数据库文件分布在不同存储介质上,可以降低同一存储介质的并发IO数量,减少存储过程的延迟和卡死,提高数据安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (12)

1.一种海量数据的接收存储方法,其特征在于,该方法包括:
为用户请求分配缓存标识;
将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块;
当所述缓存模块达到缓存上限时,将所述缓存模块中已缓存的用户数据进行数据入库处理。
2.如权利要求1所述的海量数据的接收存储方法,其特征在于,所述将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块,包括:
读取所述缓存标识对应的缓存模块的缓存状态值,若所述缓存状态值达到预设的最大值,则将所有已缓存的用户数据写入数据服务器,清空缓存之后,将所述待缓存的用户数据写入所述缓存模块;若未达到预设的最大值,则对该缓存模块加锁,将待缓存的用户数据写入到该缓存模块后解除锁定。
3.如权利要求1所述的海量数据的接收存储方法,其特征在于,所述数据入库处理包括:
将所述缓存模块中缓存的所有用户数据写入数据服务器中,并清空缓存;
定时将所述数据服务器中保存的用户数据转移到临时数据库;
定时对所述临时数据库中保存的用户数据进行汇总和过滤,并将得到的最终用户数据写入正式数据库。
4.如权利要求3所述的海量数据的接收存储方法,其特征在于,该方法进一步包括:
定时检查所述缓存模块是否正常,若不正常,则将缓存模块将已缓存的用户数据写入数据服务器并清空缓存。
5.如权利要求4所述的海量数据的接收存储方法,其特征在于,所述不正常包括:
缓存的用户数据与预设的结构不同、缓存状态值不在预设的最大值之内、或缓存模块状态异常之中任意一项或多项。
6.如权利要求4所述的海量数据的接收存储方法,其特征在于,所述数据服务器中的用户数据以多个数据文件形式分布在不同硬盘中。
7.一种海量数据的接收存储系统,其特征在于,该系统包括:接口模块、多个缓存模块和数据存储模块;
所述接口模块,为用户请求分配缓存标识;并根据所述缓存标识,将根据用户请求产生的用户数据写入所述缓存标识对应的缓存模块;当所述缓存模块达到缓存上限时,指令所述缓存模块将已缓存的用户数据转移到所述数据存储模块;
所述缓存模块,用于缓存用户数据;根据所述接口模块的指令,将缓存的所有用户数据转移到所述数据存储模块;
所述数据存储模块,用于对从所述缓存模块接收到的用户数据进行数据入库处理。
8.如权利要求7所述的海量数据的接收存储系统,其特征在于,所述接口模块包括:
标识分配单元,用于接收用户请求,并为用户请求随机分配缓存标识;
缓存状态获取单元,用于读取所述缓存标识对应的缓存模块的缓存状态值;
数据写入单元,若所述缓存状态值达到预设的最大值,则指令所述缓存模块将已缓存的用户数据写入数据服务器,清空缓存之后,将所述待缓存的用户数据写入所述缓存模块;若未达到预设的最大值,则对该缓存模块加锁,将待缓存的用户数据写入到该缓存模块后解除锁定。
9.如权利要求7所述的海量数据的接收存储系统,其特征在于,所述数据存储模块包括:数据服务器、临时数据库和正式数据库;
所述数据服务器,用于保存所述缓存模块写入的用户数据,并定时将自身保存的用户数据转移到临时数据库;
所述临时数据库,用于保存所述缓存模块写入的用户数据,并定时对自身保存的用户数据进行汇总和过滤,并将得到的最终用户数据写入正式数据库;
所述正式数据库,用于保存所述临时数据库写入的最终用户数据。
10.如权利要求8所述的海量数据的接收存储系统,其特征在于,所述接口模块进一步包括:
缓存检查单元,定时检查所述缓存模块是否正常,若不正常,则指令缓存模块将已缓存的用户数据写入数据服务器并清空缓存。
11.如权利要求10所述的海量数据的接收存储系统,其特征在于,所述缓存检查单元,在所述缓存模块缓存的用户数据与预设的结构不同、缓存状态值不在预设的最大值之内、或缓存模块状态异常之中任意一项或多项发生时,判定所述缓存模块不正常。
12.如权利要求9所述的海量数据的接收存储系统,其特征在于,所述数据服务器中的用户数据以多个数据文件形式分布在不同硬盘中。
CN2011104521837A 2011-12-29 2011-12-29 海量数据的接收存储方法及系统 Pending CN103186475A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104521837A CN103186475A (zh) 2011-12-29 2011-12-29 海量数据的接收存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104521837A CN103186475A (zh) 2011-12-29 2011-12-29 海量数据的接收存储方法及系统

Publications (1)

Publication Number Publication Date
CN103186475A true CN103186475A (zh) 2013-07-03

Family

ID=48677651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104521837A Pending CN103186475A (zh) 2011-12-29 2011-12-29 海量数据的接收存储方法及系统

Country Status (1)

Country Link
CN (1) CN103186475A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914565A (zh) * 2014-04-21 2014-07-09 北京搜狐新媒体信息技术有限公司 一种向数据库插入数据的方法及装置
CN109634140A (zh) * 2018-12-25 2019-04-16 珠海格力电器股份有限公司 运行环境数据的更新方法、装置、机组及计算机设备
CN110888603A (zh) * 2019-11-27 2020-03-17 深圳前海环融联易信息科技服务有限公司 高并发数据写入方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187935A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for fragment linking and fragment caching
CN1932812A (zh) * 2005-09-16 2007-03-21 腾讯科技(深圳)有限公司 一种日志保存方法及装置
CN101046807A (zh) * 2006-03-31 2007-10-03 华为技术有限公司 存储数据已读的方法及装置
CN101741986A (zh) * 2009-12-31 2010-06-16 优视科技有限公司 一种用于移动通讯设备终端的页面缓存方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187935A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for fragment linking and fragment caching
CN1932812A (zh) * 2005-09-16 2007-03-21 腾讯科技(深圳)有限公司 一种日志保存方法及装置
CN100449543C (zh) * 2005-09-16 2009-01-07 腾讯科技(深圳)有限公司 一种日志保存方法及装置
CN101046807A (zh) * 2006-03-31 2007-10-03 华为技术有限公司 存储数据已读的方法及装置
CN101741986A (zh) * 2009-12-31 2010-06-16 优视科技有限公司 一种用于移动通讯设备终端的页面缓存方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103914565A (zh) * 2014-04-21 2014-07-09 北京搜狐新媒体信息技术有限公司 一种向数据库插入数据的方法及装置
CN109634140A (zh) * 2018-12-25 2019-04-16 珠海格力电器股份有限公司 运行环境数据的更新方法、装置、机组及计算机设备
CN110888603A (zh) * 2019-11-27 2020-03-17 深圳前海环融联易信息科技服务有限公司 高并发数据写入方法、装置、计算机设备及存储介质
CN110888603B (zh) * 2019-11-27 2024-01-16 深圳前海环融联易信息科技服务有限公司 高并发数据写入方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN102549552B (zh) 用于处理流感知网络节点中的数据分组的方法
CN103246616B (zh) 一种长短周期访问频度的全局共享缓存替换方法
CN102843396B (zh) 一种分布式缓存系统中的数据写入及读取方法及装置
CN104572727B (zh) 一种数据查询方法及装置
CN108231109B (zh) 动态随机存取存储器dram的刷新方法、设备以及系统
CN109783004A (zh) 数据储存装置与存储器装置的数据处理方法
US20120324160A1 (en) Method for data access, message receiving parser and system
CN104317736B (zh) 一种分布式文件系统多级缓存实现方法
CN102831088A (zh) 基于混合存储器的数据迁移方法和装置
CN103116552A (zh) 用于在分布式存储系统中分配存储空间的方法和装置
CN103116555B (zh) 基于多体并行缓存结构的数据访问方法
CN107179878A (zh) 基于应用优化的数据存储的方法和装置
CN102982182A (zh) 一种数据存储规划方法及装置
CN104270412A (zh) 一种基于Hadoop分布式文件系统的三级缓存方法
CN102866923B (zh) 对称多核的高效一致性侦听过滤装置
CN102387179A (zh) 分布式文件系统及其结点、存储方法和存储控制方法
CN104866528B (zh) 多平台数据采集方法及系统
CN104572505A (zh) 一种保证海量数据缓存最终一致性的系统及方法
CN106201335A (zh) 存储系统
CN109471843A (zh) 一种元数据缓存方法、系统及相关装置
CN103186475A (zh) 海量数据的接收存储方法及系统
CN106897022B (zh) 一种管理存储设备的方法及装置
CN103500177A (zh) 一种用户激活数的统计方法及装置
CN104239173A (zh) Cpu的总线测试装置及其方法
CN101827120A (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
ASS Succession or assignment of patent right

Owner name: SHENZHEN YUNFAN CENTURY TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SHENZHEN KUAIBO TECHNOLOGY CO., LTD.

Effective date: 20140918

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20140918

Address after: 518057 Guangdong, Shenzhen, Futian District, No. 3013 Yitian Road, South Plaza, building A room, room 1605

Applicant after: SHENZHEN YUNFAN CENTURY TECHNOLOGY CO., LTD.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District Gao Xin Road No. 009 Chinese Technology Development Institute Technology Park building three, floor 22, tower A

Applicant before: SHENZHEN QVOD TECHNOLOGY Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130703