CN109328344A - 文件系统映像处理系统 - Google Patents

文件系统映像处理系统 Download PDF

Info

Publication number
CN109328344A
CN109328344A CN201780039062.5A CN201780039062A CN109328344A CN 109328344 A CN109328344 A CN 109328344A CN 201780039062 A CN201780039062 A CN 201780039062A CN 109328344 A CN109328344 A CN 109328344A
Authority
CN
China
Prior art keywords
file system
file
image
system image
expression
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
Application number
CN201780039062.5A
Other languages
English (en)
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.)
eBay Inc
Original Assignee
eBay Inc
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 eBay Inc filed Critical eBay Inc
Publication of CN109328344A publication Critical patent/CN109328344A/zh
Pending legal-status Critical Current

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/18File system types
    • G06F16/1865Transactional 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在各种示例性实施例中,提出了用于处理文件系统的文件系统映像的系统和方法。在一个示例中,文件系统映像处理系统可以包括映像处理器模块,用于在存储在文件系统的第一服务器处的文件系统映像未被修改时访问该文件系统映像,以及存储该文件系统映像的表示。进一步地,文件系统映像处理系统可以包括事务处理器模块,用于反复访问存储在该文件系统的、与第一服务器分开的第二服务器处的事务数据,其中该事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务。事务处理器模块可以基于所访问的事务数据来修改文件系统映像的表示。

Description

