文件存储方法和装置、电子设备、程序和介质制造方法及图纸

技术编号:18356266 阅读:16 留言:0更新日期:2018-07-02 09:59
本发明专利技术实施例公开了一种文件存储方法和装置、电子设备、程序和介质,其中,方法包括:响应于接收到写请求,服务器上的至少一个第一进程将所述写请求中的小文件存储在所述进程的缓冲区内,确定所述小文件的索引;其中,所述小文件的索引包括:所述小文件所在分块文件的分块文件标识、以及所在节的节标识和节内偏移量;响应于满足所述缓冲区中数据的写入条件,所述第一进程将所述缓冲区中的数据追加写入到网络附属存储器中的一个分块文件中。本发明专利技术实施例实现了小文件的合并存储,可以优化存储性能、进行分布式扩展。

【技术实现步骤摘要】
文件存储方法和装置、电子设备、程序和介质
本专利技术涉及数据处理技术,尤其是一种文件存储方法和装置、电子设备、程序和介质。
技术介绍
存储模块是一个应用系统中负责数据保存与访问的模块。在智能监控领域,高效且安全地存储历史数据是整个应用系统正常运行的必要前提。存储模块通常由硬件与软件两部分组成。其中,硬件部分即实际存储数据的物理设备,例如机械硬盘、固态硬盘等;软件部分则是给应用系统提供数据存储接口的系统,例如文件系统、数据库等。根据实际应用需求进行软件与硬件选型是设计存储模块的关键。
技术实现思路
本专利技术实施例提供一种文件存储技术方案。根据本专利技术实施例的一个方面,提供的一种文件存储方法,包括:响应于接收到写请求,服务器上的至少一个第一进程将所述写请求中的小文件存储在所述第一进程的缓冲区内,确定所述小文件的索引;其中,所述小文件的索引包括:所述小文件所在分块文件的分块文件标识、以及所在节的节标识和节内偏移量;响应于满足所述缓冲区中数据的写入条件,所述第一进程将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中。可选地,在本专利技术上述各方法实施例中,所述满足所述缓冲区中数据的写入条件,所述第一进程将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中,包括:响应于所述缓冲区中的数据量达到一个节的大小,所述第一进程将所述缓冲区中的数据作为一个节,追加写入到网络附属存储器中的一个分块文件中;和/或响应于所述缓冲区中的数据在所述缓冲区中的最长保存时间达到预设时长阈值,所述第一进程将所述缓冲区中的数据追加写入到网络附属存储器中的一个分块文件中。可选地,在本专利技术上述各方法实施例中,所述服务器包括至少一个,每个服务器上运行有至少一个进程;所述网络附属存储器挂载到所述至少一个服务器上;所述方法还包括:响应于接收到第一应用发送的写请求,负载均衡器将所述写请求分发给至少一个服务器上的至少一个所述第一进程。可选地,在本专利技术上述各方法实施例中,所述缓冲区的大小为一个节的大小,或者所述缓冲区的大小大于一个节的大小。可选地,在本专利技术上述各方法实施例中,将所述写请求中的小文件存储在所述第一进程的缓冲区内,包括:将所述小文件的二进制内容、元信息和校验码组合成一个数据包,存储在所述第一进程的缓冲区内。可选地,在本专利技术上述各方法实施例中,将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中,包括:将所述缓冲区内的所有数据包、统计信息和校验码追加写入到网络附属存储器中的一个分块文件中;所述统计信息包括:所述缓冲区内小文件的个数、所有二进制内容的大小。可选地,在本专利技术上述各方法实施例中,所述小文件的索引还包括:所述小文件所在分块文件的日期。可选地,在本专利技术上述各方法实施例中,将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中之前,还包括:从所述网络附属存储器选取一个分块文件作为写入所述缓冲区中的数据的分块文件。可选地,在本专利技术上述各方法实施例中,从所述网络附属存储器选取一个分块文件,包括:从所述网络附属存储器的分块文件中,选取一个未添加文件锁的分块文件作为写入所述缓冲区中的数据的一个分块文件,并对选取的分块文件添加文件锁;若所述网络附属存储器的分块文件中不存在未添加文件锁的分块文件,在所述网络附属存储上创建一个新的分块文件,并对创建的分块文件添加文件锁。可选地,在本专利技术上述各方法实施例中,从所述网络附属存储器选取一个分块文件作为写入所述缓冲区中的数据的分块文件,包括:根据所述缓冲区中节的大小,从所述网络附属存储器中查找当前日期的分块文件中是否有未写满、且剩余容量不小于所述节的大小的分块文件;若当前日期的分块文件中有未写满、且剩余容量不小于所述节的大小的分块文件,选取一个当前日期未写满、且剩余容量不小于所述节的大小的分块文件作为写入所述缓冲区中的数据的分块文件;否则,若当前日期的分块文件中没有未写满、且剩余容量不小于所述节的大小的分块文件,在所述网络附属存储上创建一个新的分块文件作为写入所述缓冲区中的数据的分块文件。可选地,在本专利技术上述各方法实施例中,还包括:响应于接收到第二应用发送的需要读取的小文件的第一读请求,所述至少一个服务器上的至少一个第二进程解析所述第一读请求中需要读取的小文件的索引,得到所述需要读取的小文件所在分块文件的分块文件标识、节标识和节内偏移量;所述第二进程从所述网络附属存储上定位所述需要读取的小文件所在分块文件并跳转到所述节内偏移量对应的位置,读取所述需要读取的小文件并返回所述第二应用。可选地,在本专利技术上述各方法实施例中,响应于接收到第二应用发送的需要读取的小文件的第一读请求,包括:响应于接收到第二应用发送的第一读请求,负载均衡器将所述第一读请求分发给所述至少一个服务器上的至少一个第二进程;读取所述需要读取的小文件并返回所述第二应用,包括:读取所述需要读取的小文件并返回所述负载均衡器;所述负载均衡器将所述需要读取的小文件返回所述第二应用。可选地,在本专利技术上述各方法实施例中,读取所述需要读取的小文件并返回,包括:读取所述需要读取的小文件,并根据所述小文件中的校验码对所述需要读取的小文件中的二进制内容进行校验和数据格式检查;若所述二进制内容通过校验与数据格式检查,返回所述需要读取的小文件。可选地,在本专利技术上述各方法实施例中,从所述网络附属存储上定位所述需要读取的小文件所在分块文件之后,还包括:将所述所在分块文件的文件描述符缓存在服务器的内存中。可选地,在本专利技术上述各方法实施例中,从所述网络附属存储上定位所述需要读取的小文件所在分块文件,包括:响应于服务器的内存中缓存有所述所在分块文件的文件描述符,根据所述所在分块文件的文件描述符定位所述需要读取的小文件所在分块文件。可选地,在本专利技术上述各方法实施例中,还包括:响应于接收到第三应用发送的第二读请求,负载均衡器将所述第二读请求分发给至少一个服务器上的至少一个第三进程;所述第二读请求中包括日期;所述至少一个第三进程从所述网络附属存储上查询所述第二读请求中日期对应的分块文件,读取所述第二读请求中日期对应的分块文件中所有的小文件并返回所述负载均衡器;所述负载均衡器将所述第二读请求中日期对应的分块文件中所有的小文件返回所述第三应用。可选地,在本专利技术上述各方法实施例中,所述第三进程从所述网络附属存储上查询所述第二读请求中日期对应的分块文件,读取所述第二读请求中日期对应的分块文件中所有的小文件并返回所述负载均衡器,包括:所述第三进程从所述网络附属存储上查询所述第二读请求中日期对应的分块文件,并将所述第二读请求中日期对应的分块文件中的所有节读取到所在服务器的内存中;所述第三进程分别针对内存中的各节,根据节内的校验码对该节进行校验和数据格式检查;响应于所述节通过校验和数据格式检查,顺序读取通过校验和数据格式检查的节内的所有小文件并返回所述负载均衡器。可选地,在本专利技术上述各方法实施例中,所述第三进程从所述网络附属存储上查询所述第二读请求中日期对应的分块文件,读取所述第二读请求中日期对应的分块文件中所有的小文件并返回所述负载均衡器,包括:所述第三进程从所述网络附属存储上查询所述第二读请求中日期对应的分块文件,若所述第二读请求中日期对应的分块文件中节的总数量大于预设数量阈值,向本文档来自技高网...
文件存储方法和装置、电子设备、程序和介质

