Automated software testing framework

    公开(公告)号:US07694181B2

    公开(公告)日:2010-04-06

    申请号:US11299572

    申请日:2005-12-12

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3688

    摘要: A generic testing framework to automatically allocate, install and verify a given version of a system under test, to exercise the system against a series of tests in a “hands-off” objective manner, and then to export information about the tests to one or more developer repositories (such as a query-able database, an email list, a developer web server, a source code version control system, a defect tracking system, or the like). The framework does not “care” or concern itself with the particular implementation language of the test as long as the test can issue directives via a command line or configuration file. During the automated testing of a given test suite having multiple tests, and after a particular test is run, the framework preferably generates an “image” of the system under test and makes that information available to developers, even while additional tests in the suite are being carried out. In this manner, the framework preserves the system “state” to facilitate concurrent or after-the-fact debugging. The framework also will re-install and verify a given version of the system between tests, which may be necessary in the event a given test is destructive or otherwise places the system in an unacceptable condition.

    Fast primary cluster recovery
    12.
    发明申请
    Fast primary cluster recovery 有权
    快速的主集群恢复

    公开(公告)号:US20090006888A1

    公开(公告)日:2009-01-01

    申请号:US11936317

    申请日:2007-11-07

    IPC分类号: G06F11/20

    摘要: A cluster recovery process is implemented across a set of distributed archives, where each individual archive is a storage cluster of preferably symmetric nodes. Each node of a cluster typically executes an instance of an application that provides object-based storage of fixed content data and associated metadata. According to the storage method, an association or “link” between a first cluster and a second cluster is first established to facilitate replication. The first cluster is sometimes referred to as a “primary” whereas the “second” cluster is sometimes referred to as a “replica.” Once the link is made, the first cluster's fixed content data and metadata are then replicated from the first cluster to the second cluster, preferably in a continuous manner. Upon a failure of the first cluster, however, a failover operation occurs, and clients of the first cluster are redirected to the second cluster. Upon repair or replacement of the first cluster (a “restore”), the repaired or replaced first cluster resumes authority for servicing the clients of the first cluster. This restore operation preferably occurs in two stages: a “fast recovery” stage that involves preferably “bulk” transfer of the first cluster metadata, following by a “fail back” stage that involves the transfer of the fixed content data. Upon receipt of the metadata from the second cluster, the repaired or replaced first cluster resumes authority for the clients irrespective of whether the fail back stage has completed or even begun.

    摘要翻译: 在一组分布式归档中实现集群恢复过程,其中每个单独的归档是优选对称节点的存储集群。 集群的每个节点通常执行提供固定内容数据和关联元数据的基于对象的存储的应用的实例。 根据存储方法,首先建立第一集群和第二集群之间的关联或“链接”以便于复制。 第一个集群有时被称为“主”,而“第二”集合有时被称为“副本”。 一旦建立了链接,则第一集群的固定内容数据和元数据然后从第一集群复制到第二集群,优选地以连续的方式。 但是,在第一个集群发生故障时,会发生故障转移操作,并将第一个集群的客户端重定向到第二个集群。 在修复或更换第一个集群(“恢复”)后,已修复或更换的第一个集群将恢复为第一个集群的客户端提供服务的权限。 该恢复操作优选地分为两个阶段:“快速恢复”阶段,其优选地涉及第一集群元数据的“批量”传送,之后是涉及传输固定内容数据的“故障恢复”阶段。 在从第二集群接收到元数据后,修复或更换的第一个集群将恢复客户端的权限,而不管故障后台是否已经完成甚至开始。

    Versioned file system with pruning
    13.
    发明授权
    Versioned file system with pruning 有权
    版本化文件系统修剪

    公开(公告)号:US08990272B2

    公开(公告)日:2015-03-24

    申请号:US12847696

    申请日:2010-07-30

    IPC分类号: G06F17/30

    CPC分类号: G06F17/3023

    摘要: A versioned file system comprises a set of structured data representations, such as XML. Each structured data representation corresponds to a “version,” and each version comprises a tree of write-once objects rooted at a root directory manifest. Each version in the versioned file system has associated therewith a “borrow window.” When it is desired to reconstruct the file system to a point in time (or, more generally, a given state), i.e., to perform a “restore,” it is only required to walk (use) a single structured data representation (a tree). During a restore, metadata is pulled back from the cloud first, so users can see the existence of needed files immediately. The remainder of the data is then pulled back from the cloud if/when the user goes to open the file. As a result, the entire file system (or any portion thereof) can be restored to a previous time nearly instantaneously. A “fast” restore is performed if an object being restored exists within a “borrow window” of the version from which the system is restoring. A version is pruned from the versioned file system by deleting all objects in the tree (associated with the version) that, at the time of pruning: (i) are not being lent to any other version within the borrow window of the version being pruned, and (ii) are not referenced in any other version whose borrow window is sufficiently large enough such that an object in the version could have been restored from that other version.

    摘要翻译: 版本化文件系统包括一组结构化数据表示,例如XML。 每个结构化数据表示对应于“版本”,并且每个版本包括一根基于根目录清单的一次写入树的树。 版本化文件系统中的每个版本都与“借用窗口”相关联。当希望将文件系统重建到一个时间点(或更一般地,给定状态)时,即执行“恢复”时, 只需要(使用)单个结构化数据表示(树)。 在还原期间,元数据首先从云中被拉回,因此用户可以立即看到所需文件的存在。 如果/当用户打开文件时,剩余的数据将从云中被拉回。 结果,整个文件系统(或其任何部分)可以几乎瞬间恢复到之前的时间。 如果正在还原的对象存在于系统还原的版本的“借用窗口”中,则执行“快速”恢复。 通过删除树中的所有对象(与版本相关联),在版本化文件系统中修剪版本:在修剪时:(i)不被借给正在修剪的版本的借用窗口内的任何其他版本 ,和(ii)在其借用窗口足够大的任何其他版本中不被引用,使得版本中的对象可能已经从该另一版本恢复。

    Method and apparatus for multi-sequential data operations
    15.
    发明授权
    Method and apparatus for multi-sequential data operations 有权
    多顺序数据操作的方法和装置

    公开(公告)号:US06732194B1

    公开(公告)日:2004-05-04

    申请号:US09893295

    申请日:2001-06-27

    IPC分类号: G06F300

    摘要: Described are techniques for performing multi-sequential I/O operations in connection with data requests involving a data storage device. An single data request may involve more than a one portion of data associated with a single job record, such as a single request may involve more than a single track of data of a logical device. A single job record corresponds to a single track. A data structure arrangement is disclosed that includes multiple job records corresponding to the single data request involving more than a single track of data. The multiple job records for a single data request are connected together in a data structure arrangement that may be used in connection with a single read operation involving more than a single track of data. This data structure may also be used in connection with storing a plurality of pending write requests, such as in connection with writing data from cache locations to a plurality of tracks of a particular device in which the plurality of pending write requests are represented as a single data request.

    摘要翻译: 描述了与涉及数据存储设备的数据请求相关的多顺序I / O操作的技术。 单个数据请求可以涉及与单个作业记录相关联的多于一部分的数据,诸如单个请求可能涉及多于逻辑设备的单个数据轨道。 单个作业记录对应于单个轨道。 公开了一种数据结构布置,其包括与涉及多于单个数据轨迹的单个数据请求相对应的多个作业记录。 用于单个数据请求的多个作业记录以可以与涉及多于单个数据轨道的单个读取操作结合使用的数据结构布置连接在一起。 该数据结构还可以与存储多个待处理的写入请求相关联使用,例如结合将数据从高速缓存位置写入特定设备的多个轨道,其中多个待处理写入请求被表示为单个 数据请求。

    Four way support for dynamic mirror service policy
    16.
    发明授权
    Four way support for dynamic mirror service policy 有权
    四路支持动态镜像服务策略

    公开(公告)号:US06633955B1

    公开(公告)日:2003-10-14

    申请号:US09965421

    申请日:2001-09-27

    IPC分类号: G06F1200

    摘要: Described are techniques for use in determining a dynamic mirror service policy (DMSP) for a plurality of mirror devices. The DMSP determines which of the plurality of mirror devices services I/O operations associated with a logical volume (LV), such as a read operation, at a particular point in time. The particular DMSP may subsequently be recalculated using device statistics from a different time interval. Part of determining a DMSP includes using device statistics to determine the activity level of each LV. The activity levels of multiple LVs may be combined to determine the activity level associated with a particular mirror device. A mirror device is selected if it has the minimum activity of all the plurality of mirror devices. Seek minimization processing is performed to minimize the distance between LVs stored on a single mirror device. Parameters used in connection with determining a DMSP may be stored in a configuration file and may be dynamically modified. Techniques described may also be used in an embodiment having a static MSP.

    摘要翻译: 描述了用于确定多个镜像设备的动态镜像服务策略(DMSP)的技术。 DMSP在特定时间点确定多个镜像设备中的哪一个服务与诸如读取操作的逻辑卷(LV)相关联的I / O操作。 随后可以使用来自不同时间间隔的设备统计重新计算特定DMSP。 确定DMSP的一部分包括使用设备统计信息来确定每个LV的活动级别。 可以组合多个LV的活动水平以确定与特定镜像设备相关联的活动水平。 如果其具有所有多个镜像设备的最小活动性,则选择镜像设备。 执行最小化处理以最小化存储在单个镜像设备上的LV之间的距离。 与确定DMSP有关的参数可以存储在配置文件中,并且可以被动态修改。 所描述的技术也可以在具有静态MSP的实施例中使用

    RAID controller system utilizing front end and back end caching systems
