用于分布式存储系统的数据修改方法及其装置、电子设备与流程
- 国知局
- 2024-10-15 10:13:31
本发明涉及大数据领域、金融科技领域或其他相关领域,具体而言,涉及一种用于分布式存储系统的数据修改方法及其装置、电子设备。
背景技术:
1、当前大数据领域的行业标准是hadoop,hadoop是个生态系统,包括hdfs(hadoop分布式文件存储系统)、mapreduce(对hdfs中存储的数据进行分布式计算的组件)、hbase(分布式数据库)以及许多基于hadoop生态系统的各种组件。针对hdfs,需要有一个大容量的客户端(至少比待上传的文件更大),在客户端将大文件利用hadoop特有的指令上传到多台节点组合而成的hdfs,即可完成分布式存储。此后如果想增加数据,可以在客户端将数据追加到hdfs上。分布式文件存储系统的节点数(服务器的数量)可以不断增加,以便应对越来越多的数据。
2、相关技术中,虽然分布式文件存储系统hdfs支持追加数据,但hdfs采用一次写入,多次读取的策略,对于分布式文件存储系统中已存储的文件,不支持修改,如果想要修改,必须先在客户端修改,然后重新上传。分布式文件存储系统不能修改文件,如果不断追加数据,会导致系统上的文件越来越大,这时候如果发现系统上的文件有数据错了,一方面不能直接修改,另一方面此时有可能连客户端都放不下这个巨大的文件,更别提重新上传了,会造成文件修改效率低。
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种用于分布式存储系统的数据修改方法及其装置、电子设备,以至少解决相关技术中分布式文件存储系统内不支持修改存储文件,造成文件修改效率低的技术问题。
2、根据本发明实施例的一个方面,提供了一种用于分布式存储系统的数据修改方法,应用于分布式存储系统中的编辑器,分布式存储系统包括:客户端、主服务器、n个从服务器以及所述编辑器,所述客户端用于上传目标文件,所述主服务器用于记录目标文件存储的从服务器信息,所述从服务器用于存储m个文件片段,所述m个文件片段由所述目标文件划分得到,用于分布式存储系统的数据修改方法包括:响应数据修改操作,定位待修改数据在所属文件片段中的当前页面,其中,在每次执行所述数据修改操作时,仅支持修改当前页面的数据,不支持修改其它页面的数据;查询在所述当前页面中进行数据修改时的偏移量;根据所述数据修改操作的操作类型以及所述偏移量,在所述所属文件片段中的当前页面中进行数据修改。
3、可选地,根据所述数据修改操作的操作类型以及所述偏移量,在所述所属文件片段中的当前页面中进行数据修改的步骤,包括:在所述数据修改操作的操作类型为删除操作的情况下,根据所述偏移量的数值大小,在所述当前页面中涉及被删除的数据的位置新增相应大小的空格,其中,新增的空格数的数量与所述偏移量的数值指示的数量一致;在完成所述删除操作且接收到第一保存操作的情况下,保存所述当前页面中的所有数据,并将所述所属文件片段之后的下一文件片段中与所述偏移量的数值大小相同的头部数据附加至所述所属文件片段的尾部,并依次迭代其它文件片段中的数据;对于第m个文件片段,在所述第m个文件片段中的数据小于所述偏移量的数值大小的情况下,将该第m个文件片段中的数据附加至第m-1个文件片段的尾部,并删除所述第m个文件片段。
4、可选地,根据所述数据修改操作的操作类型以及所述偏移量,在所述所属文件片段中的当前页面中进行数据修改的步骤,包括:在所述数据修改操作的操作类型为新增操作的情况下,根据所述偏移量的数值大小,在所述当前页面中新增操作涉及的位置保存新增的数据,将所述当前页面中的尾部数据暂存在缓存空间中,其中,暂存的所述尾部数据的数量与所述偏移量的数值指示的数量一致;将所述缓存空间中暂存的所述尾部数据添加至所述所属文件片段之后的下一文件片段中的头部,并依次迭代其它文件片段中的数据,对于第m个文件片段,在所述第m个文件片段中的数据总量大于片段总量阈值的情况下,在所属的从服务器中增加一个文件片段,得到第m+1个文件片段。
5、可选地,根据所述数据修改操作的操作类型以及所述偏移量,在所述所属文件片段中的当前页面中进行数据修改的步骤,包括:在所述数据修改操作的操作类型为修改操作的情况下,根据所述偏移量的大小,执行删除操作或者新增操作对应的数据修改策略,其中,所述偏移量为正值的情况下,执行所述新增操作对应的数据修改策略,所述偏移量为负值的情况,执行删除操作对应的数据修改策略;在所述偏移量的大小为0的情况下,根据所述修改操作的位置在所述当前页面修改该位置对应的数据,不修改其他页面的数据。
6、可选地,用于分布式存储系统的数据修改方法还包括:响应数据查询操作,解析待查找的关键字;定位待查找数据在所属文件片段中的当前页面;根据所述关键字查询在所述当前页面中进行查找;在所述当前页面无法查找到所述关键字的情况下,判断所述当前页面之后的下一页面是否超出所述所属文件片段;在所述下一页面超出所述所属文件片段的情况下,查找保存所述目标文件中在所述所属文件片段的下一文件片段的从服务器,查找所述从服务器中关联所述下一文件片段中是否存在所述关键字;在第m个文件片段无法查找到所述关键字的情况下,从第一个文件片段开始是否存在所述关键字;在所有文件片段均无法查找到所述关键字的情况下,输出关键字不存在通知;或者,在查找到所述关键字的情况下,定位所述关键字所处的文件片段的位置,并展示所述关键字所属的页面。
7、可选地,用于分布式存储系统的数据修改方法还包括:响应文件存储命令,将接收到的目标文件按照相同大小切割为m份,得到m个文件片段,其中,前m-1个文件片段的大小相同,第m个文件片段的大小能够调整;获取所有从服务器的名称,采用取模算法计算每个文件片段待存储的从服务器;记录所述目标文件的文件名称、文件大小、每个所述文件片段分布的从服务器的名称,得到记录信息,并将所述记录信息发送至主服务器。
8、可选地,用于分布式存储系统的数据修改方法还包括:响应文件读取命令,依据文件标识在所述主服务器中查询文件元数据;基于所述文件元数据,确定待读取文件分布的从服务器的名称;定位各个所述从服务器中的文件片段,并在各所述从服务器读取所有所述文件片段。
9、可选地,用于分布式存储系统的数据修改方法还包括:响应文件展示命令,将跳转指定页数输入至第一预定公式中,得到文件片段序号以及所属的从服务器;将所述跳转指定页数以及所述文件片段序号输入至第二预定公式中,得到跳转页面的字节大小;基于所述跳转页面的字节大小以及预设展示页面大小,读取指定字节段的数据,并将读取到的数据作为当前页展示在目标界面上。
10、根据本发明实施例的另一方面,还提供了一种分布式存储系统,包括:客户端,用于上传目标文件;主服务器,用于记录目标文件存储的从服务器信息;n台从服务器,每台所述从服务器用于存储m个文件片段,所述m个文件片段由所述目标文件划分得到;编辑器,执行上述任意一项所述的用于分布式存储系统的数据修改方法。
11、根据本发明实施例的另一方面,还提供了一种用于分布式存储系统的数据修改装置,应用于分布式存储系统中的编辑器,分布式存储系统包括:客户端、主服务器、n个从服务器以及所述编辑器,所述客户端用于上传目标文件,所述主服务器用于记录目标文件存储的从服务器信息,所述从服务器用于存储m个文件片段,所述m个文件片段由所述目标文件划分得到,用于分布式存储系统的数据修改装置包括:操作响应单元,用于响应数据修改操作,定位待修改数据在所属文件片段中的当前页面,其中,在每次执行所述数据修改操作时,仅支持修改当前页面的数据,不支持修改其它页面的数据;偏移量查询单元,用于查询在所述当前页面中进行数据修改时的偏移量;数据修改单元,用于根据所述数据修改操作的操作类型以及所述偏移量,在所述所属文件片段中的当前页面中进行数据修改。
12、可选地,所述数据修改单元包括:空格新增模块,用于在所述数据修改操作的操作类型为删除操作的情况下,根据所述偏移量的数值大小,在所述当前页面中涉及被删除的数据的位置新增相应大小的空格,其中,新增的空格数的数量与所述偏移量的数值指示的数量一致;第一数据保存模块,用于在完成所述删除操作且接收到第一保存操作的情况下,保存所述当前页面中的所有数据,并将所述所属文件片段之后的下一文件片段中与所述偏移量的数值大小相同的头部数据附加至所述所属文件片段的尾部,并依次迭代其它文件片段中的数据;数据附加模块,用于对于第m个文件片段,在所述第m个文件片段中的数据小于所述偏移量的数值大小的情况下,将该第m个文件片段中的数据附加至第m-1个文件片段的尾部,并删除所述第m个文件片段。
13、可选地,所述数据修改单元包括:第二数据保存模块,用于在所述数据修改操作的操作类型为新增操作的情况下,根据所述偏移量的数值大小,在所述当前页面中新增操作涉及的位置保存新增的数据,将所述当前页面中的尾部数据暂存在缓存空间中,其中,暂存的所述尾部数据的数量与所述偏移量的数值指示的数量一致;数据添加模块,用于将所述缓存空间中暂存的所述尾部数据添加至所述所属文件片段之后的下一文件片段中的头部,并依次迭代其它文件片段中的数据,对于第m个文件片段,在所述第m个文件片段中的数据总量大于片段总量阈值的情况下,在所属的从服务器中增加一个文件片段,得到第m+1个文件片段。
14、可选地,所述数据修改单元包括:操作执行模块,用于在所述数据修改操作的操作类型为修改操作的情况下,根据所述偏移量的大小,执行删除操作或者新增操作对应的数据修改策略,其中,所述偏移量为正值的情况下,执行所述新增操作对应的数据修改策略,所述偏移量为负值的情况,执行删除操作对应的数据修改策略;数据页面修改模块,用于在所述偏移量的大小为0的情况下,根据所述修改操作的位置在所述当前页面修改该位置对应的数据,不修改其他页面的数据。
15、可选地,用于分布式存储系统的数据修改装置还包括:查询操作响应单元,用于响应数据查询操作,解析待查找的关键字;页面定位单元,用于定位待查找数据在所属文件片段中的当前页面;第一关键字查找单元,用于根据所述关键字查询在所述当前页面中进行查找;页面判断单元,用于在所述当前页面无法查找到所述关键字的情况下,判断所述当前页面之后的下一页面是否超出所述所属文件片段;片段查找单元,用于在所述下一页面超出所述所属文件片段的情况下,查找保存所述目标文件中在所述所属文件片段的下一文件片段的从服务器,查找所述从服务器中关联所述下一文件片段中是否存在所述关键字;第二关键字查找单元,用于在第m个文件片段无法查找到所述关键字的情况下,从第一个文件片段开始是否存在所述关键字;通知输出单元,用于在所有文件片段均无法查找到所述关键字的情况下,输出关键字不存在通知;或者,关键字展示单元,用于在查找到所述关键字的情况下,定位所述关键字所处的文件片段的位置,并展示所述关键字所属的页面。
16、可选地,用于分布式存储系统的数据修改装置还包括:存储命令响应单元,用于响应文件存储命令,将接收到的目标文件按照相同大小切割为m份,得到m个文件片段,其中,前m-1个文件片段的大小相同,第m个文件片段的大小能够调整;名称获取单元,用于获取所有从服务器的名称,采用取模算法计算每个文件片段待存储的从服务器;信息记录单元,用于记录所述目标文件的文件名称、文件大小、每个所述文件片段分布的从服务器的名称,得到记录信息,并将所述记录信息发送至主服务器。
17、可选地,用于分布式存储系统的数据修改装置还包括:读取命令响应单元,用于响应文件读取命令,依据文件标识在所述主服务器中查询文件元数据;名称确定单元,用于基于所述文件元数据,确定待读取文件分布的从服务器的名称;文件片段定位单元,用于定位各个所述从服务器中的文件片段,并在各所述从服务器读取所有所述文件片段。
18、可选地,用于分布式存储系统的数据修改装置还包括:展示命令响应单元,用于响应文件展示命令,将跳转指定页数输入至第一预定公式中,得到文件片段序号以及所属的从服务器;公式计算单元,用于将所述跳转指定页数以及所述文件片段序号输入至第二预定公式中,得到跳转页面的字节大小;数据界面展示单元,用于基于所述跳转页面的字节大小以及预设展示页面大小,读取指定字节段的数据,并将读取到的数据作为当前页展示在目标界面上。
19、根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项的用于分布式存储系统的数据修改方法。
20、根据本发明实施例的另一方面,还提供了一种电子设备,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述任意一项的用于分布式存储系统的数据修改方法。
21、根据本发明实施例的另一方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的用于分布式存储系统的数据修改方法的步骤。
22、在本公开中,在分布式存储系统中,响应数据修改操作,定位待修改数据在所属文件片段中的当前页面,在每次执行数据修改操作时,仅支持修改当前页面的数据,不支持修改其它页面的数据,查询在当前页面中进行数据修改时的偏移量,根据数据修改操作的操作类型以及偏移量,在所属文件片段中的当前页面中进行数据修改。
23、本公开中,能够对分布式存储系统中存储的文件/数据进行实时修改,具体修改时,先查询在当前页面中进行数据修改时的偏移量,然后使用操作类型以及偏移量,在所属文件片段中的当前页面中进行数据修改,通过在全新开发的分布式文件存储系统上直接修改文件,克服了原有的行业标准hdfs的缺陷,显著提升了数据修改效率,使大数据的操作更加方便,解决相关技术中分布式文件存储系统内不支持修改存储文件,造成文件修改效率低的技术问题。
本文地址:https://www.jishuxx.com/zhuanli/20241015/316858.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
上一篇
一种工商管理数据保存装置
下一篇
返回列表