文件系统映像处理系统
相关申请的交叉引用
本国际申请要求于2016年6月23日提交的、序列号为15/191,085、标题为“FILESYSTEM IMAGE PROCESSING SYSTEM”的美国专利申请的优先权,其全部内容通过引用整体并入本文。
技术领域
本公开的实施例一般地涉及数据处理,更具体地但不是以限制方式地涉及对文件系统映像的处理。
背景技术
随着组织接收和处理的数据量的增长,高效率低成本地处理这些数据的能力可能是影响组织生产力、运行效率以及客户满意度的重要因素。通常,牵涉的数据集越大,计算基础设施的尺寸也越大,诸如包括在整体系统中的数据服务器、数据存储系统等的数量。为了确保高效运行,可以捕获和分析关于整体系统的当前状态的数据、响应于各种条件的运行效率等,从而可以在不间断的基础上对系统实行适当改变以提高性能、效率等。
更具体地,针对数据存储系统,文件系统的各种目录和文件的快照,以及文件系统的大小、位置和其他方面,通常称为文件系统“映像”(image),其可被周期性地捕获和分析。然而,极其庞大的数据存储系统的这种映像通常需要几个小时来获取,因此很可能导致这些映像很快变得过时,从而降低它们的分析价值。
附图说明
附图中的各图仅仅示出本公开的示例性实施例,而不能视为限制其范围。
图1是与示例性文件系统映像处理系统耦合的示例性数据存储集群的框图;
图2是图1的文件系统映像处理系统的示例的框图,包括示例性初始映像加载器/处理器和示例性事务加载器/处理器;
图3是处理文件系统映像的示例性方法的流程图;
图4是图2的初始映像加载器/处理器的示例的框图;
图5A、图5B和图5C绘出了示例性文件系统映像;
图6绘出了可以由图4的初始映像加载器/处理器生成的示例性路径/尺寸文本文件;
图7绘出了可以由图4的初始映像加载器/处理器采用的示例性映像数据库储存器;
图8是图2的事务加载器/处理器的示例的框图;
图9绘出了可以由图8的事务加载器/处理器采用的示例性编辑日志事务;
图10绘出了可以在图8的事务加载器/处理器中采用的示例性访问调度器的示例性代码段;
图11绘出了可以在图8的事务加载器/处理器中采用的示例性日志到存储器加载器的示例性代码段;
图12绘出了可以在图8的事务加载器/处理器中采用的示例性编辑事务解析器的示例性代码段;
图13是可以在图1的文件系统映像处理系统中采用的示例性映像分析器的框图;
图14是示出根据一些示例性实施例可以安装在机器上的软件架构的示例的框图;以及
图15示出了根据示例性实施例的计算机系统形式的机器的图解表示,其中可以执行一组指令以使得该机器执行本文讨论的方法中的任意一个或多个。
本文提供的标题仅仅是为方便起见而不是必然影响所使用术语的范围或含义。
具体实施方式
下面的描述包括实施本公开的示意性实施例的系统、方法、技术、指令序列和计算机器程序产品。在下面的描述中,出于解释的目的,阐述了众多特定细节以便提供对本发明主题的各种实施例的理解。然而,对于本领域人员很显然的是可以无需这些特定细节而实践本发明主题的实施例。一般而言,公知的指令实例、协议、结构和技术没有必要详细示出。
图1是与示例性文件系统映像处理系统120耦接的示例性数据存储集群100的框图。在下文描述的各种示例中,数据存储集群100可以是分布式文件系统(HDFS)的数据存储集群。然而,其他类型的文件系统也可以从本文公开的系统和方法的诸多方面中的一个或多个方面中获益。而且,尽管文件系统映像处理系统120的各个方面针对单个数据存储集群100进行描述,整个数据存储系统可以包括一个或多个数据存储集群100,并且一个或多个不同的文件系统映像处理系统120耦接到该数据存储系统。图1的各种设备或系统中的每个以及下文更完整讨论的其他设备或系统可以借助于通信网络耦接在一起,通信网络诸如广域网(WAN)(例如,互联网)、无线WAN(WWAN)、局域网(LAN)、无线LAN(WLAN)、虚拟专用网(VPN)、其他类型的网络或者两种或更多种这些网络的组合。
如图1所示,数据存储集群100可以包括一个或多个命名节点102、104(例如,HDFSNameNode)。在此特定示例中,采用了活跃命名节点102(例如,HDFS NameNode)和备用命名节点104(例如,HDFS BackupNode)。活跃名称节点102可以是负责响应于一个或多个客户端设备(图1中未示出)请求的各种文件系统操作(例如,目录和/或文件创建和/或删除,文件更新等等)而管理和更新文件系统映像106(例如,HDFS FSImage)和/或编辑日志110(例如,HDFS编辑日志或日记)的服务器或其他系统。备用命名节点104可以负责维护对文件系统映像106和/或编辑日志110的访问,和/或维护其自己的对文件系统映像106和/或编辑日志110的备份,以准备在活跃名称节点102发生故障事件时作为活跃名称节点102的替代者而运行。
文件系统映像106可以包括“命名空间”信息(例如,HDFS“命名空间”),其标识文件系统的层级目录和文件结构、目录和文件的各部分(例如,“块”)的位置和/或尺寸等等。各种文件中携带的实际数据可以存储在一个或多个数据节点112(例如,HDFS DataNode)中,其可以具体体现在一个或多个数据存储设备(例如硬盘驱动、光盘驱动、闪存驱动等)、服务器或系统中。在一些示例中,每个文件系统对象(例如,文件、目录等)可以视为文件系统的单独的“索引节点(inode)”。
在一些示例中,活跃命名节点102可以仅周期性地更新文件系统映像106。更具体地,活跃命名节点102可以在发生文件系统操作或“事务”时在编辑日志110中记录或登记它们。周期性地,活跃命名节点102继而可以使用记录在编辑日志110中的事务来更新文件系统映像106,以及从编辑日志110中移除或“冲刷”关于这些事务的数据。在一些示例中,活跃命名节点102可以使用编辑日志110中记录的所有事务来更新文件系统映像106以生成“检查点”文件,活跃命名节点102可以利用该“检查点”文件来重新初始化文件系统映像106,诸如一旦重启活跃命名节点102时。在一些示例中,所记录的事务可以分组成编辑日志110中的事务“段”,每个段表示在特定时间段期间发生的事务。
活跃命名节点102也可以将事务记录在存储在一个或多个日记节点108(例如,HDFS日记节点)中的一个或多个对应编辑日志110中,例如用以向文件系统提供冗余度和容错。
如下文更详细描述的,文件系统映像处理系统120可以与数据存储集群100的各种节点和系统通信以提供对编辑日志110和文件系统映像106中所表示数据的快速和最新的访问,从而促进对文件系统的高效和有效分析。
图2是图1的文件系统映像处理系统120的示例的框图,包括示例性初始映像加载器/处理器202和示例性事务加载器/处理器204。如
图2所示,初始映像加载器/处理器202可以访问图1的数据存储集群100的文件系统映像106,而事务加载器/处理器204可以访问一个或多个日记节点108的编辑日志110。在一些示例中,初始映像加载器/处理器202可以访问一次文件系统映像106,此后事务加载器/处理器204可以重复或反复访问日记节点108的编辑日志110,以在文件系统操作继续被执行时持续更新文件系统映像106的本地表示。通过访问日记节点108的编辑日志110,相比于与图1的活跃命名节点102更紧密关联的编辑日志110,初始映像加载器/处理器202不会负面地影响活跃命名节点102的操作。在其他示例中,初始映像加载器/处理器202可以访问存储在或以其他方式密切耦接至活跃命名节点102的编辑日志110。
文件系统映像处理系统120还可以包括映像数据库储存器206,初始图像加载器/处理器202可以将文件系统映像106的表示加载到该数据库储存器,并且事务加载器/处理器204可以使用记录在编辑日志110中的事务来时不时地修改该表示。文件系统映像处理系统120还可以包括一个或多个映像数据分析器208,其访问映像数据库储存器206中提供的文件系统的表示以获取并分析该文件系统的各种方面,以及向其他设备(例如,文件系统操作员或管理者的计算或通信设备)提供报告、警报等等。在一些示例中,初始映像加载器/处理器202、事务加载器/处理器204、和/或映像数据分析器208可以包括一个或多个处理器(例如,微处理器、微控制器等)以及一个或多个存储设备,其存储可由一个或多个处理器可执行的指令以实现本文归属于映像加载器/处理器202、事务加载器/处理器204、和/或映像数据分析器208的每一个的各种操作。
图3是处理和更新文件系统映像(例如,使用图1的文件系统映像106)的表示的示例性方法300的流程图。尽管该方法的执行是结合图1和图2的文件系统映像处理120进行描述的,在其他示例中也可以采用本文中未特别描述的其他系统或设备来实现方法300。
在方法300中,可以在文件系统映像稳定时,从文件系统加载(例如,通过初始映像加载器/处理器202)并处理文件系统映像(例如,图1的文件系统映像106),以初始化映像数据库(例如,图2的映像数据库储存器206)(操作302)。如果编辑日志(例如,图1的日记节点108的编辑日志110)将要被轮询(操作304),则可以(例如,由图2的事务加载器/处理器204从编辑日志110中)加载和处理一个或多个事务以更新映像数据库(操作306)。在一个示例中,对编辑日志110的轮询可以每某个指定时间段发生一次、响应于某个检测到的事件而发生、和/或其某种组合。通过反复地执行对编辑日志110的轮询,映像数据库可以在执行文件系统操作时保持接近实时的最新。
图4是图2的初始映像加载器/处理器202的示例的框图,其可以包括多个模块,诸如映像到存储器加载器402,用于将映像数据加载到映像数据存储器404;映像数据提取器406,用于生成路径/大小文本文件408;数据预备器410,用于生成数据库储存器可加载数据412;以及数据库储存器数据加载器414。图4的初始映像加载器/处理器202的模块402、406、410和414中的每一个,以及图8的事务加载器/处理器204和图13的映像分析器208中的每个模块,可以集体作为执行存储在存储器中的指令以实现与特定模块关联的操作的一个或多个硬件处理器。
映像到存储器加载器402可以经由活跃命名节点102或备用命名节点104来访问文件系统映像106,以及将映像106原样地或者根据一些其他格式存储到映像数据存储器404,该存储器404可以是初始映像加载器/处理器202本地的。在图5A、图5B和图5C中提供了文件系统映像106的示例。在此示例中,文件系统命名空间的层级结构用可扩展标记语言(XML)指定;然而,在其他实施例中也可以为文件系统映像106采用其他数据格式。如图5A所示,在文件系统映像106中指定的各种数据字段中包括“索引节点段(INodeSection)”和“索引节点目录段(INodeDirectorySection)”。在INodeSection中指定了多个索引节点,或文件系统的特定目录和文件。每个索引节点使用特定数字标识符(“id”)来标识,并且与特定索引节点类型(“类型(type)”,例如“目录(DIRECTORY)”、“文件(FILE)”等)、名称(“名称(name)”)、修改时间戳(“mtime”)、权限集合(“权限(permission)”)等相关联。在图5A的INodeSection中以黑体特别指示了节点标识符为16385的用于根目录的索引节点502,以及节点标识符为16386的用于“tmp”目录的索引节点504。
描述两个单独的索引节点502、504的信息以及其他信息在INodeSection中描述。此外,INodeDirectorySection提供关于索引节点502、504和其他节点如何在文件系统层级中相互联系的信息。在图5B的特定示例中,INodeDirectorySection指定多个目录(“directory”)和包括在目录中的多个索引节点(“inode”),每个目录可以指定父目录(“parent”),每个索引节点可以是文件或者另一目录。INodeDirectorySection中的每个索引节点通过其数字标识符从INodeSection进行引用。在图5B的INodeDirectorySection的黑体部分中,用于根目录(标识符16385)的目录条目将“tmp”目录(标识符16386)列为包括在根目录中。因此,“tmp”目录的路径名称将是“/tmp”。因此,可能需要对文件系统映像106进行大量处理以提取关于特定目录或文件的感兴趣数据。
在至少一部分(或整个)文件系统映像106已经被加载到映像数据存储器404后,映像数据提取器406可以开始读取文件系统映像存储器404并且生成路径/大小文本文件408。图6是路径/大小文本文件408的示例。在一个实施例,路径/大小文本文件408可以包括针对每个索引节点的单独的行或条目,其中每一行提供该索引节点的标识符(“inodeid”),该索引节点的完整路径名称(“full_path”),以及该索引节点的大小(“size_in_bytes”)。此外,预定分隔符(在此示例中为一个无符号十六进制值001f(“\u001f”))可以分隔每个字段以便有效处理。
回到图4,初始映像加载器/处理器202的数据预备器410可以访问路径/大小文本文件408的数据并且处理该数据以生成数据库储存器可加载数据412。在一个示例中,路径/大小文本文件408为文件系统映像106的数据提供中间格式,该数据将由数据预备器410使用,作为生成用于映像数据库储存器206的数据的基础。这种处理可以提供一种从文件系统映像106生成数据库可兼容数据的有效方式,因为相比于文件系统映像106,路径/大小文本文件408包括每个路径的更容易辨别的描述。在一个涉及使用HDFS的示例中,数据预备器410可以执行“映射化简(MapReduce)”作业,其中一个或多个“映射(Map)”任务可以并行地获取或消耗路径/大小文本文件408的各个部分(例如,一个或多个索引节点),以及将这些部分提供给一个或多个“化简(reduce)”任务以生成数据库储存器可加载数据412。
图7是可以由图4的初始映像加载器/处理器和图8的事务加载器/处理器采用的可加载到映像数据库储存器206中的数据的示例。在此示例中,所使用的数据库格式是针对每个索引节点键-值对,其中每个键-值对中的键是索引节点的路径名称,值包括一个或多个层级属性-值对。采用键-值对格式的一个数据库示例是它是一个内存储器数据库,可以有助于快速的数据库事务,包括快速增量式更新。在图7所绘的特定示例键-值对中,键是路径名称“/apps/hbase/data”,值包括索引节点的以字节为单位的大小(“size\”)、父索引节点的路径名称(“parentPath”)、索引节点是否为目录的指示(“isDir”)、修改时间戳(“mtime”)、访问时间戳(“atime”)、索引节点在文件系统中被复制的次数指示(“replication”)以及保持该索引节点的数据的块列表,包括块标识符(“blockid”)、块中字节数(“numOfBytes”)和块的生成时间戳(“generationTime”)。在其他示例中,可以在每个索引节点的键-值对的值部分中提供该索引节点的更多或更少的信息字节。
回到图4,数据库储存器数据加载器414可以从数据预备器410获得数据库储存器可加载数据412,以及将该数据加载到映像数据库储存器206中。在基于HDFS的一个示例中,数据库储存器数据加载器414可以实现为仅-“映射(Map)”作业,其接收数据库储存器可加载数据412并将其直接插入到映像数据库储存器206中,而不借助于与数据库关联的通常数据操作。
在一些实施例中,初始映像加载器/处理器202被设计成在最小时间段内执行对文件系统映像106的加载和处理,在此期间,任何特定事务或事务段的数据被保持在日记节点108的编辑日志110中,使得表示整个文件系统映像106的数据可以存储在映射数据库储存器206中,而且,在事务加载器/处理器204加载和处理该事务之前,任何特定事务都不会从编辑日志110被冲刷或消除。
图8是图2的事务加载器/处理器204的示例的框图。如所示,事务加载器/处理器204可以包括日志到存储器加载器804,其被配置用于将来自编辑日志110的事务数据加载到编辑事务存储器806;以及包括编辑事务解析器808,用于基于编辑事务存储器806中的事务数据来修改映像数据库储存器206中的映像数据。事务加载器/处理器204中还可以包括访问调度器802,其被配置用于周期性地触发日志到存储器加载器804从编辑日志110访问附加事务数据。
图9是示例性编辑日志事务,其指示可以存储在编辑日志110中并且可以被日志到存储器加载器804访问,以存储到编辑事务存储器806中,该编辑事务存储器806可以是事务加载器/处理器204本地的。在图9的特定示例中,在特定目录中创建文件的HDFS命令被文件系统(更具体地,在一个实施例中为图1的活跃命名节点102)接收和执行。更具体地,命令(“hdfs dfs”)指示要执行一个文件系统操作,在该操作中,文件(“products.txt”)要被复制(“-put”)到特定目录(“/user/hive/data/customer_products/”)中。作为执行该命令的结果,通过编辑日志操作(“CloseOp”)的方式为编辑日志110生成事务数据,该操作存储关于该事务的数据的若干不同项,诸如与该事务关联的长度(“length”)、索引节点标识符(“inodeid”)、到将在其下创建该文件的目录的路径(“path”)、复制因子(“replication”)、修改时间戳(“mtime”)、访问时间戳(“atime”)、用于该文件的块大小(“blockSize”)、用于存储该文件的块列表(“blocks”)以及附加信息。该事务也可以与事务标识符(“txid”)相关联。日志到存储器加载器804可以访问编辑日志110中的这些事务,包括至少一些上述数据,以及将此数据存储在编辑事务存储器806中。如上所述,其他类型的文件系统命令(如,创建目录,删除目录,删除文件,更新文件,复制文件到另一位置,等等)可以被一个或多个客户端所请求并由命名节点102、104来执行,并且将对应的事务数据记录在编辑日志110中。
在一些示例中,多个事务可以在编辑日志110中被分组成事务段,每个段可以与特定时间段相关联。在该示例中,日志到存储器加载器804可以根据事务的段按组加载事务,日记节点108可以以段为基础来存储和释放事务。
返回图8,访问调度器802可以周期性地触发日志到存储器加载器804的执行以加载编辑日志110中当前可用的任何附加事务。图10是用于图8的事务加载器/处理器204的访问调度器802的示例性代码段。在此示例中,在“FSImageStreamingJobExecutor”类中,采用标准库的“ScheduledExecutorService”应用编程接口(API)来提供具有固定时延的调度器以启动(“FSImageStreamingTask”类型的)映像串流“任务”,从而启动日志到存储器加载器804来访问和存储来自编辑事务存储器806中的编辑日志110的事务。然而,在其他实施例中也可以采用其他调度器。在一个示例中,日志到存储器加载器804可以每30秒被触发一次,不过在其他实施例中其他时延也是合适的。
图11是用于可以在图8的事务加载器/处理器204中采用的日志到存储器加载器804的示例性代码段。在此实施例中,使用针对HDFS NameNode提供的API包的IPCLoggerChannel类来从编辑日志110下载事务,其中给定了开始事务标识符(“startTxId”)和结束事务标识符(“endTxId”)。其他示例可以采用不同类或API来执行访问或下载事务数据到编辑事务存储器806中。
再次参考图8,如上所述,编辑事务解析器808可以被配置为基于编辑事务存储器806中的事务数据来修改映像数据库储存器206中的映像数据。图12是用于编辑事务解析器808的示例性代码段,其中采用定制的XML简单API(SAX)解析器来解析来自编辑日志110(“editLog”)的进入数据以生成定制对象(“editLogObj”),以及经由数据库(例如,键-值对数据库)基于该定制对象对映像数据库储存器206做出相应的改变。
图13是可以在图1的文件系统映像处理系统120中采用的示例性映像分析器208的框图。如图13所示,映像分析器208可以包括通用实时系统查询模块1302,其可以接收各种各样的输入,这些输入指定将在映像数据库储存器206中访问的特定数据类型、在所访问的数据上执行的处理类型以及将作为该处理的结果而提供的输出数据类型。在一些实施例中,输出数据可以是如下形式:报告、警报或可以传送到供感兴趣方使用的计算机、移动设备或其他通信设备的其他输出类型,感兴趣方诸如是文件系统管理员、合规审核员或其他人员。在其他示例中,通用实时系统查询模块1302以及映像分析器208的其他模块所提供的输出可以直接向针对策略管理方或其他实体的API或其他编程接口提供输出,以引起文件系统操作的一个或多个改变。
在图13中,映像分析器208也可以包括一个或多个提供特定类型的分析和关联输出数据的专用模块。这些模块可以包括大文件/目录删除检测模块1304、复制文件减少检测模块1306、用户使用文件情况确定模块1308、小文件检测模块1310、磁盘/命名空间配额使用确定模块1312、副本文件检测模块1314、废弃文件检测模块1316、以及最后文件/目录访问检测模块1318。例如,大文件/目录删除检测模块1304针对可能无意中做的大文件或目录的删除可以提供警报。复制文件减少检测模块1306可以警告关于一个或多个文件的预期冗余已减少或降级的风险。用户使用文件情况确定模块1308可以提供关于哪些用户正在存储比某个平均数更多或更少的文件数的指示。小文件检测模块1310可以将文件大小与为该文件采用的块大小进行比较以确定存储空间是否被有效利用。磁盘/命名空间配额使用确定模块1312可以比较命名节点102、104和/或数据节点112的使用率以确定哪些用户快接近他们在每个空间中的指派配额。副本文件检测模块1314可以确定副本文件在文件大小上的分布,以确定是否在提供针对存储系统故障的足够保护的同时有效地执行文件复制。废弃文件检测模块1316可以基于所涉及文件的非活跃状态来确定哪些文件可以被删除或存档,并且可以确定这种文件是否与可能不再访问数据存储集群100或关联文件系统的特定用户或客户端相关联。最后文件/目录访问检测模块1318可以确定文件结构中任何文件或目录已被访问的最后日期和/或时间,并且可以提供附加信息,诸如访问过该文件或目录的实体、访问类型(更新、只读,等等),诸如此类。在映像数据分析器208的其他示例中可以提供很多执行各种分析的其他类型的模块。
模块、组件和逻辑
某些实施例在本文中被描述为包括逻辑或多个组件、模块或机制。模块可以构成软件模块(例如,机器可读介质上所体现的代码)或硬件模块。“硬件模块”是能够执行某些操作的有形单元,并且可以按照某种物理方式配置或布置。在各种示例实施例中,一个或多个计算机系统(例如独立的计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或多个硬件模块(例如处理器或处理器组)可由软件(例如应用或应用部分)配置为操作以执行本文描述的特定操作的硬件模块。
在一些实施例中,硬件模块可以按照机械方式、电子方式或其任何合适组合来实现。例如,硬件模块可以包括永久地被配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件暂时配置为执行特定操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这样的软件配置,硬件模块就变成特定的机器(或机器的特定组件),其专门定制用于执行所配置的功能,而不再是通用处理器。应理解:以机械方式、以专用和永久配置的电路或以暂时配置的电路(例如由软件配置)实现硬件模块的决定可出于成本和时间的考虑。
因此,短语“硬件模块”应理解为涵盖有形实体,是在物理上构造、永久配置(例如硬连线的)或暂时配置(例如编程)为以某种方式操作或执行本文描述的某些操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑暂时配置(例如编程)硬件模块的实施例,无需在任一时刻配置或实例化硬件模块中的每一个。例如,如果硬件模块包括被软件配置成为专用处理器的通用处理器,则通用处理器可以在不同时刻被配置为分别不同的专用处理器(例如包括不同的硬件模块)。因此,软件将特定的一个或多个处理器例如配置为在一个时刻构成特定硬件模块并在另一时刻构成不同的硬件模块。
硬件模块可以向其他硬件模块提供信息并从其他硬件模块接收信息。因此,所描述的硬件模块可以被看作通信地耦接。如果同时存在多个硬件模块,则可以通过两个或更多个硬件模块之间的信号传输(例如通过适当的电路和总线)实现通信。在多个硬件模块在不同时间配置或实例化的实施例中,可以例如通过存储和获取多个硬件模块可访问的存储器结构中的信息来实现这样的硬件模块之间的通信。例如,一个硬件模块可以执行一操作并在与其通信耦接的存储设备中存储该操作的输出。另一硬件模块接着可以稍后访问存储设备,以获取并处理所存储的输出。硬件模块还可以发起与输入或输出设备的通信,并且能够对资源(例如信息的集合)进行操作。
此处描述的示例方法的各种操作可以至少部分地由暂时配置(例如通过软件)或永久配置为执行相关操作的一个或多个处理器执行。无论暂时还是永久配置,这样的处理器可以构成操作为执行本文描述的一个或多个操作或功能的处理器实现的模块。如本文所使用的,“处理器实现的模块”指使用一个或多个处理器实现的硬件模块。
类似地,本文描述的方法可以至少部分地由处理器实现,其中特定处理器或多个处理器是硬件的示例。例如,方法的至少一些操作可由一个或多个处理器或处理器实现的模块执行。此外,一个或多个处理器还可操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)执行有关操作。例如,操作中的至少一些可以由计算机(作为包括处理器的机器的示例)组执行,其中这些操作可经由网络(例如互联网)并经由一个或多个适当接口(例如应用程序接口(API))来访问。
某些操作的执行可以分布在处理器中,并不只驻留在单个机器中,而是部署在多个机器中。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公环境或服务器群中)。在其他示例实施例中,处理器或处理器实现的模块可以分布在多个地理位置。
机器和软件架构
结合图1至图13描述的模块、方法、应用等可以在机器和相关联的软件架构的上下文中的一些实施例中得以实现。下面的章节描述了适合与所公开的实施例一起使用的代表性软件架构和机器(例如,硬件)架构。
软件架构与硬件架构一起使用以创建针对特定用途定制的设备和机器。例如,与特定软件架构相耦接的特定硬件架构将创建移动设备,诸如移动电话、平板设备等。稍微不同的硬件和软件架构可以产生在“物联网”中使用的智能设备,而另一组合则产生在云计算架构内使用的服务器计算机。本文并没有呈现这样的软件架构和硬件架构的所有组合,因为本领域技术人员可以容易地理解如何在与本文所包含的公开内容不同的上下文中实现本发明。
软件架构
图14是示出代表性软件架构1402的框图1400,该代表性软件架构1402可以结合本文所描述的各种硬件架构一起使用。图14仅是软件架构的非限制性示例,并且应该理解,可以实施许多其他架构以促进实现本文中所描述的功能。软件架构1402可以在诸如图15的机器1500之类的硬件上执行,其中机器1500包括处理器1510、存储器1530和I/O组件1550等等。示出了代表性的硬件层1404,其可以表示例如图15的机器1500。代表性的硬件层1404包括具有相关联的可执行指令1408的一个或多个处理单元1406。可执行指令1408表示软件架构1402的可执行指令,包括与图2的文件系统映像处理系统120、图3的方法300、以及图4至图13的关联模块、组件等等相关联的方法、模块等的实现。硬件层1404还包括存储器和/或存储模块1410,存储器和/或存储模块1410还包含可执行指令1408。硬件层1404还可以包括如1412所指示的其他硬件,其代表硬件层1404的任何其他硬件,诸如被示出为机器1500的一部分的其他硬件。
在图14的示例性架构中,软件架构1402可被概念化为层的堆栈,其中每层提供特定的功能。例如,软件架构1402可以包括诸如操作系统1414、库1416、框架/中间件1418、应用1420和表示层1422之类的层。操作上,应用1420和/或层内的其他组件可以通过软件堆栈来调用应用编程接口(API)调用1424,并响应于API调用1424接收图示为消息1426的响应、返回值等等。所示出的层在本质上具有代表性,但并不是所有的软件架构都具有所有层。例如,一些移动或专用操作系统可以不提供框架/中间件层1418,而其他系统可以提供这样的层。其他软件架构可以包括附加层或不同层。
操作系统1414可以管理硬件资源并提供公共服务。操作系统1414可以包括例如内核1428、服务1430和驱动1432。内核1428可以充当硬件和其他软件层之间的抽象层。例如,内核1428可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网和安全设置等。服务1430可以为其他软件层提供其他公共服务。驱动1432可以负责控制底层硬件或与底层硬件对接。例如,取决于硬件配置,驱动1432可以包括显示器驱动、相机驱动、蓝牙驱动、闪存驱动、串行通信驱动(例如通用串行总线(USB)驱动),驱动、音频驱动、电源管理驱动等等。
库1416可以提供可以由应用1420和/或其他组件和/或层利用的公共基础设施。库1416通常提供允许其他软件模块以与底层操作系统1414功能(例如,内核1428、服务1430和/或驱动1432)直接对接相比更容易的方式来执行任务的功能。库1416可以包括可以提供诸如存储器分配功能、字符串操纵功能、数学功能之类的功能的系统库1434(例如,C标准库)。另外,库1416可以包括API库1436,诸如媒体库(例如,支持譬如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG之类的各种媒体格式的呈现和操纵的库)、图形库(例如可用于在显示器上的图形内容中渲染2D和3D的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、Web库(例如,可提供Web浏览功能的WebKit)等等。库1416还可以包括各种各样的其他库1438,以提供到应用1420和其他软件组件/模块的许多其他API。
框架1418(有时也称为中间件)可以提供可以由应用1420和/或其他软件组件/模块利用的更高级别的公共基础设施。例如,框架1418可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架1418可以提供可以由应用1420和/或其他软件组件/模块利用的广泛的其他API,其中一些可以特定于特定操作系统或平台。
应用1420可以包括内置应用1440和/或第三方应用1442。代表性的内置应用1440的示例可以包括但不限于联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息收发应用和/或游戏应用。第三方应用1442可以包括任何内置应用以及各种其他应用。在具体示例中,第三方应用1442(例如,由与特定平台的供应商不同的实体使用AndroidTM或iOSTM软件开发工具包(SDK)而开发的应用)可以是在诸如iOSTM、AndroidTMPhone或其他移动操作系统的移动操作系统上运行的移动软件。在该示例中,第三方应用1442可以调用由诸如操作系统1414之类的移动操作系统提供的API调用1424,以促进本文描述的功能。
应用1420可以利用内置操作系统功能(例如,内核1428、服务1430和/或驱动1432)、库(例如,系统1434、API 1436和其他库1438)和框架/中间件1418来创建用户接口,以与系统的用户进行交互。备选地或附加地,在一些系统中,与用户的交互可以通过表示层(比如表示层1444)发生。在这些系统中,应用/模块“逻辑”可以和与用户交互的应用/模块的方面分开。
一些软件架构利用虚拟机。在图14的示例中,这由虚拟机1448示出。虚拟机创建软件环境,在该软件环境中应用/模块可以像在硬件机器(诸如图15的机器之类)上执行一样执行。虚拟机由主机操作系统(图15中的操作系统1414)主控,并且通常(尽管并不总是)具有管理虚拟机的操作以及与主机操作系统(例如,操作系统1414)的对接的虚拟机监控器1446。软件架构可以在虚拟机内执行诸如操作系统1450、库1452、框架/中间件1454、应用1456和/或表示层1458。在虚拟机1448内执行的软件架构的这些层可以与先前描述的对应的层相同,或者可以不同。
示例机器架构和机器可读介质
图15是示出了根据一些示例实施例的机器1500的组件的框图,机器1500能够从机器可读介质(例如,机器可读存储介质)读取指令,并且执行本文所讨论的方法中的任何一个或多个。具体地,图15示出了具有计算机系统的示例形式的机器1500的示意图,在机器1500中,可以执行指令1516(例如,软件、程序、应用、小应用、app或其他可执行代码)以使机器1500执行本文讨论的任何一种或多种方法。例如,指令可以使机器执行图3的流程图。附加地或备选地,指令可以实现图2的初始映像加载器/处理器202、事务加载器/处理器204和映像数据分析器208,以及如图4至图13所图示的其各种模块和关联代码段,诸如此类。指令将通用的未编程的机器转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器。在备选实施例中,机器1500作为独立设备操作或可以耦接(例如,联网)到其他机器。在联网部署中,机器1500可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器1500可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)或能够顺序地或以其他方式执行指定待由机器1500采取的动作的指令1516的任意机器。此外,尽管仅示出了单个机器1500,但是术语“机器”也将被认为包括机器1500的集合,机器1500单独地或联合地执行指令1516以执行本文讨论的方法中的任何一个或多个。
机器1500可以包括可以被配置为诸如经由总线1502彼此通信的处理器1510、存储器1530和I/O组件1550。在示例实施例中,处理器1510(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或它们的任何合适的组合)可以包括例如可以执行指令1516的处理器1512和处理器1514。术语“处理器”旨在包括可以包括可以同时执行指令的两个或更多个独立处理器(有时也称为“核”)的多核处理器。尽管图15示出了多个处理器,但是机器1500可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任何组合。
存储器/储存器1530可以包括存储器1532(比如主存储器或其他存储器储存器)、以及储存单元1536,存储器1532和储存单元1536都可以由处理器1510例如经由总线1502进行访问。储存单元1536和存储器1532存储体现本文所述的任何一种或多种方法或功能的指令1516。在由机器1500执行指令1516期间,指令1516还可以完全地或部分地驻留在存储器1532内、储存单元1536内、处理器1510中的至少一个内(例如,处理器的高速缓存存储器内)或其任何合适的组合内。因此,存储器1532、储存单元1536和处理器1510的存储器是机器可读介质的示例。
如本文所使用的,“机器可读介质”意指能够暂时或永久地存储指令和数据的设备,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓冲存储器、其他类型的储存器(例如,电可擦除可编程只读存储器(EEPROM))和/或其任何合适的组合。术语“机器可读介质”应被视为包括能够存储指令1516的单个介质或多个介质(例如集中式或分布式数据库、或相关联的缓存和服务器)。术语“机器可读介质”还将被认为包括能够存储被机器(例如机器1500)执行的指令(例如,指令1516)的任何介质或多个介质的组合,使得指令在被机器1500的一个或多个处理器(例如,处理器1510)执行时使机器1500执行本文所描述的方法中的任何一个或多个。因此,“机器可读介质”指单个储存装置或设备、以及包括多个储存装置或设备的“基于云”的储存系统或储存网络。术语“机器可读介质”包括机器可读储存介质和诸如信号的载体介质或传输介质。
I/O组件1550可以包括用于接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量等的各种组件。包括在特定机器中的特定I/O组件1550将取决于机器的类型。例如,诸如移动电话之类的便携式机器可能会包括触摸输入设备或其他这样的输入机构,而无头服务器机器可能不包括这样的触摸输入设备。应当理解,I/O组件1550可以包括图15中未示出的许多其他组件。根据功能来对I/O组件1550进行分组,以仅用于简化以下讨论,并且分组不以任何方式进行限制。在各种示例实施例中,I/O组件1550可以包括输出组件1552和输入组件1554。输出组件1552可以包括可视组件(例如显示器,比如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学组件(例如,扬声器)、触觉组件(例如,振动马达、阻抗机构)、其他信号发生器等。输入组件1554可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于指向的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
在另一些示例实施例中,I/O组件1550可以包括生物测定组件1556、运动组件1558、环境组件1560或定位组件1562、以及许多其他组件。例如,生物测定组件1556可以包括用于检测表现(例如,手表现、面部表现、语音表现、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件1558可以包括加速度传感器组件(例如,加速度计)重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件1560可以包括例如照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,为安全而检测有害气体浓度或测量大气中的污染物的气体检测传感器)、或可以提供对应于周围物理环境的指示、测量或信号的其他组件。位置组件1562可以包括位置传感器组件(例如,全球定位系统(GPS)接收机组件)、高度传感器组件(例如,高度计或检测可以从其导出高度的气压的气压计)、取向传感器组件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O组件1550可以包括通信组件1564,通信组件1564可操作以分别经由耦接1582和耦接1572将机器1500耦接到网络1580或设备1570。例如,通信组件1564可以包括网络接口组件或与网络1580对接的其他合适设备。在另一些示例中,通信组件1564可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、蓝牙组件(例如低能)、组件、以及经由其他模态提供通信的其他通信组件。设备1570可以是另一机器或各种外围设备中的任一种(例如,经由通用串行总线(USB)耦接的外围设备)。
此外,通信组件1564可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件1564可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,用于检测一维条形码(如通用产品代码(UPC)条形码)、多维条形码(如快速响应(QR)码)、Aztec码、数据矩阵(Data Matrix)数据字(Dataglyph)、MaxiCode、PDF417、超级码、统一商业码缩减空间符号(UCC RSS)-2D条形码、以及其他光学代码)的光学传感器)、或声学检测组件(例如,识别带标签的音频信号的麦克风)。此外,可以经由通信组件1564来导出各种信息,例如经由互联网协议(IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等等。
传输介质
在各种示例实施例中,网络1580的一个或多个部分可以是自组织(ad hoc)网络、内联网、外联网、虚拟专用网(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网,互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一类型的网络、或两个或更多个这样的网络的组合。例如,网络1580或网络1580的一部分可以包括无线或蜂窝网络,并且耦接1582可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一类型的蜂窝或无线耦接。在该示例中,耦接1582可以实现各种类型的数据传输技术中的任何一种,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WIMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术。
指令1516可以经由网络接口设备(例如,包括在通信组件1564中的网络接口组件)使用传输介质并且利用多个公知的传输协议中的任何一个(例如,超文本传输协议(HTTP))通过网络1580发送或接收。类似地,可以使用传输介质通过耦接1572(例如,对等耦接)向设备1570发送指令1516或从其接收指令1516。术语“传输介质”应被认为包括能够存储、编码或携带用于被机器1500执行的指令1516的任何无形介质,并且包括用于促进该软件的通信的数字或模拟通信信号或其他无形介质。传输介质是机器可读介质的一个实施例。
下面编号的示例是实施例。
1、一种文件系统映像处理系统,包括:
映像处理器模块,包括机器的至少一个硬件处理器,所述映像处理器模块用于在存储在文件系统的第一服务器处的文件系统映像未被修改时访问所述文件系统映像,以及用于存储所述文件系统映像的表示;以及
事务处理器模块,用于反复访问存储在所述文件系统的、与所述第一服务器分开的第二服务器处的事务数据,所述事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务,所述事务处理器模块用于基于所访问的事务数据来修改所述文件系统映像的所述表示。
2、根据示例1所述的文件系统映像处理系统,所述文件系统映像的所述表示是所述文件系统映像的数据库可兼容表示,所述表示存储在与所述第一服务器分开的数据库储存器处。
3、根据示例1或示例2所述的文件系统映像处理系统,所述映像处理器模块包括:
映像到存储器加载器,用于从所述文件系统的命名空间服务器获取所述文件系统映像以及将所述文件系统映像加载到存储器;
映像数据提取器,用于基于存储器中的所述文件系统映像生成包括文件映像数据的文本文件;
数据预备器,用于基于所述文本文件的文件映像数据生成数据库可兼容映像数据;以及
数据库数据加载器,用于将所述数据库可兼容映像数据加载到数据库储存器中,作为所述文件系统映像的所述表示。
4、根据示例3所述的文件系统映像处理系统,所述文本文件的文件映像数据包括针对所述文件系统映像中指示的多个节点中的每个节点的路径名称和路径大小。
5、根据示例4所述的文件系统映像处理系统,所述数据库可兼容映像数据包括多个键-值对,每个键-值对包括针对所述文件系统映像中指示的所述多个节点中的一个节点的路径名称和路径大小。
6、根据示例1到示例5任一所述的文件系统映像处理系统,所述事务处理器模块包括:
日志到存储器加载器,用于从所述文件系统的日记节点服务器的编辑日志获取描述在所述文件系统上执行的至少一个文件编辑事务的文件事务数据,以及将所述文件事务数据加载到存储器;以及
编辑事务解析器,用于解析存储器中的所述文件事务数据,以及基于所解析的文件事务数据来修改所述文件系统映像的所述表示。
7、根据示例6所述的文件系统映像处理系统,所述日志到存储器加载器用于获取所述文件事务数据的至少一段,所述至少一段的每段包括对应时间段期间的一个或多个所述文件编辑事务的文件事务数据。
8、根据示例6或示例7所述的文件系统映像处理系统,所述事务处理器模块进一步包括:
访问调度器,用于使得所述日志到存储器加载器在每个预定时间段获取一次之前未从所述编辑日志获取的文件事务数据。
9、根据示例1到示例8任一所述的文件系统映像处理系统,进一步包括:
至少一个映像数据分析器,用于分析所述文件系统映像的所述表示以确定所述文件系统的至少一个特性。
10、根据示例9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于基于所述文件系统映像的所述表示来检测对所述文件系统中超过预定大小的文件的删除,以及传送对所检测到的删除的指示。
11、根据示例9或示例10所述的文件系统映像处理系统,所述至少一个映像数据分析器用于基于所述文件系统映像的所述表示来检测大小小于预定大小的至少一个文件,以及传送对所检测到的所述至少一个文件的指示。
12、根据示例9到示例11任一所述的文件系统映像处理系统,所述至少一个映像数据分析器用于确定所述文件系统的多个用户中的每个用户拥有的文件数量,以及传送对所述多个用户中的每个用户拥有的所述文件数量的指示。
13、根据示例9到示例12任一所述的文件系统映像处理系统,所述至少一个映像数据分析器用于确定所述文件系统的副本文件在文件大小上的分布,以及传送对所述分布的指示。
14、根据示例9到示例13任一所述的文件系统映像处理系统,所述至少一个映像数据分析器用于检测对所述文件系统的至少一个文件的最后访问,以及使得传送描述对所述至少一个文件的所述最后访问的信息。
15、根据示例9到示例14任一所述的文件系统映像处理系统,所述至少一个映像数据分析器用于检测所述文件系统的至少一废弃文件,以及传送对所述废弃文件的指示。
16、根据示例9到示例15任一所述的文件系统映像处理系统,所述至少一个映像数据分析器用于将所述文件系统的至少一个部分的磁盘空间使用率与配额进行比较,以及基于所述磁盘空间使用率超过所述配额的预定部分而传送警报。
17、一种方法,包括:
当文件系统的第一服务器处的文件系统映像未被修改时,使用机器的至少一个硬件处理器来访问所述文件系统映像;
存储所述文件系统映像的表示;
反复访问存储在所述文件系统的、与所述第一服务器分开的第二服务器处的事务数据,所述事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务;以及
基于所访问的事务数据来修改所述文件系统映像的所述表示。
18、根据示例17所述的方法,所述文件系统映像的所述表示包括所述文件系统映像的数据库可兼容表示,所述表示的存储发生在与所述第一服务器分开的数据库储存器处。
19、根据示例17或示例18所述的方法,进一步包括分析所述文件系统映像的表示以确定所述文件系统的至少一个特性。
20、一种系统,包括:
数据库储存器;
至少一个硬件处理器;以及
存储有指令的存储器,所述指令在被所述至少一个硬件处理器执行时使得所述系统执行如下操作,包括:
在存储在文件系统的第一服务器处的文件系统映像未被修改时访问所述文件系统映像;
在所述数据库储存器处存储所述文件系统映像的数据库可兼容表示;
反复访问存储在所述文件系统的、与所述第一服务器分开的第二服务器处的事务数据,所述事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务;以及
基于所访问的事务数据来修改所述文件系统映像的所述表示。
21、一种携带有机器可读指令的机器可读介质,所述指令在被机器的至少一个处理器执行时,使得所述机器执行示例17到19中任一项所述的方法,或者使得所述机器被配置成示例1至16或示例20中任一项所述的系统。
语言
在整个说明书中,复数实例可以实现如单个实例所述的组件、操作或结构。虽然一个或多个方法的各个操作被示出和描述为分离的操作,但是各个操作中的一个或多个可以同时执行,并且无需按所示顺序执行操作。在示例配置中被示为分离组件的结构和功能可以被实现为组合结构或组件。类似地,被示为单个组件的结构和功能可以被实现为分离的组件。这些和其他变型、修改、添加和改进落入本主题的范围内。
尽管已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。本发明主题的这些实施例在本文中可以单独地或共同地由术语“发明”提及,以仅仅为了方便,并且不旨在自动地将本申请的范围限制为任何单个公开或发明构思(如果事实上公开了一个以上)。
本文充分详细地描述了示出的实施例以使得本领域技术人员能够实现公开的教导。可以利用并根据这些实施例得出其他实施例,从而可以在不脱离本公开的范围的情况下做出结构和逻辑上的替换和改变。因此,该“具体实施方式”不应当看做是限制意义,并且各种实施例的范围仅通过所附权利要求以及权利要求的等同物的全部范围来限定。
如本文所使用的,术语“或”可以被解释为包括性或排他性的意义。此外,可以针对本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据储存器之间的边界在某种程度上是任意的,并且在具体说明性配置的上下文中示出了特定操作。其他功能分配是可以设想的,并且这些分配可以落入本公开的各种实施例的范围内。一般来说,在示例配置中作为单独资源呈现的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源呈现的结构和功能可以被实现为单独的资源。这些和其他变型、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图应当被看做说明性的而不是限制意义的。

Claims (21)

1.一种文件系统映像处理系统,包括:
映像处理器模块,包括机器的至少一个硬件处理器,所述映像处理器模块用于在存储在文件系统的第一服务器处的文件系统映像未被修改时访问所述文件系统映像,以及用于存储所述文件系统映像的表示;以及
事务处理器模块,用于反复访问存储在所述文件系统的、与所述第一服务器分开的第二服务器处的事务数据,所述事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务,所述事务处理器模块用于基于所访问的事务数据来修改所述文件系统映像的所述表示。
2.根据权利要求1所述的文件系统映像处理系统,所述文件系统映像的所述表示是所述文件系统映像的数据库可兼容表示,所述表示存储在与所述第一服务器分开的数据库储存器处。
3.根据权利要求1所述的文件系统映像处理系统,所述映像处理器模块包括:
映像到存储器加载器,用于从所述文件系统的命名空间服务器获取所述文件系统映像以及将所述文件系统映像加载到存储器;
映像数据提取器,用于基于所述存储器中的所述文件系统映像生成包括文件映像数据的文本文件;
数据预备器,用于基于所述文本文件的文件映像数据生成数据库可兼容映像数据;以及
数据库数据加载器,用于将所述数据库可兼容映像数据加载到数据库储存器中,作为所述文件系统映像的所述表示。
4.根据权利要求3所述的文件系统映像处理系统,所述文本文件的文件映像数据包括针对所述文件系统映像中指示的多个节点中的每个节点的路径名称和路径大小。
5.根据权利要求4所述的文件系统映像处理系统,所述数据库可兼容映像数据包括多个键-值对,每个键-值对包括针对所述文件系统映像中指示的所述多个节点中的一个节点的路径名称和路径大小。
6.根据权利要求1所述的文件系统映像处理系统,所述事务处理器模块包括:
日志到存储器加载器,用于从所述文件系统的日记节点服务器的编辑日志获取描述在所述文件系统上执行的至少一个文件编辑事务的文件事务数据,以及将所述文件事务数据加载到存储器;以及
编辑事务解析器,用于解析所述存储器中的所述文件事务数据,以及基于所解析的文件事务数据来修改所述文件系统映像的所述表示。
7.根据权利要求6所述的文件系统映像处理系统,所述日志到存储器加载器用于获取所述文件事务数据的至少一段,所述至少一段中的每段包括对应时间段期间的一个或多个所述文件编辑事务的文件事务数据。
8.根据权利要求6所述的文件系统映像处理系统,所述事务处理器模块进一步包括:
访问调度器,用于使得所述日志到存储器加载器在每个预定时间段获取一次之前未从所述编辑日志获取的文件事务数据。
9.根据权利要求1所述的文件系统映像处理系统,进一步包括:
至少一个映像数据分析器,用于分析所述文件系统映像的所述表示以确定所述文件系统的至少一个特性。
10.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于基于所述文件系统映像的所述表示来检测对所述文件系统中超过预定大小的文件的删除,以及传送对所检测到的删除的指示。
11.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于基于所述文件系统映像的所述表示来检测大小小于预定大小的至少一个文件,以及传送对所检测到的所述至少一个文件的指示。
12.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于确定所述文件系统的多个用户中的每个用户拥有的文件数量,以及传送对所述多个用户中的每个用户拥有的所述文件数量的指示。
13.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于确定所述文件系统的副本文件在文件大小上的分布,以及传送对所述分布的指示。
14.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于检测对所述文件系统的至少一个文件的最后访问,以及使得传送描述对所述至少一个文件的所述最后访问的信息。
15.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于检测所述文件系统的至少一个废弃文件,以及传送对所述废弃文件的指示。
16.根据权利要求9所述的文件系统映像处理系统,所述至少一个映像数据分析器用于将所述文件系统的至少一部分的磁盘空间使用率与配额进行比较,以及基于所述磁盘空间使用率超过所述配额的预定部分而传送警报。
17.一种方法,包括:
当文件系统的第一服务器处的文件系统映像未被修改时,使用机器的至少一个硬件处理器来访问所述文件系统映像;
存储所述文件系统映像的表示;
反复访问存储在所述文件系统的、与所述第一服务器分开的第二服务器处的事务数据,所述事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务;以及
基于所访问的事务数据来修改所述文件系统映像的所述表示。
18.根据权利要求17所述的方法,所述文件系统映像的所述表示包括所述文件系统映像的数据库可兼容表示,所述表示的存储发生在与所述第一服务器分开的数据库储存器处。
19.根据权利要求17所述的方法,进一步包括分析所述文件系统映像的表示以确定所述文件系统的至少一个特性。
20.一种系统,包括:
数据库储存器;
至少一个硬件处理器;以及
存储有指令的存储器,所述指令在被所述至少一个硬件处理器执行时使得所述系统执行如下操作,包括:
在存储在文件系统的第一服务器处的文件系统映像未被修改时访问所述文件系统映像;
在所述数据库储存器处存储所述文件系统映像的数据库可兼容表示;
反复访问存储在所述文件系统的、与所述第一服务器分开的第二服务器处的事务数据,所述事务数据描述未在所访问的文件系统映像中表示的文件系统编辑事务;以及
基于所访问的事务数据来修改所述文件系统映像的所述表示。
21.一种携带有机器可读指令的机器可读介质,所述指令在被机器的至少一个处理器执行时,使得所述机器执行如权利要求17至19中任一项所述的方法,或者使得所述机器被配置成如权利要求1至16或权利要求20中任一项所述的系统。
CN201780039062.5A 2016-06-23 2017-06-23 文件系统映像处理系统 Pending CN109328344A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/191,085 US20170371896A1 (en) 2016-06-23 2016-06-23 File system image processing system
US15/191,085 2016-06-23
PCT/US2017/039061 WO2017223487A1 (en) 2016-06-23 2017-06-23 File system image processing system

Publications (1)

Publication Number Publication Date
CN109328344A true CN109328344A (zh) 2019-02-12

Family

ID=60677493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780039062.5A Pending CN109328344A (zh) 2016-06-23 2017-06-23 文件系统映像处理系统

Country Status (3)

Country Link
US (1) US20170371896A1 (zh)
CN (1) CN109328344A (zh)
WO (1) WO2017223487A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795404A (zh) * 2019-10-31 2020-02-14 京东方科技集团股份有限公司 Hadoop分布式文件系统及其运行方法、修复方法
CN110888717A (zh) * 2019-11-05 2020-03-17 中盈优创资讯科技有限公司 Hdfs的目录操作的事务控制方法及装置
CN117252188A (zh) * 2023-10-17 2023-12-19 广东深博信息科技有限公司 一种基于人工智能的软件映像监控方法及系统

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109104321B (zh) * 2018-09-03 2021-05-18 福建星瑞格软件有限公司 提升Hadoop双机集群下Web_HDFS可用性的方法
CN110086678B (zh) * 2019-05-16 2022-04-19 南京华盾电力信息安全测评有限公司 基于Redis的双通道实时数据采集系统及采集方法
US11287994B2 (en) * 2019-12-13 2022-03-29 Samsung Electronics Co., Ltd. Native key-value storage enabled distributed storage system
US11507532B2 (en) * 2020-06-29 2022-11-22 Rubrik, Inc. Aggregating metrics in distributed file systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693864B1 (en) * 2006-01-03 2010-04-06 Netapp, Inc. System and method for quickly determining changed metadata using persistent consistency point image differencing
US8555022B1 (en) * 2010-01-06 2013-10-08 Netapp, Inc. Assimilation of foreign LUNS into a network storage system
US20140156618A1 (en) * 2012-12-03 2014-06-05 Vmware, Inc. Distributed, Transactional Key-Value Store
US20150248420A1 (en) * 2014-03-03 2015-09-03 Netapp, Inc. Distributed file system snapshot

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727206A (en) * 1996-07-31 1998-03-10 Ncr Corporation On-line file system correction within a clustered processing system
US6573907B1 (en) * 1997-07-03 2003-06-03 Obvious Technology Network distribution and management of interactive video and multi-media containers
US8718363B2 (en) * 2008-01-16 2014-05-06 The Charles Stark Draper Laboratory, Inc. Systems and methods for analyzing image data using adaptive neighborhooding
US8923551B1 (en) * 2014-07-16 2014-12-30 Interactive Memories, Inc. Systems and methods for automatically creating a photo-based project based on photo analysis and image metadata
US8935322B1 (en) * 2014-07-16 2015-01-13 Interactive Memories, Inc. Methods and systems for improved uploading of media files for use in media-rich projects
US8958662B1 (en) * 2014-08-20 2015-02-17 Interactive Memories, Inc. Methods and systems for automating insertion of content into media-based projects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693864B1 (en) * 2006-01-03 2010-04-06 Netapp, Inc. System and method for quickly determining changed metadata using persistent consistency point image differencing
US8555022B1 (en) * 2010-01-06 2013-10-08 Netapp, Inc. Assimilation of foreign LUNS into a network storage system
US20140156618A1 (en) * 2012-12-03 2014-06-05 Vmware, Inc. Distributed, Transactional Key-Value Store
US20150248420A1 (en) * 2014-03-03 2015-09-03 Netapp, Inc. Distributed file system snapshot

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795404A (zh) * 2019-10-31 2020-02-14 京东方科技集团股份有限公司 Hadoop分布式文件系统及其运行方法、修复方法
CN110888717A (zh) * 2019-11-05 2020-03-17 中盈优创资讯科技有限公司 Hdfs的目录操作的事务控制方法及装置
CN117252188A (zh) * 2023-10-17 2023-12-19 广东深博信息科技有限公司 一种基于人工智能的软件映像监控方法及系统
CN117252188B (zh) * 2023-10-17 2024-03-26 广东深博信息科技有限公司 一种基于人工智能的软件映像监控方法及系统

Also Published As

Publication number Publication date
US20170371896A1 (en) 2017-12-28
WO2017223487A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
US10025568B2 (en) Database object lifecycle management
CN109328344A (zh) 文件系统映像处理系统
US10567367B2 (en) Method, system, and program storage device for managing tenants in an industrial internet of things
EP3321798B1 (en) Database object delivery infrastructure
EP3321797B1 (en) Database proxy object delivery infrastructure
US10891273B2 (en) Database container delivery infrastructure
US9817726B2 (en) Delta replication of index fragments to enhance disaster recovery
US20160063050A1 (en) Database Migration Consistency Checker
CN113348650B (zh) 交互信息界面的显示方法、系统及机器可读存储介质
US20160062732A1 (en) Method for providing additional functions based on information
US20210256195A1 (en) Optimization for Browser Rendering During Navigation
CN104268143B (zh) Xml数据的处理方法和装置
CN108205582B (zh) 基于数据老化优化数据访问
US20200302542A1 (en) Document integration into policy management system
US20160078386A1 (en) Branch Versioning for Process Management
US11720449B2 (en) Real time database backup status indication and restore
US20210264096A1 (en) Markdown data content with action binding
US10761734B2 (en) Systems and methods for data frame representation
CN108370324A (zh) 分布式数据库作业数据倾斜检测
EP3977306A1 (en) Efficient clustered persistence
US10503816B2 (en) Real-time view-based reporting metadata
US20190227825A1 (en) Find group distribute execute model
US20230237052A1 (en) Real-time data manipulation system via bw cube
US20220326983A1 (en) Behavior toggle for stateful applications

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190212