including communication path connecting two caching systems and
synchronizing allocation of blocks in caching systems
    17.
    发明授权
    RAID controller system utilizing front end and back end caching systems including communication path connecting two caching systems and synchronizing allocation of blocks in caching systems 失效
    RAID控制器系统使用前端和后端缓存系统,包括连接两个缓存系统的通信路径,并在缓存系统中同步块的分配

    公开(公告)号:US5884098A

    公开(公告)日:1999-03-16

    申请号:US634419

    申请日:1996-04-18

    摘要: A disk drive array controller generally has a host I/O port configured for connection to a host computer and a plurality of disk I/O ports configured for connection to a corresponding plurality of disks forming a disk drive array. A controller constructed in accordance with various aspects of the present invention may include a host I/O processor in communication with the host I/O port and configured to perform I/O transactions with the host computer through the host I/O port; a cache memory; a front end caching subsystem in communication with the host I/O processor and configured to cache blocks of data comprising host I/O transactions in the cache memory; a disk array I/O processor configured to access host data in the cache memory and in communication with the plurality of disk drives, the disk array I/O processor processing host I/O transactions into disk I/O transactions; and a back end caching subsystem in communication with the disk array I/O processor, the back end caching subsystem configured to cache disk array meta-data in the cache memory. Variations of this basic system are possible, and contemplated as within the scope of the present invention. The disk drive array controller may further include a communication path between the front end caching subsystem and the back end caching subsystem, whereby allocation of blocks in the caching subsystems are synchronized. The communication path may be, for example, a control store common to the front end caching subsystem and the back end caching subsystem, the control store holding a data structure through which caching and I/O transaction information are communicated between the front end caching subsystem and the back end caching subsystem.

    摘要翻译: 磁盘驱动器阵列控制器通常具有配置用于连接到主计算机的主机I / O端口和被配置用于连接到形成磁盘驱动器阵列的对应的多个磁盘的多个磁盘I / O端口。 根据本发明的各个方面构造的控制器可以包括与主机I / O端口通信并配置为通过主机I / O端口与主机执行I / O处理的主机I / O处理器; 高速缓冲存储器 前端缓存子系统,与主机I / O处理器通信并且被配置为将包括主机I / O事务的数据块缓存在高速缓冲存储器中; 磁盘阵列I / O处理器,被配置为访问高速缓冲存储器中的主机数据并与多个磁盘驱动器通信,磁盘阵列I / O处理器将主机I / O事务处理成磁盘I / O事务; 以及与所述磁盘阵列I / O处理器通信的后端缓存子系统,所述后端缓存子系统被配置为将磁盘阵列元数据缓存在所述高速缓冲存储器中。 该基本系统的变化是可能的,并且被认为在本发明的范围内。 磁盘驱动器阵列控制器还可以包括前端缓存子系统和后端高速缓存子系统之间的通信路径,由此高速缓存子系统中的块的分配被同步。 通信路径可以是例如前端缓存子系统和后端缓存子系统共用的控制存储器,控制存储器保存数据结构,通过该数据结构,在前端缓存子系统之间传送高速缓存和I / O事务信息 和后端缓存子系统。

    Versioned file system with sharing
    18.
    发明授权
    Versioned file system with sharing 有权
    版本化文件系统与共享

    公开(公告)号:US08661063B2

    公开(公告)日:2014-02-25

    申请号:US13271460

    申请日:2011-10-12

    IPC分类号: G06F17/30

    CPC分类号: G06F17/3023 G06F17/30171

    摘要: A method of data sharing among multiple entities is provided. Each entity exports to a data store a structured data representation comprising a versioned file system local to that entity. The method begins by forming a sharing group that includes two or more entities. Sharing of the structured data representations by members of the sharing group is enabled. The filers use a single distributed lock to protect each version of the file system. This lock is managed to allow each filer access to the shared file system volume to create its new version. To share a fully-versioned file system, asynchronous updates at each of the filers is permitted, and each node is then allowed to “push” its individual changes to the store to form the next version of the file system. A mechanism also may be used to reduce the period during which filers in the group operate under lock.

    摘要翻译: 提供了多个实体之间数据共享的方法。 每个实体向数据存储库导出包括该实体本地的版本化文件系统的结构化数据表示。 该方法从形成包含两个或多个实体的共享组开始。 启用共享组成员共享结构化数据表示。 文件管理器使用单个分布式锁来保护文件系统的每个版本。 管理此锁,以允许每个文件管理器访问共享文件系统卷以创建其新版本。 要共享完全版本的文件系统,允许每个文件管理器的异步更新,然后允许每个节点将其各个更改“推送”到存储,以形成文件系统的下一个版本。 也可以使用一种机制来减少组内的文件管理者在锁定期间的操作时间。

    Method and system for versioned file system using structured data representations
    19.
    发明授权
    Method and system for versioned file system using structured data representations 有权
    使用结构化数据表示的版本化文件系统的方法和系统

    公开(公告)号:US08566362B2

    公开(公告)日:2013-10-22

    申请号:US12483030

    申请日:2009-06-11

    IPC分类号: G06F17/30

    摘要: A versioned file system comprises a set of structured data representations. At a first time, an interface creates and exports to a data store a first structured data representation corresponding to a first version of a local file system. The first structured data representation is an XML tree having a root element, one or more directory elements associated with the root element, and one or more file elements associated with a given directory element. Upon a change within the file system (e.g., file creation, file deletion, file modification, directory creation, directory deletion and directory modification), the interface creates and exports a second structured data representation corresponding to a second version of the file system. The second structured data representation differs from the first structured data representation up to and including the root element of the second structured data representation. The data store may comprise a cloud storage service provider.

    摘要翻译: 版本化文件系统包括一组结构化数据表示。 在第一时间,界面创建并向数据存储器导出对应于本地文件系统的第一版本的第一结构化数据表示。 第一结构化数据表示是具有根元素,与根元素相关联的一个或多个目录元素以及与给定目录元素相关联的一个或多个文件元素的XML树。 在文件系统内的变化(例如,文件创建,文件删除,文件修改,目录创建,目录删除和目录修改)之后,界面创建并输出对应于文件系统的第二版本的第二结构化数据表示。 第二结构化数据表示与第一结构化数据表示不同,并且包括第二结构化数据表示的根元素。 数据存储可以包括云存储服务提供商。

    Automated software testing framework
    20.
    发明授权
    Automated software testing framework 失效
    自动软件测试框架

    公开(公告)号:US08230267B2

    公开(公告)日:2012-07-24

    申请号:US12753924

    申请日:2010-04-05

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3688

    摘要: A generic testing framework to automatically allocate, install and verify a given version of a system under test, to exercise the system against a series of tests in a “hands-off” objective manner, and then to export information about the tests to one or more developer repositories (such as a query-able database, an email list, a developer web server, a source code version control system, a defect tracking system, or the like). The framework does not “care” or concern itself with the particular implementation language of the test as long as the test can issue directives via a command line or configuration file. During the automated testing of a given test suite having multiple tests, and after a particular test is run, the framework preferably generates an “image” of the system under test and makes that information available to developers, even while additional tests in the suite are being carried out. In this manner, the framework preserves the system “state” to facilitate concurrent or after-the-fact debugging. The framework also will re-install and verify a given version of the system between tests, which may be necessary in the event a given test is destructive or otherwise places the system in an unacceptable condition.

    摘要翻译: 一个通用测试框架,用于自动分配,安装和验证被测系统的给定版本,以“手动”客观的方式对系统进行一系列测试,然后将有关测试的信息导出到一个或 更多的开发者存储库(诸如可查询数据库,电子邮件列表,开发者Web服务器,源代码版本控制系统,缺陷跟踪系统等)。 只要测试可以通过命令行或配置文件发出指令,该框架不会“关心”或关心测试的特定实现语言。 在具有多个测试的给定测试套件的自动测试期间,并且在运行特定测试之后,框架优选地生成被测系统的“图像”,并且使得该信息可供开发者使用,即使套件中的附加测试 正在进行。 以这种方式,框架保留系统“状态”以便于并发或事后调试。 该框架还将在测试之间重新安装和验证系统的给定版本,这在给定测试是破坏性的或以其他方式将系统置于不可接受的情况下可能是必需的。