KR20130046441A - Method and system for extending data storage system functions - Google Patents
Method and system for extending data storage system functions Download PDFInfo
- Publication number
- KR20130046441A KR20130046441A KR1020137007468A KR20137007468A KR20130046441A KR 20130046441 A KR20130046441 A KR 20130046441A KR 1020137007468 A KR1020137007468 A KR 1020137007468A KR 20137007468 A KR20137007468 A KR 20137007468A KR 20130046441 A KR20130046441 A KR 20130046441A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- data storage
- intercepting
- interceptor
- storage
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터 저장 시스템의 기능성을 확장하는 방법 및 시스템으로서, 상기 데이터 저장 시스템은 데이터 조직 수단 및 데이터 저장 자원을 포함하고, 상기 방법은 상기 데이터 저장 시스템의 데이터 저장 기능들을 상기 데이터 저장 시스템의 다른 기능들로부터 분리하는 단계 및 상기 데이터 저장 기능들의 적어도 일부를 인터셉팅 시스템으로 전송하는 단계를 포함한다.A method and system for extending the functionality of a data storage system, the data storage system comprising data organization means and data storage resources, wherein the method incorporates data storage functions of the data storage system from other functions of the data storage system. Separating and transmitting at least some of the data storage functions to an intercepting system.
Description
본 출원은 2010년 8월 25일 제출된 미국 가출원 61/376,905의 우선권을 주장하며, 그 내용 전체가 참고로 여기에 포함된다.This application claims the priority of US Provisional Application 61 / 376,905, filed August 25, 2010, which is hereby incorporated by reference in its entirety.
본 발명은 일반적으로 데이터 저장 시스템에 관한 것으로, 특히, 데이터 저장 시스템의 기능을 확장하는 방법 및 시스템에 관한 것이다.The present invention relates generally to data storage systems, and more particularly to methods and systems for extending the functionality of data storage systems.
컴퓨터 상의 파일시스템은, 통신 프로세스들이 동시에 액티브이지 않더라도, 컴퓨터의 오퍼레이팅 시스템이 통신 프로세스들 간의 보안 및 네이밍(naming) 프로토콜을 시행하는 신뢰성있는 제3자로서 동작하도록 한다. 파일시스템의 기능 중의 하나는 그에 제공되는 데이터의 목록을 만들고(catalogue) 조직(organize)하여 나중에 검색될 수 있도록 하는 것이다. 이 기능을 수행하기 위하여, 파일시스템은 저장 자원을 관리해야 한다. 일반적인 저장 자원은 오브젝트 저장 시스템에서 예를 들어 인접한 바이트 시퀀스, 인접한 블록 시퀀스 또는 본질적으로 키 값 저장소(key value store)로서 파일시스템에 나타난다.The file system on the computer allows the operating system of the computer to act as a trusted third party to enforce security and naming protocols between the communication processes, even if the communication processes are not active at the same time. One of the functions of the filesystem is to catalog and organize the data provided to it so that it can be retrieved later. To perform this function, the filesystem must manage storage resources. Typical storage resources appear in the filesystem in an object storage system, for example, as contiguous byte sequences, contiguous block sequences, or essentially as a key value store.
파일시스템은 일반적으로 컴퓨터 상의 오퍼레이팅 시스템의 일부이지만, 애플리케이션 내의 오퍼레이팅 시스템의 확장부로서 또는 클라이언트 파일시스템 프로토콜을 이용하여 네트워크 접속부를 통해 액세스된 순수 애플리케이션으로서 존재할 수 있다. 이들의 다양한 예는 본 기술에 공지되어 있다. 모든 경우, 파일시스템은 특정한 종류의 저장 자원, 예를 들어, 디스크를 사용하도록 설계되어 있고, 그 저장 자원과 관련된 제한을 가질 것이다. 이들 제한은 예를 들어 성능, 용량, 유사성(parallelism), 확장성, 물리적 위치 등에 관련될 수 있다. 파일시스템에 미리 기능성이 제공되지 않을 때 예를 들어 저장된 데이터의 조작이 암호화, 압축, 복제, 또는 컨텍스트 감지 처리(데이터 다형성(data polymorphism))를 포함하는 다른 변환을 적용하도록 하는 특징에 있어서, 파일시스템 자체 내에 추가의 제한이 존재한다. 본 기술에서, 컨텍스트 감지라는 것은 일반적으로 당신이 프로그램에서 무엇을 수행하는지에 따라 변경되는 프로그램 특징을 의미한다. 예를 들어, 컨텍스트 감지는 사용자가 사용하고 있는 특정 특징에 대한 문서화를 제공하는 것을 돕고 데이터의 컨텍스트 또는 컨텍스트 감지 처리는 당신이 어떻게 또는 어디에서 데이터를 사용하느냐에 따라 데이터가 상이하게 처리되도록 한다.The filesystem is generally part of the operating system on a computer, but may exist as an extension of the operating system within an application or as a pure application accessed through a network connection using a client filesystem protocol. Various examples of these are known in the art. In all cases, the filesystem is designed to use a particular kind of storage resource, for example a disk, and will have restrictions associated with that storage resource. These limitations may be related to, for example, performance, capacity, parallelism, scalability, physical location, and the like. When a file system is not provided with functionality in advance, for example, the manipulation of stored data allows the file to apply other transformations including encryption, compression, replication, or context sensitive processing (data polymorphism). There are additional restrictions within the system itself. In this technology, context sensing generally refers to program features that change depending on what you are doing in the program. For example, context sensing helps to provide documentation of the specific features that the user is using and context or context sensing processing of the data allows the data to be processed differently depending on how or where you use the data.
이들 제한의 일부를 처리하는 종래의 시스템 및 방법은 사용될 파일시스템에 대한 가상 저장 자원을 생성하는 가상 디바이스를 이용하는 것이었다. 파일시스템 내에 존재하고 저장 자원으로 전달되지 않는 이용가능한 컨텍스트의 부족 때문에, 이 어프로치는 데이터의 컨텍스트 감지 처리를 제공할 수 없고, 또한 파일시스템이 보는 데이터 대 실제 저장 자원, 예를 들어, 전체 데이터 저장 용량 상의 데이터의 1:1 맵핑으로 인한 제한을 제거할 수 없다.Conventional systems and methods to address some of these limitations have been to use virtual devices to create virtual storage resources for the filesystem to be used. Because of the lack of available contexts that exist within the filesystem and are not passed to storage resources, this approach cannot provide context sensitive processing of the data, and also provides a view of the data that the filesystem sees versus the actual storage resources, e.g., full data storage. Limitations due to 1: 1 mapping of data on capacity cannot be removed.
그러므로, 본 발명의 목적은 데이터 저장 시스템의 기능을 확장하는, 예를 들어, 데이터 저장 시스템의 기능을 확장하여 컨텍스트 감지 데이터 처리를 허용하는 신규한 시스템 및 방법을 제공하는 것이다.It is therefore an object of the present invention to provide a novel system and method that extends the functionality of a data storage system, for example by extending the functionality of a data storage system to allow context sensitive data processing.
발명의 개요Summary of the Invention
본 발명의 일 실시예에 따르면, 데이터 저장 시스템의 기능성을 확장하는 방법으로서, 상기 데이터 저장 시스템은 데이터 조직 수단 및 데이터 저장 자원을 포함하고, 상기 방법은 상기 데이터 저장 시스템의 데이터 저장 기능들을 상기 데이터 저장 시스템의 다른 기능들로부터 분리하는 단계 및 상기 데이터 저장 기능들의 적어도 일부를 인터셉팅 시스템으로 전송하는 단계를 포함하는 방법이 제공된다.According to an embodiment of the present invention, there is provided a method for extending the functionality of a data storage system, the data storage system comprising data organization means and data storage resources, wherein the method comprises data storage functions of the data storage system. A method is provided that includes separating from other functions of a storage system and transmitting at least some of the data storage functions to an intercepting system.
본 발명의 일 양태에 따르면, 상기 인터셉팅 시스템은 컴플리멘터리 저장 자원이다. 상기 데이터 조직 수단은 파일시스템, 키 값 저장소 및 데이터베이스를 포함하는 그룹으로부터 선택될 수 있다.According to one aspect of the invention, the intercepting system is a complementary storage resource. The data organization means may be selected from a group comprising a file system, a key value store and a database.
본 발명의 다른 양태에 따르면, 상기 분리하는 단계는 상기 데이터 조직 수단, 상기 데이터 저장 자원 및 인터셉팅 시스템과 통신하는 인터셉터 수단을 제공함으로써 수행되고, 상기 인터셉터 수단은 파일시스템 동작을 인터셉트하여 상기 동작의 기능이 상기 데이터 저장 자원에 의해 또는 상기 인터셉팅 시스템에 의해 처리되어야 하는지를 결정한다.According to another aspect of the invention, said separating is performed by providing interceptor means for communicating with said data organization means, said data storage resource, and an intercepting system, said interceptor means intercepting a filesystem operation to facilitate the operation of said operation. Determines whether a function should be handled by the data storage resource or by the intercepting system.
본 발명의 다른 양태에 따르면, 상기 인터셉터 수단은 상기 동작이 여전히 컨텍스트를 갖는 동안 및 상기 동작이 다르게 상기 데이터 저장 자원에 적합한 독립적인 동작들로 분해되기 전에 파일시스템 동작을 인터셉트한다.According to another aspect of the invention, the interceptor means intercepts a filesystem operation while the operation is still in context and before the operation is otherwise broken down into independent operations suitable for the data storage resource.
본 발명의 다른 양태에 따르면, 상기 데이터 저장 기능들의 적어도 다른 부분은 상기 데이터 저장 시스템에 유지된다. 본 발명의 다른 양태에 따르면, 상기 데이터 저장 기능들 모두는 상기 인터셉팅 시스템으로 전송된다.According to another aspect of the invention, at least another part of the data storage functions is maintained in the data storage system. According to another aspect of the invention, all of the data storage functions are transmitted to the intercepting system.
본 발명의 다른 양태에 따르면, 상기 데이터 저장 시스템은 파일시스템, 키 값 저장소, 오브젝트 저장소 및 네트워크 프로토콜을 포함하는 그룹으로부터 선택된다.According to another aspect of the invention, the data storage system is selected from the group comprising a file system, a key value store, an object store and a network protocol.
본 발명의 다른 양태에 따르면, 상기 데이터 저장 시스템은 다수의 외부 인터페이스 사이에서 공유된다.According to another aspect of the invention, the data storage system is shared between multiple external interfaces.
본 발명의 다른 양태에 따르면, 상기 인터셉터 수단은 오퍼레이팅 시스템 또는 파일 시스템의 설비와 협력하는 사용자 공간 애플리케이션 프로그램을 포함한다. 본 발명의 다른 양태에 따르면, 상기 인터셉터 수단은 네트워크 상에서 수행되는 파일시스템 프로토콜 프록시 애플리케이션을 포함한다. 본 발명의 다른 양태에 따르면, 상기 인터셉터 수단은 오퍼레이팅 시스템 커널에서 파일시스템 동작들을 인터셉트하도록 적응된 미니필터 드라이버를 포함한다.According to another aspect of the invention, the interceptor means comprises a user space application program that cooperates with facilities of the operating system or file system. According to another aspect of the invention, the interceptor means comprises a file system protocol proxy application running on a network. According to another aspect of the invention, said interceptor means comprises a minifilter driver adapted to intercept filesystem operations in an operating system kernel.
본 발명의 다른 양태에 따르면, 상기 인터셉팅 시스템은 하나 이상의 컴플리멘터리 저장 자원을 이용하여 그 기능들을 수행하고, 상기 컴플리멘터리 저장 자원들은 상기 저장 자원과는 독립적이다.According to another aspect of the invention, the intercepting system performs its functions using one or more complimentary storage resources, and the complementary storage resources are independent of the storage resource.
본 발명의 다른 양태에 따르면, 상기 인터셉팅 시스템은 상기 데이터 저장 시스템의 용량 확장을 구현한다. 본 발명의 다른 양태에 따르면, 상기 인터셉팅 시스템은 상기 저장 자원 상의 데이터의 하나 이상의 특성을 변경함으로써 상기 데이터 저장 시스템의 성능을 개선한다. 상기 하나 이상의 특성은 바람직하게 저장 포맷, 저장 위치 및 저장 순서를 포함하는 그룹으로부터 선택된다.According to another aspect of the invention, the intercepting system implements capacity expansion of the data storage system. According to another aspect of the invention, the intercepting system improves the performance of the data storage system by changing one or more characteristics of the data on the storage resource. The one or more properties are preferably selected from the group comprising storage format, storage location and storage order.
본 발명의 다른 양태에 따르면, 상기 방법은 상기 인터셉팅 시스템에 의해 중복 제거(de-duplication)를 수행하는 단계를 더 포함한다. 본 발명의 다른 양태에 따르면, 상기 방법은 상기 인터셉팅 시스템에 의해 데이터 다형성(polymorphism)을 수행하는 단계를 더 포함한다. 본 발명의 다른 양태에 따르면, 상기 방법은 상기 인터셉팅 시스템에 의해 데이터에 대한 독립적인 액세스 제어 메카니즘들을 구현하는 단계를 더 포함한다. 본 발명의 다른 양태에 따르면, 상기 방법은 상기 인터셉팅 시스템에 의해 데이터를 버져닝(versioning)하는 단계를 더 포함한다.According to another aspect of the invention, the method further comprises performing de-duplication by the intercepting system. According to another aspect of the invention, the method further comprises performing data polymorphism by the intercepting system. According to another aspect of the invention, the method further comprises implementing independent access control mechanisms for data by the intercepting system. According to another aspect of the invention, the method further comprises versioning data by the intercepting system.
본 발명의 다른 양태에 따르면, 상기 방법은 상기 데이터 저장 시스템의 단일 또는 멀티레벨 캐싱(caching) 중의 하나를 구현하는 단계를 더 포함하고, 상기 구현하는 단계는 상기 인터셉터 수단에 의해 수행된다. 본 발명의 다른 양태에 따르면, 상기 방법은 덜 사용하는 데이터를 원격 데이터 저장 시스템들로 밀고 더 많이 사용하는 데이터를 인접한 데이터 저장 시스템으로 당김으로써 집약성 최적화(locality optimization)를 구현하는 단계를 더 포함하고, 상기 구현하는 단계는 상기 인터셉터 수단에 의해 수행된다. 상기 원격 데이터 저장 시스템들은 물리적으로 원격이거나 액세스하는데 더 많은 시간을 필요로 하는 데이터 저장 시스템들을 포함한다.According to another aspect of the invention, the method further comprises implementing one of the single or multilevel caching of the data storage system, wherein the implementing is performed by the interceptor means. According to another aspect of the invention, the method further comprises implementing locality optimization by pushing less used data to remote data storage systems and pulling more used data to adjacent data storage systems; The implementing step is performed by the interceptor means. The remote data storage systems include data storage systems that are physically remote or require more time to access.
본 발명의 다른 양태에 따르면, 상기 방법은 다른 데이터 저장 시스템 상의 데이터를 참조함으로써 현재 데이터 저장 시스템에서 유효하지 않은 파일 이름이 유효해지도록 하는 이름 기반 가상화(name based virtualization)를 구현하는 단계를 더 포함하고, 상기 구현하는 단계는 상기 인터셉터 수단에 의해 수행된다.According to another aspect of the present invention, the method further comprises implementing name based virtualization to enable invalid file names in the current data storage system by referencing data on another data storage system. And the implementing step is performed by the interceptor means.
본 발명의 다른 양태에 따르면, 상기 방법은 데이터 백업 및 데이터 복제를 구현하는 단계를 더 포함하고, 상기 구현하는 단계는 상기 인터셉터 수단에 의해 수행된다.According to another aspect of the present invention, the method further comprises implementing data backup and data replication, wherein the implementing is performed by the interceptor means.
본 발명의 다른 양태에 따르면, 동일한 이름 하의 데이터가 서로 다른 데이터 저장 시스템들에 물리적으로 위치하도록 하는 것을 포함하는 데이터 가상화를 구현하는 단계를 더 포함하고, 상기 구현하는 단계는 상기 인터셉터 수단에 의해 수행된다.According to another aspect of the invention, there is further included a step of implementing data virtualization comprising causing data under the same name to be physically located in different data storage systems, wherein the step of implementing is performed by the interceptor means. do.
본 발명의 다른 양태에 따르면, 상기 방법은 상기 저장 자원에서보다 상기 인터셉션 시스템에서 선택된 데이터에 별개의 능력을 제공하는 단계를 더 포함하고, 상기 별개의 능력은 성능 특성, 중복 제거, 데이터 다형성, 독립적인 액세스 제어 메카니즘, 버져닝(versioning), 캐싱, 지역(locality), 복제 및 데이터 가상화를 포함하는 그룹으로부터 선택된다. 상기 선택된 데이터는 바람직하게, 이름, 타임스탬프, 사이즈, 이력 정보, 물리적 정보 및 컨텍스트 정보를 포함하는 그룹으로부터 선택된 하나 이상의 메타데이터 패턴 매칭을 채용하는 선택 메카니즘을 이용하여 식별된다.According to another aspect of the present invention, the method further comprises providing separate capabilities to selected data in the interception system than at the storage resource, wherein the separate capabilities include performance characteristics, deduplication, data polymorphism, It is selected from a group that includes independent access control mechanisms, versioning, caching, locality, replication, and data virtualization. The selected data is preferably identified using a selection mechanism that employs one or more metadata pattern matching selected from the group comprising name, time stamp, size, history information, physical information and context information.
본 발명의 다른 실시예에 따르면, 데이터 저장 시스템의 기능성을 확장하는 시스템으로서, 상기 데이터 저장 시스템은 데이터 조직 수단 및 데이터 저장 자원을 포함하고, 상기 시스템은 상기 데이터 저장 시스템의 데이터 저장 기능들을 상기 데이터 저장 시스템의 다른 기능들로부터 분리하는 분리 수단 및 상기 데이터 저장 기능들의 적어도 일부를 인터셉팅 시스템으로 전송하는 수단을 포함하는 시스템이 제공된다.According to another embodiment of the present invention, there is provided a system for extending the functionality of a data storage system, wherein the data storage system includes data organization means and data storage resources, and the system includes data storage functions of the data storage system. A system is provided that includes separating means for separating from other functions of the storage system and means for transmitting at least some of the data storage functions to the intercepting system.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 컴플리멘터리 저장 자원일 수 있다.According to another aspect of this embodiment, the intercepting system may be a complementary storage resource.
본 실시예의 다른 양태에 따르면, 상기 분리 수단은 상기 데이터 조직 수단, 상기 데이터 저장 자원 및 상기 인터셉팅 시스템과 통신하는 인터셉터를 포함하고, 상기 인터셉터는 파일시스템 동작을 인터셉트하여 상기 동작의 기능이 상기 데이터 저장 자원에 의해 또는 상기 인터셉팅 시스템에 의해 처리되어야 하는지를 결정하도록 구성된다.According to another aspect of this embodiment, said separating means comprises an interceptor in communication with said data organization means, said data storage resource and said intercepting system, said interceptor intercepting a file system operation so that said function of said operation is performed by said data. And determine whether to be processed by a storage resource or by the intercepting system.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 상기 동작이 여전히 컨텍스트를 갖는 동안 및 상기 동작이 다르게 상기 데이터 저장 자원에 적합한 독립적인 동작들로 분해되기 전에 파일시스템 동작을 인터셉트한다.According to another aspect of this embodiment, the interceptor intercepts a filesystem operation while the operation is still in context and before the operation is otherwise broken down into independent operations suitable for the data storage resource.
본 실시예의 다른 양태에 따르면, 상기 데이터 저장 기능들의 적어도 다른 부분은 상기 데이터 저장 시스템에 유지된다. 대안으로, 상기 데이터 저장 기능 모두는 상기 인터셉팅 시스템으로 전송된다.According to another aspect of this embodiment, at least another part of the data storage functions is maintained in the data storage system. Alternatively, all of the data storage functions are sent to the intercepting system.
본 실시예의 다른 양태에 따르면, 상기 데이터 저장 시스템은 파일시스템, 키 값 저장소, 오브젝트 저장소 및 네트워크 프로토콜을 포함하는 그룹으로부터 선택다.According to another aspect of this embodiment, the data storage system is selected from the group comprising a file system, a key value store, an object store and a network protocol.
본 실시예의 다른 양태에 따르면, 상기 데이터 저장 시스템은 다수의 외부 인터페이스 사이에서 공유된다.According to another aspect of this embodiment, the data storage system is shared between multiple external interfaces.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 오퍼레이팅 시스템 또는 파일 시스템의 설비와 협력하는 사용자 공간 애플리케이션 프로그램을 포함한다.According to another aspect of this embodiment, the interceptor includes a user space application program that cooperates with facilities of the operating system or file system.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 네트워크 상에서 수행되는 파일시스템 프로토콜 프록시 애플리케이션을 포함한다.According to another aspect of this embodiment, the interceptor comprises a file system protocol proxy application running on a network.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 오퍼레이팅 시스템 커널에서 파일시스템 동작들을 인터셉트하도록 적응된 미니필터 드라이버를 포함한다.According to another aspect of this embodiment, the interceptor comprises a minifilter driver adapted to intercept filesystem operations in the operating system kernel.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 하나 이상의 컴플리멘터리 저장 자원을 이용하여 그 기능들을 수행하고, 상기 컴플리멘터리 저장 자원들은 상기 저장 자원과는 독립적이다.According to another aspect of this embodiment, the intercepting system performs its functions using one or more complimentary storage resources, and the complementary storage resources are independent of the storage resource.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 상기 데이터 저장 시스템의 용량 확장을 구현한다.According to another aspect of this embodiment, the intercepting system implements capacity expansion of the data storage system.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 상기 저장 자원 상의 데이터의 하나 이상의 특성을 변경함으로써 상기 데이터 저장 시스템의 성능을 개선한다.According to another aspect of this embodiment, the intercepting system improves the performance of the data storage system by changing one or more characteristics of the data on the storage resource.
본 실시예의 다른 양태에 따르면, 상기 하나 이상의 특성은 저장 포맷, 저장 위치 및 저장 순서를 포함하는 그룹으로부터 선택된다.According to another aspect of this embodiment, said one or more characteristics are selected from the group comprising a storage format, a storage location and a storage order.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 데이터 중복 제거(de-duplication)를 수행하도록 적응된다.According to another aspect of this embodiment, the intercepting system is adapted to perform data de-duplication.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 데이터 다형성(polymorphism)을 수행하도록 적응된다.According to another aspect of this embodiment, the intercepting system is adapted to perform data polymorphism.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 데이터에 대한 독립적인 액세스 제어 메카니즘들을 구현하도록 적응된다.According to another aspect of this embodiment, the intercepting system is adapted to implement independent access control mechanisms for data.
본 실시예의 다른 양태에 따르면, 상기 인터셉팅 시스템은 데이터 버져닝(versioning)을 수행하도록 적응된다.According to another aspect of this embodiment, the intercepting system is adapted to perform data versioning.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 상기 데이터 저장 시스템의 단일 또는 멀티레벨 캐싱(caching) 중의 하나를 수행하도록 적응된다.According to another aspect of this embodiment, the interceptor is adapted to perform one of single or multilevel caching of the data storage system.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 덜 사용하는 데이터를 원격 데이터 저장 시스템들로 밀고 더 많이 사용하는 데이터를 인접한 데이터 저장 시스템으로 당김으로써 집약성 최적화(locality optimization)를 수행하도록 적응된다.According to another aspect of this embodiment, the interceptor is adapted to perform locality optimization by pushing less used data to remote data storage systems and pulling more used data to adjacent data storage systems.
본 실시예의 다른 양태에 따르면, 상기 원격 데이터 저장 시스템들은 물리적으로 원격이거나 액세스하는데 더 많은 시간을 필요로 하는 데이터 저장 시스템들을 포함한다.According to another aspect of this embodiment, the remote data storage systems include data storage systems that are physically remote or require more time to access.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 다른 데이터 저장 시스템들 상의 데이터를 참조함으로써 현재 데이터 저장 시스템에서 유효하지 않은 파일 이름이 유효해지도록 하는 이름 기반 가상화(name based virtualization)를 수행하도록 적응된다.According to another aspect of this embodiment, the interceptor is adapted to perform name based virtualization which causes invalid file names in the current data storage system to be valid by referring to data on other data storage systems.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 데이터 백업 및 데이터 복제 중의 하나를 수행하도록 적응된다.According to another aspect of this embodiment, the interceptor is adapted to perform one of data backup and data replication.
본 실시예의 다른 양태에 따르면, 상기 인터셉터는 동일한 이름 하의 데이터가 서로 다른 데이터 저장 시스템들에 물리적으로 위치하도록 하는 것을 포함하는 데이터 가상화를 수행하도록 적응된다.According to another aspect of this embodiment, the interceptor is adapted to perform data virtualization comprising allowing data under the same name to be physically located in different data storage systems.
본 실시예의 다른 양태에 따르면, 상기 인터셉션 시스템은 성능 개선 특정, 데이터 중복 제거, 데이터 다형성, 독립적인 액세스 제어 메카니즘, 버져닝(versioning), 캐싱, 집약성(locality), 복제 및 데이터 가상화를 포함하는 그룹으로부터 선택되는 하나 이상을 수행하도록 적응된다.According to another aspect of this embodiment, the interception system includes performance improvement specific, data deduplication, data polymorphism, independent access control mechanisms, versioning, caching, locality, replication, and data virtualization. Adapted to perform one or more selected from the group.
본 실시예의 다른 양태에 따르면, 상기 데이터 조직 수단은 파일시스템, 키 값 저장소 및 데이터베이스를 포함하는 그룹으로부터 선택된다.According to another aspect of this embodiment, the data organization means is selected from the group comprising a file system, a key value store and a database.
실시예는 첨부된 도면을 참조하여 예로서 설명한다.
도 1은 본 발명에 따른 시스템의 상위 레벨 아키텍쳐를 나타내는 도면.
도 2는 본 발명이 사용 및/또는 구현될 수 있는 컴퓨터 시스템을 나타내는 도면.
도 3은 본 발명에 따른 방법의 실시예를 나타내는 도면.Embodiments are described by way of example with reference to the accompanying drawings.
1 illustrates a high level architecture of a system according to the present invention.
2 illustrates a computer system in which the present invention may be used and / or implemented.
3 shows an embodiment of a method according to the invention.
본 발명은, 제한되지 않지만, 가상 저장 자원을 이용하여 영향을 받을 수 있는 것을 포함하는 모든 데이터 관련 제한에 영향을 주는 신규한 시스템 및 방법을 제공한다. 본 발명은 프라이머리 인터페이스로서 실제 저장 자원 위에 상위 레벨 추상화를 제공하는 파일시스템 이외의 데이터 저장 시스템, 예를 들어, 데이터베이스 및 특정 오브젝트 데이터베이스, 키 값 저장소, 소정의 네트워크 프로토콜 및 소정의 공유 데이터 시스템에 이 기능성을 제공할 수 있다.The present invention provides novel systems and methods that affect all data related limitations, including but not limited to those that can be impacted using virtual storage resources. The present invention is directed to data storage systems other than file systems that provide a high level abstraction over actual storage resources as primary interfaces, such as databases and specific object databases, key value stores, certain network protocols and certain shared data systems. This functionality can be provided.
또한, 본 발명은 파일시스템의 협력 또는 변경없이 데이터 저장 시스템의 전통적인 모든 제한이 변경되도록 할 수 있다. 따라서, 본 발명은 전체 정비 또는 새로운 파일시스템의 구현을 필요로 하지 않고, 여기에 기재된 이점 및 확장된 기능이 새로운 파일시스템이 개발될 필요성을 가지고 또는 그러한 필요성 없이 기존 시스템 상에서, 이전 시스템과 새로운 시스템 간의 인터페이스에서, 및 개발중인 새로운 시스템에서 구현되도록 한다. 광범위하게, 본 발명은 동작이 저장 자원에 적합한 동작으로 분해되기 전에 컨텍스트 정보를 여전히 포함하면서 파일시스템 동작을 선택적으로 인터셉트할 서 있는 파일시스템에 부착될 인터셉팅(intercepting) 시스템을 제공한다. 즉, 파일시스템은 컴퓨터의 오퍼레이팅 시스템에 의해 제공되는 컨텍스트 동작 및 그를 수행하는 명령을 포함한다. 파일시스템이 저장 자원과 상호작용할 때, 파일시스템-저장 자원 상호작용이 데이터의 검색, 저장 및 목록 만들기(catalogue)에만 관여하기 때문에, 이들 컨텍스트 동작 및 명령은 손실된다. 본 발명에 따른 인터셉팅 시스템은 인터셉팅 시스템의 동작이 파일시스템에 투명한 인터셉션 지점에서 파일시스템이 필요로 하는 기능성을 제공한다. 따라서, 본 발명은 다른 기능(파일 네이밍, 록킹, 공유, 보안 등)으로부터 데이터 저장 시스템의 저장 책임을 분리하고 선택적으로 개별 컴포넌트에 의해 실제 저장 임무가 수행되도록 함으로써 데이터 저장 자원 및 시스템의 기능성을 확장하는 방법 및 시스템을 제공한다.In addition, the present invention allows all traditional limitations of the data storage system to be altered without cooperation or modification of the file system. Thus, the present invention does not require a complete maintenance or implementation of a new file system, and the advantages and extended functions described herein require the development of a new file system, or on an existing system with or without the need for a new file system. To be implemented at the interface between and between new systems under development. Broadly, the present invention provides an intercepting system to be attached to a standing filesystem to selectively intercept filesystem operations while still containing contextual information before the operations are broken down into operations suitable for storage resources. That is, the file system includes the context operations provided by the computer's operating system and the instructions to perform them. When the file system interacts with storage resources, these context operations and commands are lost because the file system-storage resource interactions are only involved in retrieving, storing, and cataloging data. The intercepting system according to the present invention provides the functionality required by the file system at an interception point where the operation of the intercepting system is transparent to the file system. Thus, the present invention extends the functionality of the data storage resources and system by separating the storage responsibilities of the data storage system from other functions (file naming, locking, sharing, security, etc.) and optionally allowing actual storage tasks to be performed by individual components. It provides a method and system.
도 1을 참조하면, 데이터 저장 시스템(100), 인터셉터(200) 및 인터셉팅 시스템(300)이 도시된 본 발명의 일 실시예가 도시된다. 종래의 데이터 저장 시스템 기능들의 다양한 분배가 데이터 저장 시스템 자체로부터 분리되고 데이터 저장 시스템 또는 인터셉팅 시스템에 의해 수행되도록 나뉘어 지는 바람직한 실시예의 세부사항이 이하에 기재된다. 데이터 저장 시스템(100) 및 인터셉팅 시스템(300) 간의 기능성의 신규한 분리 및 후속의 분배는 본 기술에서, 특히, 비협력 환경에서 데이터 저장 시스템(100)과 인터셉팅 시스템(300) 간의 기능성의 분배를 제공하는 것에 대하여 신규한 것으로 믿어진다. 그러나, 본 발명의 바람직한 실시예는 기존의 비협력 데이터 저장 시스템에 대한 추가 메카니즘에 관한 것이지만, 이는 또한 협력 데이터 저장 시스템으로의 확장성을 제공하여 확장되고 향상된 기능성을 제공하는 구조적 특징일 수 있으며, 그 예는 이하에서 더 상세히 설명한다.Referring to FIG. 1, one embodiment of the present invention is illustrated with a
도 3을 참조하면, 데이터 저장 시스템의 데이터 저장 기능을 데이터 저장 시스템의 다른 기능으로부터 분리하는 단계(310), 파일시스템 동작을 인터셉트하여 동작의 기능이 데이터 저장 자원에 의해 처리되어야 하는지 인터셉팅 시스템에 의해 처리되어야 하는지를 결정하는 단계(315) 및 데이터 저장 기능의 적어도 일부를 인터셉팅 시스템으로 전송하는 단계(320)를 포함하는, 데이터 저장 시스템의 기능성을 확장하는 방법이 제공된다. 대안으로, 인터셉트된 데이터 저장 기능은 데이터 저장 자원으로 계속된다(325).Referring to FIG. 3, a
본 발명은 일반적으로 컴퓨터 시스템의 컨텍스트 내에서 동작하고 일반적인 컴퓨터 시스템과 연관된 데이터 저장 능력의 확장을 제공하는 기능을 하며, 일반적인 컴퓨터 시스템의 예는 도 2에 도시된다. 도시된 바와 같이, 컴퓨터 시스템(20)은 중앙 처리 장치(CPU)(24), 랜덤 액세스 메모리(RAM)(28), 입출력(I/O) 인터페이스(32), 네트워크 인터페이스(36), 비휘발성 저장장치(40), 및 CPU(24)가 다른 컴포넌트와 통신하도록 하는 로컬 버스(44)를 포함하는 다수의 물리적 및 논리적 컴포넌트를 갖는다. CPU(24)는 오퍼레이팅 시스템 및 다수의 소프트웨어 시스템을 실행한다. RAM(28)은 CPU(24)에 상대적으로 반응하는 휘발성 저장 장치를 제공한다. I/O 인터페이스(32)는 키보드, 마우스 등의 하나 이상의 디바이스로부터 입력이 수신되도록 하고 디스플레이 및/또는 스피커 등의 디바이스로 정보를 출력한다. 네트워크 인터페이스(36)는 다른 시스템과의 통신을 허용한다. 비휘발성 저장장치(40)는 오퍼레이팅 시스템 및 프로그램을 저장한다. 컴퓨터 시스템(20)의 동작시, 오퍼레이팅 시스템, 프로그램 및 데이터가 비휘발성 저장장치(40)로부터 검색되고 RAM(28)에 배치되어 실행을 용이하게 할 수 있다.The present invention generally functions within the context of a computer system and provides an extension of the data storage capabilities associated with a general computer system, an example of a typical computer system being shown in FIG. As shown,
데이터 저장 시스템(100)은 일반적으로 본 기술에 공지된 것이며, 본 발명의 목적 상, 임의의 머신, 디바이스 또는 장치이고, 주어진 식별자(파일명 등)를 이용하여 데이터를 저장할 수 있고, 나중에 그 식별자에 의해 요구 시에 저장된 데이터의 적어도 일부를 검색할 수 있다. 데이터 저장 시스템(100)은, 데이터 조직 수단(105)을 포함하고, 동작적으로 독립적이지만 선택적으로 물리적으로 내장된, 저장 자원(110)으로서 지칭되는 머신 또는 모듈(도 2에서 비휘발성 저장장치(40)로서 도시됨)을 이용하여 저장 자원의 특성에 따라 원시적인 형태로 데이터를 저장하고, 이곳으로부터 데이터 저장 시스템은 나중에 저장된 데이터를 검색할 수 있다. 데이터 저장 시스템(100)은 다수의 외부 인터페이스 사이에서 공유될 수 있다.
데이터 조직 수단(105)의 대표적인 예는 파일시스템, 키 값 저장소, 데이터베이스, 및 웹 캐시 및 페이지 파일 등의 이들의 상부에 계층화된 다른 머신, 및 그 조합을 포함한다. 저장 자원(110)의 대표적인 예는 물리적 디스크, RAM 등의 메모리, RAID 어레이, 페이퍼 테이프, 문서(document) 등이다. 바람직한 실시예의 대표적인 예에서, 저장 시스템(100)은 윈도우즈™ NTFS 파일시스템일 수 있고 저장 자원은 하드 디스크 드라이브일 수 있다.Representative examples of data organization means 105 include filesystems, key value stores, databases, and other machines layered on top of them, such as web caches and page files, and combinations thereof. Representative examples of
인터셉터 수단(200)은 파일시스템 동작 등의 데이터 동작을 인터셉트하고 처리하는 시스템이다. 본 발명에 따르면, 인터셉터 수단(200)은, 가상적으로 모든 저장 자원에 대해 그러하듯이, 동작이 여전히 이용가능한 컨텍스트를 갖지만 동작이 저장 자원을 위한 적절한 컨텍스트 프리(free) 및 더 특정한 동작들로 분리되기 전에 데이터 동작을 인터셉트한다. 컨텍스트는 예를 들어 데이터 요청의 소스, 요청될 데이터의 세부사항, 데이터가 무엇을 위해 사용되는지에 대한 세부사항 및 현재의 데이터 동작의 지식을 필요로 하는 다른 정보를 포함하는 애플리케이션 정보일 수 있다.The interceptor means 200 is a system for intercepting and processing data operations such as file system operations. According to the present invention, the interceptor means 200 separates the operation into appropriate context-free and more specific operations for the storage resource although the operation still has the context available, as is virtually the case for all storage resources. Intercept the data operation before it is done. The context may be, for example, application information including the source of the data request, details of the data to be requested, details of what the data is used for, and other information that requires knowledge of the current data operation.
상술한 대표적인 예에 따르면, 인터셉터 수단(200)은 윈도우즈™ 오퍼레이팅 시스템 커널 내의 적절한 레벨에서 파일시스템 동작을 인터셉트하도록 설계되고 다르게 배열된 미니필터(minifilter) 또는 레가시 필터(legacy filter) 드라이버이다. 이러한 드라이버는 독립적으로 구현될 수 있고 또는 상업적으로 입수할 수 있다. 다른 예에서, 인터셉션 메카니즘은 퓨즈(FUSE)(사용자 공간 내의 파일시스템)와 같은 애플리케이션 레벨 파일시스템 제공자, 네트워크 인터셉트를 위한 스트림(STREAMS) 드라이버 또는 물리적 투명 프록시(proxy) 머신을 이용하여 다른 오퍼레이팅 환경으로 구축된 설비, 예를 들어, 제한되지 않지만, 파일시스템 스택에 의해 제공될 수 있다. 인터셉터 수단은 또한 여기에 기재된 기능성을 포함하는 커스텀 설계 소프트웨어 모듈일 수 있다. 인터셉터와 혼용될 수 있는 인터셉터 수단(200)은 또한 파일시스템 프로토콜 프록시 애플리케이션일 수 있다.According to the representative example described above, the interceptor means 200 is a minifilter or legacy filter driver that is designed and otherwise arranged to intercept filesystem operation at an appropriate level within the Windows ™ operating system kernel. Such drivers can be implemented independently or can be obtained commercially. In another example, the interception mechanism uses another application environment using an application level filesystem provider, such as FUSE (filesystem in user space), a stream (STREAMS) driver for network interception, or a physical transparent proxy machine. As an example, a built-in facility may be provided by, but not limited to, a filesystem stack. The interceptor means can also be a custom design software module that includes the functionality described herein. Interceptor means 200, which may be mixed with interceptors, may also be a filesystem protocol proxy application.
인터셉터 수단(200)은 데이터 저장 시스템(100)과 인터셉팅 시스템(300) 간의 결합을 관리한다. 인터셉팅 시스템(300)은 데이터 저장 시스템의 소정의 동작에 관심을 갖는다. 대표적인 예에서, 이것은 데이터를 다른 저장 장치로 재지향(redirect)시키기 위한 모든 데이터 입출력일 수 있다. 인터셉팅 시스템(300)은, 전통적으로 행해지는 것처럼, 데이터 저장 시스템(100)의 하위층으로 전달하는 대신, 모든 데이터 입출력 동작을 측방으로 인터셉팅 시스템(300)으로 전달하는 인터셉팅 메카니즘을 구성한다. Interceptor means 200 manages the coupling between
인터셉트된 동작의 수신시, 인터셉팅 시스템(300)은 다수의 옵션을 갖는다: (a) 인터셉팅 시스템(300)은 이 동작을 처리하지 않고 인터셉터 수단(200)이 인터셉트가 없는 것처럼 계속 움직이도록 명령하여, 인터셉터 수단이 데이터 저장 시스템(100)의 하위 레벨로 그 동작을 전달하도록 하는 것을 결정할 수 있거나, (b) 인터셉팅 시스템(300)이 데이터 저장 시스템(100)의 하위 레벨로 그 동작을 전달하기 전에 동작을 변경할 필요가 있다는 것을 결정할 수 있거나, (c) 인터셉팅 시스템(300)이 동작 자체를 처리하고 그에 대한 책임을 인수하는 것으로 결정할 수 있고, 이 경우, 인터셉션 메카니즘(200)은 모든 에러 처리를 포함하여 그 동작에 대하여 적절하게 데이터 저장 시스템의 상위 및 하위 레벨에 반응해야 한다.Upon receiving an intercepted operation, the intercepting
인터셉팅 시스템(300)은 컴플리멘터리(complimentary) 저장 자원, 멀티미디어 익스텐더(multimedia extender), 멀티미디어 서버, 홈 서버, 애플리케이션 특정 제어기 또는 저장 자원에 의해 일반적으로 수행되는 것을 포함하는 다양한 태스크를 수행할 수 있는 임의의 유사한 시스템 등의 임의의 수의 하드웨어 디바이스일 수 있다.Intercepting
본 발명에 따르면, 인터셉팅 시스템이 투명하게, 즉, 데이터 저장 시스템에 의해 식별가능하지 않은 방식으로 인터셉트된 동작에 대한 책임을 질 수 있는 인터셉터 수단(200)이 제공된다. 이것은 데이터 저장 자원이 파일시스템으로부터 분리될 때 기존의 파일시스템이 새로운 기능성으로 확장되도록 한다. 반대로, 바이러스 체커, 암호화 심(encryption shims) 등의 임의의 데이터 인터셉션 기능을 수행하는 종래의 중개 프로그램은 본래의 데이터 저장 시스템을 이용하여 자신의 기능성을 제공한다.According to the present invention, an interceptor means 200 is provided in which the intercepting system can be responsible for operations that are intercepted in a transparent, ie non-identifiable manner by the data storage system. This allows existing filesystems to be extended with new functionality when data storage resources are separated from the filesystems. In contrast, conventional intermediary programs that perform arbitrary data interception functions, such as virus checkers, encryption shims, and the like, provide their functionality using native data storage systems.
본 발명은 또한 데이터 저장 시스템의 본래의 시멘틱(semantics)을 유지하면서 데이터 저장 시스템으로부터 저장된 데이터 또는 메타데이터의 위치를 분리하는 기존의 데이터 저장 시스템을 제공한다. 따라서, 데이터 저장 시스템은 임의의 기존 데이터 또는 이미 저장된 메타데이터에 대한 책임이 여전히 있지만, 인터셉팅 시스템은 기존의 데이터 저장 시스템의 외부 시맨틱이 변경되지 않는 한 자신의 폴리시에 따라 임의의 새로운 또는 변경된 데이터 또는 메타데이터에 대한 책임을 인수할 수 있다.The present invention also provides an existing data storage system that separates the location of stored data or metadata from the data storage system while maintaining the original semantics of the data storage system. Thus, while the data storage system is still responsible for any existing data or metadata already stored, the intercepting system may not be responsible for any new or changed data according to its policy unless the external semantics of the existing data storage system are changed. Alternatively, you can take responsibility for the metadata.
기재된 대표적인 예에서, 본래의 파일시스템은 모든 메타데이터에 대한 책임이 여전히 있고, 인터셉팅 시스템은 일부 또는 전부의 데이터에 대한 책임을 인수한다. 특히, 본 발명은 디렉토리, MFT(master file table) 및 각 MFT 엔트리의 콘텐츠를 포함하는 NTFS 파일시스템 메타데이터가 정상적으로 발생한 것처럼 파일시스템의 저장 자원 상에 유지되도록 하지만, 데이터 자체는 개별적으로 조작되고 본래의 데이터 저장 시스템의 구성과 무관하게 저장될 수 있다.In the representative example described, the original filesystem is still responsible for all metadata, and the intercepting system takes over responsibility for some or all of the data. In particular, the present invention allows NTFS filesystem metadata, including directories, master file tables (MFTs) and the contents of each MFT entry, to be maintained on the filesystem's storage resources as if normally occurring, but the data itself was manipulated separately and inherently. Can be stored regardless of the configuration of the data storage system.
본 발명은 레가시에 대한 방법을 제공하는 것을 포함하는 다수의 이점, 복제, 중복 제거(de-duplication), 캐싱(caching), 풀링(pooling)과 같은 현대의 파일시스템 특징을 지원하는 변경되지 않은 NTFS 구현, 뿐만 아니라 (RAID 레벨에서) 저장 자원에 의해 통상 제공되는 특징 및 새로운 고유 특징을 제공한다. 본 발명은 기존의 애플리케이션과 호환가능한 방식으로 이것을 가능하게 하는데, 그 이유는 변경되지 않은 시맨틱은 파일시스템의 외부 애플리케이션 인터페이스에 존재하기 때문이다. 즉, 파일시스템은 변경되지 않은 채로 존재하고 변경없이 오퍼레이팅 시스템에 의해 이용가능하다.The present invention provides a number of advantages including providing a method for legacy, unaltered NTFS that supports modern file system features such as replication, de-duplication, caching, and pooling. Implementations, as well as features typically provided by storage resources (at the RAID level) and new unique features. The present invention makes this possible in a manner compatible with existing applications, since unchanged semantics exist in the external application interface of the filesystem. In other words, the filesystem remains unchanged and is available to the operating system without modification.
본 발명에 의해 해소된 바와 같이 유사한 문제점을 해소하려고 시도한 종래의 예는 마이크로소프트™ 윈도우즈 홈 서버 프로젝트(WHS), 홈 사용자를 위해 의도된 간단한 확장성을 갖는 데이터 저장 시스템이다. WHS는 초기에 파일 기반 패러다임을 이용하여 윈도우즈 시스템 상에 NTFS를 확장한 드라이브 익스텐더라 불리우는 기능을 포함시켰고, 즉, 전체 파일이 상이한 목적지 NTFS 파일시스템 상에 배치될 수 있고, 기준(톰스톤(tombstone)은 본래의 NTFS 파일시스템 상에 남아 있다. 이 어프로치는, 애플리케이션(본래의 파일과 다르게 행동한 기준)에 완전히 투명하지 않았고 드라이브 익스텐더가 제공하려고 시도했던 기능성이 초기에 가상 블록 저장 자원 모델을 이용하여, 즉, 파일시스템에게 저장 자원으로서 나타남으로써, 재구현되었다는 사실 때문에 실패하였다. 그 후, 기능성은 WHS로부터 완전히 제거되었다. 본래의 드라이브 익스텐더 어프로치의 다른 예는 본 기술에서, 예를 들어, 계층적 저장 관리 시스템에서 명백하다. 반면에, 본 발명은 파일시스템 시맨틱 및 메타데이터가 본래의 저장 자원과 함께 남아 있도록 하고, 필요에 따라, 데이터 자체가 본래의 데이터 저장 시스템의 구성의 제한없이 독립적으로 조작되고 저장된다.A conventional example of attempting to solve a similar problem as solved by the present invention is the Microsoft ™ Windows Home Server Project (WHS), a simple scalable data storage system intended for home users. WHS initially included a feature called drive extenders that extend NTFS on Windows systems using a file-based paradigm, that is, entire files can be placed on different destination NTFS filesystems, and the baseline (tombstone) ) Remains on the original NTFS filesystem, and this approach was not completely transparent to the application (the criteria that behaved differently from the original file) and the functionality that the drive extender attempted to provide initially used the virtual block storage resource model. Failed, due to the fact that it has been reimplemented by appearing to the filesystem as a storage resource, and then functionality has been completely removed from the WHS Another example of the original drive extender approach is described in the art, e. On the other hand, the present invention is evident in file system management. Ticks and metadata and to remain with the original storage resources, if necessary, the data itself is independently operated in any number of configurations of the original data storage system storage.
상기 파라그래프의 예는 디스크 드라이브 저장 시스템에 대하여 제공되었지만, 본 발명의 어프로치는 또한 비협력 파일시스템을 키 값 저장소, 오브젝트 저장소, 다양한 종류의 캐시, 데이터베이스 등의 다른 비협력 데이터 저장 시스템으로 확장한 것에 대하여 사용될 수 있다. 본래의 데이터 저장 시스템의 설계와 비교하여 별도로, 상이하게 또는 심지어 추가의 처리와 함께 데이터를 위치시키는 능력이 주어지면, 기존의 데이터 저장 시스템을 이용하여 애플리케이션에 많은 새로운 특징 및 해당 기능성을 제공할 수 있다. 출원인은, 종래 기술이 데이터 저장 시스템의 다른 기능으로부터 데이터 저장 책임을 분리하여 파일시스템 및 데이터 저장 시스템 자체의 제한을 넘어 데이터 저장 시스템의 기능성을 확장하는 방법 및 시스템을 개시하지 않는다고 믿는다.Although examples of such paragraphs have been provided for disk drive storage systems, the approach of the present invention also extends non-cooperative file systems to other non-cooperative data storage systems such as key value stores, object stores, various types of caches, databases, and the like. Can be used for Given the ability to locate data separately, differently, or even with additional processing compared to the design of the original data storage system, existing data storage systems can be used to provide many new features and corresponding functionality to applications. have. Applicants believe that the prior art does not disclose methods and systems that separate data storage responsibilities from other functions of the data storage system to extend the functionality of the data storage system beyond the limitations of the file system and the data storage system itself.
본 발명에 따른 시스템 및 방법을 포함하는 이점 중의 하나는 성능을 증가시킬 수 있다는 것이다. 재지향된 데이터는 본래의 데이터 저장 시스템이 사용하는 것보다 더 빠른 저장 자원에 저장될 수 있거나, 데이터의 더 빠른 판독 및/또는 기입을 유도하는 방식으로 저장되거나, 양 메카니즘이 동시에 사용될 수 있다. 예를 들어, 저장 시스템의 메타데이터는 본래의 저장 자원 상에서 유지될 수 있지만, 데이터 자체는 더 빠른 저장 자원 상에 저장된다. 이 예에서, 인터셉터 수단은 파일시스템이 본래의 저장 자원으로부터 메타데이터를 검색하고 더 빠른 저장 자원으로부터 데이터를 검색하도록 지시한다. 정보 및 데이터가 오퍼레이팅 시스템에 의해 처리하기 위하여 파일시스템으로 전달되면, 데이터는 본래의 저장 자원으로부터 직접 검색었지만 더 빨리 검색된 것으로 나타난다. 성능은 또한 예를 들어 더 빠를 수 있고 개선된 다른 특성을 갖는 세컨더리 저장 자원 상에 데이터를 캐싱함으로써 개선될 수 있다.One of the advantages of including the systems and methods according to the present invention is that it can increase performance. The redirected data may be stored in a faster storage resource than the original data storage system uses, or may be stored in a manner that leads to faster reading and / or writing of the data, or both mechanisms may be used simultaneously. For example, the storage system's metadata may be maintained on the original storage resource, but the data itself is stored on the faster storage resource. In this example, the interceptor means instructs the filesystem to retrieve the metadata from the original storage resource and retrieve the data from the faster storage resource. When information and data are passed to the filesystem for processing by the operating system, the data appears to be retrieved directly from the original storage resource but retrieved faster. Performance may also be improved, for example, by caching data on secondary storage resources that may be faster and have improved other characteristics.
본 발명의 일 실시예에서, 재지향된 데이터는 더 빠른 저장 자원 상에서 희소 파일에 저장된다. 희소 파일은 데이터가 저장 자원 상에 할당되지 않지만 가상으로 표시되는 홀을 포함하는 파일이다. 파일 캐싱 시스템에서의 문제점 중의 하나는 통상 실제 데이터를 저장하는 데이터 패킹(packing) 모듈의 생성을 필요하게 하면서 공간 효율 포맷으로 캐싱된 파일을 나타낸다는 점, 및 내부 파일 위치와 그 위치에 대한 데이터가 저장된 곳 사이에서 이동한다는 점이다. 필요에 따라 서브파일 레벨에서 데이터를 캐싱하기 위하여, 본래의 파일로부터 아직 검색되지 않은 데이터는 물리적이지 않고 가상적으로 표현되어야 한다. 희소 파일을 이용하는 것은 희소 파일을 지원하는 임의의 파일시스템이 이 기능성을 제공하도록 하고, 본 발명 내에서 이 기능성을 개발하고 제공해야 함을 기억한다. 출원인은 희소 파일을 이용하여 실제 파일의 데이터를 캐싱하는 것은 신규한 것이라 믿으며, 당업자는 기존의 능력을 이용하여 서브파일 캐시의 이 내부 기능을 제공하는 능력을 인정할 것이다.In one embodiment of the invention, the redirected data is stored in a sparse file on a faster storage resource. A sparse file is a file that contains holes in which data is not allocated on storage resources but is represented virtually. One of the problems with file caching systems is that they typically represent files cached in a space efficient format, requiring the creation of a data packing module that stores the actual data, and that the internal file location and the data for that location Is to move from one stored location to another. In order to cache data at the subfile level as needed, data that has not yet been retrieved from the original file must be represented virtually, not physically. Remember that using sparse files allows any filesystem that supports sparse files to provide this functionality, and to develop and provide this functionality within the present invention. Applicants believe that caching data in real files using sparse files is novel and those skilled in the art will recognize the ability to provide this internal functionality of the subfile cache using existing capabilities.
본 발명은 또한 데이터 압축 컨텍스트에서 사용될 수 있고, 데이터는 본래의 데이터 저장 시스템의 특성에 의해 제한되지 않는 다양한 방법으로 압축될 수 있다. 예를 들어, 정상 스트림 압축 또는 이미 존재한다면 데이터가 다시 저장되지 않는 중복 제거 압축이 시스템 내 임의의 곳에 존재한다. 이 타입의 데이터 압축은 일반적으로 종래 기술을 이용하여 데이터 저장 시스템의 레벨에서 직접 가능하지 않다. 당업자는 사용되는 파일시스템 및 데이터 저장 자원 시스템에 관계없이 임의의 파일시스템 및 데이터 저장 자원 시스템 내의 데이터 압축을 제공하는 개별 이점을 인정할 것이다.The invention can also be used in a data compression context, and the data can be compressed in a variety of ways that are not limited by the nature of the original data storage system. For example, there is normal stream compression or deduplication compression anywhere in the system where data is not stored again if it already exists. This type of data compression is generally not possible directly at the level of a data storage system using conventional techniques. Those skilled in the art will appreciate the individual benefits of providing data compression within any file system and data storage resource system regardless of the file system and data storage resource system used.
다른 가능한 애플리케이션은 데이터가 사용되도록 의도된 컨텍스트에 의존하여 다르게 나타날 수 있는 데이터 다형성이다. 다양한 데이터 다형성 애플리케이션이 본 기술에 공지되어 있지만, 이들은 일반적으로 애플리케이션 레벨에서 수행되고 데이터 저장 시스템에 의해 제한된다. 본 발명의 방법에 따르면, 데이터는 인터셉션 시스템에서, 즉, 데이터 저장 시스템 레벨에서, 조작될 수 있고, 컨텍스트 변경 방식으로 파일 시스템에 제시되어 오퍼레이팅 시스템 및 애플리케이션 자원 또는 변경이 요구되지 않도록 한다.Another possible application is data polymorphism, which may appear differently depending on the context in which the data is intended to be used. While various data polymorphic applications are known in the art, they are generally performed at the application level and limited by the data storage system. According to the method of the present invention, data can be manipulated in an interception system, ie at the data storage system level, and presented to the file system in a context-changing manner so that no operating system and application resources or changes are required.
서류 관리 시스템의 컨텍스트에서, 본 발명은 데이터 저장 시스템 시맨틱을 유지하는 방식으로 재지향된 데이터가 버져닝(versioning)되도록 하고 데이터의 기존 버전의 검색을 허용하는 확장된 시맨틱을 제공한다. 현재의 시스템은 데이터의 기존 버전이 확장된 시맨틱을 포함하도록 업데이트되거나 새로운 데이터로부터 기존 데이터를 차별화하는 방식으로 검색되도록 요구한다.In the context of a document management system, the present invention provides extended semantics that allow redirected data to be versioned in a manner that maintains data storage system semantics and allows retrieval of existing versions of the data. Current systems require existing versions of data to be updated to include extended semantics or retrieved in a way that differentiates existing data from new data.
재지향된 데이터 입출력은 또한 데이터 저장 시스템에 대한 시간 관련 유용성에 기초하여 소스 데이터가 위치하는 곳을 제어하는 입력을 분배된 데이터 저장 시스템에 제공할 수 있다. 이 점에서, 이들 특징은 데이터 저장 시스템 레벨에서 구현될 수 있고 파일시스템을 액세스하는 애플리케이션에게 다르게 나타나지 않을 것이다.The redirected data input / output may also provide input to the distributed data storage system to control where the source data is located based on time related availability to the data storage system. In this regard, these features can be implemented at the data storage system level and will not appear differently to applications accessing the file system.
이름 가상화 컨텍스트에서, 데이터는 더이상 본래의 데이터 저장 시스템의 저장 자원에 상주하지 않을 수 있고, 파일시스템에 적응성을 제공할 필요없이 완전히 다른 곳에 위치할 수 있다. 데이터 가상화가 또한 가능해지고, 하나의 네이밍 데이터가 더 이상 동일한 저장 자원 상에 상주하지 않지만, 다수의 데이터 저장 시스템 및/또는 저장 자원으로 분산될 수 있다. 데이터 복제 컨텍스트에서, 재지향된 데이터 입출력은 복제 프로세스를 구동하여 데이터의 리던던시를 확보할 수 있다.In a name virtualization context, data may no longer reside in the storage resources of the original data storage system, and may be located entirely elsewhere without the need to provide adaptability to the file system. Data virtualization is also enabled and one naming data no longer resides on the same storage resource, but may be distributed across multiple data storage systems and / or storage resources. In the context of data replication, redirected data input and output may drive the replication process to ensure redundancy of the data.
상술한 데이터 및 데이터에 대한 동작은 예를 들어 가상 머신 구현을 이용함으로써 주로 애플리케이션 레벨에서 공지된 구현을 갖지만, 이들 구현의 단점은 본 발명의 배경기술에 기재되어 있으며, 본 발명은 이들 특징 및 기능성이 데이터 저장 시스템 레벨에서 제공되도록 하고, 따라서, 파일시스템 또는 오퍼레이팅 시스템과는 독립적으로 되도록 한다.Although the above-described data and operations on data have known implementations, primarily at the application level, for example by using virtual machine implementations, the disadvantages of these implementations are described in the background of the present invention, and the present invention provides these features and functionality. This is to be provided at the data storage system level and thus to be independent of the file system or the operating system.
다음의 청구범위의 취지를 벗어나지 않고, 인터셉터에 의해 데이터 저장 시스템의 단일 또는 멀티레벨 캐싱 중의 하나를 구현하는 것 - 구현 단계는 인터셉터 수단에 의해 수행됨 -, 및 덜 사용되는 데이터를 원격 데이터 저장 시스템으로 밀고 더 많이 사용되는 데이터를 인접한 데이터 저장 시스템으로 당김으로써 집약성 최적화를 구현하는 것을 포함하는 본 발명의 다양한 적응 및 구현이 이루어질 수 있다. 원격 데이터 저장 시스템은 물리적으로 원격이거나 액세스하는데 더 많은 시간을 필요로 하는 데이터 저장 시스템을 포함한다. 또한, 인터셉터에 의해, 다른 데이터 저장 시스템 상의 데이터를 참조함으로써 현재 데이터 저장 시스템에서 유효하지 않은 파일 이름을 유효하게 만드는 이름 기반 가상화(name based virtualization)를 구현할 수 있다. 데이터 백업 및 복제는 또한 인터셉터가 직접 파일시스템과 통신하도록 함으로써 가능하다. 동일한 이름 하의 데이터를 상이한 데이터 저장 시스템에 물리적으로 위치시키는 것을 포함하는 데이터 가상화는 또한 데이터 저장 시스템 레벨에서 가능하고, 이 구현 단계는 인터셉터 수단에 의해 수행된다.Implementing one of the single or multilevel caching of the data storage system by means of an interceptor, without departing from the spirit of the following claims, wherein the implementation step is performed by interceptor means, and less used data to the remote data storage system Various adaptations and implementations of the invention may be made, including implementing intensive optimization by pushing and pulling more used data into adjacent data storage systems. Remote data storage systems include data storage systems that are physically remote or require more time to access. In addition, interceptors may implement name based virtualization that makes file names invalid in current data storage systems by referencing data on other data storage systems. Data backup and replication are also possible by having the interceptor communicate directly with the filesystem. Data virtualization, including physically placing data under the same name in different data storage systems, is also possible at the data storage system level, and this implementation step is performed by interceptor means.
본 발명의 다른 양태에 따르면, 방법은 저장 자원에서보다 인터셉션 시스템에서 선택된 데이터에 대한 개별 능력을 제공하는 단계를 더 포함하고, 개별 능력은 성능 특성, 중복 제거(de-duplication), 데이터 다형성, 독립 액세스 제어 메카니즘, 버져닝, 캐싱, 집약성(locality), 복제 및 데이터 가상화를 포함하는 그룹으로부터 선택된다. 선택된 데이터는 이름, 타임스탬프, 사이즈, 이력 정보, 물리적 정보 및 컨텍스트 정보를 포함하는 그룹으로부터 선택된 하나 이상의 메타데이터 패턴 매칭을 채용하는 선택 메카니즘을 이용하여 바람직하게 식별된다.According to another aspect of the invention, the method further comprises providing individual capabilities for the selected data in the interception system rather than at the storage resource, wherein the individual capabilities comprise performance characteristics, de-duplication, data polymorphism, It is selected from the group including independent access control mechanisms, versioning, caching, locality, replication, and data virtualization. The selected data is preferably identified using a selection mechanism that employs one or more metadata pattern matching selected from the group comprising name, time stamp, size, history information, physical information and context information.
상술한 실시예는 본 발명의 예로 의도되며 첨부된 청구범위에 의해 정의된 본 발명의 범위를 벗어나지 않고 당업자에 의해 변형 및 변경이 가능하다.The above-described embodiments are intended as examples of the invention and modifications and variations are possible by those skilled in the art without departing from the scope of the invention as defined by the appended claims.
Claims (59)
상기 데이터 저장 시스템은 데이터 조직 수단 및 데이터 저장 자원을 포함하고, 상기 방법은 상기 데이터 저장 시스템의 데이터 저장 기능들을 상기 데이터 저장 시스템의 다른 기능들로부터 분리하는 단계 및 상기 데이터 저장 기능들의 적어도 일부를 인터셉팅 시스템으로 전송하는 단계를 포함하는 방법.As a way to extend the functionality of the data storage system,
The data storage system comprises data organization means and data storage resources, the method further comprising separating data storage functions of the data storage system from other functions of the data storage system and intercepting at least some of the data storage functions. Transmitting to a receiving system.
상기 데이터 저장 시스템은 데이터 조직 수단 및 데이터 저장 자원을 포함하고, 상기 시스템은 상기 데이터 저장 시스템의 데이터 저장 기능들을 상기 데이터 저장 시스템의 다른 기능들로부터 분리하는 분리 수단 및 상기 데이터 저장 기능들의 적어도 일부를 인터셉팅 시스템으로 전송하는 수단을 포함하는 시스템.As a system to extend the function of the data storage system,
The data storage system comprises data organization means and data storage resources, the system separating at least some of the data storage functions and separating means for separating the data storage functions of the data storage system from other functions of the data storage system. Means for transmitting to the intercepting system.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37690510P | 2010-08-25 | 2010-08-25 | |
US61/376,905 | 2010-08-25 | ||
PCT/CA2011/050514 WO2012024800A1 (en) | 2010-08-25 | 2011-08-24 | Method and system for extending data storage system functions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130046441A true KR20130046441A (en) | 2013-05-07 |
KR101510025B1 KR101510025B1 (en) | 2015-04-08 |
Family
ID=45722795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20137007468A Expired - Fee Related KR101510025B1 (en) | 2010-08-25 | 2011-08-24 | Method and system for extending data storage system functions |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2609528A4 (en) |
JP (1) | JP2013536514A (en) |
KR (1) | KR101510025B1 (en) |
CN (1) | CN103201736A (en) |
AU (1) | AU2011293014B2 (en) |
WO (1) | WO2012024800A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170092091A (en) * | 2016-02-02 | 2017-08-10 | 삼성전자주식회사 | Polymorphic storage devices |
US11287973B2 (en) | 2016-02-02 | 2022-03-29 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424267B2 (en) | 2013-01-02 | 2016-08-23 | Oracle International Corporation | Compression and deduplication layered driver |
CN104077374B (en) * | 2014-06-24 | 2018-09-11 | 华为技术有限公司 | A kind of method and device for realizing the storage of IP disk files |
US10802928B2 (en) | 2015-09-10 | 2020-10-13 | International Business Machines Corporation | Backup and restoration of file system |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5937406A (en) * | 1997-01-31 | 1999-08-10 | Informix Software, Inc. | File system interface to a database |
US6269382B1 (en) | 1998-08-31 | 2001-07-31 | Microsoft Corporation | Systems and methods for migration and recall of data from local and remote storage |
CA2646776C (en) * | 1999-08-05 | 2014-07-08 | Oracle International Corporation | Internet file system |
US7165057B2 (en) * | 2001-11-29 | 2007-01-16 | Veritas Operating Corporation | Methods and systems to access storage objects |
US7565495B2 (en) * | 2002-04-03 | 2009-07-21 | Symantec Corporation | Using disassociated images for computer and storage resource management |
US20050138306A1 (en) * | 2003-12-19 | 2005-06-23 | Panchbudhe Ankur P. | Performance of operations on selected data in a storage area |
US7606953B2 (en) * | 2005-02-25 | 2009-10-20 | Microsoft Corporation | Method and system for generating context-aware content from source content associated with a computing device |
US9390102B2 (en) * | 2008-09-29 | 2016-07-12 | Oracle International Corporation | Client application program interface for network-attached storage system |
-
2011
- 2011-08-24 CN CN2011800509497A patent/CN103201736A/en active Pending
- 2011-08-24 WO PCT/CA2011/050514 patent/WO2012024800A1/en active Application Filing
- 2011-08-24 AU AU2011293014A patent/AU2011293014B2/en not_active Ceased
- 2011-08-24 KR KR20137007468A patent/KR101510025B1/en not_active Expired - Fee Related
- 2011-08-24 JP JP2013525098A patent/JP2013536514A/en active Pending
- 2011-08-24 EP EP11819254.1A patent/EP2609528A4/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170092091A (en) * | 2016-02-02 | 2017-08-10 | 삼성전자주식회사 | Polymorphic storage devices |
US11287973B2 (en) | 2016-02-02 | 2022-03-29 | Samsung Electronics Co., Ltd. | Polymorphic storage devices |
Also Published As
Publication number | Publication date |
---|---|
JP2013536514A (en) | 2013-09-19 |
EP2609528A4 (en) | 2017-07-19 |
CN103201736A (en) | 2013-07-10 |
AU2011293014A1 (en) | 2013-03-21 |
AU2011293014B2 (en) | 2014-08-14 |
KR101510025B1 (en) | 2015-04-08 |
EP2609528A1 (en) | 2013-07-03 |
WO2012024800A1 (en) | 2012-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111108493B (en) | System, method and apparatus for simplifying file system operations using a key-value store system | |
JP2022095781A (en) | System and method of database tenant migration | |
US9348842B2 (en) | Virtualized data storage system optimizations | |
KR101482518B1 (en) | Method and system for cache tiering | |
US20100088349A1 (en) | Virtual file system stack for data deduplication | |
US9760574B1 (en) | Managing I/O requests in file systems | |
US20140304525A1 (en) | Key/value storage device and method | |
US9449007B1 (en) | Controlling access to XAM metadata | |
US20060179261A1 (en) | Writable read-only snapshots | |
US20050114595A1 (en) | System and method for emulating operating system metadata to provide cross-platform access to storage volumes | |
US20130311493A1 (en) | Systems and methods for arbitrary data transformations | |
US8903772B1 (en) | Direct or indirect mapping policy for data blocks of a file in a file system | |
US20230029677A1 (en) | Technique for efficiently indexing data of an archival storage system | |
WO2008055010A1 (en) | Reverse name mappings in restricted namespace environments | |
US11442894B2 (en) | Methods for scalable file backup catalogs and devices thereof | |
US9921765B2 (en) | Partial snapshots in virtualized environments | |
KR101510025B1 (en) | Method and system for extending data storage system functions | |
US9727588B1 (en) | Applying XAM processes | |
US7899795B1 (en) | Method and system for recovering lost data volumes | |
US11481335B2 (en) | Methods for using extended physical region page lists to improve performance for solid-state drives and devices thereof | |
WO2008029146A1 (en) | A distributed file system operable with a plurality of different operating systems | |
GB2442285A (en) | A distributed file system | |
US11822580B2 (en) | System and method for operating a digital storage system | |
WO2014165451A2 (en) | Key/value storage device and method | |
Bacik et al. | Red Hat Enterprise Linux 6 Storage Administration Guide |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0105 | International application |
Patent event date: 20130325 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20131114 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20140516 Patent event code: PE09021S01D |
|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20141124 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20140516 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
AMND | Amendment | ||
PX0901 | Re-examination |
Patent event code: PX09011S01I Patent event date: 20141124 Comment text: Decision to Refuse Application Patent event code: PX09012R01I Patent event date: 20140709 Comment text: Amendment to Specification, etc. |
|
PX0701 | Decision of registration after re-examination |
Patent event date: 20150108 Comment text: Decision to Grant Registration Patent event code: PX07013S01D Patent event date: 20141223 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I Patent event date: 20141124 Comment text: Decision to Refuse Application Patent event code: PX07011S01I Patent event date: 20140709 Comment text: Amendment to Specification, etc. Patent event code: PX07012R01I |
|
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20150401 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20150401 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20190112 |