一种文件删除方法及系统与流程

文档序号:11199292阅读:321来源:国知局
一种文件删除方法及系统与流程

本发明涉及分布式存储系统技术领域,更具体地说,涉及一种文件删除方法及系统。



背景技术:

随着互联网时代的到来,微博、微信、网购等面向普通互联网用户的网站正在蓬勃兴起,互联网界的巨头公司向数以亿计的用户提供着基于互联网的各种服务。遍布世界各地的互联网用户每天都在网上发布信息,他们产生的这些数据是个人计算机的数据量的数倍。

为了随时应对激增的用户请求,越来越多的公司采用分布式存储系统。分布式存储系统具有高可靠性、高可用性和高扩展性,可以避免由于单个节点失效而使整个系统崩溃的危险。传统方案中,当多个客户端同时访问分布式文件系统,文件系统会记录每一个文件的索引节点的计数,当索引节点引用计数为0时,回收线程会把该文件删除。但是如果编写客户端程序的开发人员因为某些原因忘记了释放引用,将会导致后端的文件永远无法删除。因此,如何有效的对分布式存储系统中的文件进行删除是一项亟待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种文件删除方法及系统,能够有效的对分布式存储系统中的文件进行删除,能够有效解决系统空间不释放的问题。

为实现上述目的,本发明提供如下技术方案:

一种文件删除方法,应用于分布式存储系统,所述方法包括:

将所述分布式存储系统作为存储系统的后端,客户端调用所述分布式存储系统的接口读写文件;

所述分布式存储系统分配索引节点指针至所述客户端;

基于所述索引节点指针删除所述分布式存储系统中的文件。

优选地,所述索引节点指针为智能指针。

优选地,所述基于所述索引节点指针删除所述分布式存储系统中的文件具体为:

智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类共享同一指针的对象;

创建类的新对象时,初始化指针并将引用计数置为1,当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;

对一个对象进行赋值是,赋值操作符减少左操作数所指对象的引用计数,并增加右操作数所指对象的引用计数,当引用计数减至0时,删除对象;

在调用析构函数时,构造函数减少引用计数,当引用计数减至0时,删除基础对象。

一种文件删除系统,应用于分布式存储系统,所述系统包括:

调用模块,用于将所述分布式存储系统作为存储系统的后端,客户端调用所述分布式存储系统的接口读写文件;

分配模块,用于所述分布式存储系统分配索引节点指针至所述客户端;

删除模块,用于基于所述索引节点指针删除所述分布式存储系统中的文件。

优选地,所述索引节点指针为智能指针。

优选地,所述删除模块具体用于:

智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类共享同一指针的对象;

创建类的新对象时,初始化指针并将引用计数置为1,当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;

对一个对象进行赋值是,赋值操作符减少左操作数所指对象的引用计数,并增加右操作数所指对象的引用计数,当引用计数减至0时,删除对象;

在调用析构函数时,构造函数减少引用计数,当引用计数减至0时,删除基础对象。

由上述技术方案可知,本发明提供了一种文件删除方法,当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件,然后分布式存储系统分配索引节点指针至客户端,然后基于索引节点指针删除分布式存储系统中的文件,能够有效的对分布式存储系统中的文件进行删除,能够有效解决系统空间不释放的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明公开的一种文件删除方法实施例1的方法流程图;

图2为本发明公开的一种文件删除方法实施例2的方法流程图;

图3为本发明公开的一种文件删除系统实施例1的结构示意图;

图4为本发明公开的一种文件删除系统实施例2的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为了更加特定地强调实施的独立性,本说明书涉及许多模块或单元。举例而言,模块或单元可由硬件电路实现,该硬件电路包括特制vlsi电路或门阵列,比如逻辑芯片、晶体管,或其它组件。模块或单元也可在可编程的硬设备中实现,比如场效可编程门阵列、可编程阵列逻辑、可编程逻辑设备等等。

模块或单元也可在藉由各种形式的处理器所执行的软件中实现。比如说,一可执行码模块可包括一个或多个实体的或逻辑的计算机指令区块,该区块可能形成为,比如说,对象、程序或函数。然而,鉴别模块或单元的可执行部分不需要物理上放置在一起,但可由存于不同位置的不同指令所组成,当逻辑上组合在一起时,形成模块或单元且达到该模块或单元所要求的目的。

实际上,可执行码模块或单元可以是一单一指令或多个指令,甚至可以分布在位于不同的程序的数个不同的码区段,并且横跨数个存储设备。同样地,操作数据可被辨识及显示于此模块或单元中,并且可以以任何合适的形式实施且在任何合适的数据结构形式内组织。操作数据可以集合成单一数据集,或可分布在具有不同的存储设备的不同的位置,且至少部分地只以电子信号方式存在于一系统或网络。

本说明书所提及的“实施例”或类似用语表示与实施例有关的特性、结构或特征,包括在本发明的至少一实施例中。因此,本说明书所出现的用语“在一实施例中”、“在实施例中”以及类似用语可能但不必然都指向相同实施例。

再者,本发明所述特性、结构或特征可以以任何方式结合在一个或多个实施例中。以下说明将提供许多特定的细节,比如编程序、软件模块、用户选择、网络交易、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等例子,以提供对本发明实施例的了解。然而相关领域的普通技术人员将看出本发明,即使没有利用其中一个或多个特定细节,或利用其它方法、组件、材料等亦可实施。另一方面,为避免混淆本发明,公知的结构、材料或操作并没有详细描述。

