CN109857339A - 文件存储方法、装置、计算机设备和存储介质 - Google Patents
文件存储方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109857339A CN109857339A CN201910024697.9A CN201910024697A CN109857339A CN 109857339 A CN109857339 A CN 109857339A CN 201910024697 A CN201910024697 A CN 201910024697A CN 109857339 A CN109857339 A CN 109857339A
- Authority
- CN
- China
- Prior art keywords
- file
- stored
- hyperdisk
- preset
- memory cache
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 abstract description 13
- 230000002123 temporal effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000000151 deposition Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000002035 prolonged effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请揭示了一种文件存储方法、装置、计算机设备和存储介质,其中方法包括:判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。本申请通过对重要性分值不同的待存储文件提供不同的处理方式,不仅提高了待存储文件的上传速度,而且有利于为用户提供满意的服务。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种文件存储方法、装置、计算机设备和存储介质。
背景技术
现有技术中,当服务器对用户上传的文件进行存储时,通常都是直接将文件立即写入到大容量的低速磁盘中,由于低速磁盘的读写速度很慢,使得文件的上传时间很长,造成用户的使用体验差,另外,频繁在低速磁盘内写入文件,即出现大规模读写并发的情况时会使得服务器的系统资源消耗大,容易造成服务器的磁盘IO(Input/Output,输入/输出)性能下降或恶化,甚至导致服务器系统出现崩溃的情况。
发明内容
本申请的主要目的为提供一种文件存储方法、装置、计算机设备和存储介质,旨在解决现有的服务器对用户上传的文件进行存储的方式会导致文件的上传时间很长,并且容易造成服务器的磁盘IO性能下降的技术问题。
本申请提出一种文件存储方法,所述方法包括步骤:
判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
可选地,所述调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤,包括:
通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存,以将所述待存储文件写入所述高速磁盘。
可选地,所述通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存的步骤之后,包括:
判断所述高速磁盘中已缓存的数据容量是否达到预设的第一容量阈值;
若已达到所述第一容量阈值,则通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储;
判断将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的第一移动动作是否执行完毕;
若执行完毕,则删除所述高速磁盘内的所述待存储文件。
可选地,所述通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储的步骤,包括:
通过所述第一从线程将所述高速磁盘中的所述待存储文件写入所述内存缓存;
当完成将所述高速磁盘中的所述待存储文件写入所述内存缓存的动作后,通过所述第一从线程将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储。
可选地,所述用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤之后,包括:
在预设时间段内,按照指定时间间隔监测所述高速磁盘的容量使用率;
记录容量使用率大于预设的容量使用率阈值的次数;
判断所述次数是否大于预设的次数阈值;
若大于所述次数阈值,以指定方式向业务人员发送报警信号。
可选地,所述调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中的步骤,包括:
通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存。
可选地,所述通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存的步骤之后,包括:
判断所述内存缓存中已缓存的数据容量是否达到预设的第二容量阈值;
若已达到所述第二容量阈值,则通过预设的第二从线程将所述内存缓存中的所述待存储文件移动到低速磁盘进行存储;
判断将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储的第二移动动作是否执行完毕;
若执行完毕,则删除所述内存缓存内的所述待存储文件。
本申请还提供一种文件存储装置,包括:
第一判断模块,用于判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
第二判断模块,用于若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
第一存储模块,用于若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
第二存储模块,用于若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。
本申请中提供的文件存储方法、装置、计算机设备和存储介质,具有以下有益效果:
本申请中提供的文件存储方法、装置、计算机设备和存储介质,判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。本申请通过对重要性分值不同的待存储文件提供不同的处理方式,不仅提高了待存储文件的上传速度,减少了服务器系统的资源消耗,而且有利于为用户提供满意的服务。如果用户需要存储的待存储文件的重要性分值较高,即用户不希望出现待存储文件出现丢失的情形,此时通过存入高速磁盘方式将该待存储文件存储到高速磁盘中,由于高速磁盘的安全性较高且读写速度比低速磁盘块,能有效地提高待存储文件的上传速度,并且能保证待存储文件的存储安全性;而如果用户需要存储的待存储文件的重要性分值较低,则可通过存入内存缓存方式将该待存储文件存储到内存缓存中,虽然内存缓存的安全性较低,但内存缓存的读写速度非常快,能大大地提高待存储文件的上传速度,提升用户的使用体验。
附图说明
图1是本申请一实施例的文件存储方法的流程示意图;
图2是本申请另一实施例的文件存储方法的流程示意图;
图3是本申请又一实施例的文件存储方法的流程示意图;
图4是本申请一实施例的文件存储装置的结构示意图;
图5是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
参照图1,本申请一实施例的文件存储方法,包括:
S1:判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
S2:若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
S3:若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
S4:若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
如上述步骤S1至S4所述,本实施例的文件存储方法的执行主体为向用户提供文件存储服务的服务器。服务器会预先设置有不同的存储方式来对重要性分值不同的待存储文件进行存储,其中,上述重要性分值可以体现出用户对需要上传的待存储文件允许丢失的忍耐度,该重要性分值携带在用户发出的文件存储请求内,另外,上述第一预设阈值为重要性分值的指标阈值,该第一预设阈值可由服务器自行设置或者通过接收各用户输入的数据进行分析处理后设置得到,且重要性分值不同的待存储文件对应不同的存储方式,即上述的存入高速磁盘方式和存入内存缓存方式。上述存入高速磁盘方式包括将待存储文件存储到预先设置的高速磁盘的步骤,高速磁盘相对于服务器原本用于直接存储文件的低速磁盘具有读写速度较快的特点,且将待存储文件写入高速磁盘的安全性较高,不易丢失;上述存入内存缓存策略包括将待存储文件存储到预先设置的内存缓存的步骤,虽然内存缓存的容量比高速磁盘的小,并且服务器会不定时对内存缓存内的内容进行清理易导致存储在内存缓存的文件具有丢失的风险,内存缓存的安全性较低即,但内存缓存相对于高速磁盘具有读写速度更快的特点,上述第一预设阈值。在本实施例,预先设置一个与待存储文件的重要性分值相对应的第一预设阈值,当接收到用户发出的携带有重要性分值的文件存储请求时,首先判断该重要性分值是否大于该第一预设阈值,如果大于该第一预设阈值,则调用预设的存入高速磁盘方式将待存储文件存储到高速磁盘中,而如果不大于该第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。本实施例通过为重要性分值不同的待存储文件提供不同的存储方式,不仅提高了待存储文件的上传速度,减少了服务器系统的资源消耗,而且有利于为用户提供满意的服务。如果用户需要存储的待存储文件的重要性分值较高,即用户不希望出现待存储文件出现丢失的情形,此时通过存入高速磁盘方式将该待存储文件存储到高速磁盘中,由于高速磁盘的安全性较高且读写速度比低速磁盘快,能有效地提高待存储文件的上传速度,并且能保证待存储文件的存储安全性;而如果用户需要存储的待存储文件的重要性分值较低,则可通过存入内存缓存方式将该待存储文件存储到内存缓存中,虽然内存缓存的安全性较低,但内存缓存的读写速度非常快,能大大地提高待存储文件的上传速度,提升用户的使用体验。
参照图2,进一步地,本申请一实施例中,上述步骤S3,包括:
S300:通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存,以将所述待存储文件写入所述高速磁盘。
如上述步骤S300所述,当待存储文件的重要性分值大于第一预设阈值时,服务器便会采用存入高速缓存方式来对该待存储文件进行存储。而在对待存储文件进行存储的步骤之前,服务器首先会在内部创建上述高速磁盘,高速磁盘的安全性较高且读写速度比低速磁盘快,且高速磁盘可采用SSD(Solid State Disk,固态硬盘)。服务器包括主线程,该主线程为原本设置在服务器内的一个线程,通过主线程来完成将待存储文件写入高速磁盘进行临时缓存的操作。具体地,上述主线程包括主线程数据读取模块和主线程数据写入模块,上述主线程数据读取模块用于读取待存储文件对应的字节流,上述主线程数据写入模块用于在读取待存储文件对应的字节流的同时,将该字节流写入高速磁盘进行临时缓存,通过主线程数据读取模块和主线程数据写入模块对于待存储文件对应的字节流的配合处理,从而快速地将待存储文件写入所述高速磁盘中。在本实施例,首先在服务器中设置用作缓存的安全性较高且读写速度比低速磁盘快的高速磁盘,在接收到用户发出的携带有重要性分值的待存储文件后,当该重要性分值大于第一预设阈值时,便通过服务器的主线程读取该待存储文件对应的字节流并将该字节流同步写入预设的高速磁盘进行临时缓存,以实现将待存储文件存储到高速磁盘中,从而服务器可以快速地完成对用户发出的文件存储请求的处理,提高待存储文件的上传速度,提高用户的使用体验,另外,服务器在完成将待存储文件存储到高速磁盘后便可以释放用户当前占用的文件上传通道,使得该释放后的文件上传通道可以用来接收新的文件存储请求,从而可以提高实时服务器的吞吐量和降低服务器的响应时间。
参照图3,进一步地,本申请一实施例中,上述步骤S300之后,包括:
S301:判断所述高速磁盘中已缓存的数据容量是否达到预设的第一容量阈值;
S302:若已达到所述第一容量阈值,则通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储;
S303:判断将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的第一移动动作是否执行完毕;
S304:若执行完毕,则删除所述高速磁盘内的所述待存储文件。
如上述步骤S301至S304所述,上述高速磁盘的容量由业务人员根据业务实际情况进行设定,但容量越大成本越大,例如上述的高速磁盘的容量可设为1g。在设置好高速磁盘的容量后,再设置一个与高速磁盘的容量对应的第一容量阈值,且第一容量阈值的具体数值可根据经验值进行取值。当高速磁盘中已经缓存的数据容量达到了预先设置的第一容量阈值,为了保证高速磁盘内能够拥有足够的可用容量来存储后续需要存储的文件,此时需要对高速磁盘内的待存储文件进行转移,并在转移成功后将高速磁盘内的待存储文件删除,从而释放出高速磁盘的可用空间,避免后续出现在服务器需要存储大容量的文件数据但高速磁盘的可用容量不足而导致出现文件数据丢失或者文件存储服务提供失败的情况。具体地,上述对高速磁盘内的待存储文件进行转移的步骤包括将该待存储文件从高速磁盘移动到容量大的低速磁盘进行存储,具体可通过服务器预先设置的第一次线程将高速磁盘内的待存储文件移动到低速磁盘进行存储,其中上述低速磁盘是一种大容量且存储安全性较高的存储器,虽然低速磁盘的读写速度慢,但将待存储文件从高速磁盘移动到低速磁盘的动作只是服务器的内部运作,且不会对待传输文件的文件上传过程造成影响。另外,上述第一从线程是服务器为了将高速磁盘中的所述待存储文件移动到低速磁盘进行存储而创建的,通过该第一从线程将高速磁盘中的待存储文件写入低速磁盘的动作不会对主线程执行的动作造成影响,也不会占用主线程将待存储文件写入高速磁盘的时间,有效地消除了将高速磁盘内的待存储文件写入低速磁盘的动作对将待存储文件写入高速磁盘的动作造成的阻碍,提高了服务器对待处理文件的处理效率。进一步地,在第一从线程创建成功之后,还需要对该第一从线程进行初始化,使得初始化后的第一从线程能正常进行工作,进而实现将待存储文件写入低速磁盘内。在本实施例,在通过主线程将待存储文件写入所述高速磁盘的过程中,会对高速磁盘中的已缓存的数据容量是否达到预设的第一容量阈值进行判断,如果该数据容量已达到第一容量阈值,则通过预设的第一从线程将高速磁盘中的待存储文件移动到低速磁盘进行存储,从而有效地利用低速磁盘对待存储文件实现长时间的安全存储,另外在将高速磁盘中的待存储文件移动到低速磁盘进行存储的移动动作执行完毕后,会对高速磁盘内的待存储文件进行删除,从而有效地释放出高速磁盘的可用空间,保障了服务器提供的文件存储服务的正常运行。
进一步地,本申请一实施例中,上述步骤S302,包括:
S3020:通过所述第一从线程将所述高速磁盘中的所述待存储文件写入所述内存缓存;
S3021:当完成将所述高速磁盘中的所述待存储文件写入所述内存缓存的动作后,通过所述第一从线程将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储。
如上述步骤S3020和S3021所述,通过上述第一从线程将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的步骤,具体可为:通过该第一从线程先将所述高速磁盘中的所述待存储文件写入内存缓存,然后再通过该第一从线程将所述内存缓存中的待存储文件移动到所述低速磁盘进行存储。在本实施例,在通过服务器的主线程将待存储文件成功写入到高速磁盘进行临时缓存后,首先通过预先创建的第一从线程将高速磁盘内的待存储文件写入内存缓存中,之后再通过该第一从线程将所述内存缓存中的待存储文件移动到所述低速磁盘进行存储。由于内存缓存的读写处理速度比高速磁盘缓存更快,如果在内存缓存中写入了上述待存储文件,则在后续用户需要从服务器中对该待存储文件进行调用时,服务器便可以直接从内存缓存中快速地读取出待存储文件并返回给用户,而不需要从高速磁盘中读取出待存储文件,大大地提高了服务器的对待存储文件的调用速度,提高了用户的使用体验。
进一步地,本申请一实施例中,上述步骤S3之后,包括:
S30:在预设时间段内,按照指定时间间隔监测所述高速磁盘的容量使用率;
S31:记录容量使用率大于预设的容量使用率阈值的次数;
S32:判断所述次数是否大于预设的次数阈值;
S33:若大于所述次数阈值,以指定方式向业务人员发送报警信号。
如上述步骤S30至S33所述,在服务器通过使用高速磁盘来为用户提供文件存储服务时,由于服务器对于高速磁盘的使用情况会关切到高速磁盘的使用寿命,如果高速磁盘的容量使用率经常处于很高的状态则表明高速磁盘本身经常处于高负荷的工作状态,进而导致高速磁盘的使用寿命下降,并且高速磁盘的使用寿命也会影响到服务器所提供的文件存储服务的质量。在本实施例,在对高速磁盘的使用过程中,通过在预设时间段内按照指定时间间隔来对高速磁盘的容量使用率进行监测,其中上述预设时间段由和指定时间间隔可由服务器自行设定,例如预设时间段可设为一天,指定时间间隔可为每隔4小时一次一周,等等。在经过上述预设时间段监测得到高速磁盘的所有容量使用率后,首先从所有的容量使用率中记录容量使用率大于上述容量使用率阈值的次数,然后进一步判断该次数量是否大于预设的次数阈值,如果大于该次数阈值,则服务器会向业务人员发送报警信息。其中,上述容量使用率是指高速磁盘内的已使用容量与总容量的比值,上述容量使用率阈值与次数阈值是对应于高速磁盘的正常工作状态并根据经验值进行设置的,例如上述第三预设阈值可设为70%,上述第四预设阈值可为3,如果高速磁盘的容量使用率经常大于该容量使用率阈值,即容量使用率大于该容量使用率阈值的次数超过该次数阈值,则表明高速磁盘长期处于高负荷工作状态,从而会导致高速磁盘的使用寿命会大大降低,3。举例地,如果在预设时间段内服务器监测到高速磁盘的所有容量使用率分别为75%、80%、90%、80%、60%,则容量使用率大于容量使用率阈值(70%)的次数为4,且该次数大于预设的次数阈值(3),则服务器会通过指定方式,例如邮件或者短信的方式向业务人员发送报警信号,以提醒业务人员高速磁盘当前经常处于高负荷运作的非正常工作状态,使得业务人员可及时采取相关措施来对高速磁盘的非正常工作状态进行改善,例如可通过增大高速磁盘的容量或者限制服务器可提供的单次最大文件存储容量大小,从而有效地保证后续对高速磁盘的安全使用,保证高速磁盘的使用寿命。
进一步地,本申请一实施例中,上述步骤S4,包括:
S400:通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存。
如上述步骤S400所述,当待存储文件的重要性分值小于预设阈值时,服务器便会采用存入内存缓存方式来对该待存储文件进行存储。而在对待存储文件进行存储的步骤之前,服务器首先会在内部建立上述内存缓存,内存缓存的读写速度比高速磁盘快,但内存缓存的容量较小且安全性较低。其中,本实施例提及的主线程可与上述实施例中提及的主线程相同,通过采用同一个主线程来对不同存储方式进行处理,有利于减少服务器的资源消耗,提高服务器的资源共享与利用。另外,上述通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存的步骤具体包括:服务器首先通过上述主线程的主线程数据读取模块读取该待存储文件对应的字节流,并通过上述主线程的主线程数据写入模块将该字节流同步写入上述内存缓存,以通过主线程数据读取模块和主线程数据写入模块对于待存储文件对应的字节流的配合处理实现将该待存储文件快速地写入上述内存缓存中。在本实施例,由于用户需要存储的待存储文件的重要性分值小于预设阈值,即用户可以容忍该待存储文件在服务器的存储过程中出现丢失,尽管内存缓存的容量比高速磁盘的容量小且内存缓存的安全性较低,但上述内存缓存的读写处理速度比高速磁盘缓存更快,因此通过服务器的主线程读取该待存储文件对应的字节流并将该字节流同步写入预设的内存缓存进行临时缓存,以实现将待存储文件存储到内存缓存中,从而服务器可以快速地完成对用户发出的文件存储请求的处理,大大地提高了待存储文件的上传速度,另外,服务器在完成将待存储文件存储到内存缓存后便可以快速释放用户当前占用的文件上传通道,使得该释放后的文件上传通道可以用来接收新的文件存储请求,从而可以大大地提高实时服务器的吞吐量和降低服务器的响应时间。
进一步地,本申请一实施例中,上述步骤S400之后,包括:
S401:判断所述内存缓存中已缓存的数据容量是否达到预设的第二容量阈值;
S402:若已达到所述第二容量阈值,则通过预设的第二从线程将所述内存缓存中的所述待存储文件移动到低速磁盘进行存储;
S403:判断将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储的第二移动动作是否执行完毕;
S404:若执行完毕,则删除所述内存缓存内的所述待存储文件。
如上述步骤S401至S404所述,上述内存缓存具有读写速度非常快的特点,但内存缓存本身的容量非常小,从而服务器会不定时对内存缓存内的内容进行清理来保证内存缓存内能够拥有足够的可用容量来存储后续需要存储的文件,但是这样容易导致存储在内存缓存的文件出现丢失的情况。为了降低写入内存缓存内的待存储文件的丢失风险,需要及时将内存缓存内的待存储文件进行转移,并在转移成功后将内存缓存内的待存储文件删除,从而释放出内存缓存的可用空间。具体地,上述对内存缓存内的待存储文件进行转移的步骤包括当内存缓存中已缓存的数据容量达到预设的第二容量阈值后,通过预设的从线程将内存缓存内的待存储文件转移到低速磁盘进行存储,其中上述第二容量阈值根据内存缓存的容量进行设置,第二容量阈值的具体数值可根据经验值进行取值,并且上述的第二从线程与上述提及的第一从线程可以是相同的一个从线程或者可以是两个不同的从线程,在此不作具体限定。另外,通过将内存缓存内的待存储文件写入安全存储性高的低速磁盘进行存储有利于降低待存储文件的丢失风险,并且通过预设的第二从线程将内存缓存中的待存储文件写入低速磁盘的动作不会对主线程执行的动作造成影响,也不会占用主线程将待存储文件写入内存缓存的时间,有效地消除了将内存缓存内的待存储文件写入低速磁盘的动作对将待存储文件写入内存缓存的动作造成的阻碍,提高了服务器对待处理文件的处理效率。在本实施例,在通过主线程将待存储文件写入所述内存缓存的过程中,会对内存缓存中的已缓存的数据容量是否达到预设的第二容量阈值进行判断,如果该数据容量已达到第二容量阈值,则通过预设的第二从线程将高速磁盘中的待存储文件移动到低速磁盘进行存储,从而有效地利用低速磁盘对待存储文件实现长时间的安全存储,另外在将内存缓存中的待存储文件移动到低速磁盘进行存储的移动动作执行完毕后,会对内存缓存内的待存储文件进行删除,从而有效地释放出内存缓存的可用空间,保障了服务器提供的文件存储服务的正常运行。
参照图4,本申请一实施例中还提供了一种文件存储装置,包括:
第一判断模块1,用于判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
第二判断模块2,用于若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
第一存储模块3,用于若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
第二存储模块4,用于若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
本实施例中,本实施例的文件存储装置可为向用户提供文件存储服务的服务器。服务器会预先设置有不同的存储方式来对重要性分值不同的待存储文件进行存储,其中,上述重要性分值可以体现出用户对需要上传的待存储文件允许丢失的忍耐度,该重要性分值携带在用户发出的文件存储请求内,另外,上述第一预设阈值为重要性分值的指标阈值,该第一预设阈值可由服务器自行设置或者通过接收各用户输入的数据进行分析处理后设置得到,且重要性分值不同的待存储文件对应不同的存储方式,即上述的存入高速磁盘方式和存入内存缓存方式。上述存入高速磁盘方式包括将待存储文件存储到预先设置的高速磁盘的步骤,高速磁盘相对于服务器原本用于直接存储文件的低速磁盘具有读写速度较快的特点,且将待存储文件写入高速磁盘的安全性较高,不易丢失;上述存入内存缓存策略包括将待存储文件存储到预先设置的内存缓存的步骤,虽然内存缓存的容量比高速磁盘的小,并且服务器会不定时对内存缓存内的内容进行清理易导致存储在内存缓存的文件具有丢失的风险,内存缓存的安全性较低即,但内存缓存相对于高速磁盘具有读写速度更快的特点,上述第一预设阈值。在本实施例,预先设置一个与待存储文件的重要性分值相对应的第一预设阈值,当接收到用户发出的携带有重要性分值的文件存储请求时,首先判断该重要性分值是否大于该第一预设阈值,如果大于该第一预设阈值,则调用预设的存入高速磁盘方式将待存储文件存储到高速磁盘中,而如果不大于该第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。本实施例通过为重要性分值不同的待存储文件提供不同的存储方式,不仅提高了待存储文件的上传速度,减少了服务器系统的资源消耗,而且有利于为用户提供满意的服务。如果用户需要存储的待存储文件的重要性分值较高,即用户不希望出现待存储文件出现丢失的情形,此时通过存入高速磁盘方式将该待存储文件存储到高速磁盘中,由于高速磁盘的安全性较高且读写速度比低速磁盘快,能有效地提高待存储文件的上传速度,并且能保证待存储文件的存储安全性;而如果用户需要存储的待存储文件的重要性分值较低,则可通过存入内存缓存方式将该待存储文件存储到内存缓存中,虽然内存缓存的安全性较低,但内存缓存的读写速度非常快,能大大地提高待存储文件的上传速度,提升用户的使用体验。
进一步地,本申请一实施例中,上述第一存储模块,包括:
第一存储单元,用于通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存,以将所述待存储文件写入所述高速磁盘。
本实施例中,当待存储文件的重要性分值大于第一预设阈值时,服务器便会采用存入高速缓存方式来对该待存储文件进行存储。而在对待存储文件进行存储的步骤之前,服务器首先会在内部创建上述高速磁盘,高速磁盘的安全性较高且读写速度比低速磁盘快,且高速磁盘可采用SSD(Solid State Disk,固态硬盘)。服务器包括主线程,该主线程为原本设置在服务器内的一个线程,通过主线程来完成将待存储文件写入高速磁盘进行临时缓存的操作。具体地,上述主线程包括主线程数据读取模块和主线程数据写入模块,上述主线程数据读取模块用于读取待存储文件对应的字节流,上述主线程数据写入模块用于在读取待存储文件对应的字节流的同时,将该字节流写入高速磁盘进行临时缓存,通过主线程数据读取模块和主线程数据写入模块对于待存储文件对应的字节流的配合处理,从而快速地将待存储文件写入所述高速磁盘中。在本实施例,首先在服务器中设置用作缓存的安全性较高且读写速度比低速磁盘快的高速磁盘,在接收到用户发出的携带有重要性分值的待存储文件后,当该重要性分值大于第一预设阈值时,便通过服务器的主线程读取该待存储文件对应的字节流并将该字节流同步写入预设的高速磁盘进行临时缓存,以实现将待存储文件存储到高速磁盘中,从而服务器可以快速地完成对用户发出的文件存储请求的处理,提高待存储文件的上传速度,提高用户的使用体验,另外,服务器在完成将待存储文件存储到高速磁盘后便可以释放用户当前占用的文件上传通道,使得该释放后的文件上传通道可以用来接收新的文件存储请求,从而可以提高实时服务器的吞吐量和降低服务器的响应时间。
进一步地,本申请一实施例中,上述第一存储模块,还包括:
第一判断单元,用于判断所述高速磁盘中已缓存的数据容量是否达到预设的第一容量阈值;
第一移动单元,用于若已达到所述第一容量阈值,则通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储;
第二判断单元,用于判断将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的第一移动动作是否执行完毕;
第一删除单元,用于若执行完毕,则删除所述高速磁盘内的所述待存储文件。
本实施例中,上述高速磁盘的容量由业务人员根据业务实际情况进行设定,但容量越大成本越大,例如上述的高速磁盘的容量可设为1g。在设置好高速磁盘的容量后,再设置一个与高速磁盘的容量对应的第一容量阈值,且第一容量阈值的具体数值可根据经验值进行取值。当高速磁盘中已经缓存的数据容量达到了预先设置的第一容量阈值,为了保证高速磁盘内能够拥有足够的可用容量来存储后续需要存储的文件,此时需要对高速磁盘内的待存储文件进行转移,并在转移成功后将高速磁盘内的待存储文件删除,从而释放出高速磁盘的可用空间,避免后续出现在服务器需要存储大容量的文件数据但高速磁盘的可用容量不足而导致出现文件数据丢失或者文件存储服务提供失败的情况。具体地,上述对高速磁盘内的待存储文件进行转移的步骤包括将该待存储文件从高速磁盘移动到容量大的低速磁盘进行存储,具体可通过服务器预先设置的第一次线程将高速磁盘内的待存储文件移动到低速磁盘进行存储,其中上述低速磁盘是一种大容量且存储安全性较高的存储器,虽然低速磁盘的读写速度慢,但将待存储文件从高速磁盘移动到低速磁盘的动作只是服务器的内部运作,且不会对待传输文件的文件上传过程造成影响。另外,上述第一从线程是服务器为了将高速磁盘中的所述待存储文件移动到低速磁盘进行存储而创建的,通过该第一从线程将高速磁盘中的待存储文件写入低速磁盘的动作不会对主线程执行的动作造成影响,也不会占用主线程将待存储文件写入高速磁盘的时间,有效地消除了将高速磁盘内的待存储文件写入低速磁盘的动作对将待存储文件写入高速磁盘的动作造成的阻碍,提高了服务器对待处理文件的处理效率。进一步地,在第一从线程创建成功之后,还需要对该第一从线程进行初始化,使得初始化后的第一从线程能正常进行工作,进而实现将待存储文件写入低速磁盘内。在本实施例,在通过主线程将待存储文件写入所述高速磁盘的过程中,会对高速磁盘中的已缓存的数据容量是否达到预设的第一容量阈值进行判断,如果该数据容量已达到第一容量阈值,则通过预设的第一从线程将高速磁盘中的待存储文件移动到低速磁盘进行存储,从而有效地利用低速磁盘对待存储文件实现长时间的安全存储,另外在将高速磁盘中的待存储文件移动到低速磁盘进行存储的移动动作执行完毕后,会对高速磁盘内的待存储文件进行删除,从而有效地释放出高速磁盘的可用空间,保障了服务器提供的文件存储服务的正常运行。
进一步地,本申请一实施例中,上述第一移动单元,包括:
第一写入子单元,用于通过所述第一从线程将所述高速磁盘中的所述待存储文件写入所述内存缓存;
第一移动子单元,用于当完成将所述高速磁盘中的所述待存储文件写入所述内存缓存的动作后,通过所述第一从线程将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储。
本实施例中,通过上述第一从线程将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的步骤,具体可为:通过该第一从线程先将所述高速磁盘中的所述待存储文件写入内存缓存,然后再通过该第一从线程将所述内存缓存中的待存储文件移动到所述低速磁盘进行存储。在本实施例,在通过服务器的主线程将待存储文件成功写入到高速磁盘进行临时缓存后,首先通过预先创建的第一从线程将高速磁盘内的待存储文件写入内存缓存中,之后再通过该第一从线程将所述内存缓存中的待存储文件移动到所述低速磁盘进行存储。由于内存缓存的读写处理速度比高速磁盘缓存更快,如果在内存缓存中写入了上述待存储文件,则在后续用户需要从服务器中对该待存储文件进行调用时,服务器便可以直接从内存缓存中快速地读取出待存储文件并返回给用户,而不需要从高速磁盘中读取出待存储文件,大大地提高了服务器的对待存储文件的调用速度,提高了用户的使用体验。
进一步地,本申请一实施例中,上述文件存储装置,包括
检测模块,用于在预设时间段内,按照指定时间间隔监测所述高速磁盘的容量使用率;
记录模块,用于记录容量使用率大于预设的容量使用率阈值的次数;
第三判断模块,用于判断所述次数是否大于预设的次数阈值;
发送模块,用于若大于所述次数阈值,以指定方式向业务人员发送报警信号。
本实施例中,在服务器通过使用高速磁盘来为用户提供文件存储服务时,由于服务器对于高速磁盘的使用情况会关切到高速磁盘的使用寿命,如果高速磁盘的容量使用率经常处于很高的状态则表明高速磁盘本身经常处于高负荷的工作状态,进而导致高速磁盘的使用寿命下降,并且高速磁盘的使用寿命也会影响到服务器所提供的文件存储服务的质量。在本实施例,在对高速磁盘的使用过程中,通过在预设时间段内按照指定时间间隔来对高速磁盘的容量使用率进行监测,其中上述预设时间段由和指定时间间隔可由服务器自行设定,例如预设时间段可设为一天,指定时间间隔可为每隔4小时一次一周,等等。在经过上述预设时间段监测得到高速磁盘的所有容量使用率后,首先从所有的容量使用率中记录容量使用率大于上述容量使用率阈值的次数,然后进一步判断该次数量是否大于预设的次数阈值,如果大于该次数阈值,则服务器会向业务人员发送报警信息。其中,上述容量使用率是指高速磁盘内的已使用容量与总容量的比值,上述容量使用率阈值与次数阈值是对应于高速磁盘的正常工作状态并根据经验值进行设置的,例如上述第三预设阈值可设为70%,上述第四预设阈值可为3,如果高速磁盘的容量使用率经常大于该容量使用率阈值,即容量使用率大于该容量使用率阈值的次数超过该次数阈值,则表明高速磁盘长期处于高负荷工作状态,从而会导致高速磁盘的使用寿命会大大降低,3。举例地,如果在预设时间段内服务器监测到高速磁盘的所有容量使用率分别为75%、80%、90%、80%、60%,则容量使用率大于容量使用率阈值(70%)的次数为4,且该次数大于预设的次数阈值(3),则服务器会通过指定方式,例如邮件或者短信的方式向业务人员发送报警信号,以提醒业务人员高速磁盘当前经常处于高负荷运作的非正常工作状态,使得业务人员可及时采取相关措施来对高速磁盘的非正常工作状态进行改善,例如可通过增大高速磁盘的容量或者限制服务器可提供的单次最大文件存储容量大小,从而有效地保证后续对高速磁盘的安全使用,保证高速磁盘的使用寿命。
进一步地,本申请一实施例中,上述第二存储模块,包括:
第二存储单元,用于通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存;
本实施例中,当待存储文件的重要性分值小于预设阈值时,服务器便会采用存入内存缓存方式来对该待存储文件进行存储。而在对待存储文件进行存储的步骤之前,服务器首先会在内部建立上述内存缓存,内存缓存的读写速度比高速磁盘快,但内存缓存的容量较小且安全性较低。其中,本实施例提及的主线程可与上述实施例中提及的主线程相同,通过采用同一个主线程来对不同存储方式进行处理,有利于减少服务器的资源消耗,提高服务器的资源共享与利用。另外,上述通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存的步骤具体包括:服务器首先通过上述主线程的主线程数据读取模块读取该待存储文件对应的字节流,并通过上述主线程的主线程数据写入模块将该字节流同步写入上述内存缓存,以通过主线程数据读取模块和主线程数据写入模块对于待存储文件对应的字节流的配合处理实现将该待存储文件快速地写入上述内存缓存中。在本实施例,由于用户需要存储的待存储文件的重要性分值小于预设阈值,即用户可以容忍该待存储文件在服务器的存储过程中出现丢失,尽管内存缓存的容量比高速磁盘的容量小且内存缓存的安全性较低,但上述内存缓存的读写处理速度比高速磁盘缓存更快,因此通过服务器的主线程读取该待存储文件对应的字节流并将该字节流同步写入预设的内存缓存进行临时缓存,以实现将待存储文件存储到内存缓存中,从而服务器可以快速地完成对用户发出的文件存储请求的处理,大大地提高了待存储文件的上传速度,另外,服务器在完成将待存储文件存储到内存缓存后便可以快速释放用户当前占用的文件上传通道,使得该释放后的文件上传通道可以用来接收新的文件存储请求,从而可以大大地提高实时服务器的吞吐量和降低服务器的响应时间。
进一步地,本申请一实施例中,上述第二存储模块,包括:
第三判断单元,用于判断所述内存缓存中已缓存的数据容量是否达到预设的第二容量阈值;
第二移动单元,用于若已达到所述第二容量阈值,则通过预设的第二从线程将所述内存缓存中的所述待存储文件移动到低速磁盘进行存储;
第四判断单元,用于判断将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储的第二移动动作是否执行完毕;
第二删除单元,用于若执行完毕,则删除所述内存缓存内的所述待存储文件
本实施例中,上述内存缓存具有读写速度非常快的特点,但内存缓存本身的容量非常小,从而服务器会不定时对内存缓存内的内容进行清理来保证内存缓存内能够拥有足够的可用容量来存储后续需要存储的文件,但是这样容易导致存储在内存缓存的文件出现丢失的情况。为了降低写入内存缓存内的待存储文件的丢失风险,需要及时将内存缓存内的待存储文件进行转移,并在转移成功后将内存缓存内的待存储文件删除,从而释放出内存缓存的可用空间。具体地,上述对内存缓存内的待存储文件进行转移的步骤包括当内存缓存中已缓存的数据容量达到预设的第二容量阈值后,通过预设的从线程将内存缓存内的待存储文件转移到低速磁盘进行存储,其中上述第二容量阈值根据内存缓存的容量进行设置,第二容量阈值的具体数值可根据经验值进行取值,并且上述的第二从线程与上述提及的第一从线程可以是相同的一个从线程或者可以是两个不同的从线程,在此不作具体限定。另外,通过将内存缓存内的待存储文件写入安全存储性高的低速磁盘进行存储有利于降低待存储文件的丢失风险,并且通过预设的第二从线程将内存缓存中的待存储文件写入低速磁盘的动作不会对主线程执行的动作造成影响,也不会占用主线程将待存储文件写入内存缓存的时间,有效地消除了将内存缓存内的待存储文件写入低速磁盘的动作对将待存储文件写入内存缓存的动作造成的阻碍,提高了服务器对待处理文件的处理效率。在本实施例,在通过主线程将待存储文件写入所述内存缓存的过程中,会对内存缓存中的已缓存的数据容量是否达到预设的第二容量阈值进行判断,如果该数据容量已达到第二容量阈值,则通过预设的第二从线程将高速磁盘中的待存储文件移动到低速磁盘进行存储,从而有效地利用低速磁盘对待存储文件实现长时间的安全存储,另外在将内存缓存中的待存储文件移动到低速磁盘进行存储的移动动作执行完毕后,会对内存缓存内的待存储文件进行删除,从而有效地释放出内存缓存的可用空间,保障了服务器提供的文件存储服务的正常运行。
本实施例中,参照图5,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储文件存储请求等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件存储方法。
上述处理器执行上述文件存储方法的步骤:
判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
在一实施例,所述调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤,包括:
通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存,以将所述待存储文件写入所述高速磁盘。
在一实施例,所述通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存的步骤之后,包括:
判断所述高速磁盘中已缓存的数据容量是否达到预设的第一容量阈值;
若已达到所述第一容量阈值,则通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储;
判断将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的第一移动动作是否执行完毕;
若执行完毕,则删除所述高速磁盘内的所述待存储文件。
在一实施例,所述通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储的步骤,包括:
通过所述第一从线程将所述高速磁盘中的所述待存储文件写入所述内存缓存;
当完成将所述高速磁盘中的所述待存储文件写入所述内存缓存的动作后,通过所述第一从线程将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储。
在一实施例,所述用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤之后,包括:
在预设时间段内,按照指定时间间隔监测所述高速磁盘的容量使用率;
记录容量使用率大于预设的容量使用率阈值的次数;
判断所述次数是否大于预设的次数阈值;
若大于所述次数阈值,以指定方式向业务人员发送报警信号。
在一实施例,所述调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中的步骤,包括:
通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存。
在一实施例,所述通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存的步骤之后,包括:
判断所述内存缓存中已缓存的数据容量是否达到预设的第二容量阈值;
若已达到所述第二容量阈值,则通过预设的第二从线程将所述内存缓存中的所述待存储文件移动到低速磁盘进行存储;
判断将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储的第二移动动作是否执行完毕;
若执行完毕,则删除所述内存缓存内的所述待存储文件。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种文件存储方法,具体为:
上述处理器执行上述文件存储方法的步骤:
判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
在一实施例,所述调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤,包括:
通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存,以将所述待存储文件写入所述高速磁盘。
在一实施例,所述通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存的步骤之后,包括:
判断所述高速磁盘中已缓存的数据容量是否达到预设的第一容量阈值;
若已达到所述第一容量阈值,则通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储;
判断将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的第一移动动作是否执行完毕;
若执行完毕,则删除所述高速磁盘内的所述待存储文件。
在一实施例,所述通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储的步骤,包括:
通过所述第一从线程将所述高速磁盘中的所述待存储文件写入所述内存缓存;
当完成将所述高速磁盘中的所述待存储文件写入所述内存缓存的动作后,通过所述第一从线程将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储。
在一实施例,所述用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤之后,包括:
在预设时间段内,按照指定时间间隔监测所述高速磁盘的容量使用率;
记录容量使用率大于预设的容量使用率阈值的次数;
判断所述次数是否大于预设的次数阈值;
若大于所述次数阈值,以指定方式向业务人员发送报警信号。
在一实施例,所述调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中的步骤,包括:
通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存。
在一实施例,所述通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存的步骤之后,包括:
判断所述内存缓存中已缓存的数据容量是否达到预设的第二容量阈值;
若已达到所述第二容量阈值,则通过预设的第二从线程将所述内存缓存中的所述待存储文件移动到低速磁盘进行存储;
判断将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储的第二移动动作是否执行完毕;
若执行完毕,则删除所述内存缓存内的所述待存储文件。
综上所述,本申请实施例中提供的文件存储方法、装置、计算机设备和存储介质,判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。本申请通过对重要性分值不同的待存储文件提供不同的处理方式,不仅提高了待存储文件的上传速度,减少了服务器系统的资源消耗,而且有利于为用户提供满意的服务。如果用户需要存储的待存储文件的重要性分值较高,即用户不希望出现待存储文件出现丢失的情形,此时通过存入高速磁盘方式将该待存储文件存储到高速磁盘中,由于高速磁盘的安全性较高且读写速度比低速磁盘块,能有效地提高待存储文件的上传速度,并且能保证待存储文件的存储安全性;而如果用户需要存储的待存储文件的重要性分值较低,则可通过存入内存缓存方式将该待存储文件存储到内存缓存中,虽然内存缓存的安全性较低,但内存缓存的读写速度非常快,能大大地提高待存储文件的上传速度,提升用户的使用体验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种文件存储方法,其特征在于,包括:
判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
2.根据权利要求1所述的文件存储方法,其特征在于,所述调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤,包括:
通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存,以将所述待存储文件写入所述高速磁盘。
3.根据权利要求2所述的文件存储方法,其特征在于,所述通过预设的主线程读取所述待存储文件对应的字节流并将所述字节流同步写入所述高速磁盘进行缓存的步骤之后,包括:
判断所述高速磁盘中已缓存的数据容量是否达到预设的第一容量阈值;
若已达到所述第一容量阈值,则通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储;
判断将所述高速磁盘中的所述待存储文件移动到所述低速磁盘进行存储的第一移动动作是否执行完毕;
若执行完毕,则删除所述高速磁盘内的所述待存储文件。
4.根据权利要求3所述的文件存储方法,其特征在于,所述通过预设的第一从线程将所述高速磁盘中的所述待存储文件移动到低速磁盘进行存储的步骤,包括:
通过所述第一从线程将所述高速磁盘中的所述待存储文件写入所述内存缓存;
当完成将所述高速磁盘中的所述待存储文件写入所述内存缓存的动作后,通过所述第一从线程将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储。
5.根据权利要求1所述的文件存储方法,其特征在于,所述用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中的步骤之后,包括:
在预设时间段内,按照指定时间间隔监测所述高速磁盘的容量使用率;
记录容量使用率大于预设的容量使用率阈值的次数;
判断所述次数是否大于预设的次数阈值;
若大于所述次数阈值,以指定方式向业务人员发送报警信号。
6.根据权利要求1所述的文件存储方法,其特征在于,所述调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中的步骤,包括:
通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存,以将所述待存储文件写入所述内存缓存。
7.根据权利要求6所述的文件存储方法,其特征在于,所述通过预设的主线程读取所述存储文件对应的字节流并将所述字节流同步写入所述内存缓存的步骤之后,包括:
判断所述内存缓存中已缓存的数据容量是否达到预设的第二容量阈值;
若已达到所述第二容量阈值,则通过预设的第二从线程将所述内存缓存中的所述待存储文件移动到低速磁盘进行存储;
判断将所述内存缓存中的所述待存储文件移动到所述低速磁盘进行存储的第二移动动作是否执行完毕;
若执行完毕,则删除所述内存缓存内的所述待存储文件。
8.一种文件存储装置,其特征在于,包括:
第一判断模块,用于判断是否接收到用户发出的文件存储请求,其中所述文件存储请求携带与所述文件存储请求对应的待存储文件的重要性分值;
第二判断模块,用于若接收到用户发出的文件存储请求,则判断所述重要性分值是否大于第一预设阈值;
第一存储模块,用于若所述重要性分值大于所述第一预设阈值,则调用预设的存入高速磁盘方式将所述待存储文件存储到高速磁盘中;
第二存储模块,用于若所述重要性分值不大于所述第一预设阈值,则调用预设的存入内存缓存方式将所述待存储文件存储到内存缓存中。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910024697.9A CN109857339A (zh) | 2019-01-10 | 2019-01-10 | 文件存储方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910024697.9A CN109857339A (zh) | 2019-01-10 | 2019-01-10 | 文件存储方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857339A true CN109857339A (zh) | 2019-06-07 |
Family
ID=66894449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910024697.9A Pending CN109857339A (zh) | 2019-01-10 | 2019-01-10 | 文件存储方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857339A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543367A (zh) * | 2019-08-30 | 2019-12-06 | 联想(北京)有限公司 | 资源处理方法及其装置、电子设备和介质 |
CN110704384A (zh) * | 2019-09-30 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 扫描文件上传方法、装置、计算机设备及存储介质 |
CN111143288A (zh) * | 2019-12-22 | 2020-05-12 | 北京浪潮数据技术有限公司 | 一种数据存储方法、系统及相关装置 |
CN111352591A (zh) * | 2020-02-26 | 2020-06-30 | 上海市胸科医院 | 医疗影像文件的存储方法及设备 |
CN111399769A (zh) * | 2020-02-26 | 2020-07-10 | 武汉思普崚技术有限公司 | 一种mime格式上传文件的存储方法及装置 |
CN111859016A (zh) * | 2020-06-24 | 2020-10-30 | 安徽吉秒科技有限公司 | 一种录像文件的存储、回放的装置及方法 |
US20230055511A1 (en) * | 2021-08-20 | 2023-02-23 | International Business Machines Corporation | Optimizing clustered filesystem lock ordering in multi-gateway supported hybrid cloud environment |
CN116627920A (zh) * | 2023-07-24 | 2023-08-22 | 华能信息技术有限公司 | 一种基于工业互联网的数据存储方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
CN104539895A (zh) * | 2014-12-25 | 2015-04-22 | 桂林远望智能通信科技有限公司 | 一种视频分层存储系统及处理方法 |
CN105574104A (zh) * | 2015-12-11 | 2016-05-11 | 上海爱数信息技术股份有限公司 | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 |
CN107357932A (zh) * | 2017-07-31 | 2017-11-17 | 云城(北京)数据科技有限公司 | 一种文件存储方法及装置 |
CN108881847A (zh) * | 2018-07-18 | 2018-11-23 | 北京世纪东方通讯设备有限公司 | 用于视频监控系统的录像保护方法及装置 |
US20180373600A1 (en) * | 2017-06-27 | 2018-12-27 | Western Digital Technologies, Inc. | Hybrid data storage system with private storage cloud and public storage cloud |
-
2019
- 2019-01-10 CN CN201910024697.9A patent/CN109857339A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364474A (zh) * | 2011-11-17 | 2012-02-29 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
CN104539895A (zh) * | 2014-12-25 | 2015-04-22 | 桂林远望智能通信科技有限公司 | 一种视频分层存储系统及处理方法 |
CN105574104A (zh) * | 2015-12-11 | 2016-05-11 | 上海爱数信息技术股份有限公司 | 一种基于ObjectStore的LogStructure存储系统及其数据写入方法 |
US20180373600A1 (en) * | 2017-06-27 | 2018-12-27 | Western Digital Technologies, Inc. | Hybrid data storage system with private storage cloud and public storage cloud |
CN107357932A (zh) * | 2017-07-31 | 2017-11-17 | 云城(北京)数据科技有限公司 | 一种文件存储方法及装置 |
CN108881847A (zh) * | 2018-07-18 | 2018-11-23 | 北京世纪东方通讯设备有限公司 | 用于视频监控系统的录像保护方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110543367A (zh) * | 2019-08-30 | 2019-12-06 | 联想(北京)有限公司 | 资源处理方法及其装置、电子设备和介质 |
CN110704384A (zh) * | 2019-09-30 | 2020-01-17 | 深圳前海环融联易信息科技服务有限公司 | 扫描文件上传方法、装置、计算机设备及存储介质 |
CN111143288A (zh) * | 2019-12-22 | 2020-05-12 | 北京浪潮数据技术有限公司 | 一种数据存储方法、系统及相关装置 |
CN111352591A (zh) * | 2020-02-26 | 2020-06-30 | 上海市胸科医院 | 医疗影像文件的存储方法及设备 |
CN111399769A (zh) * | 2020-02-26 | 2020-07-10 | 武汉思普崚技术有限公司 | 一种mime格式上传文件的存储方法及装置 |
CN111352591B (zh) * | 2020-02-26 | 2023-03-14 | 上海市胸科医院 | 医疗影像文件的存储方法及设备 |
CN111859016A (zh) * | 2020-06-24 | 2020-10-30 | 安徽吉秒科技有限公司 | 一种录像文件的存储、回放的装置及方法 |
US20230055511A1 (en) * | 2021-08-20 | 2023-02-23 | International Business Machines Corporation | Optimizing clustered filesystem lock ordering in multi-gateway supported hybrid cloud environment |
CN116627920A (zh) * | 2023-07-24 | 2023-08-22 | 华能信息技术有限公司 | 一种基于工业互联网的数据存储方法 |
CN116627920B (zh) * | 2023-07-24 | 2023-11-07 | 华能信息技术有限公司 | 一种基于工业互联网的数据存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857339A (zh) | 文件存储方法、装置、计算机设备和存储介质 | |
CN107967291B (zh) | 日志条目复制方法、装置、计算机设备及存储介质 | |
CN105224255B (zh) | 一种存储文件管理方法及装置 | |
CN103942252B (zh) | 一种恢复数据的方法及系统 | |
CN106708578B (zh) | 基于双线程的日志输出方法及装置 | |
US10007685B2 (en) | Data logs management in a multi-client architecture | |
CN104158757B (zh) | 一种gps数据入库处理方法和系统 | |
CN108834086A (zh) | 短信发送的方法、装置、计算机设备和存储介质 | |
CN103986779B (zh) | 一种应用数据传输方法、装置及终端设备 | |
CN109257770B (zh) | 过载控制方法、装置、系统及设备 | |
CN106919471A (zh) | 用于快照建立的方法和系统 | |
CN108874324A (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
CN110401697A (zh) | 一种并发处理http请求的方法、系统及设备 | |
CN106302421B (zh) | 一种信息拦截处理方法以及装置 | |
CN103034581A (zh) | 一种嵌入式系统跟踪调试方法及装置 | |
CN101645802B (zh) | 内容控制方法及装置 | |
CN112632375A (zh) | 会话信息处理方法、服务器及存储介质 | |
CN109697112B (zh) | 分布式集约化一站式作业系统和实现方法 | |
CN110445826B (zh) | 一种会话信息获取方法、装置及服务器 | |
CN110098976A (zh) | 网络参数的测量方法、装置、计算机设备和存储介质 | |
CN103621014B (zh) | 自治的自干扰网络元件和方法 | |
CN114827047B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN115549754B (zh) | 基于核心网的卫星通信高低轨切换方法、设备及存储介质 | |
US10674337B2 (en) | Method and device for processing operation for device peripheral | |
CN110830385A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |