一种提高数据写入移动存储设备速度的方法和系统技术方案

技术编号:15638686 阅读:211 留言:0更新日期:2017-06-15 18:48
本发明专利技术涉及一种提高数据写入移动存储设备速度的方法和系统,属于计算机数据处理技术领域。本发明专利技术所述的方法包括以下步骤:(1)客户端发来请求,服务器端处理后生成写入数据,启动应用程序;(2)应用程序创建多个工作线程,分配多个缓存区;(3)应用程序将写入数据传给分发线程;(4)分发线程将写入数据传递给对应的多个整理线程,多个整理线程将数据写入对应的缓存区,并修改拼接后的数据长度;(5)当满足触发条件时,整理线程通知写入线程将数据写入到移动存储设备。采用本发明专利技术所述的方法和系统可以在不必改动移动存储设备硬件和固件的情况下,通过上位机缓存以及多线程分区写入的方法来大幅提高短数据写入移动存储介质的速度。

【技术实现步骤摘要】
一种提高数据写入移动存储设备速度的方法和系统
本专利技术属于计算机数据处理
,具体涉及一种提高数据写入移动存储设备速度的方法及系统。
技术介绍
随着政务、税务、财务等行业电子化的推广和普及,对电子票据、电子公文这种短数据的传输和存储的需求越来越大。通过专用网络和数据服务器可以满足一部分这样的需求,但也有相当多的情况下不便于使用网络,比如专用网络无法覆盖的地区,或是使用者自身不具备使用专网的资格,这种情况下就需要移动存储介质来传输这些数据。这种存储介质,除了要能够保护数据的安全,还要具有较大的容量和很高的传输速率,因为对于服务器来说,性能的瓶颈不在于处理并发的请求,而在于将生成的端数据写入存储介质,比如地方财政部门处理预算单位拨款请求的服务器、淘宝商户的开票服务器等等。现有技术中,常规的做法是,不开辟上位机缓存,也不会创建各司其职的工作线程,直接调用操作系统的DeviceIOControl接口(windows平台)或是ioctl接口(linux平台)将每个请求按先后顺序写入。USB协议的特点是,随着连续写入数据时间的增加,写入速度逐渐上升,所以写入的数据块越大,平均速度越快。而上述的常规做法就是来多大数据就写入多大数据,无法发挥USB协议的优势。对于写入数据小频率又高的场景,常规做法对整个系统的性能会有很严重的影响。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的是提供一种提高数据写入移动存储设备速度的方法和系统。该方法和系统能够在不必改动移动存储设备硬件和固件的情况下,通过上位机缓存以及多线程分区写入的方法来大幅提高短数据写入移动存储介质的速度。为达到以上目的,本专利技术采用的技术方案是:一种提高数据写入移动存储设备速度的方法,包括以下步骤:(1)客户端发来请求,服务器端处理后生成写入数据,启动应用程序;(2)应用程序创建多个工作线程,分配多个缓存区;(3)应用程序将写入数据传给分发线程;(4)分发线程将写入数据传递给对应的多个整理线程,多个整理线程将数据写入对应的缓存区,并修改拼接后的数据长度;(5)当满足触发条件时,整理线程通知写入线程将数据写入到移动存储设备。进一步,步骤(3)中,应用程序在写入数据时将写入的起始地址、数据长度和数据传给分发线程。更进一步,应用程序与分发线程使用广播消息方式通信。进一步,步骤(4)中,分发线程根据起始地址做出判断,将写入请求传递给对应的整理线程。更进一步,整理线程根据移动存储设备容量大小和写入数据的零碎程度,将整个存储空间分成若干缓存区,每个整理线程负责管理一个缓存区,职责是整理要写入这个缓存区的零碎数据,将零碎数据拼接成大块数据并写入其管理的缓存区,并实时修改已拼接数据的长度。进一步,分发线程与整理线程使用消息队列方式通信,将写入请求按先后顺序排进队列。为了避免队列越来越长,就要在缓冲区的划分上做出权衡,比如多划分几个缓存区,这样每个整理线程负责的区域会变小,其工作量就会减少,视具体情况而定。进一步,如果划分的缓存区较多,则创建多个写入线程,每个写入线程负责若干缓存区。进一步,步骤(5)中,所述的触发条件是某个缓存区内数据达到设定的长度,或是该缓存区距离上次写入设备经过了设定的时间。本专利技术还提供了一种提高数据写入移动存储设备速度的系统,包括以下装置:应用程序模块,用于创建所有的工作线程,分配所有缓存区,并将写入数据传给分发模块;分发模块,由分发线程实现,用于将数据写入对应的缓存区,将写入地址和待写入数据传递给整理模块;整理模块,由多个整理线程实现,用于整理要写入这个缓存区块的零碎数据,将零碎数据拼接成大块数据并写入其管理的缓存区,并实时修改已拼接数据的长度;缓存模块,由多个缓存区块组成,用于存储写入地址和待写入数据;写入线程模块,由写入线程实现,当满足触发条件时,用于将数据写入移动存储设备。本专利技术的效果在于:采用本专利技术所述的方法和系统,可以在不必改动移动存储设备硬件和固件的情况下,通过上位机缓存以及多线程分区写入的方法来大幅提高短数据写入移动存储介质的速度。附图说明图1是本专利技术所述方法的流程图;图2是本专利技术所述方法及系统的原理图。具体实施方式下面结合附图和具体实施方式对本专利技术作进一步描述。本专利技术涉及了一种在写入数据小、写入频率高的场景下,提高数据存储速度的方法。将需要多次写入的小块零碎数据,拼接成大块数据后再一次性写入,以写入大数据的方式来发挥USB传输的性能。提高了数据的存储速度。本专利技术所述的系统与方法中所提到的移动存储设备可以是一种带有隐藏区的U盘,也可以是其他带USB接口的移动存储设备,通过“起始地址+数据长度”的方式来读写数据,使用USB接口与上位机(PC机或服务器)通信,以及具有与此设备有连接能力的上位机。如图1所示,一种提高数据写入移动存储速度的方法,包括以下步骤:(1)客户端发来请求,服务器端处理后生成写入数据,启动应用程序,S1;(2)应用程序创建多个工作线程,分配多个缓存区,S2;(3)应用程序将写入数据传给分发线程,S3;(4)分发线程将写入数据传递给对应的多个整理线程,多个整理线程将数据写入对应的缓存区,并修改拼接后的数据长度,S4;(5)当满足触发条件时,整理线程通知写入线程将数据写入到移动存储设备,S5。本实施例中,步骤(3)中,应用程序在写入数据时将写入的起始地址、数据长度和数据传给分发线程。应用程序与分发线程使用广播消息方式通信。由于分发线程只负责分发不处理数据,所以对于每个写入请求,分发的工作在下一个广播消息到来之前就能结束。步骤(4)中,分发线程根据起始地址做出判断,将写入请求传递给对应的整理线程。根据移动存储设备容量大小和写入数据的零碎程度,将整个存储空间分成若干缓存区(视具体情况而定),每个整理线程负责一个缓存区,职责是整理要写入这个缓存区的零碎数据,将零碎数据拼接成大块数据并写入其管理的缓存区,并实时修改已拼接数据的长度(有可能是多个长度)。整理线程需要处理数据时,对于每个写入请求,需要一定的时间处理。所以分发线程与整理线程使用消息队列方式通信,将写入请求按先后顺序排进队列。为了避免队列越来越长,就要在缓冲区的划分上做出权衡,比如多划分几个缓存区,这样每个整理线程负责的区域会变小,其工作量就会减少,视具体情况而定。如果划分的缓存区较多,则为了能够及时处理整理线程的消息,也可视具体情况创建多个写入线程,每个写入线程负责若干缓存区。步骤(5)中,当某个缓存区中内数据达到触发条件后,由管理该缓存区的整理线程通知写入线程将数据写入移动存储设备。这里要设置两个触发条件,一是数据块达到一定长度,二是该缓存区距离上次写入设备经过了多少时间。两个条件,无论哪个先满足,整理线程都会通知写入线程将数据写入移动存储设备。长度和时间是根据写入请求的频率来确定的,写入频率越高,这两个值就越小。本实施例中,若以每秒1024次写入数据,平均每次写入1024字节为例,长度可以定为10M字节,时间定为10秒。若长度设定为100M字节的话,则时间可以设定为100秒,以此类推,只要长度除以时间的结果满足每秒钟累积的数据总量即可。写入线程收到通知后,将拼接好的大块数据写入移动存储设备。如图2所示,一种提高数据写入移动存储设备速度的系统,包括以下装置本文档来自技高网...
一种提高数据写入移动存储设备速度的方法和系统