如图1所示,为本发明公开的一种文件删除方法实施例1的流程图,该方法应用于分布式存储系统,本方法包括以下步骤:

s101、将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件;

当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,然后客户端调用分布式存储系统的接口读写文件。

s102、分布式存储系统分配索引节点指针至客户端;

然后分布式存储系统给客户端分配inode指针。

s103、基于索引节点指针删除分布式存储系统中的文件。

然后根据分配的inode指针对分布式存储系统中的文件进行删除处理,其中,分配的inode指针为智能指针。智能指针是存储指向动态分配对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露,它的一种通用实现技术是使用引用计数。

综上所述,在上述实施例中,当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件,然后分布式存储系统分配索引节点指针至客户端,然后基于索引节点指针删除分布式存储系统中的文件,能够有效的对分布式存储系统中的文件进行删除,能够有效解决系统空间不释放的问题。

如图2所示,为本发明公开的一种文件删除方法实施例2的流程图,该方法应用于分布式存储系统,本方法包括以下步骤:

s201、将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件;

当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,然后客户端调用分布式存储系统的接口读写文件。

s202、分布式存储系统分配索引节点指针至客户端;

然后分布式存储系统给客户端分配inode指针。

s203、智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类共享同一指针的对象;

创建类的新对象时,初始化指针并将引用计数置为1,当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;

对一个对象进行赋值是,赋值操作符减少左操作数所指对象的引用计数,并增加右操作数所指对象的引用计数,当引用计数减至0时,删除对象;

在调用析构函数时,构造函数减少引用计数,当引用计数减至0时,删除基础对象。

智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数,如果引用计数为减至0,则删除对象,并增加右操作数所指对象的引用计数;调用析构函数时,构造函数减少引用计数,如果引用计数减至0,则删除基础对象。

文件系统后端先通过智能指针分配一个全局的inode,当客户端访问文件系统时,该客户端获取该智能指针的引用,即引用计数自动加1。当客户端自动释放或者与文件系统的链接断开时,inode的引用自动减1。

通过定义一个全局空间来保存所以inode的状态。例如,采用以下的方式:

shared_ptr<inode>factory(targ){

returnmake_shared<inode>(arg);

}

factory是文件系统为所有客户端分配inode的函数,所有的客户端都可以共享。

voiduse_inode(targ){

shared_ptr<inode>i=factory(arg);

}

use_inode是文件系统为某个客户端分配inode的函数,客户端之间是独立的,即arg包括客户端端信息,比如ip、socket等。

综上所述,本发明提供的一种文件删除方法,基于智能指针,可以有效解决空间不释放的问题。

如图3所示,为本发明公开的一种文件删除系统实施例1的结构示意图,该系统应用于分布式存储系统,本系统包括:

调用模块301,用于将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件;

当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,然后客户端调用分布式存储系统的接口读写文件。

分配模块302,用于分布式存储系统分配索引节点指针至客户端;

然后分布式存储系统给客户端分配inode指针。

删除模块303,用于基于索引节点指针删除分布式存储系统中的文件。

然后根据分配的inode指针对分布式存储系统中的文件进行删除处理,其中,分配的inode指针为智能指针。智能指针是存储指向动态分配对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露,它的一种通用实现技术是使用引用计数。

综上所述,在上述实施例中,当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件,然后分布式存储系统分配索引节点指针至客户端,然后基于索引节点指针删除分布式存储系统中的文件,能够有效的对分布式存储系统中的文件进行删除,能够有效解决系统空间不释放的问题。

如图4所示,为本发明公开的一种文件删除系统实施例2的结构示意图,该系统应用于分布式存储系统,本系统包括:

调用模块401,用于将分布式存储系统作为存储系统的后端,客户端调用分布式存储系统的接口读写文件;

当需要对分布式存储系统中的文件进行删除时,首先将分布式存储系统作为存储系统的后端,然后客户端调用分布式存储系统的接口读写文件。

分配模块402,用于分布式存储系统分配索引节点指针至客户端;

然后分布式存储系统给客户端分配inode指针。

删除模块403,用于智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类共享同一指针的对象;

创建类的新对象时,初始化指针并将引用计数置为1,当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;

对一个对象进行赋值是,赋值操作符减少左操作数所指对象的引用计数,并增加右操作数所指对象的引用计数,当引用计数减至0时,删除对象;

在调用析构函数时,构造函数减少引用计数,当引用计数减至0时,删除基础对象。

智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数,如果引用计数为减至0,则删除对象,并增加右操作数所指对象的引用计数;调用析构函数时,构造函数减少引用计数,如果引用计数减至0,则删除基础对象。

文件系统后端先通过智能指针分配一个全局的inode,当客户端访问文件系统时,该客户端获取该智能指针的引用,即引用计数自动加1。当客户端自动释放或者与文件系统的链接断开时,inode的引用自动减1。

通过定义一个全局空间来保存所以inode的状态。例如,采用以下的方式:

shared_ptr<inode>factory(targ){

returnmake_shared<inode>(arg);

}

factory是文件系统为所有客户端分配inode的函数,所有的客户端都可以共享。

voiduse_inode(targ){

shared_ptr<inode>i=factory(arg);

}

use_inode是文件系统为某个客户端分配inode的函数,客户端之间是独立的,即arg包括客户端端信息,比如ip、socket等。

综上所述,本发明提供的一种文件删除系统,基于智能指针,可以有效解决空间不释放的问题。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1