高并发数据写入方法、装置、计算机设备及存储介质.pdf

上传人:小*** 文档编号:10893297 上传时间:2021-08-26 格式:PDF 页数:18 大小:999.63KB
收藏 版权申诉 举报 下载
高并发数据写入方法、装置、计算机设备及存储介质.pdf_第1页
第1页 / 共18页
高并发数据写入方法、装置、计算机设备及存储介质.pdf_第2页
第2页 / 共18页
高并发数据写入方法、装置、计算机设备及存储介质.pdf_第3页
第3页 / 共18页
文档描述:

《高并发数据写入方法、装置、计算机设备及存储介质.pdf》由会员分享,可在线阅读,更多相关《高并发数据写入方法、装置、计算机设备及存储介质.pdf(18页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911182246.4 (22)申请日 2019.11.27 (71)申请人 深圳前海环融联易信息科技服务有 限公司 地址 518000 广东省深圳市前海深港合作 区前湾一路1号A栋201室 (入驻深圳市 前海商务秘书有限公司) (72)发明人 孙朝和申志彬李如先 (74)专利代理机构 深圳市精英专利事务所 44242 代理人 涂年影 (51)Int.Cl. G06F 3/06(2006.01) (54)发明名称 高并发数据写入方法、 装置、 计算机设备及 存储介质 (57。

2、)摘要 本发明公开了高并发数据写入方法、 装置、 计算机设备及存储介质, 其中, 方法包括: 接收到 数据写入请求时判断字节缓存数组是否添加数 据锁; 若未添加数据锁, 根据数据写入请求对字 节缓存数组添加数据锁; 根据字节数据获取规则 将从客户端获取的待写入数据转换为待存储字 节数据后写入字节缓存数组, 若字节缓存数组已 存满, 将字节备份数组与所述字节缓存数组进行 调转, 将未写入的待存储字节数据写入字节备份 数组; 对字节缓存数组中所存储的字节数据进行 持久化存储。 通过上述方法, 采用两个字节数组 进行轮换写入待存储字节数据, 缩短了高并发数 据写入时数据锁的占用时间, 避免数据写入内。

3、存 时发送阻塞, 从而大幅提高了高并发数据写入时 的写入效率。 权利要求书2页 说明书10页 附图5页 CN 110888603 A 2020.03.17 CN 110888603 A 1.一种高并发数据写入方法, 应用于管理服务器, 所述管理服务器至少与一台客户端 进行通信, 其特征在于, 所述方法包括: 若接收到来自所述客户端的数据写入请求, 判断字节缓存数组是否添加数据锁; 若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后再次执行判断字节缓存数 组是否添加数据锁的步骤; 若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对所述字节缓存数组添加 数据锁; 从所述客户端获取与所述数。

4、据写入请求对应的待写入数据, 根据预置的字节数据获取 规则获取与所述待写入数据对应的待存储字节数据; 将所述待存储字节数据写入所述字节缓存数组, 并实时判断所述字节缓存数组是否存 满; 若所述字节缓存数组已存满, 将预置的字节备份数组与所述字节缓存数组进行调转, 并将未写入的所述待存储字节数据写入所述字节备份数组; 将所述字节缓存数组中所存储的字节数据输入预置的存储空间中进行持久化存储。 2.根据权利要求1所述的高并发数据写入方法, 其特征在于, 所述根据所述数据写入请 求对所述字节缓存数组添加数据锁, 包括: 将所述数据写入请求中与所述客户端对应的客户端地址信息配置为所述数据锁的加 锁关键字。

5、; 将已配置加锁关键字的所述数据锁添加至所述字节缓存数组。 3.根据权利要求2所述的高并发数据写入方法, 其特征在于, 所述字节数据获取规则包 括数据转换规则及数据拼接规则, 所述从所述客户端获取与所述数据写入请求对应的待写 入数据, 根据预置的字节数据获取规则获取与所述待写入数据对应的待存储字节数据, 包 括: 根据所述数据转换规则将所述客户端地址信息转换为第一字节数据; 根据所述数据转换规则将所述待写入数据转换为第二字节数据; 根据所述数据拼接规则对所述第一字节数据及所述第二字节数据进行拼接以得到待 存储字节数据。 4.根据权利要求1所述的高并发数据写入方法, 其特征在于, 所述将预置的字。

6、节备份数 组与所述字节缓存数组进行调转, 包括: 将所述字节缓存数组所添加的数据锁添加至所述字节备份数组; 将所述字节备份数组与所述字节缓存数组的数组指针进行调转; 从所述字节缓存数组中删除所述数据锁。 5.根据权利要求1所述的高并发数据写入方法, 其特征在于, 所述根据预置的字节数据 获取规则将所述待写入数据写入所述字节缓存数组, 并实时判断所述字节缓存数组是否存 满之后, 还包括: 若所述待写入数据已全部写入所述字节缓存数组且所述字节缓存数组未存满, 从所述 字节缓存数组中删除所述数据锁。 6.一种高并发数据写入装置, 其特征在于, 包括: 数据锁判断单元, 用于若接收到来自所述客户端的数。

7、据写入请求, 判断字节缓存数组 权利要求书 1/2 页 2 CN 110888603 A 2 是否添加数据锁; 间隔判断单元, 用于若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后再次 执行判断字节缓存数组是否添加数据锁的步骤; 数据锁添加单元, 用于若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对 所述字节缓存数组添加数据锁; 字节数据获取单元, 用于从所述客户端获取与所述数据写入请求对应的待写入数据, 根据预置的字节数据获取规则获取与所述待写入数据对应的待存储字节数据; 字节数据写入单元, 用于将所述待存储字节数据写入所述字节缓存数组, 并实时判断 所述字节缓存数组是否存满;。

8、 数组调转单元, 用于若所述字节缓存数组已存满, 将预置的字节备份数组与所述字节 缓存数组进行调转, 并将所述待写入数据所剩余的数据写入所述字节备份数组; 持久化存储单元, 用于将所述字节缓存数组中所存储的字节数据输入预置的存储空间 中进行持久化存储。 7.根据权利要求6所述的高并发数据写入装置, 其特征在于, 所述数据锁添加单元, 包 括: 加锁关键字配置单元, 用于将所述待写入数据中与所述客户端对应的客户端地址信息 配置为所述数据锁的加锁关键字; 字节缓存数组加锁单元, 用于将已配置加锁关键字的所述数据锁添加至所述字节缓存 数组。 8.根据权利要求7所述的高并发数据写入装置, 其特征在于,。

9、 所述字节数据获取单元, 包括: 第一字节数据获取单元, 用于根据所述数据转换规则将所述客户端地址信息转换为第 一字节数据; 第二字节数据获取单元, 用于根据所述数据转换规则将所述待写入数据转换为第二字 节数据; 字节数据拼接单元, 用于根据所述数据拼接规则对所述第一字节数据及所述第二字节 数据进行拼接以得到待存储字节数据。 9.一种计算机设备, 包括存储器、 处理器及存储在所述存储器上并可在所述处理器上 运行的计算机程序, 其特征在于, 所述处理器执行所述计算机程序时实现如权利要求1至5 中任一项所述的高并发数据写入方法。 10.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质。

10、存储有计算机程 序, 所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至5任一项所述的高 并发数据写入方法。 权利要求书 2/2 页 3 CN 110888603 A 3 高并发数据写入方法、 装置、 计算机设备及存储介质 技术领域 0001 本发明涉及计算机技术领域, 尤其涉及一种高并发数据写入方法、 装置、 计算机设 备及存储介质。 背景技术 0002 企业经常面临需将客户端所输入的客户端日志进行持久化存储的需求, 现有的技 术方案均是将客户端所输入的客户端日志存储至系统内存中, 当内存中的客户端日志积累 到一定量时, 再将内存中所积累的数据转移至磁盘中进行持久化存储, 然而将数。

11、据写入磁 盘需耗费较多时间, 数据写入磁盘的过程中该客户端会一直占用数据锁, 直至该客户端对 应的数据全部写入磁盘才会释放数据锁, 则会导致来自其他客户端的数据写入内存速度大 幅降低, 甚至导致数据写入内存时发送阻塞, 影响了数据写入性能, 尤其是在高并发场景下 难以满足使用需求。 因而, 现有技术方法中存在高并发数据写入时写入性能较低的问题。 发明内容 0003 本发明实施例提供了一种高并发数据写入方法、 装置、 计算机设备及存储介质, 旨 在解决现有技术方法中所存在的高并发数据写入时写入性能较低的问题。 0004 第一方面, 本发明实施例提供了一种高并发数据写入方法, 其包括: 0005 。

12、若接收到来自所述客户端的数据写入请求, 判断字节缓存数组是否添加数据锁; 0006 若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后再次执行判断字节缓 存数组是否添加数据锁的步骤; 0007 若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对所述字节缓存数组 添加数据锁; 0008 从所述客户端获取与所述数据写入请求对应的待写入数据, 根据预置的字节数据 获取规则获取与所述待写入数据对应的待存储字节数据; 0009 将所述待存储字节数据写入所述字节缓存数组, 并实时判断所述字节缓存数组是 否存满; 0010 若所述字节缓存数组已存满, 将预置的字节备份数组与所述字节缓存数组进行调 。

13、转, 并将未写入的所述待存储字节数据写入所述字节备份数组; 0011 将所述字节缓存数组中所存储的字节数据输入预置的存储空间中进行持久化存 储。 0012 第二方面, 本发明实施例提供了一种高并发数据写入装置, 其包括: 0013 数据锁判断单元, 用于若接收到来自所述客户端的数据写入请求, 判断字节缓存 数组是否添加数据锁; 0014 间隔判断单元, 用于若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后 再次执行判断字节缓存数组是否添加数据锁的步骤; 0015 数据锁添加单元, 用于若所述字节缓存数组未添加数据锁, 根据所述数据写入请 说明书 1/10 页 4 CN 110888603。

14、 A 4 求对所述字节缓存数组添加数据锁; 0016 字节数据获取单元, 用于从所述客户端获取与所述数据写入请求对应的待写入数 据, 根据预置的字节数据获取规则获取与所述待写入数据对应的待存储字节数据; 0017 字节数据写入单元, 用于将所述待存储字节数据写入所述字节缓存数组, 并实时 判断所述字节缓存数组是否存满; 0018 数组调转单元, 用于若所述字节缓存数组已存满, 将预置的字节备份数组与所述 字节缓存数组进行调转, 并将所述待写入数据所剩余的数据写入所述字节备份数组; 0019 持久化存储单元, 用于将所述字节缓存数组中所存储的字节数据输入预置的存储 空间中进行持久化存储。 002。

15、0 第三方面, 本发明实施例又提供了一种计算机设备, 其包括存储器、 处理器及存储 在所述存储器上并可在所述处理器上运行的计算机程序, 所述处理器执行所述计算机程序 时实现上述第一方面所述的高并发数据写入方法。 0021 第四方面, 本发明实施例还提供了一种计算机可读存储介质, 其中所述计算机可 读存储介质存储有计算机程序, 所述计算机程序当被处理器执行时使所述处理器执行上述 第一方面所述的高并发数据写入方法。 0022 本发明实施例提供了一种高并发数据写入方法、 装置、 计算机设备及存储介质。 接 收到来自客户端的数据写入请求时判断字节缓存数组是否添加数据锁; 若字节缓存数组未 添加数据锁,。

16、 根据数据写入请求对字节缓存数组添加数据锁; 从客户端获取与数据写入请 求对应的待写入数据, 根据预置的字节数据获取规则获取与待写入数据对应的待存储字节 数据; 将待存储字节数据写入字节缓存数组, 并实时判断字节缓存数组是否存满; 若字节缓 存数组已存满, 将预置的字节备份数组与所述字节缓存数组进行调转, 并将未写入的待存 储字节数据写入字节备份数组; 将字节缓存数组中所存储的字节数据输入预置的存储空间 中进行持久化存储。 通过上述方法, 采用两个字节数组进行轮换写入待存储字节数据, 缩短 了高并发数据写入时对数据锁进行占用的时间, 避免数据写入内存时发送阻塞, 从而大幅 提高了高并发数据写入。

17、时的写入效率。 附图说明 0023 为了更清楚地说明本发明实施例技术方案, 下面将对实施例描述中所需要使用的 附图作简单地介绍, 显而易见地, 下面描述中的附图是本发明的一些实施例, 对于本领域普 通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。 0024 图1为本发明实施例提供的高并发数据写入方法的流程示意图; 0025 图2为本发明实施例提供的高并发数据写入方法的应用场景示意图; 0026 图3为本发明实施例提供的高并发数据写入方法的子流程示意图; 0027 图4为本发明实施例提供的高并发数据写入方法的另一子流程示意图; 0028 图5为本发明实施例提供的。

18、高并发数据写入方法的另一子流程示意图; 0029 图6为本发明实施例提供的高并发数据写入方法的另一流程示意图; 0030 图7为本发明实施例提供的高并发数据写入装置的示意性框图; 0031 图8为本发明实施例提供的计算机设备的示意性框图。 说明书 2/10 页 5 CN 110888603 A 5 具体实施方式 0032 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发 明中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例, 都属于本发明保护的范围。

19、。 0033 应当理解, 当在本说明书和所附权利要求书中使用时, 术语 “包括” 和 “包含” 指示 所描述特征、 整体、 步骤、 操作、 元素和/或组件的存在, 但并不排除一个或多个其它特征、 整 体、 步骤、 操作、 元素、 组件和/或其集合的存在或添加。 0034 还应当理解, 在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目 的而并不意在限制本发明。 如在本发明说明书和所附权利要求书中所使用的那样, 除非上 下文清楚地指明其它情况, 否则单数形式的 “一” 、“一个” 及 “该” 意在包括复数形式。 0035 还应当进一步理解, 在本发明说明书和所附权利要求书中使用的术语 “。

20、和/或” 是 指相关联列出的项中的一个或多个的任何组合以及所有可能组合, 并且包括这些组合。 0036 请参阅图1及图2, 图1是本发明实施例提供的高并发数据写入方法的流程示意图, 图2为本发明实施例提供的高并发数据写入方法的应用场景示意图。 该高并发数据写入方 法应用于管理服务器10中, 该方法通过安装于管理服务器10中的应用软件进行执行, 客户 端20通过与管理服务器10建立网络连接以进行数据信息的传输, 其中, 客户端20是可向管 理服务器10发送数据信息的终端设备, 例如台式电脑、 笔记本电脑、 平板电脑或手机等, 管 理服务器10是用于将客户端20所发送的数据信息进行写入存储的企业终。

21、端。 此外, 本实施 例中仅示例了一台客户端20与管理服务器10建立网络连接, 实际应用过程中可实现多台客 户端20同时与管理服务器10建立网络连接。 0037 如图1所示, 该方法包括步骤S110S170。 0038 S110、 若接收到来自所述客户端的数据写入请求, 判断字节缓存数组是否添加数 据锁。 0039 若接收到来自所述客户端的数据写入请求, 判断字节缓存数组是否添加数据锁。 客户端将数据写入请求发送至管理服务器, 数据写入请求即需写入数据的请求信息, 数据 写入请求中包括客户端地址信息、 请求时间等待写入数据的基本信息, 管理服务器接收数 据写入请求后, 则判断字节缓存数组是否添。

22、加数据锁, 字节缓存数组即为管理服务器中用 于缓存字节数据的数组, 数据锁可用于对字节缓存数组进行锁定, 为避免多组字节数据同 时输入字节缓存数组而导致字节数据写入混乱, 需对字节缓存数组进行加锁以确保字节缓 存数组在同一时间仅能写入一组字节数据。 具体的, 可根据客户端地址信息对字节缓存数 组进行加锁, 若字节缓存数组已添加数据锁, 则该字节缓存数组仅能被该数据锁中客户端 地址信息对应的客户端进行使用, 而无法被其他客户端进行使用, 一个客户端将全部待写 入数据写入字节缓存数组后, 即释放该数据锁, 也即是从字节缓存数组中删除该数据锁, 以 使该字节缓存数组可被其他客户端使用。 其中, 字节。

23、缓存数组可创建于适用于高并发处理 的数据库中, 例如redis数据库, redis数据库可设置于管理服务器的内存中, 所使用的数据 锁可以是redis锁。 0040 S120、 若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后再次执行判断 字节缓存数组是否添加数据锁的步骤。 说明书 3/10 页 6 CN 110888603 A 6 0041 若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后再次执行判断字节缓 存数组是否添加数据锁的步骤。 若字节缓存数组已添加数据锁, 则表明该字节缓存数组正 在被其他客户端所使用, 在与当前时间间隔周期时间后, 再次判断该字节缓存数组是否添 加数据。

24、锁, 也即是根据周期时间对字节缓存数组进行循环判断, 直至某一次判断得到该字 节缓存数组未添加数据锁, 则执行步骤S120。 其中, 由于数据写入字节缓存数组的耗时较 小, 因此可设置一个较小的周期时间, 例如, 可将周期时间设置为20-500ms。 0042 S130、 若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对所述字节缓 存数组添加数据锁。 0043 若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对所述字节缓存数组 添加数据锁。 若字节缓存数组未添加数据锁, 则表明该字节缓存数组未被任一客户端使用, 此时可根据所接收到的数据写入请求对字节缓存数组添加数据锁。 0044。

25、 在一实施例中, 如图3所示, 步骤S130包括子步骤S131和S132。 0045 S131、 将所述数据写入请求中与所述客户端对应的客户端地址信息配置为所述数 据锁的加锁关键字。 0046 将所述数据写入请求中与所述客户端对应的客户端地址信息配置为所述数据锁 的加锁关键字。 加锁关键字也即是redis锁的key, 通过所配置的加锁关键字即可获取使用 字节缓存数组的客户端信息, 将与数据写入请求对应的客户端地址信息配置为redis锁的 加锁关键字后, 则表明该redis锁被与该加锁关键字对应的客户端进行标记。 0047 S132、 将已配置加锁关键字的所述数据锁添加至所述字节缓存数组。 00。

26、48 将已配置加锁关键字的所述数据锁添加至所述字节缓存数组。 将已配置加锁关键 字的数据锁添加至字节缓存数组, 则表明仅与该加锁关键字对应的客户端才能使用该字节 缓存数组。 0049 S140、 从所述客户端获取与所述数据写入请求对应的待写入数据, 根据预置的字 节数据获取规则获取与所述待写入数据对应的待存储字节数据。 0050 从所述客户端获取与所述数据写入请求对应的待写入数据, 根据预置的字节数据 获取规则获取与所述待写入数据对应的待存储字节数据。 字节缓存数组中添加数据锁后, 即可根据数据写入请求发送传输请求至与该数据写入请求对应的客户端, 客户端根据传输 请求传输待写入数据至管理服务器。

27、, 则管理服务器可根据数据写入请求从客户的获取对应 的待写入数据, 其中, 待写入数据可以是客户端发送至管理服务器的仅包含字符类型的数 据, 例如客户端日志。 字节数据获取规则即是用于将待写入数据转换为对应字节数据的规 则信息, 字节缓存数组中仅能存储字节数据, 因此需将待写入数据中所包含的字符转换为 字节数据才能存储至字节缓存数组, 其中, 字节数据获取规则包括数据转换规则及数据拼 接规则。 0051 在一实施例中, 如图4所示, 步骤S140包括子步骤S141、 S142和S143。 0052 S141、 根据所述数据转换规则将所述客户端地址信息转换为第一字节数据。 0053 根据所述数据。

28、转换规则将所述客户端地址信息转换为第一字节数据。 数据转换规 则可将任意字符转换为二进制的数据, 将客户端地址信息所包含的所有字符均转换为二进 制数据, 即可得到第一字节数据, 将数据转换为以二进制进行表示的字节数据可方便存储。 具体的, 任意字符均可转换得到至少一个字节, 一个字节为包含8位二进制数的二进制数 说明书 4/10 页 7 CN 110888603 A 7 据。 0054 数据转换规则可将字符以UTF-8编码或Unicode编码进行转换, 若以UTF-8编码对 字符进行转换, 一个英文字符等于一个字节, 一个中文(含繁体)等于三个字节, 中文标点占 三个字节, 英文标点占一个字节。

29、; 若以Unicode编码对字符进行转换, 一个英文等于两个字 节, 一个中文(含繁体)等于两个字节, 中文标点占两个字节, 英文标点占两个字节。 0055 S142、 根据所述数据转换规则将所述待写入数据转换为第二字节数据。 0056 根据所述数据转换规则将所述待写入数据转换为第二字节数据。 根据数据转换规 则以同样的方式对待写入数据进行转换, 即可得到对应的第二字节数据。 0057 S143、 根据所述数据拼接规则对所述第一字节数据及所述第二字节数据进行拼接 以得到待存储字节数据。 0058 根据所述数据拼接规则对所述第一字节数据及所述第二字节数据进行拼接以得 到待存储字节数据。 根据数据。

30、拼接规则即可对第一字节数据及第二字节数据进行拼接, 得 到待存储字节数据, 第一字节数据中包含待存储字节数据的特征信息, 因此, 第一字节数据 可用于对不同的待存储字节数据进行区分。 0059 S150、 将所述待存储字节数据写入所述字节缓存数组, 并实时判断所述字节缓存 数组是否存满。 0060 将所述待存储字节数据写入所述字节缓存数组, 并实时判断所述字节缓存数组是 否存满。 字节缓存数组的容量有限, 且字节缓存数组的作用为对字节数据进行临时缓存, 因 此在将待存储字节数据写入字节缓存数组的过程中, 若字节缓存数组存满, 则需对字节缓 存数组中所写入的数据进行持久化存储。 0061 S16。

31、0、 若所述字节缓存数组已存满, 将预置的字节备份数组与所述字节缓存数组 进行调转, 并将未写入的所述待存储字节数据写入所述字节备份数组。 0062 若所述字节缓存数组已存满, 将预置的字节备份数组与所述字节缓存数组进行调 转, 并将未写入的所述待存储字节数据写入所述字节备份数组。 若字节缓存数组已存满, 则 需将字节备份数组与字节缓存数组进行调转, 将待存储字节数据中未写入的剩余部分写入 字节备份数组。 其中, 字节备份数组即为管理服务器中用于对字节数据进行备份存储的数 组, 对字节备份数组与字节缓存数组进行调转后, 则两个数组的功能也相互调转。 0063 在一实施例中, 如图5所示, 步骤。

32、S160包括子步骤S161、 S162和S163。 0064 S161、 将所述字节缓存数组所添加的数据锁添加至所述字节备份数组。 0065 将所述字节缓存数组所添加的数据锁添加至所述字节备份数组。 具体的, 复制一 个与字节缓存数组中数据锁对应的数据锁, 并将所复制的数据锁添加至字节备份数组中, 此时字节备份数组可供客户的进行使用。 0066 S162、 将所述字节备份数组与所述字节缓存数组的数组指针进行调转。 0067 将所述字节备份数组与所述字节缓存数组的数组指针进行调转。 具体的, 可通过 一个中间变量实现对两个数组指针的调转。 0068 例如, 字节缓存数组为byte1 curren。

33、t, 字节备份数组为byte2 ready, 中间变 量为byteX temp, 通过tempcurrent, currentready, readytemp即可实现指针 current与指针ready的调转, 此时指针ready指向byte1 , 若byte1 中存储有字节数据, 则需将所存储的字节数据进行持久化存储。 说明书 5/10 页 8 CN 110888603 A 8 0069 S163、 从所述字节缓存数组中删除所述数据锁。 0070 从所述字节缓存数组中删除所述数据锁。 将字节缓存数组中的数据锁删除, 也即 是释放该数据锁。 0071 在一实施例中, 如图6所示, 步骤S150。

34、之后还包括步骤S150a。 0072 S150a、 若所述待写入数据已全部写入所述字节缓存数组且所述字节缓存数组未 存满, 从所述字节缓存数组中删除所述数据锁。 0073 若所述待写入数据已全部写入所述字节缓存数组且所述字节缓存数组未存满, 从 所述字节缓存数组中删除所述数据锁。 从字节缓存数组中删除数据锁后, 该字节缓存数组 可继续被其他客户端使用。 0074 S170、 将所述字节缓存数组中所存储的字节数据输入预置的存储空间中进行持久 化存储。 0075 将所述字节缓存数组中所存储的字节数据输入预置的存储空间中进行持久化存 储。 存储空间为管理服务器中用于对字节数据进行持久化存储的区域, 。

35、存储空间可为管理 服务器的磁盘或硬盘中分配的存储区域。 由于将字节数据输入存储空间中进行持久化存储 的耗时较长, 采用两个字节数组进行轮换, 可通过一个字节数组获取待存储字节数据, 另外 一个字节数组将所存储的字节数据进行持久化存储。 缩短了高并发数据写入时对数据锁进 行占用的时间, 避免数据写入内存时发送阻塞, 从而大幅提高了高并发数据写入时的写入 效率。 0076 本发明实施例所提供的高并发数据写入方法, 接收到来自客户端的数据写入请求 时判断字节缓存数组是否添加数据锁; 若字节缓存数组未添加数据锁, 根据数据写入请求 对字节缓存数组添加数据锁; 从客户端获取与数据写入请求对应的待写入数据。

36、, 根据预置 的字节数据获取规则获取与待写入数据对应的待存储字节数据; 将待存储字节数据写入字 节缓存数组, 并实时判断字节缓存数组是否存满; 若字节缓存数组已存满, 将预置的字节备 份数组与所述字节缓存数组进行调转, 并将未写入的待存储字节数据写入字节备份数组; 将字节缓存数组中所存储的字节数据输入预置的存储空间中进行持久化存储。 通过上述方 法, 采用两个字节数组进行轮换写入待存储字节数据, 缩短了高并发数据写入时对数据锁 进行占用的时间, 避免数据写入内存时发送阻塞, 从而大幅提高了高并发数据写入时的写 入效率。 0077 本发明实施例还提供一种高并发数据写入装置, 该高并发数据写入装置。

37、用于执行 前述高并发数据写入方法的任一实施例。 具体地, 请参阅图7, 图7是本发明实施例提供的高 并发数据写入装置的示意性框图。 该高并发数据写入装置可以配置于管理服务器10中。 0078 如图7所示, 高并发数据写入装置100包括数据锁判断单元110、 间隔判断单元120、 数据锁添加单元130、 字节数据获取单元140、 字节数据写入单元150、 数组调转单元160和持 久化存储单元170。 0079 数据锁判断单元110, 用于若接收到来自所述客户端的数据写入请求, 判断字节缓 存数组是否添加数据锁。 0080 间隔判断单元120, 用于若所述字节缓存数组已添加数据锁, 间隔预置的周期。

38、时间 后再次执行判断字节缓存数组是否添加数据锁的步骤。 0081 数据锁添加单元130, 用于若所述字节缓存数组未添加数据锁, 根据所述数据写入 说明书 6/10 页 9 CN 110888603 A 9 请求对所述字节缓存数组添加数据锁。 0082 在其他发明实施例中, 所述数据锁添加单元130包括子单元: 加锁关键字配置单元 和字节缓存数组加锁单元。 0083 加锁关键字配置单元, 用于将所述数据写入请求中与所述客户端对应的客户端地 址信息配置为所述数据锁的加锁关键字; 字节缓存数组加锁单元, 用于将已配置加锁关键 字的所述数据锁添加至所述字节缓存数组。 0084 字节数据获取单元140,。

39、 用于从所述客户端获取与所述数据写入请求对应的待写 入数据, 根据预置的字节数据获取规则获取与所述待写入数据对应的待存储字节数据。 0085 在其他发明实施例中, 所述字节数据获取单元140包括子单元: 第一字节数据获取 单元、 第二字节数据获取单元和字节数据拼接单元。 0086 第一字节数据获取单元, 用于根据所述数据转换规则将所述客户端地址信息转换 为第一字节数据; 第二字节数据获取单元, 用于根据所述数据转换规则将所述待写入数据 转换为第二字节数据; 字节数据拼接单元, 用于根据所述数据拼接规则对所述第一字节数 据及所述第二字节数据进行拼接以得到待存储字节数据。 0087 字节数据写入单。

40、元150, 用于将所述待存储字节数据写入所述字节缓存数组, 并实 时判断所述字节缓存数组是否存满。 0088 数组调转单元160, 用于若所述字节缓存数组已存满, 将预置的字节备份数组与所 述字节缓存数组进行调转, 并将未写入的所述待存储字节数据写入所述字节备份数组。 0089 在其他发明实施例中, 所述数组调转单元160包括子单元: 字节备份数组加锁单 元、 数组指针调转单元和数据锁删除单元。 0090 字节备份数组加锁单元, 用于将所述字节缓存数组所添加的数据锁添加至所述字 节备份数组; 数组指针调转单元, 用于将所述字节备份数组与所述字节缓存数组的数组指 针进行调转; 数据锁删除单元, 。

41、用于从所述字节缓存数组中删除所述数据锁。 0091 在其他发明实施例中, 所述高并发数据写入装置100还包括子单元: 字节缓存数组 解锁单元。 0092 字节缓存数组解锁单元, 用于若所述待写入数据已全部写入所述字节缓存数组且 所述字节缓存数组未存满, 从所述字节缓存数组中删除所述数据锁。 0093 持久化存储单元170, 用于将所述字节缓存数组中所存储的字节数据输入预置的 存储空间中进行持久化存储。 0094 本发明实施例所提供的高并发数据写入装置用于执行上述高并发数据写入方法, 接收到来自客户端的数据写入请求时判断字节缓存数组是否添加数据锁; 若字节缓存数组 未添加数据锁, 根据数据写入请。

42、求对字节缓存数组添加数据锁; 从客户端获取与数据写入 请求对应的待写入数据, 根据预置的字节数据获取规则获取与待写入数据对应的待存储字 节数据; 将待存储字节数据写入字节缓存数组, 并实时判断字节缓存数组是否存满; 若字节 缓存数组已存满, 将预置的字节备份数组与所述字节缓存数组进行调转, 并将未写入的待 存储字节数据写入字节备份数组; 将字节缓存数组中所存储的字节数据输入预置的存储空 间中进行持久化存储。 通过上述方法, 采用两个字节数组进行轮换写入待存储字节数据, 缩 短了高并发数据写入时对数据锁进行占用的时间, 避免数据写入内存时发送阻塞, 从而大 幅提高了高并发数据写入时的写入效率。 。

43、说明书 7/10 页 10 CN 110888603 A 10 0095 上述高并发数据写入装置可以实现为计算机程序的形式, 该计算机程序可以在如 图8所示的计算机设备上运行。 0096 请参阅图8, 图8是本发明实施例提供的计算机设备的示意性框图。 0097 参阅图8, 该计算机设备500包括通过系统总线501连接的处理器502、 存储器和网 络接口505, 其中, 存储器可以包括非易失性存储介质503和内存储器504。 0098 该非易失性存储介质503可存储操作系统5031和计算机程序5032。 该计算机程序 5032被执行时, 可使得处理器502执行高并发数据写入方法。 0099 该处。

44、理器502用于提供计算和控制能力, 支撑整个计算机设备500的运行。 0100 该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境, 该 计算机程序5032被处理器502执行时, 可使得处理器502执行高并发数据写入方法。 0101 该网络接口505用于进行网络通信, 如提供数据信息的传输等。 本领域技术人员可 以理解, 图8中示出的结构, 仅仅是与本发明方案相关的部分结构的框图, 并不构成对本发 明方案所应用于其上的计算机设备500的限定, 具体的计算机设备500可以包括比图中所示 更多或更少的部件, 或者组合某些部件, 或者具有不同的部件布置。 0102 其中, 。

45、所述处理器502用于运行存储在存储器中的计算机程序5032, 以实现如下功 能: 若接收到来自所述客户端的数据写入请求, 判断字节缓存数组是否添加数据锁; 若所述 字节缓存数组已添加数据锁, 间隔预置的周期时间后再次执行判断字节缓存数组是否添加 数据锁的步骤; 若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对所述字节缓 存数组添加数据锁; 从所述客户端获取与所述数据写入请求对应的待写入数据, 根据预置 的字节数据获取规则获取与所述待写入数据对应的待存储字节数据; 将所述待存储字节数 据写入所述字节缓存数组, 并实时判断所述字节缓存数组是否存满; 若所述字节缓存数组 已存满, 将预置的字。

46、节备份数组与所述字节缓存数组进行调转, 并将未写入的所述待存储 字节数据写入所述字节备份数组; 将所述字节缓存数组中所存储的字节数据输入预置的存 储空间中进行持久化存储。 0103 在一实施例中, 处理器502在执行若所述字节缓存数组未添加数据锁, 根据所述数 据写入请求对所述字节缓存数组添加数据锁的步骤时, 执行如下操作: 将所述数据写入请 求中与所述客户端对应的客户端地址信息配置为所述数据锁的加锁关键字; 将已配置加锁 关键字的所述数据锁添加至所述字节缓存数组。 0104 在一实施例中, 处理器502在执行从所述客户端获取与所述数据写入请求对应的 待写入数据, 根据预置的字节数据获取规则获。

47、取与所述待写入数据对应的待存储字节数据 的步骤时, 执行如下操作: 根据所述数据转换规则将所述客户端地址信息转换为第一字节 数据; 根据所述数据转换规则将所述待写入数据转换为第二字节数据; 根据所述数据拼接 规则对所述第一字节数据及所述第二字节数据进行拼接以得到待存储字节数据。 0105 在一实施例中, 处理器502在执行若所述字节缓存数组已存满, 将预置的字节备份 数组与所述字节缓存数组进行调转, 并将未写入的所述待存储字节数据写入所述字节备份 数组的步骤时, 执行如下操作: 将所述字节缓存数组所添加的数据锁添加至所述字节备份 数组; 将所述字节备份数组与所述字节缓存数组的数组指针进行调转;。

48、 从所述字节缓存数 组中删除所述数据锁。 0106 在一实施例中, 在一实施例中, 处理器502在执行将所述待存储字节数据写入所述 说明书 8/10 页 11 CN 110888603 A 11 字节缓存数组, 并实时判断所述字节缓存数组是否存满的步骤之后, 还执行如下操作: 若所 述待写入数据已全部写入所述字节缓存数组且所述字节缓存数组未存满, 从所述字节缓存 数组中删除所述数据锁。 0107 本领域技术人员可以理解, 图8中示出的计算机设备的实施例并不构成对计算机 设备具体构成的限定, 在其他实施例中, 计算机设备可以包括比图示更多或更少的部件, 或 者组合某些部件, 或者不同的部件布置。。

49、 例如, 在一些实施例中, 计算机设备可以仅包括存 储器及处理器, 在这样的实施例中, 存储器及处理器的结构及功能与图8所示实施例一致, 在此不再赘述。 0108 应当理解, 在本发明实施例中, 处理器502可以是中央处理单元(Central Processing Unit, CPU), 该处理器502还可以是其他通用处理器、 数字信号处理器(Digital Signal Processor, DSP)、 专用集成电路(Application Specific Integrated Circuit, ASIC)、 现成可编程门阵列(Field-Programmable Gate Array, 。

50、FPGA)或者其他可编程逻辑 器件、 分立门或者晶体管逻辑器件、 分立硬件组件等。 其中, 通用处理器可以是微处理器或 者该处理器也可以是任何常规的处理器等。 0109 在本发明的另一实施例中提供计算机可读存储介质。 该计算机可读存储介质可以 为非易失性的计算机可读存储介质。 该计算机可读存储介质存储有计算机程序, 其中计算 机程序被处理器执行时实现以下步骤: 若接收到来自所述客户端的数据写入请求, 判断字 节缓存数组是否添加数据锁; 若所述字节缓存数组已添加数据锁, 间隔预置的周期时间后 再次执行判断字节缓存数组是否添加数据锁的步骤; 若所述字节缓存数组未添加数据锁, 根据所述数据写入请求对。

展开阅读全文
内容关键字: 并发 数据 写入 方法 装置 计算机 设备 存储 介质
关于本文
本文标题:高并发数据写入方法、装置、计算机设备及存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10893297.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1