【技术保护点】
一种提高数据写入移动存储设备速度的方法,包括以下步骤:(1)客户端发来请求,服务器端处理后生成写入数据,启动应用程序;(2)应用程序创建多个工作线程,分配多个缓存区;(3)应用程序将写入数据传给分发线程;(4)分发线程将写入数据传递给对应的多个整理线程,多个整理线程将数据写入对应的缓存区,并修改拼接后的数据长度;(5)当满足触发条件时,整理线程通知写入线程将数据写入到移动存储设备。

【技术特征摘要】
1.一种提高数据写入移动存储设备速度的方法,包括以下步骤:(1)客户端发来请求,服务器端处理后生成写入数据,启动应用程序;(2)应用程序创建多个工作线程,分配多个缓存区;(3)应用程序将写入数据传给分发线程;(4)分发线程将写入数据传递给对应的多个整理线程,多个整理线程将数据写入对应的缓存区,并修改拼接后的数据长度;(5)当满足触发条件时,整理线程通知写入线程将数据写入到移动存储设备。2.如权利要求1所述的一种提高数据写入移动存储设备速度的方法,其特征是:步骤(3)中,应用程序在写入数据时将写入的起始地址、数据长度和数据传给分发线程。3.如权利要求2所述的一种提高数据写入移动存储设备速度的方法,其特征是:应用程序与分发线程使用广播消息方式通信。4.如权利要求2至3任一项所述的一种提高数据写入移动存储设备速度的方法,其特征是:步骤(4)中,分发线程根据起始地址做出判断,将写入数据传递给对应的整理线程。5.如权利要求4所述的一种提高数据写入移动存储设备速度的方法,其特征是:整理线程根据移动存储设备容量大小和写入数据的零碎程度,将整个存储空间分成若干缓存区,每个整理线程负责管理一个缓存区,职责是整理要写入这个缓存区的零碎数据,将零碎数据拼接成大块数据并写入其管理的缓存区,并实时修改已拼接数据的长度。6.如权利要求...

【专利技术属性】
技术研发人员:王超宇
申请(专利权)人:北京握奇智能科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1