【技术保护点】
1.一种文件存储方法,其特征在于,包括:响应于接收到写请求,服务器上的至少一个第一进程将所述写请求中的小文件存储在所述第一进程的缓冲区内,确定所述小文件的索引;其中,所述小文件的索引包括:所述小文件所在分块文件的分块文件标识、以及所在节的节标识和节内偏移量;响应于满足所述缓冲区中数据的写入条件,所述第一进程将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中。

【技术特征摘要】
1.一种文件存储方法,其特征在于,包括:响应于接收到写请求,服务器上的至少一个第一进程将所述写请求中的小文件存储在所述第一进程的缓冲区内,确定所述小文件的索引;其中,所述小文件的索引包括:所述小文件所在分块文件的分块文件标识、以及所在节的节标识和节内偏移量;响应于满足所述缓冲区中数据的写入条件,所述第一进程将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中。2.根据权利要求1所述的方法,其特征在于,所述满足所述缓冲区中数据的写入条件,所述第一进程将所述缓冲区中的数据写入到网络附属存储器中的一个分块文件中,包括:响应于所述缓冲区中的数据量达到一个节的大小,所述第一进程将所述缓冲区中的数据作为一个节,追加写入到网络附属存储器中的一个分块文件中;和/或响应于所述缓冲区中的数据在所述缓冲区中的最长保存时间达到预设时长阈值,所述第一进程将所述缓冲区中的数据追加写入到网络附属存储器中的一个分块文件中。3.根据权利要求1或2所述的方法,其特征在于,所述服务器包括至少一个,每个服务器上运行有至少一个进程;所述网络附属存储器挂载到所述至少一个服务器上;所述方法还包括:响应于接收到第一应用发送的写请求,负载均衡器将所述写请求分发给至少一个服务器上的至少一个所述第一进程。4.根据权利要求1-3任一所述的方法,其特征在于,所述缓冲区的大小为一个节的大小,或者所述缓冲区的大小大于一个节的大小。5....

【专利技术属性】
技术研发人员:莫涛陈宇恒
申请(专利权)人:北京市商汤科技开发有限公司
类型:发明
国别省市:北京,11

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

1