CN113760830B - 一种分布式文件存储可编辑系统和方法 - Google Patents

一种分布式文件存储可编辑系统和方法 Download PDF

Info

Publication number
CN113760830B
CN113760830B CN202111108038.7A CN202111108038A CN113760830B CN 113760830 B CN113760830 B CN 113760830B CN 202111108038 A CN202111108038 A CN 202111108038A CN 113760830 B CN113760830 B CN 113760830B
Authority
CN
China
Prior art keywords
data
version
distributed
index information
request
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.)
Active
Application number
CN202111108038.7A
Other languages
English (en)
Other versions
CN113760830A (zh
Inventor
李强
高昇宇
刘永清
赵峰
朱红
刘迪
李温静
闫松
董建强
王璇
戴彬
张雪成
汪良
常有刚
王勇翔
任承欢
姚晶莹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Information and Telecommunication Co Ltd
Nanjing Power Supply Co of State Grid Jiangsu Electric Power Co Ltd
Original Assignee
State Grid Information and Telecommunication Co Ltd
Nanjing Power Supply Co of State Grid Jiangsu Electric Power Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by State Grid Information and Telecommunication Co Ltd, Nanjing Power Supply Co of State Grid Jiangsu Electric Power Co Ltd filed Critical State Grid Information and Telecommunication Co Ltd
Priority to CN202111108038.7A priority Critical patent/CN113760830B/zh
Publication of CN113760830A publication Critical patent/CN113760830A/zh
Application granted granted Critical
Publication of CN113760830B publication Critical patent/CN113760830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files

Abstract

本申请提供了一种分布式文件存储可编辑系统和方法,系统包括:数据版本控制服务模块、数据版本融合服务模块和数据版本索引模块,数据版本索引模块用于存储分布式文件系统包含的各分布式数据分别对应的索引信息,数据版本控制服务模块用于获取数据访问请求,根据数据访问请求进行数据更新处理或数据删除处理,数据版本融合服务模块用于根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,对旧版本对应的索引信息进行索引删除处理。本申请通过在分布式文件系统写入待更新的分布式数据实现数据更新,通过对分布式文件系统包含的分布式数据的新旧版本进行融合处理实现数据删除,即实现了对写入分布式文件系统的分布式数据进行更新和删除。

Description

一种分布式文件存储可编辑系统和方法
技术领域
本申请涉及大数据存储技术领域,特别是涉及一种分布式文件存储可编辑系统和方法。
背景技术
随着信息数字技术快速发展,我国智慧城市建设正在迅速发展,能源是支撑城市运行发展的基础系统,也是较早推动信息化、数字化、智能化技术应用的重要领域。能源与信息技术的革新和深化融合正推动能源系统向能源互联网发展。随着传感、通信和智能控制等数字信息技术日新月异,能源行业信息采集能力也大幅提升,能源生产端与消费端的能源信息化管理技术应用已十分普遍,城市能源数据量正在以指数级增长,大数据存储成为城市能源大数据平台建设中极为重要的一环。
计算机通过文件系统管理和存储数据,而城市能源数据量指数级的增长速度,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统可以有效解决数据的存储和管理难题:将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。用户在使用分布式文件系统时,无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的,只需要像使用本地文件系统一样管理和存储文件系统中的数据。
在智慧城市众多应用场景中,很多业务要求大数据存储既能够支持海量数据实时分析计算,同时支持交互式数据操作,这其中包括数据更新和删除。但一般分布式文件存储的特点是顺序写入文件,不可修改,同时文件多副本,对于数据更新和删除这样的操作基本很难实现。
发明内容
有鉴于此,本申请提供了一种分布式文件存储可编辑系统和方法,以解决现有技术写入分布式文件系统中的分布式数据无法更新和删除的问题,其技术方案如下:
一种分布式文件存储可编辑系统,包括:数据版本控制服务模块、数据版本融合服务模块和数据版本索引模块;
数据版本索引模块,用于存储分布式文件系统包含的各分布式数据分别对应的索引信息,其中,一分布式数据对应的索引信息包括该分布式数据的新旧版本分别对应的索引信息,索引信息中包括用于表征分布式数据的版本号的版本号字段;
数据版本控制服务模块,用于获取数据访问请求,其中,数据访问请求包括数据更新请求和数据删除请求,数据更新请求用于请求对分布式数据进行更新,数据删除请求用于请求对分布式数据进行删除;根据数据访问请求进行数据更新处理或数据删除处理,其中,数据更新处理用于将待更新的分布式数据写入分布式文件系统并对应更新索引信息,数据删除处理用于将待删除的分布式数据的新版本对应的索引信息中的版本号字段变更为删除状态的特殊值;
数据版本融合服务模块,用于根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。
可选的,数据版本控制服务模块包括数据访问接口和版本控制模块;
数据访问接口,用于获取数据访问请求;
版本控制模块,用于根据数据访问接口获取的数据访问请求进行数据更新处理或数据删除处理。
可选的,索引信息中还包括用于表征分布式数据的标识的主键字段、用于指示分布式数据是否为新版本的新版本字段,以及,用于指示分布式数据的新旧版本是否已融合的融合字段,其中,任一分布式数据的新旧版本分别对应的索引信息中的主键字段均相同。
可选的,数据访问请求为数据更新请求,数据更新请求中携带有待更新的分布式数据对应的待更新数据和待更新数据对应的主键;
版本控制模块在根据数据访问接口获取的数据访问请求进行数据更新处理时,具体用于:
根据待更新数据对应的主键,从数据版本索引模块中获取新版本字段为是的索引信息,作为第一索引信息;
将第一索引信息的新版本字段变更为否,并将第一索引信息的融合字段变更为否;
在数据版本索引模块中插入待更新数据对应的索引信息,其中,待更新数据对应的索引信息中的新版本字段设置为是,版本号字段设置为第一索引信息中的版本号字段增加一个版本,融合字段设置为否;
根据待更新数据对应的索引信息,将待更新数据写入分布式文件系统。
可选的,数据访问请求为数据删除请求,数据删除请求中携带有待删除的分布式数据对应的主键;
版本控制模块在根据数据访问接口获取的数据访问请求进行数据删除处理时,具体用于:
根据待删除的分布式数据对应的主键,从数据版本索引模块中获取新版本字段为是的索引信息,作为第二索引信息;
将第二索引信息中的版本号字段变更为删除状态的特殊值。
可选的,数据访问接口,还用于获取数据插入请求,其中,数据插入请求用于请求写入新的分布式数据,数据插入请求中携带有新的分布式数据对应的主键;
版本控制模块,还用于根据数据访问接口获取的数据插入请求,在数据版本索引模块中插入新的分布式数据对应的索引信息,并根据新的分布式数据对应的索引信息,将新的分布式数据写入分布式文件系统;其中,新的分布式数据对应的索引信息中的新版本字段设置为是,版本号字段设置为第一版本,融合字段设置为是,主键字段为新的分布式数据对应的主键。
可选的,数据访问接口,还用于获取数据查询请求,其中,数据查询请求用于请求对待查询的分布式数据进行查询,数据查询请求中携带有待查询的分布式数据对应的查询条件;
版本控制模块,还用于从数据版本索引模块中获取满足查询条件的分布式数据对应的主键,作为目标主键,并获取包含目标主键的索引信息,然后根据包含目标主键的索引信息,从分布式文件系统中获取待查询的分布式数据。
可选的,分布式文件系统包含的各分布式数据存储在目标文件中,数据版本融合服务模块在根据数据版本融合请求,对分布式数据的新旧版本进行融合处理时,具体用于:
根据数据版本融合请求,从数据版本索引模块中获取融合字段为否的索引信息,作为第三索引信息;
从第三索引信息中获取新版本字段为是的索引信息,作为第四索引信息;
从分布式文件系统中获取第四索引信息对应的分布式数据,并将获取到的分布式数据写入新的文件;
将目标文件删除。
可选的,数据访问接口包括:数据查询接口、数据插入接口、数据更新接口和数据删除接口。
一种分布式文件存储可编辑方法,包括:
获取数据访问请求,并根据数据访问请求进行数据更新处理或数据删除处理;其中,数据访问请求包括数据更新请求和数据删除请求,数据更新请求用于请求对分布式文件系统包含的分布式数据进行更新,数据删除请求用于请求对分布式数据进行删除,数据更新处理用于将待更新的分布式数据写入分布式文件系统并对应更新索引信息,数据删除处理用于将分布式数据的新版本对应的索引信息中的版本号字段变更为删除状态的特殊值,一分布式数据对应的索引信息包括该分布式数据的新旧版本分别对应的索引信息,索引信息中包括用于表征分布式数据的版本号的版本号字段;
和/或,
根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。
经由上述的技术方案可知,本申请提供的分布式文件存储可编辑系统包括数据版本控制服务模块、数据版本融合服务模块和数据版本索引模块,其中,数据版本索引模块可以存储分布式文件系统包含的各分布式数据分别对应的索引信息,数据版本控制服务模块可以获取数据访问请求,并根据数据访问请求进行数据更新处理或数据删除处理,数据版本融合服务模块可以根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。本申请提供的分布式文件存储可编辑系统可通过在分布式文件系统写入待更新的分布式数据实现数据更新,并可通过对分布式文件系统包含的分布式数据的新旧版本进行融合处理实现数据删除,即实现了对写入分布式文件系统中的分布式数据进行更新和删除。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种分布式文件存储可编辑系统的结构示意图;
图2为本申请实施例提供的另一种分布式文件存储可编辑系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
鉴于现有技术存在的问题,本案发明人进行了深入研究,最终提出了一种分布式文件存储可编辑系统,接下来通过下述实施例对本申请提供的分布式文件存储可编辑系统进行详细介绍。
请参阅图1,示出了本申请实施例提供的一种分布式文件存储可编辑系统的结构示意图,该分布式文件存储可编辑系统可以包括:数据版本控制服务模块1、数据版本融合服务模块2和数据版本索引模块3。
上述数据版本索引模块2,用于存储分布式文件系统包含的各分布式数据分别对应的索引信息。可选的,该数据版本索引模块2为存储在关系型数据库中的记录索引信息的数据模型,优选的,采用Oracle关系型数据库进行存储。
在本申请实施例中,分布式文件系统可存储多个版本下的分布式数据,其中,最后写入分布式文件系统的分布式数据的版本作为新版本,除新版本外的其他版本作为旧版本。这里,分布式数据可以为需要频繁更新的数据,例如,城市综合能源全域数据。
在将分布式数据写入分布式文件系统之前,本申请实施例还需要将分布式数据对应的索引信息存储至数据版本索引模块2,以基于该数据版本索引模块2存储的索引信息,从分布式文件系统中找到对应的分布式数据。那么,数据版本索引模块2中存储的一分布式数据对应的索引信息包括该分布式数据的新旧版本分别对应的索引信息,这里,该分布式数据的新旧版本分别对应的索引信息包括该分布式数据的新版本对应的索引信息和各旧版本分别对应的索引信息。
可选的,索引信息中包括用于表征分布式数据的版本号的版本号字段(在本申请中,该版本号字段记为VersionNumber字段),可选的,索引信息中还包括:用于表征分布式数据的标识的主键字段(在本申请中,该主键字段记为ID字段)、用于指示分布式数据是否为新版本的新版本字段(在本申请中,该新版本字段记为MostRecentVersion字段),以及,用于指示分布式数据的新旧版本是否已融合的融合字段(在本申请中,该新版本字段记为Merged字段)。这里,若分布式文件系统中仅包含一个版本的分布式数据,则融合字段为是,若分布式文件系统中包含多个版本的分布式数据,则融合字段为否。
需要说明的是,本申请实施例中,任一分布式数据的新旧版本分别对应的索引信息中的主键字段均相同。也即,根据主键字段,即可从分布式文件系统中找到主键对应的所有新旧版本下的分布式数据。
上述数据版本控制服务模块1,用于获取数据访问请求,并根据数据访问请求进行数据处理。
这里,数据访问请求包括数据更新请求和数据删除请求,其中,数据更新请求用于请求对已有的分布式数据进行更新,数据删除请求用于请求对分布式数据进行删除。
基于此,根据数据访问请求进行数据处理的过程可以包括:若数据访问请求为数据更新请求,则根据数据更新请求进行数据更新处理,该数据更新处理用于将待更新的分布式数据写入分布式文件系统并对应更新索引信息;若数据访问请求为数据删除请求,则根据数据删除请求进行数据删除处理,该数据删除处理用于将待删除的分布式数据的新版本对应的索引信息中的版本号字段变更为删除状态的特殊值。
可选的,上述数据访问请求还可以包括数据插入请求和数据查询请求,其中,数据插入请求用于请求写入新的分布式数据,数据查询请求用于请求对待查询的分布式数据进行查询。
基于此,根据数据访问请求进行数据处理的过程还可以包括:若数据访问请求为数据插入请求,则根据数据插入请求进行数据插入处理,该数据插入处理用于请求插入新的分布式数据写入分布式文件系统并对应插入新的索引信息;若数据访问请求为数据查询请求,则根据数据查询请求进行数据查询处理,该数据查询处理用于请求从分布式文件系统中查询待查询的分布式数据。
可选的,数据版本控制服务模块1还可以用于管理数据版本索引模块2中的索引信息。
上述数据版本融合服务模块3,用于根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。
也即,数据版本融合服务模块3可以将分布式文件系统中存储的各分布式数据的新旧版本进行融合处理,以清理分布式文件系统中存储的各分布式数据的旧版本,融合处理后分布式文件系统中仅包含各分布式数据的新版本。基于此,数据版本索引模块1中存储的旧版本对应的索引信息也需要一起清理,即直接删除旧版本对应的索引信息。
可选的,上述数据版本融合请求的触发条件可以是通过可执行命令触发,也可以是按键触发,例如,若接收到可执行的融合命令,则产生数据版本融合请求;若用户点击融合按键,则产生数据版本融合请求。
可选的,本申请实施例可以设置数据版本融合服务模块3按照时间周期自动执行,或者手动执行,例如,通过可执行命令控制数据版本融合服务模块3按照时间周期自动执行,和/或,通过用户点击按键控制数据版本融合服务模块3手动执行。
可选的,数据版本融合服务模块3,还用于在获取到数据版本融合请求时,确定是否存在待清理的分布式数据(可选的,根据数据版本索引模块2中是否存在新版本字段为否的索引信息,来确定是否存在待清理的分布式数据),若存在,则根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。
本申请提供的分布式文件存储可编辑系统包括数据版本控制服务模块、数据版本融合服务模块和数据版本索引模块,其中,数据版本索引模块可以存储分布式文件系统包含的各分布式数据分别对应的索引信息,数据版本控制服务模块可以获取数据访问请求,并根据数据访问请求进行数据更新处理或数据删除处理,数据版本融合服务模块可以根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。本申请提供的分布式文件存储可编辑系统可通过在分布式文件系统写入待更新的分布式数据实现数据更新,并可通过对分布式文件系统包含的分布式数据的新旧版本进行融合处理实现数据删除,即实现了对写入分布式文件系统中的分布式数据进行更新和删除。
在一可选实施例中,请参阅图2,示出了本申请实施例提供的另一种分布式文件存储可编辑系统的结构示意图,该分布式文件存储可编辑系统中的数据版本控制服务模块1可以包括数据访问接口11和版本控制模块12,该数据访问接口11用于获取数据访问请求,版本控制模块12用于根据数据访问接口11获取的数据访问请求进行数据处理。
可选的,数据访问接口11可以包括:数据查询接口、数据插入接口、数据更新接口和数据删除接口,其中,数据查询接口用于获取数据查询请求,数据插入接口用于获取数据插入请求,数据更新接口用于获取数据更新请求,数据删除接口用于获取数据删除请求。当然,根据实际情况,数据访问接口11可能还包括其他接口,本申请对此不进行限定。
在另一可选实施例中,在图2示出的分布式文件存储可编辑系统的基础上,本实施例对版本控制模块12根据数据访问接口11获取的数据访问请求进行数据处理的过程进行详细介绍。
若数据访问请求为数据更新请求,该数据更新请求中携带有待更新的分布式数据对应的待更新数据和待更新数据对应的主键。
基于此,上述版本控制模块12在根据数据访问接口获取的数据访问请求进行数据更新处理时,具体过程可以包括:根据待更新数据对应的主键,从数据版本索引模块2中获取新版本字段为是的索引信息,为便于描述,后续将该索引信息作为第一索引信息,则将该第一索引信息的新版本字段变更为否,并将该第一索引信息的融合字段变更为否(需要说明的是,该“将该第一索引信息的融合字段变更为否”的操作为可选操作,即如果第一索引信息的融合字段为否,则无需该操作),然后在数据版本索引模块2中插入待更新数据对应的索引信息,其中,待更新数据对应的索引信息中的新版本字段设置为是,版本号字段设置为第一索引信息中的版本号字段增加一个版本,融合字段设置为否,之后可根据待更新数据对应的索引信息,将待更新数据写入分布式文件系统(可选的,将待更新数据以增量方式写入分布式文件系统);可选的,还可以返回指示是否更新成功的操作结果。
也即,本实施例对分布式数据进行更新的过程实际上是在分布式文件系统写入待更新数据,此时该待更新数据将作为新版本,因此,数据版本索引模块2中存储的原新版本对应的索引信息(即第一索引信息)中的新版本字段需要变更为否,同时,由于新增加了一个版本,所以若第一索引信息的融合字段为是,则需要将第一索引信息的融合字段变更为否,之后再在数据版本索引模块2中插入待更新数据对应的索引信息,并根据该待更新数据对应的索引信息,将待更新数据写入分布式文件系统,如此即可实现对分布式数据进行更新。
若数据访问请求为数据删除请求,该数据删除请求中携带有待删除的分布式数据对应的主键。
基于此,上述版本控制模块12在根据数据访问接口获取的数据访问请求进行数据删除处理时,具体过程可以包括:根据待删除的分布式数据对应的主键,从数据版本索引模块2中获取新版本字段为是的索引信息,为便于描述,后续将该索引信息作为第二索引信息,则将该第二索引信息中的版本号字段变更为删除状态的特殊值,以便于融合处理时对待删除的分布式数据进行清理;可选的,还可以返回指示删除状态是否变更成功的操作结果。
若数据访问请求为数据插入请求,该数据插入请求中携带有新的分布式数据对应的主键,该新的分布式数据是指尚未在分布式文件系统中存储的分布式数据,即非已有的分布式数据。
基于此,上述版本控制模块12在根据数据访问接口获取的数据访问请求进行数据删除处理时,具体过程可以包括:在数据版本索引模块2中插入新的分布式数据对应的索引信息,其中,该新的分布式数据对应的索引信息中的新版本字段设置为是,版本号字段设置为第一版本,融合字段设置为是,主键字段为新的分布式数据对应的主键,之后根据新的分布式数据对应的索引信息,将新的分布式数据写入分布式文件系统;可选的,还可以返回指示是否插入成功的操作结果。
也即,本实施例写入新的分布式数据的过程实际上是在分布式文件系统写入第一版本的待更新数据,因此,需要先在数据版本索引模块2中插入新的分布式数据对应的索引信息,再根据该新的分布式数据对应的索引信息,将新的分布式数据写入分布式文件系统,如此即可实现对分布式数据进行插入。
若数据访问请求为数据查询请求,该数据查询请求中携带有待查询的分布式数据对应的查询条件。需要说明的是,本申请不对查询条件进行限定,例如,查询条件可以为分布式数据写入时间等。
基于此,上述版本控制模块12在根据数据访问接口获取的数据访问请求进行数据删除处理时,具体过程可以包括:从数据版本索引模块2中获取满足查询条件的分布式数据对应的主键,作为目标主键,并获取包含目标主键的索引信息,然后根据包含目标主键的索引信息,从分布式文件系统中获取待查询的分布式数据。可以理解的是,一般对分布式数据进行查询的目的是为了查询新版本下的分布式数据,因此,可选的,在获取到包含目标主键的索引信息后,可以从该索引信息中确定新版本字段为是的索引信息,并根据该新版本字段为是的索引信息,从分布式文件系统中获取待查询的分布式数据;可选的,还可以返回指示是否查询成功的操作结果。
综上,本实施例通过采用数据只增、数据多版本的方式,即可解决现有技术中的分布式数据以分布式文件存储方式存储时数据一旦写入无法轻易修改的问题。
在又一可选实施例中,可对上述数据版本融合服务模块3根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理的过程进行详细介绍。
可以理解的是,分布式文件系统包含的各分布式数据通常存储在文件中,这里,将该文件作为目标文件,则可选的,上述数据版本融合服务模块3在根据数据版本融合请求,对分布式数据的新旧版本进行融合处理时,具体过程可以包括:根据数据版本融合请求,从数据版本索引模块中获取融合字段为否的索引信息,作为第三索引信息,从第三索引信息中获取新版本字段为是的索引信息,作为第四索引信息,从分布式文件系统中获取第四索引信息对应的分布式数据,并将获取到的分布式数据写入新的文件,将新的文件存入目标文件所在位置,并将目标文件删除。
也即,本实施例可对分布式数据的新旧版本进行融合处理来实现对分布式数据的旧版本进行清理的目的,由于分布式文件系统中的分布式数据无法直接删除,此时可通过本实施例将第四索引信息对应的分布式数据写入新的文件,并删除旧文件(即目标文件)的方式实现上述目的。
与上述过程相对应的,上述数据版本融合服务模块3在对旧版本对应的索引信息进行索引删除处理时,具体过程可以包括:从第三索引信息中获取新版本字段为否的索引信息,并将该第三索引信息中新版本字段为否的索引信息从数据版本索引模块2中删除,或者,获取数据版本索引模块2中新版本字段为否的索引信息,并将所有新版本字段为否的索引信息删除。
也即,本实施例通过融合处理可以实现对分布式文件系统中存储的旧版本下的分布式数据进行清理,得到新版本下的分布式数据,同时,清理旧版本对应的索引信息,如此即可实现对旧版本下的分布式数据和旧版本对应的索引信息进行清理。
需要说明的是,本实施例在将第四索引信息对应的分布式数据写入新的文件并删除目标文件后,还需要将第四索引信息中的融合字段变更为是。
可选的,上述数据版本融合服务模块3在根据数据版本融合请求,对分布式数据的新旧版本进行融合处理时,还可以用于:根据数据版本融合请求,将数据版本索引模块2中获取版本号字段为删除状态的索引信息,并将该索引信息进行删除。
相应的,由于版本号字段为删除状态的索引信息中的新版本字段为是,因此,在上述过程确定第四索引信息时,若第四索引信息中包括版本号字段为删除状态的索引信息,则将版本号字段为删除状态的索引信息从第四索引信息中删除,删除版本号字段为删除状态的索引信息后的第四索引信息作为新的第四索引信息,然后再进行后续处理。
本申请实施例还提供了一种分布式文件存储可编辑方法,下面对本申请实施例提供的分布式文件存储可编辑方法进行描述,下文描述的分布式文件存储可编辑方法与上文描述的分布式文件存储可编辑系统可相互对应参照。
可选的,本申请实施例提供的分布式文件存储可编辑方法可以包括步骤S1和/或步骤S2,下面分别对这两个步骤进行介绍。
步骤S1、获取数据访问请求,并根据数据访问请求进行数据更新处理或数据删除处理;其中,数据访问请求包括数据更新请求和数据删除请求,数据更新请求用于请求对分布式文件系统包含的分布式数据进行更新,数据删除请求用于请求对分布式数据进行删除,数据更新处理用于将待更新的分布式数据写入分布式文件系统并对应更新索引信息,数据删除处理用于将分布式数据的新版本对应的索引信息中的版本号字段变更为删除状态的特殊值,一分布式数据对应的索引信息包括该分布式数据的新旧版本分别对应的索引信息,索引信息中包括用于表征分布式数据的版本号的版本号字段。
步骤S2、根据数据版本融合请求,对分布式数据的新旧版本进行融合处理,以得到新版本下的分布式数据,并对旧版本对应的索引信息进行索引删除处理。
可选的,本实施例提供的分布式文件存储可编辑方法还可以包括以下步骤S3和/或步骤S4:
步骤S3、获取数据插入请求,并根据数据插入请求进行数据插入处理;其中,数据插入请求用于请求写入新的分布式数据,数据插入处理用于请求插入新的分布式数据写入分布式文件系统并对应插入新的索引信息。
步骤S4、获取数据查询请求,并根据数据查询请求进行数据查询处理;其中,数据查询请求用于请求对待查询的分布式数据进行查询,数据查询处理用于请求从分布式文件系统中查询待查询的分布式数据。
需要说明的是,上述步骤S1~步骤S4的具体实现过程与上述分布式文件存储可编辑系统对应,详细可以参见上述分布式文件存储可编辑系统中的介绍,在此不进行赘述。
最后,还需要说明的是,在本文中,诸如和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种分布式文件存储可编辑系统,其特征在于,包括:数据版本控制服务模块、数据版本融合服务模块和数据版本索引模块;
所述数据版本索引模块,用于存储分布式文件系统包含的各分布式数据分别对应的索引信息,其中,一分布式数据对应的索引信息包括该分布式数据的新旧版本分别对应的索引信息,所述索引信息中包括用于表征所述分布式数据的版本号的版本号字段;
所述数据版本控制服务模块,用于获取数据访问请求,其中,所述数据访问请求包括数据更新请求和数据删除请求,所述数据更新请求用于请求对所述分布式数据进行更新,所述数据删除请求用于请求对所述分布式数据进行删除;根据所述数据访问请求进行数据更新处理或数据删除处理,其中,所述数据更新处理用于将待更新的所述分布式数据写入所述分布式文件系统并对应更新索引信息,所述数据删除处理用于将待删除的所述分布式数据的新版本对应的索引信息中的版本号字段变更为删除状态的特殊值;
所述数据版本融合服务模块,用于根据数据版本融合请求,对所述分布式数据的新旧版本进行融合处理,以得到新版本下的所述分布式数据,并对旧版本对应的索引信息进行索引删除处理;
所述分布式文件系统包含的各分布式数据存储在目标文件中,所述数据版本融合服务模块在根据数据版本融合请求,对所述分布式数据的新旧版本进行融合处理时,具体用于:
根据所述数据版本融合请求,从所述数据版本索引模块中获取融合字段为否的索引信息,作为第三索引信息;
从所述第三索引信息中获取新版本字段为是的索引信息,作为第四索引信息;
从所述分布式文件系统中获取所述第四索引信息对应的分布式数据,并将获取到的所述分布式数据写入新的文件;
将所述目标文件删除。
2.根据权利要求1所述的分布式文件存储可编辑系统,其特征在于,所述数据版本控制服务模块包括数据访问接口和版本控制模块;
所述数据访问接口,用于获取所述数据访问请求;
所述版本控制模块,用于根据所述数据访问接口获取的所述数据访问请求进行数据更新处理或数据删除处理。
3.根据权利要求2所述的分布式文件存储可编辑系统,其特征在于,所述索引信息中还包括用于表征所述分布式数据的标识的主键字段、用于指示所述分布式数据是否为新版本的新版本字段,以及,用于指示所述分布式数据的新旧版本是否已融合的融合字段,其中,任一分布式数据的新旧版本分别对应的索引信息中的主键字段均相同。
4.根据权利要求3所述的分布式文件存储可编辑系统,其特征在于,所述数据访问请求为所述数据更新请求,所述数据更新请求中携带有待更新的所述分布式数据对应的待更新数据和所述待更新数据对应的主键;
所述版本控制模块在根据所述数据访问接口获取的所述数据访问请求进行数据更新处理时,具体用于:
根据所述待更新数据对应的主键,从所述数据版本索引模块中获取所述新版本字段为是的索引信息,作为第一索引信息;
将所述第一索引信息的新版本字段变更为否,并将所述第一索引信息的融合字段变更为否;
在所述数据版本索引模块中插入所述待更新数据对应的索引信息,其中,所述待更新数据对应的索引信息中的新版本字段设置为是,版本号字段设置为所述第一索引信息中的版本号字段增加一个版本,融合字段设置为否;
根据所述待更新数据对应的索引信息,将所述待更新数据写入所述分布式文件系统。
5.根据权利要求3所述的分布式文件存储可编辑系统,其特征在于,所述数据访问请求为所述数据删除请求,所述数据删除请求中携带有待删除的所述分布式数据对应的主键;
所述版本控制模块在根据所述数据访问接口获取的所述数据访问请求进行数据删除处理时,具体用于:
根据所述待删除的所述分布式数据对应的主键,从所述数据版本索引模块中获取所述新版本字段为是的索引信息,作为第二索引信息;
将所述第二索引信息中的版本号字段变更为删除状态的特殊值。
6.根据权利要求3所述的分布式文件存储可编辑系统,其特征在于,所述数据访问接口,还用于获取数据插入请求,其中,所述数据插入请求用于请求写入新的分布式数据,所述数据插入请求中携带有所述新的分布式数据对应的主键;
所述版本控制模块,还用于根据所述数据访问接口获取的所述数据插入请求,在所述数据版本索引模块中插入所述新的分布式数据对应的索引信息,并根据所述新的分布式数据对应的索引信息,将所述新的分布式数据写入所述分布式文件系统;其中,所述新的分布式数据对应的索引信息中的新版本字段设置为是,版本号字段设置为第一版本,融合字段设置为是,主键字段为所述新的分布式数据对应的主键。
7.根据权利要求3所述的分布式文件存储可编辑系统,其特征在于,所述数据访问接口,还用于获取数据查询请求,其中,所述数据查询请求用于请求对待查询的所述分布式数据进行查询,所述数据查询请求中携带有待查询的所述分布式数据对应的查询条件;
所述版本控制模块,还用于从所述数据版本索引模块中获取满足所述查询条件的所述分布式数据对应的主键,作为目标主键,并获取包含所述目标主键的索引信息,然后根据所述包含所述目标主键的索引信息,从所述分布式文件系统中获取待查询的所述分布式数据。
8.根据权利要求2所述的分布式文件存储可编辑系统,其特征在于,所述数据访问接口包括:数据查询接口、数据插入接口、数据更新接口和数据删除接口。
9.一种分布式文件存储可编辑方法,其特征在于,包括:
获取数据访问请求,并根据所述数据访问请求进行数据更新处理或数据删除处理;其中,所述数据访问请求包括数据更新请求和数据删除请求,所述数据更新请求用于请求对分布式文件系统包含的分布式数据进行更新,所述数据删除请求用于请求对所述分布式数据进行删除,所述数据更新处理用于将待更新的所述分布式数据写入所述分布式文件系统并对应更新索引信息,所述数据删除处理用于将所述分布式数据的新版本对应的索引信息中的版本号字段变更为删除状态的特殊值,一分布式数据对应的索引信息包括该分布式数据的新旧版本分别对应的索引信息,所述索引信息中包括用于表征所述分布式数据的版本号的版本号字段;
根据数据版本融合请求,对所述分布式数据的新旧版本进行融合处理,以得到新版本下的所述分布式数据,并对旧版本对应的索引信息进行索引删除处理;
所述分布式文件系统包含的各分布式数据存储在目标文件中,所述根据数据版本融合请求,对所述分布式数据的新旧版本进行融合处理,包括:
根据所述数据版本融合请求,从所述索引信息中获取融合字段为否的索引信息,作为第三索引信息;
从所述第三索引信息中获取新版本字段为是的索引信息,作为第四索引信息;
从所述分布式文件系统中获取所述第四索引信息对应的分布式数据,并将获取到的所述分布式数据写入新的文件;
将所述目标文件删除。
CN202111108038.7A 2021-09-22 2021-09-22 一种分布式文件存储可编辑系统和方法 Active CN113760830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111108038.7A CN113760830B (zh) 2021-09-22 2021-09-22 一种分布式文件存储可编辑系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111108038.7A CN113760830B (zh) 2021-09-22 2021-09-22 一种分布式文件存储可编辑系统和方法

Publications (2)

Publication Number Publication Date
CN113760830A CN113760830A (zh) 2021-12-07
CN113760830B true CN113760830B (zh) 2024-01-30

Family

ID=78796662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111108038.7A Active CN113760830B (zh) 2021-09-22 2021-09-22 一种分布式文件存储可编辑系统和方法

Country Status (1)

Country Link
CN (1) CN113760830B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277145B (zh) * 2022-07-20 2023-05-02 北京志凌海纳科技有限公司 分布式存储访问授权管理方法、系统、设备和可读介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
US9047334B1 (en) * 2009-07-31 2015-06-02 David R. Cheriton Merge-update for efficient atomic memory modification in concurrent computer systems
EP3477490A1 (en) * 2017-10-26 2019-05-01 Druva Technologies Pte. Ltd. Deduplicated merged indexed object storage file system
CN110334072A (zh) * 2018-03-22 2019-10-15 腾讯科技(深圳)有限公司 一种分布式文件系统、文件更新方法及装置
CN110941446A (zh) * 2019-11-06 2020-03-31 苏宁云计算有限公司 基于多环境离线任务的版本发布方法及装置
CN113392087A (zh) * 2021-05-31 2021-09-14 阿里巴巴新加坡控股有限公司 数据访问方法及计算设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047334B1 (en) * 2009-07-31 2015-06-02 David R. Cheriton Merge-update for efficient atomic memory modification in concurrent computer systems
CN101770515A (zh) * 2010-01-18 2010-07-07 杭州顺网科技股份有限公司 一种基于数据块比较的数据更新方法
EP3477490A1 (en) * 2017-10-26 2019-05-01 Druva Technologies Pte. Ltd. Deduplicated merged indexed object storage file system
CN110334072A (zh) * 2018-03-22 2019-10-15 腾讯科技(深圳)有限公司 一种分布式文件系统、文件更新方法及装置
CN110941446A (zh) * 2019-11-06 2020-03-31 苏宁云计算有限公司 基于多环境离线任务的版本发布方法及装置
CN113392087A (zh) * 2021-05-31 2021-09-14 阿里巴巴新加坡控股有限公司 数据访问方法及计算设备

Also Published As

Publication number Publication date
CN113760830A (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
KR102579190B1 (ko) 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원
US9336227B2 (en) Selective synchronization in a hierarchical folder structure
US9176871B1 (en) Garbage collection of chunks
US9646030B2 (en) Computer-readable medium storing program and version control method
US7716171B2 (en) Snapshot indexing
US9256607B2 (en) Efficient file access in a large repository using a two-level cache
US8655896B2 (en) Apparatus and methods for organizing data items having time of life intervals
US7769719B2 (en) File system dump/restore by node numbering
AU2009258015B2 (en) Paging hierarchical data
CN105868228A (zh) 为olap和oltp事务提供无锁读取和写入操作的内存数据库系统
US9659023B2 (en) Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system
JP2012098934A (ja) 文書管理システム、文書管理システムの制御方法、プログラム
JP2006505872A (ja) 単一のインターフェイスからのデータの多重階層を管理するための手法
JP2008527571A (ja) データの削除を管理するための方法および装置
EP2562657B1 (en) Management of update transactions and crash recovery for columnar database
US8959096B2 (en) Apparatus and methods for organizing data items by directed acyclic graphs
JP2011527799A (ja) 個人情報ファイル管理ツール
WO2015036890A1 (en) Hierarchical garbage collection in an object-relational database system
CN109101599B (zh) 一种增量索引更新方法及系统
CN113760830B (zh) 一种分布式文件存储可编辑系统和方法
CN110807028B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN111382142A (zh) 数据库的操作方法、服务器和计算机存储介质
KR20190143228A (ko) 추적 식별자를 이용한 객체 관리 방법, 장치, 컴퓨터 프로그램 및 그 기록 매체
CN108694219B (zh) 一种数据处理方法及装置
CN111435342A (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
GR01 Patent grant
GR01 Patent grant