

























본 발명은 데이터 저장 장치에 관한 것이다. 특히, 본 발명은 디스크 드라이브, 테이프 드라이브, 또는 광학 드라이브 같은 데이터 저장 장치에 관한 것으로, 상기 데이터는 객체로서 구성되고 액세스된다.The present invention relates to a data storage device. In particular, the present invention relates to data storage devices, such as disk drives, tape drives, or optical drives, wherein the data is organized and accessed as objects.
두개의 일반적인 컴퓨터 모델은 컴퓨터 산업 분야에서 잘 공지되었다. 첫번째는 메인프레임 컴퓨터 모델이고 두번째는 클러스터 컴퓨터 모델이다.Two general computer models are well known in the computer industry. The first is the mainframe computer model and the second is the cluster computer model.
메인프레임 컴퓨터 모델에서의 최종 사용자를 위해서는 초기 시스템을 구입하고, 부가적인 처리 능력이 요청될때 보다 큰 시스템으로 초기 시스템을 대체하는 것이 일반적인 진행 방법이다. 이런 사이클에서는 여러 시점에서 외부적인 단절이 발생한다. 예를들어, 만약 사용자가 초기 시스템의 아키텍쳐보다 보다 빨리 성장하면, 제 2 업그레이드된 메인프레임 시스템을 구입하였을때 사용자가 하나의 운영 시스템으로부터 다른 운영 시스템으로, 또는 심지어 하나의 공급자 전용 아키텍쳐로부터 다른 공급자 전용 아케텍쳐로 전환할 것을 요청할 수 있다. 이들 변화는 업그레이드할수 있는 구성, 달러 및 고용 시간에 대해 많은 비용을 수반한다. 그러므로, 상기 전환은 바람직하지 않다.For end users in mainframe computer models, it is common practice to purchase an initial system and replace it with a larger system when additional processing power is required. In these cycles external breaks occur at various points in time. For example, if a user grows faster than the architecture of the initial system, when the user purchases a second upgraded mainframe system, the user moves from one operating system to another, or even from one vendor-specific architecture to another supplier. You can request to switch to a dedicated architecture. These changes involve significant costs for upgradeable configurations, dollars and employment time. Therefore, this conversion is not desirable.
게다가, 메인프레임 모델은 컴퓨터 장치의 잔존 가격이 하락되는 것을 수반 한다. 따라서, 상기 시스템 대체는 초기 시스템이 업그레이된 시스템에 의해 대체될때 실질적으로 완전히 손실되는 투자 자본이다. 게다가, 보다 큰 업그레이드 시스템은 보다 작은 볼륨(volume)이므로 보다 작은 시스템으로 팔리는 경향이 있다. 따라서, 각각의 새로운 시스템 업그레이드는 통상적으로 이전 시스템보다 컴퓨팅 비용이 높다.In addition, the mainframe model entails a drop in the remaining price of a computer device. Thus, the system replacement is an investment capital that is substantially lost when the initial system is replaced by the upgraded system. In addition, larger upgrade systems tend to be sold as smaller systems because they are smaller volumes. Thus, each new system upgrade typically costs more computing than the previous system.
클러스터 컴퓨터 모델에서, 메인프레임 컴퓨터는 보다 작은 표준 서버 클러스터로 대체된다. 이것은 메인프레임 모델보다 많은 장점을 제공한다. 클러스터가 단지 단일 시스템으로서만 시작될수있기 때문에, 클러스터 모델로 진행할때 처음엔 보다 작다. 게다가, 상기 보다 작은 시스템은 높은 볼륨으로 판매되므로, 컴퓨팅 비용이 보다 작다. 또한, 상기 시스템은 그것들이 전용 아키텍쳐상에 의존하지 않는 것을 바탕으로 한다. 이것은 사용자가 각각의 추후 구입시 가장 좋은 선택 사항을 선택하게 하는 다중 소스로부터 장치의 입수 가능성을 제공한다.In the cluster computer model, mainframe computers are replaced with smaller standard server clusters. This offers many advantages over the mainframe model. Since the cluster can only be started as a single system, it is initially smaller when proceeding with the cluster model. In addition, the smaller system is sold at a higher volume, so the computing cost is smaller. In addition, the system is based on that they do not depend on a dedicated architecture. This offers the possibility of obtaining the device from multiple sources allowing the user to select the best option for each future purchase.
다른 장점은 클러스터 컴퓨터 모델 그 자체이다. 업그레이드 비용은 종래 및 가까운 미래 요청에 부합하기 위하여 요청된 부가적인 리소스 양만을 부가함으로써 보다 정밀하게 제어될수있다. 게다가, 사용자는 새로운 아키텍쳐로 이동 또는 전환에 대한 염려없이 여러 종류의 공급자로부터 선택할 수 있다. 유사하게, 올바른 아키텍쳐를 사용하여, 다른 운영 시스템으로 전환에 대한 필요성이 결코 요청되지 않는다.Another advantage is the cluster computer model itself. The upgrade cost can be more precisely controlled by adding only the additional amount of resources requested to meet conventional and near future requests. In addition, the user can select from different types of suppliers without worrying about moving or switching to the new architecture. Similarly, using the right architecture, the need for switching to another operating system is never requested.
그러나 클러스터 컴퓨터 모델은 여전히 단점 및 문제점을 가진다. 예를들어, 클러스터 컴퓨터 모델은 하나의 메인프레임이 수행할수있는 표준 작업량상에 클러스터가 취해야 하는 방식에 있어서 데이터를 공유하기 위한 능력을 클러스터된 시스템에게 제공해야하는 어려움을 가진다. 예를들어, 클러스터의 각각의 서버가 동일 데이터상에서 트랜잭션을 처리하기 위하여 요청되는 클러스터 모델을 실행하는 것은 매우 어렵다. 상기 응용의 몇몇 예는 항공 예약 시스템 또는 트랜잭션의 재경부 전체 목록을 포함한다.However, the cluster computer model still has disadvantages and problems. For example, the cluster computer model has the difficulty of providing clustered systems with the ability to share data in the way clusters should take on the standard workload a single mainframe can perform. For example, it is very difficult for each server in a cluster to implement a cluster model that is required to process transactions on the same data. Some examples of such applications include a full list of recurring funds in an airline reservation system or transaction.
클러스터링된 컴퓨터 모델의 제 2 단점은 메인프레인 환경에 존재하는 데이터 및 저장 데이터를 관리하는데 있어서 광대한 경험의 부족이다. 상기 경험은 표준 클러스터 환경에서 아직 간단히 이용할 수 없는 관리 소프트웨어를 유발한다.A second disadvantage of the clustered computer model is the lack of extensive experience in managing data and stored data present in the mainframe environment. This experience results in management software that is not yet readily available in standard cluster environments.
본 발명은 이들 및 다른 문제점을 처리하고, 종래 기술 이상의 다른 장점을 제공한다.The present invention addresses these and other problems and provides other advantages over the prior art.
데이터 저장 장치는 다수의 객체로서 구성된 저장된 데이터를 가지는 저장 매체를 포함하고, 상기 각각의 객체는 객체의 특성들을 나타내는 속성(attribute)들을 가진다. 제어 컴포넌트(control component)는 저장 매체에 동작가능하게 결합되고 객체에 대한 인터페이스를 제공하도록 구성된다. 인터페이스는 상기 객체에 액세스하도록 호출되는 메소드(method)를 나타낸다.The data storage device includes a storage medium having stored data configured as a plurality of objects, each object having attributes representing the characteristics of the object. The control component is operatively coupled to the storage medium and configured to provide an interface to the object. An interface represents a method that is called to access the object.
도 1은 본 발명의 일측면에 따른 네트워크 부가 저장 시스템의 블록도.1 is a block diagram of a network additional storage system in accordance with an aspect of the present invention.
도 2는 본 발명의 일측면에 따른 객체 모델을 도시한 도.2 illustrates an object model in accordance with an aspect of the present invention.
도 3a은 저장 장치상 객체가 리퀘스터에 의해 액세스되는 제 1 구성의 블록도.3A is a block diagram of a first configuration in which an object on a storage device is accessed by a requester.
도 3b는 저장 장치상 객체가 리퀘스터에 의해 액세스되는 제 2 구성의 블록도.3B is a block diagram of a second configuration in which an object on a storage device is accessed by a requester.
도 4는 본 발명의 일측면에 따른 디스크 드라이브의 투시도.4 is a perspective view of a disk drive according to one aspect of the present invention.
도 5는 리퀘스터에 의해 객체의 액세스를 도시하는 기능 블록도.5 is a functional block diagram illustrating access of an object by a requester.
도 6은 본 발명의 일측면에 따라 파티션된 저장 매체 일부의 도면.6 illustrates a portion of a storage medium partitioned in accordance with an aspect of the present invention.
도 7a 및 7b는 본 발명의 일측면에 따라 리퀘스터에 의해 객체의 액세스를 도시하는 흐름도.7A and 7B are flow diagrams illustrating access of an object by a requester in accordance with an aspect of the present invention.
도 8은 본 발명의 일측면에 따른 객체의 형성을 도시한 흐름도.8 is a flow diagram illustrating the formation of an object in accordance with an aspect of the present invention.
도 9는 본 발명의 일측면에 따른 객체의 개방 및 업데이트를 도시하는 흐름도.9 is a flow diagram illustrating opening and updating of an object in accordance with an aspect of the present invention.
도 10은 본 발명의 일측면에 따른 객체에 대한 기입을 도시한 흐름도.10 is a flow diagram illustrating writing for an object in accordance with an aspect of the present invention.
도 11은 본 발명의 일측면에 따라 판독만을 위한 객체의 개방을 도시한 흐름도.11 is a flow diagram illustrating the opening of an object for reading only in accordance with an aspect of the present invention.
도 12는 본 발명의 일측면에 따라 객체의 판독을 도시한 흐름도.12 is a flow diagram illustrating reading of an object in accordance with an aspect of the present invention.
도 13은 본 발명의 일측면에 따라 객체의 폐쇄를 도시한 흐름도.13 is a flow diagram illustrating closure of an object in accordance with an aspect of the present invention.
도 14는 본 발명의 일측면에 따라 객체의 제거를 도시한 흐름도.14 is a flow chart illustrating removal of an object in accordance with an aspect of the present invention.
도 15는 본 발명의 일측면에 따라 파티션 형성을 도시한 흐름도.15 is a flow chart illustrating partition formation in accordance with an aspect of the present invention.
도 16은 본 발명의 일측면에 따라 파티션 제거를 도시한 흐름도.16 is a flow chart illustrating partition removal in accordance with an aspect of the present invention.
도 17은 본 발명의 일측면에 따라 객체 엑스포트를 도시한 흐름도.17 is a flow chart illustrating object export in accordance with an aspect of the present invention.
도 18은 본 발명의 일측면에 따라 객체 속성 획득을 도시한 흐름도.18 is a flow diagram illustrating object property acquisition in accordance with an aspect of the present invention.
도 19는 본 발명의 일측면에 따라 객체 속성을 세팅하거나 변경하는 것을 도시한 흐름도.19 is a flowchart illustrating setting or changing object attributes in accordance with an aspect of the present invention.
도 20은 본 발명의 일측면에 따라 판독 락(lock) 속성을 도시한 흐름도.20 is a flow diagram illustrating a read lock attribute in accordance with an aspect of the present invention.
도 21은 본 발명의 일측면에 따라 세팅 락 특성을 도시한 흐름도.21 is a flow chart illustrating setting lock characteristics in accordance with an aspect of the present invention.
도 22는 본 발명의 일측면에 따라 객체의 리세팅 락 속성을 도시한 흐름도.22 is a flow diagram illustrating a resetting lock attribute of an object in accordance with an aspect of the present invention.
도 23은 본 발명의 일측면에 따라 장치 결합을 얻는 것을 도시한 흐름도.23 is a flow chart illustrating obtaining device engagement in accordance with an aspect of the present invention.
도 24는 본 발명의 일측면에 따라 세팅 장치 결합을 도시한 흐름도.24 is a flow diagram illustrating setting device coupling in accordance with an aspect of the present invention.
도 1은 본 발명의 일측면에 따른 데이터 저장 장치(100)의 블록도이다.  장치(100)는 객체 지향 데이터 저장 장치(110 및 112), 파일 서버(114), 리퀘스터(116, 118 및 120), 및 상호접속부(122)를 포함한다.  시스템(100)은 많은 다른 공급자로부터의 장치 및 소프트웨어로 구성될수있고, 사용자에게 하나의 대용량 컴퓨터 장치로서 나타나는 네트워크 부가 저장 구성을 도시한다.1 is a block diagram of a
객체 지향 저장 장치(110-112)는 시스템(100)의 데이터 저장 기능을 수행하는 저장 컴포넌트이다.  저장 장치(110-112)는 바람직하게 디스크 드라이브, 독립 디스크 리던던트 어레이(RAID) 서브시스템, 테이프 드라이브, 테이프 라이브러리, 광학 드라이브, 쥬크 박스 또는 공유될수있는 임의의 다른 저장 장치를 포함한다.  저장 장치(110 및 112)에는 상기 장치(110 및 112)에 액세스할 수 있는 리퀘스터(116, 118 및 120)에 대한 입력/출력(I/O) 채널 부가물이 제공된다.Object-oriented storage devices 110-112 are storage components that perform data storage functions of
리퀘스터(116, 118 및 120)는 디스크(110 및 112) 상에 저장된 정보를 공유하는 서버 또는 클라이언트 같은 컴포넌트이다.  리퀘스터(116-120)는 저장 장치(110 및 112)상 정보를 직접 액세스하기 위하여 바람직하게 구성된다.
파일 서버(114)는 요청 인증 및 리소스 위치 같은 관리 및 보안 기능을 수행한다.  보다 작은 시스템에서, 전용 파일 서버는 바람직하게 사용되지 않는다.  대신, 리퀘스터중 하나(116-120)가 파일 서버(114)에 의해 수행되는 시스템(100)의 동작을 감독하는 기능 및 책임을 가진다.  게다가, 파일 서버(114)에 의해 제공된 보안 및 기능이 필요하거나 요청되지 않는 경우, 또는 리퀘스터(116-120)의 클러스터가 직접적으로 저장 장치(110 및 112)와 대화할수있도록 성능이 요청되는 경우, 파일 서버(114)는 시스템(100)으로부터 제거된다.
바람직한 일실시예에서 상호접속부(122)는 네크워크 부가 저장 시스템(100)의 모든 컴포넌트가 서로 통신하는 물리적 인프라구조이다.In a preferred embodiment, the
동작시, 시스템(100)이 켜졌을때, 모든 장치는 서로 그 자체를 식별하거나 파일 서버(114) 또는 상호접속부(122) 같은 기준 공통 지점을 식별한다.  예를들어, 섬유 채널(Fiber Channel) 기반의 시스템(100)에서, 객체 지향 저장 장치(110 및 112), 및 리퀘스터(116-120)는 시스템의 패브릭(fabric)에 로그한다.  운영 구조를 결정하기 위하여 요청하는 실행 같은 시스템(110)의 임의의 컴포넌트는 모든 다른 컴포넌트를 식별하기 위하여 패브릭 서비스를 사용한다.  파일 서버(114)로부터, 리퀘스터(116-120)는 리퀘스터(116-120)가 액세스할수있는 저장 장치(110 및 112)의 존재를 알게된다.  유사하게, 저장 장치(110 및 112)는 시스템(100)의 다른 장치를 배치하기 위하여 요청된 정보의 위치, 및 백업 같은 관리 서비스를 호출하기 위하여 사용되어야 하는 어드레스를 인식한다.  유사하게, 하나의 바람직한 실시예에서 파일 서버(114)는 패브릭 서비스로부터 저장 장치(110 및 112)의 존재를 배운다.In operation, when the
특정 시스템(100)의 보안 실행에 따라, 리퀘스터(116-120), 또는 이들중 일부는 시스템(100)의 몇몇 컴포넌트에 대한 액세스가 거부될수있다.  각각의 요청에 이용할수있는 저장 장치(110 및 112)의 세트로부터, 리퀘스터는 파일, 데이터베이스, 및 그것에 이용할수있는 자유 공간을 식별할 수 있다.Depending on the security implementation of the
동시에, 시스템(100)에서 각각의 컴포넌트는 그것과 관련된 특정 고려사항을 파일 서버(114)에 식별시킨다.  예를들어, 임의의 저장 장치 레벨 서비스 속성은 서버(114)를 파일하기 위하여 일단 통신될수있고, 모든 다른 시스템(100)의 컴포넌트는 파일 서버(114)로부터 속성을 배운다.  예를들어, 특정 리퀘스터(116-120)는 시작후 부가적인 저장 장치의 명령을 알리고 싶어할 수 있다.  상기 속성은 예를들어 리퀘스터가 파일 서버(114)에 로그할때 제공될수있다.  그 다음 파일 서버(114)는 자동적으로 새로운 저장 장치가 시스템(100)에 부가될때마다 특정 리퀘스터(116-120)에게 충고한다.  그 다음 파일 서버(114)는 저장 장치가 RAID 5인지, 미러드(mirrored) 인지, 저장 장치인지 같은 리퀘스터의 다른 중요한 특성을 통과시킬수 있다.At the same time, each component in
본 발명의 일측면에 따라, 저장 장치(110 및 112)상에 저장된 정보는 도 2에 도시된 시스템에 저장된다.  각각의 저장 장치(110 및 112)는 데이터가 섹터의 순서보다 오히려 객체(124-126)로서 구성되고 액세스되는 모드에서 동작하는 객체 지향 장치이다.  객체 지향 장치(110 및 112)는 특정 장치상 각각의 파티션(partition)에 대하여 객체의 단일 레벨 리스트를 포함하는 객체 파일 시스템으로 객체(124-126)를 관리한다.  이것은 평면 파일 시스템(flat file system)이라 불린다.  각각의 장치(110 및 112)에서 저장 매체상에 저장된 객체(124-126)는 객체 지향 장치 모드에서 동작하는 장치(110 또는 112)상에서 용량 할당시 가장 작은 가시적인 유니트이다.  저장 장치상 객체는 단일 식별자와 연관된 순서적인 섹터 세트를 포함한다.  데이터는 식별자 및 오프셋에 의해 객체에 참조된다.  객체는 그 자체가 저장 장치(110 또는 112)에 의해 저장 매체상에 할당되고 배치되고, 운영 시스템은 종래 아키텍쳐에서 행한 바와같이, 데이터의 섹터를 관리하는 대신, 이들 객체 구조에서 파일 및 메타데이터를 관리한다.According to one aspect of the invention, information stored on
객체(124-126)는 인터페이스(128)에 의해 액세스되고 상기 인터페이스에서 객체들은 객체(124-126)의 속성 및 데이터를 액세스 및 조정하기 위하여 리퀘스터(116-120)에 의해 호출될수있는 다수의 메소드들을 노출시킨다. 따라서, 도 2에 도시된 바와같이, 요청(130)는 리퀘스터(116-120)로부터 발생한다. 바람직한 실시예에서, 리퀘스터(116-120)는 컴퓨터 시스템, 또는 클러스터 또는 시스템의 네트워크의 엘리먼트이고, 객체(124-126)를 포함하는 저장 장치상에서 작동하기 위하여 요청(130)를 발생시킨다. 따라서, 리퀘스터(116-120)는 양쪽 클라이언트 및 서버일수있다. 임의의 경우에, 리퀘스터(116-120)중 하나에 의해 발생된 요청(130)는 상기 응용에서 추후에 상세히 기술될 바와같이 하나 이상의 객체(124-126)의 조종을 차례로 유발하는 인터페이스(128) 메소드중 하나를 호출한다.Objects 124-126 are accessed by interface 128, where objects may be called by requester 116-120 to access and manipulate the attributes and data of object 124-126. Expose methods. Thus, as shown in FIG. 2, request 130 originates from requester 116-120. In a preferred embodiment, requesters 116-120 are elements of a computer system, or a cluster or network of systems, and generate a request 130 to operate on a storage device that includes objects 124-126. Thus, requesters 116-120 may be both client and server. In any case, the request 130 generated by one of the requesters 116-120 in turn results in the manipulation of one or more objects 124-126 as described in detail later in the application. Call one of the methods.
도 3a 및 3b는 저장 장치(110-112)상에 저장된 객체에 액세스하기 위하여 사용될수있는 두개의 다른 구성의 블록도이다.  간략화를 위하여, 단지 하나의 리퀘스터(116) 및 단일 객체 지향 저장 장치(110)가 도 3a 및 3b에 도시된다.  리퀘스터(116)가 객체(객체 124-126)를 개방하기 원한다면, 리퀘스터(116)는 저장 장치(110)상의 객체에 액세스하기 위하여, 직접적으로 저장 장치(110)에 액세스하거나, 파일 서버(114) 및 위치 정보로부터 허가를 요청하기 위하여 요청될수있다.  파일 서버(114)가 저장 장치(110)에 대한 액세스를 제어하는 범위는 우선적으로 시스템(100)의 특정 구현의 보안 요청 기능이다.3A and 3B are block diagrams of two different configurations that may be used to access objects stored on storage devices 110-112. For simplicity, only one
도 3a에 도시된 블록에서, 시스템(100)은 안전한 것이 가정된다.  즉, 레지스터(116) 및 저장 장치(110) 사이의 명령 정보 및 데이터 전송을 보호하기 위한 요청이 없다.  상기 실행에서, 관리 기능을 위하여 존재하는 파일 서버(114)가 존재할수있지만, 파일 서버(114)는 저장 장치(110)와 리퀘스터 상호작용을 감시할 필요가 없다.In the block shown in FIG. 3A, it is assumed that
상기 실행에서, 리퀘스터(116)는 저장 장치(110)상 객체를 직접적으로 액세스하고 상기 저장 장치상에 객체를 형성하기 위한 위치내에 있다.  따라서 리퀘스터(116)는 객체들이 리퀘스터(116)에 본래 부가되어 있을지라도 객체를 개방, 판독, 기입 및 폐쇄할 수 있다.  상기 동작은 상기 응용에서 추후에 상세히 기술된다.  그러나 간략화를 위하여 이 시점에서 요약만 제공된다.  저장 장치(110)상 객체를 판독하기 위하여, 리퀘스터(116)는 저장 장치(110)상 논리적 볼륨 또는 파티션, 및 그 위에 저장된 객체에 대한 탐색 시작 메소드를 나타내는 하나 이상의 객체로부터 우선적으로 판독된다.  그 다음 리퀘스터(116)는 루트 디렉토리일수있는 객체를 개방하고 판독한다.  이런 객체로부터, 다른 객체를 배치하는 것은 올바르고, 루트 디렉토리의 내용을 바탕으로 한다.  리퀘스터(116)는 목표된 데이터가 배치될 때까지 상기 처리를 반복한다.  데이터는 객체 식별(객체 ID) 및 객체 내의 변위에 의해 참조된다.In this implementation,
도 3b에 도시된 제 2 실행에서, 보안이 요청된다.  그러므로, 파일 서버(114)는 목표된 보호 레벨에 필요한 정도로 리퀘스터(116) 및 저장 장치(110) 사이의 I/O 체인에 끼워진다.  하나의 바람직한 실시예에서, 리퀘스터(116)는 I/O 동작 세트를 수행하기 위하여 파일 서버(114)로부터 허가를 우선 요청하여야 한다.  그 다음 파일 서버(114)(부가적인 보안을 위하여 리퀘스터(116)로부터 저장 위치 정보를 보류할 수 있음)는 리퀘스터가 저장 장치(110)과 직접적으로 통신하기에 충분한 정보를 리턴함으로써 리퀘스터(116)로부터의 요청을 인정한다.  저장 장치(110)가 파일 서버(114)에 로그할때 저장 장치(110)가 보안 파라미터로 알려지기 때문에, 저장 장치(110)는 그 적당하게 구성되고 파일 서버(114)로부터 유효한 허용을 포함하는 암호화된 데이터를 포함하지 않으면 I/O 요청을 허용하지 않는다.In the second implementation shown in FIG. 3B, security is requested. Therefore,
그 다음, 상기 처리는 도 3a에 대해 기술된 것과 유사한 방식으로 진행한다.  그러나, 각각의 명령과 관계된 페이로드는 매우 다르다.  예를들어, 보안이 요청되는 경우(도 3b에 도시됨), 리퀘스터(116) 및 저장 장치(110) 사이로 통과하는 명령 및 데이터는 암호화된다.  게다가, 허가 정보는 리퀘스터(116)로부터 저장 장치(110)로 제공된 명령 파라미터에 부가되어야 한다.The process then proceeds in a similar manner to that described for FIG. 3A. However, the payload associated with each command is very different. For example, if security is requested (shown in FIG. 3B), the commands and data passing between
바람직한 실시예에서 저장 장치(110 및 112)가 하드 디스크 드라이브를 포함하기 때문에, 디스크 드라이브에 대한 간략한 논의가 바람직하다.  도 4는 저장 장치(110)로서 실행될수있는 하드 디스크 드라이브의 사시도이다.  디스크 드라이브(110)에서, 다수의 디스크(132)는 하우징(136)내의 스핀들 모터 어셈블리(134)에 대하여 저널링(journal)된다.  각각의 디스크(132)는 138로 개략적으로 지시된 다수의 동심원 기록 트랙을 가진다.  각각의 트랙(138)은 다수의 파티션으로 파티션된다(도 6에서 더 상세히 기술됨).  데이터는 트랙(138)내의 특정 파티션으로 불리는 디스크(132)상에 저장되거나 검색된다.  작동기 아암 어셈블리(140)는 하우징(136)의 하나의 모서리에 회전 가능하게 설치된다.  작동기 아암 어셈블리(140)는 디스크(132)로부터 정보를 판독하고 상기 디스크에 정보를 기입하기 위하여 판독/기입 헤드, 또는 트랜스듀서(도시되지 않음)를 가지는 슬라이더를 지지하는 다수의 헤드 짐벌 어셈블리(142)를 지지한다.Since
음성 코일 모터(144)는 슬라이더(142)상 트랜스듀서가 화살표(146)로 지시된 아크를 따라 디스크(132)의 표면에 걸쳐 이동하도록 작동기 아암 어셈블리(140)를 순방향 및 역방향으로 정밀하게 회전시키도록 제공된다.  도 4는 공지된 방식으로 디스크 드라이브(110)의 임의의 동작을 제어하는데 사용되는 디스크 드라이브 제어기(148)를 블록도 형태로 도시한다.  그러나, 본 발명에 따라, 디스크 드라이브 제어기(148)는 디스크(132)에 저장된 객체(124-126)에 대해 인터페이스(128)를 실행하는데 사용된다.
도 5는 도 1에 도시된 시스템(100)내에 고정할때 디스크 드라이브(110) 일부의 블록도이다.  도 5에서, 디스크 드라이브 제어기(148)는 인터페이스(128)를 실행하는 제어 컴포넌트(150)를 포함한다.  객체(124-126)는 디스크(132)를 구성하는 저장 매체상에 저장된다.  요청 컴포넌트(152)는 리퀘스터(116-120)상에서 실행되고, 인터페이스(128)에서 메소드들을 호출하는 요청들을 논리적으로 공식화하도록 형성된다.  하나의 메소드의 호출중에 제어 컴포넌트(150)는 바람직한 방식으로 식별된 객체를 조종하기 위하여 임의의 태스크(task)를 수행한다.  제어 컴포넌트(150)는 임의의 식별된 객체와 연관된 데이터 또는 속성을 포함할수있는 이벤트를 리턴한다.  상기 이벤트는 리퀘스터(116-120)에 의해 호출된 특정 메소드를 바탕으로 리턴된다.FIG. 5 is a block diagram of a portion of
객체 지향 장치(110-112)가 블록 지향 장치를 가지는 운영 시스템에 의해 전달된 기능성과 동일한 기능성을 제공하도록 하기 위하여, 장치(110-112)상 저장 공간은 유사하게 관리되어야 한다. 따라서, 하나의 바람직한 실시예에서, 저장 장치(110-112)상 구성층은 저장되는 객체들(124-126) 상부에 제공된다. 하나의 바람직한 실시예에서, 객체 지향 저장 장치(110-112)는 파티션이라 불리는 하나 이상의 상호 배제 지역에 디스크 공간을 할당하기 위하여 제공한다. 파티션은 도 6을 참조하여 상세히 기술된다. 하나의 파티션내에 리퀘스터(116-120)는 객체를 생성할 수 있다. 하나의 바람직한 실시예에서, 하나의 파티션내의 구조는 간단한 평면 구조이다. 이런 구성에, 임의의 운영 시스템이 그 자신의 구조를 맵핑할 수 있다.In order for the object oriented devices 110-112 to provide the same functionality as the functionality delivered by an operating system having a block oriented device, the storage space on the devices 110-112 should be similarly managed. Thus, in one preferred embodiment, a component layer on storage devices 110-112 is provided over the objects 124-126 being stored. In one preferred embodiment, object-oriented storage devices 110-112 provide for allocating disk space in one or more mutually exclusive areas called partitions. The partition is described in detail with reference to FIG. Requesters 116-120 in one partition may create objects. In one preferred embodiment, the structure in one partition is a simple planar structure. In such a configuration, any operating system can map its own structure.
도 6은 디스크(132)중 하나 같은 저장 매체상 저장 공간의 일부를 도시한다.  저장 공간은 장치 제어 객체(154), 장치 관련 객체(156), 및 파티션 0(158로 표시), 파티션 1(160으로 표시) 및 파티션 N(숫자 162로 표시)으로서 라벨링된 다수의 파티션을 포함한다.  각각의 파티션은 파티션 제어 객체(164), 파티션 객체 리스트(166) 및 다수의 데이터 객체(168)(데이터 객체 0 내지 데이터 객체 N으로 라벨링됨) 같은 다수의 객체를 포함한다.6 illustrates a portion of storage space on a storage medium, such as one of the
각각의 객체와 관련된 것은 한세트의 속성이다. 본 발명의 일측면에 따라, 액세스 제어 속성이 제공되어 설정 속성 메소드(상기 응용에서 추후에 자세히 논의됨)에 의해 세팅되고 특정 객체에 대한 액세스가 제어되는 수단을 제공한다. 액세스 제어 속성 버젼 수를 변화시킴으로써, 임의의 리퀘스터(116-120)는 특정 객체에 대해 거부되거나 제공되고, 액세스될수있다.Associated with each object is a set of attributes. In accordance with one aspect of the present invention, an access control attribute is provided to provide a means for setting by a set attribute method (discussed later in the application above) and for controlling access to a particular object. By changing the number of access control attribute versions, any requester 116-120 can be denied or provided for a particular object, and accessed.
클러스터 속성은 특정 객체가 저장 시스템의 다른 객체 근처에 배치되는지를 나타내는 속성이다. 클론(clone) 속성은 특정 객체가 저장 시스템의 다른 객체를 복사함으로써 형성되는지를 나타낸다. 한그룹의 크기 속성은 특정 객체의 크기 특성을 형성한다. 예를들어, 크기 속성 그룹은 객체내에 기입된 가장 큰 오프셋을 나타내는 정보, 객체에 할당된 블록 수, 객체내에 데이터를 저장하기 위하여 사용된 블록수 및 객체내의 블록당 바이트 수를 포함한다.The cluster attribute is an attribute that indicates whether a particular object is placed near other objects in the storage system. The clone attribute indicates whether a particular object is formed by copying another object from the storage system. The size attribute of a group forms the size characteristics of a particular object. For example, the size attribute group includes information indicating the largest offset written in the object, the number of blocks allocated to the object, the number of blocks used to store data in the object, and the number of bytes per block in the object.
한그룹의 시간 속성은 객체가 형성될때를 가리키고, 객체의 최종 시간 데이터는 변형되고 최종 시간 속성은 객체에서 변형된다. 객체는 파일 시스템의 임의의 데이터가 변형되고 파일 시스템의 임의의 속성이 변형되는 최종 시간을 형성하는 한세트의 속성을 포함한다. 다른 속성은 다른 파라미터, 임의의 주어진 객체의 특성 또는 특징을 가리키기 위하여 제공될수있다.The time attribute of a group indicates when an object is formed, the final time data of the object is transformed and the final time attribute is transformed in the object. An object contains a set of attributes that form the last time any data in the file system is modified and any attribute in the file system is modified. Other attributes may be provided to indicate other parameters, characteristics or characteristics of any given object.
각각의 객체는 객체를 형성하기 위한 명령에 응답하여 특정 저장 장치(110-112)에 의해 선택되고 리퀘스터(116-120)에 리턴되는 객체 식별자와 연관된다. 식별자는 바람직하게 특정 길이의 표시되지 않은 정수이다. 바람직한 실시예에서, 식별자의 길이는 특정 저장 장치(110-112)에 의해 특정화된 크기에 대한 디폴트이거나, 장치 속성으로서 세팅될수있다. 게다가, 하나의 바람직한 실시예에서, 식별자의 미리 형성된 서브세트(ID)는 공지된 객체들, 특정 용도, 및 바람직하게 수행될수있는 다른 특정 기능들을 위하여 예약될 수 있다.Each object is associated with an object identifier selected by the particular storage device 110-112 and returned to the requester 116-120 in response to a command to form the object. The identifier is preferably an unspecified integer of a particular length. In a preferred embodiment, the length of the identifier may be the default for the size specified by the particular storage device 110-112 or set as a device attribute. In addition, in one preferred embodiment, a preformed subset of identifiers (ID) may be reserved for known objects, for specific uses, and for other specific functions that may be preferably performed.
도 6은 저장 매체가 항상 특정 객체 ID를 가지는 잘 공지된 다수의 객체를 포함하는 것을 도시한다. 몇몇 경우, 상기 잘 공지된 객체는 모든 장치 또는 모든 파티션에 존재한다.FIG. 6 shows that a storage medium includes a number of well known objects that always have a particular object ID. In some cases, such well known objects exist on every device or every partition.
예를들어, 하나의 잘 공지된 객체는 각각의 장치(110-112)에 의해 유지되는 속성을 포함하고, 장치 그 자체 또는 장치상 모든 객체에 관련된 장치 제어 객체(154)이다.  상기 속성은 상기 응용예에서 이하 기술되는 Set_Attribute 메소드에 의해 유지된다.  바람직한 실시예에서, 하나의 장치(110-112)에는 하나의 장치 제어 객체(154)가 있다.For example, one well known object is a
테이블 1은 한세트의 바람직한 장치 제어 객체(DCO) 속성을 도시한다.Table 1 shows a set of preferred device control object (DCO) attributes.
테이블 1Table 1
하나의 바람직한 실시예에서, DCO 속성은 모노토닉(monotonic) 카운터인 클럭, 암호화 키를 포함하는 마스터 키, 또는 장치상 다른 모든 키를 제어하는 다른 마스터 키, 및 파티션 키를 제어하고 파티션을 락킹(locking)하기 위하여 사용될수있는 장치 키를 포함한다. 상기 속성은 소정 보호 레벨을 식별하고 관련된 보안 메소드를 가지는 보호 레벨 키, 상기 장치상 다수의 파티션을 형성하는 파티션 카운트, 및 특정 장치상 모든 객체가 액세스되는 것과 관련된 특성을 형성하는 객체 속성을 포함한다.In one preferred embodiment, the DCO attribute controls a partition that is a monotonic counter, a clock, a master key containing an encryption key, or another master key controlling all other keys on the device, and a partition key (locking partitions) Contains device keys that can be used for locking. The attribute includes a protection level key that identifies a given level of protection and has an associated security method, a partition count that forms multiple partitions on the device, and an object property that forms a property associated with all objects on a particular device being accessed. .
다수의 저장 장치(110-112)를 채우는 객체를 적당하게 관리하기 위하여, 각각의 저장 장치(110-112)는 바람직하게 다양한 장치(110-112) 사이 연관성을 형성하는 장치 관련 객체(156)를 포함한다.  예를들어, 저장 장치(110 및 112)가 미러된 쌍의 장치이거나, 어레이된 세트의 부재인 경우, 장치 연관 객체(156)는 이런 관계를 식별한다.  테이블 2는 장치 관련 객체(156)의 속성을 도시한다.In order to properly manage objects that fill multiple storage devices 110-112, each storage device 110-112 preferably provides device related
테이블 2Table 2
상기 속성은 각각 주어진 세트의 연관 장치에 대한 유일한 식별자인 연관 식별자를 바람직하게 포함한다. 상기 속성은 상기 장치 사이의 연관 종류(예를들어, 미러 쌍, RAID 5 등)를 형성하는 연관 형태를 포함한다. 상기 속성은 상기된 연관 부재인 장치(110-112)를 간단히 식별하는 맴버쉽(membership) 목록을 포함한다.The attribute preferably includes an association identifier, each of which is a unique identifier for a given set of association devices. The attribute includes an association type that forms the type of association between the devices (eg, mirror pair, RAID 5, etc.). The attribute includes a membership list that simply identifies the devices 110-112 that are the above-mentioned associated members.
저장 장치(110-112)상 각각의 파티션(158, 160 및 162)은 바람직하게 단일 파티션 특성을 포함하는 파티션 제어 객체(164)를 포함한다.  객체(164)는 상기 파티션뿐 아니라 파티션의 모든 객체에 포함된 임의의 객체 속성을 기술한다.  각각의 장치(110-112)는 바람직하게 장치상에 형성된 각각의 파티션에 대한 하나의 파티션 제어 객체(164)를 포함한다.  도 6은 각각의 파티션내에 저장된 파티션 제어 객체를 도시하지만, 이런 필요성은 상기 경우가 아니다.  파티션 제어 객체는 대신 파티션상 상기 평면 파일 시스템에 저장될 수 있다.Each
테이블 3은 파티션 제어 객체(168)에 포함된 속성 수를 나타낸다.Table 3 shows the number of attributes included in
테이블 3Table 3
상기 속성은 전체 파티션을 위한 암호화 키를 형성하고 현재 작업 키를 세팅하기 위하여 사용될수있는 마스터 키를 포함한다.  상기 속성은 명령 및 데이터 메시지의 암호화 및 복호화를 위하여 사용된 현재 작업 키 및 이전 작업 키를 포함한다.  파티션 제어 객체(164)는 지정된 파티션에서 모든 객체와 연관된 객체 속성을 포함한다.The attribute contains a master key that can be used to form an encryption key for the entire partition and to set the current working key. The attribute includes the current work key and the previous work key used for encrypting and decrypting command and data messages.
도 6은 하나의 파티션이 저장 매체상에 형성될때 제어 컴포넌트(150)에 의해 만들어진 객체인 파티션 객체 목록(166)을 포함한다.  파티션 객체 목록(166)은 모든 파티션에서 동일 식별자를 가지며 저장 매체상에서 실행된 객체 파일 시스템을 네비케이팅하기 위한 시발점을 구성한다.  테이블 5는 각각의 파티션 객체 리스트와 연관된 속성 목록을 도시한다.6 includes a
테이블 4Table 4
테이블 4에 도시된 바와같이, 객체는 바람직하게 파티션에 남아있는 모든 객체, 및 각각의 객체에 할당된 사용자 공간 볼륨에 대한 객체 식별자(또는 객체 ID)의 목록을 포함한다.  객체 식별자는 리퀘스터에 의해 객체를 개방, 판독, 기입 및 폐쇄하기 위하여 사용된다.  게다가, 사용자는 파티션 객체 목록에서 사용자 데이터 속성을 세팅함으로써 각각의 객체 ID에 대한 사용자 공간을 할당한다.  파티션 객체 목록(166) 다음, 각각의 파티션은 다수의 데이터 객체(168)를 포함한다.  각각의 데이터 객체(168)는 바람직하게 테이블 1에서 설정된 다수의 속성을 포함하고, 데이터 저장 시스템의 특정 실행에 따라 부가적인 속성을 포함할 수 있다.As shown in Table 4, the object preferably includes a list of all objects remaining in the partition, and an object identifier (or object ID) for the user space volume assigned to each object. The object identifier is used by the requester to open, read, write, and close the object. In addition, the user allocates user space for each object ID by setting user data attributes in the partition object list. Next to the
객체 지향 저장 장치(110-112)는 리퀘스터(116-120)에게 데이터를 제공하거나, 데이터를 저장하기 위한 요청를 지원한다.  게다가, 저장 장치(110-112)는 종래 기술 아키텍쳐에서 운영 시스템에서 다른 컴포넌트에 행해진 다른 기능에 대한 책임을 나타낸다.  장치(110-112)상 객체와 관련된 속성 크기 뿐 아니라 공간 관리는 장치(110-112) 그 자체에 의해 수행된다.  상기 기능은 각각의 저장 장치(110-112)에서 제어 컴포넌트(150)에 의해 실행된 인터페이스(128)에 의해 지원된 메소드를 호출함으로써 바람직하게 수행된다.  호출될수있는 다수의 메소드들은 본 명세서에서 추후에 상세히 논의된다.  그러나, 상기 메소드의 이해를 보다 용이하게 하기 위하여, 도 7a 및 7b는 본 발명의 일측면에 따른 객체 지향 파일 시스템의 네비게이션을 도시하는 흐름도를 제공한다.  도 7a 및 7b의 논의는 하기에 설정된 각각의 메소드의 상세한 논의전에 본 발명의 이해를 촉진할 것이다.Object-oriented storage devices 110-112 provide data to requesters 116-120, or support requests to store data. In addition, storage devices 110-112 represent the responsibility for other functions performed on other components in the operating system in the prior art architecture. Space management as well as attribute sizes associated with objects on devices 110-112 are performed by device 110-112 itself. The function is preferably performed by invoking a method supported by the interface 128 executed by the
블록 170로부터 204로 연장하는 도 7a 및 7b는 저장장치(110-112)의 하나에서 특정 파티션의 객체를 찾는 것을 도시한다.  첫째, 리퀘스터(116)는 장치 제어 객체(154)의 장치 속성을 얻는다.  이것은 블록(172)으로 표시된다.  Get_Dco_Attribute 메소드의 호출은 제어 컴포넌트(150)가 장치 제어 객체(154)에 저장된 속성을 리턴하게 한다.  이것은 블록(174)에 의해 지시된다.  그 다음 리퀘스터(116)는 장치 제어 객체(154)로부터 리턴된 속성을 바탕으로 주어진 파티션을 선택한다.  이것은 블록(176)에 의해 지시된다.7A and 7B extending from
일단 파티션이 리퀘스터(116)에 의해 선택되면, 그 다음 리퀘스터(116)는 블록(173)에 의해 지시된 바와같이 Get_DAO_Attribute을 호출한다.  이것은 제어 컴포넌트(150)가 저장 매체(110)상에 저장된 장치 연관 객체(156)로부터 속성을 얻게한다.  그 다음 제어 컴포넌트(150)는 블록(175)에 의해 지시된 바와같이 리퀘스터(116)에 장치 관련 속성을 리턴한다.  장치 관련 속성 및 장치 제어 속성을 바탕으로, 리퀘스터(116)는 문의하기 위하여 한 파티션을 선택한다.  이것은 블록(176)에 의해 지시된다.Once the partition is selected by
그 다음 리퀘스터(116)는 제어 컴포넌트(158)가 리퀘스터(116)에 의해 문의될 특정 파티션과 연관된 파티션 제어 객체(164)에서 발견된 속성을 얻도록 Get_PCO_Attribute 메소드를 호출한다.  이것은 제어 컴포넌트(150)가 파티션 제어 객체 속성을 획득하고 리턴하도록 한다.  이것은 블록(178 및 180)으로 지시된다.  만약 선택된 파티션의 객체가 리퀘스터에게 관심 객체가 아니면, 리퀘스터는 블록(182 및 176)에 지시된 바와같이 다른 파티션을 선택한다.
그러나, 리퀘스터(116)가 관심 파티션을 발견했다는 것을 가정하면, 리퀘스터는 블록(184)에 의해 지시된 바와같이 선택된 파티션에 대한 Get_POL_Attribute 호출한다.  이 메소드는 제어 컴포넌트(150)가 선택된 파티션과 연관된 파티션 객체 목록(150)으로부터 속성을 얻게한다.  그 다음 이들 속성은 블록(186)에 지시된 바와같이 리퀘스터(116)에 제공된다.However, assuming that
다음, 리퀘스터(116)는 Open_Read_Only_POL 메소드를 호출한다.  이것은 블록(188)에 의해 지시된다.  하기에 더 상세히 논의된 바와같이, 제어 컴포넌트(150)는 선택된 파티션과 관련된 파티션 객체 목록(166)에 저장된 데이터를 얻지만, 데이터가 변경되거나 확장될수없도록 데이터가 판독만을 위하여 제공되는 것을 가리키기 위하여 상기 객체의 속성을 변형한다.  이것은 블록(190)으로 나타낸다.Next,
그 다음 리퀘스터는 제어 컴포넌트(150)가 선택된 파티션의 객체 목록을 리퀘스터(116)에 의해 고찰하게 하는 Read_POL 메소드를 호출한다.  이것은 블록(194)에 의해 지시된다.  선택된 파티션에서 목표된 객체를 선택한후, 리퀘스터(116)는 제어 컴포넌트(150)가 파티션 객체 목록을 폐쇄하게 하는 close_POL 메소드를 호출한다.  이것은 블록(196)에 의해 지시된다.The requester then invokes a Read_POL method that causes the
목표된 객체 또는 개체들에 대한 객체 ID를 발견한후, 리퀘스터(114)는 Open_xxx_Objectx 메소드를 호출한다.  xxx는 리퀘스터에 의해 목표된 특정 데이터 조정을 바탕으로 리퀘스터에 의해 호출된 특정 개방 메소드를 나타낸다.  Objectx는 리퀘스터에 의해 조종되거나 액세스될 객체를 식별하는 파티션 객체 목록으로부터의 객체 ID를 나타낸다.  예를들어 xxx 설계는 Open_Updat 동작, 또는 Open_Read_Only 동작을 나타낼수있다.  이들은 하기에 논의되고 이 단계는 블록(198)로 지시된다.After finding the object ID for the target object or objects, requester 114 calls the Open_xxx_Objectx method. xxx represents a specific open method called by the requester based on the specific data manipulation targeted by the requester. Objectx represents the object ID from the list of partition objects that identify the object to be manipulated or accessed by the requester. For example, a xxx design might represent an Open_Updat action, or an Open_Read_Only action. These are discussed below and this step is indicated by
그 다음 리퀘스터는 제어 컴포넌트(150)에 의해 리턴된 객체의 목표된 조종을 수행한다.  객체를 조종하기 위하여 사용될수있는 다양한 메소드는 하기에 보다 상세히 논의된다.  이것은 블록(200)에 의해 지시된다.The requester then performs the desired manipulation of the object returned by the
최종적으로, 원하는 객체 조종 또는 액세스가 리퀘스터에 의해 완료되었으면, 리퀘스터(116)는 하기에 상세히 기술되는 Close_Objectx 메소드를 호출하고, 리퀘스터(116)에 의해 액세스된 객체를 폐쇄하도록 동작한다.Finally, once the desired object manipulation or access has been completed by the requester,
도 8-24는 장치(110) 같은 객체 지향 저장 장치상에 저장된 객체의 목표된 기능 및 목표된 조정을 수용하기 위하여 리퀘스터에 의해 호출될수있는 여러 예시적인 메소드를 도시한 흐름도이다.8-24 are flow diagrams illustrating various exemplary methods that may be invoked by a requester to accommodate a desired function and a desired adjustment of an object stored on an object oriented storage device, such as
도 8은 Open_Create_Object 메소드를 도시하는 흐름도이다.  리퀘스터(116)가 블록(208)에서 지시된 바와 같이 이런 메소드를 호출하면, 제어 컴포넌트(150)는 객체가 생성되는 특정 파티션과 연관된 파티션 객체 목록에서 새로운 객체 ID를 생성하고 상기 객체 ID를 진입시킨다.  이것은 블록(210)으로 지시된다.  그 다음 제어 컴포넌트(150)는 객체와 연관된 블록 수를 할당함으로써, 및 객체 생성 시간을 가리키며 테이블 1에 기술되고 상기 객체와 연관된 다른 속성을 세팅하기 위하여 객체 속성을 변경함으로써 새로운 객체를 생성한다.  이것은 블록(212)으로 지시된다.  다음, 제어 컴포넌트(150)는 방금 생성된 객체의 새로운 ID와 함께 요청 상태를 리턴한다.  이것은 블록(214)로 지시된다.8 is a flowchart illustrating an Open_Create_Object method. When
객체를 간단히 생성하는 것외에, 리퀘스터(116)는 다수의 옵션을 지정할 수 있다.  예를들어, 하나의 바람직한 실시예에서 리퀘스터(116)는 공간이 특정 최소 크기의 유니트에 할당되는 것을 가리키고, 충돌 특성(UNIX-형 시스템에서의 기입 같은)을 설정하기 위하여, 객체가 보호된 패스워드인지, 객체가 암호화되었는지, 임의의 품질 서비스 시작인지(예를들어, 객체가 백업되는지), 락(lock) 특성인지(예를들어, 객체가 객체 락, 및 파티션 및 장치 락 같은 임의의 다른 락에 의해 락킹되는지), 액세스 제어 버젼인지, 미러 또는 다른 백업 지원인지(모든 업데이트가 다른 객체에 미러되거나, 지정된 다른 방식으로 백업되게 하는)를 지정할 수 있다.In addition to simply creating an object,
리퀘스터(116)가 이런 메소드를 호출하기 위하여 제어 컴포넌트(150)에 제공하는 특정 정보는 보안을 위하여 상기 정보를 요청하는 시스템에서 허가 정보, 객체가 생성될 장치의 파티션, 및 상기된 동작중 임의의 것을 포함한다.  응답하여, 제어 컴포넌트(150)는 하나의 도시적인 실시예에서, 새로운 객체의 ID에 따라 장치상에서 이용할수있는 용량, 요청 상태를 리턴한다.The specific information that requester 116 provides to control
이 메소드의 특정 실시예는 객체와 연관된 모든 데이터를 포함하도록 호출될수있다. 상기 경우, 하나의 메소드가 객체를 생성하고, 객체에 기입하고, 객체를 폐쇄하도록 호출될수있다.Certain embodiments of this method may be called to include all data associated with the object. In that case, one method can be called to create the object, write to the object, and close the object.
도 9는 Open_Update_Objectx 메소드를 도시하는 흐름도이다.  리퀘스터(116)가 블록(220)에 의해 지시된 바와같이 이 메소드를 호출할때, 이것은 리퀘스터(116)가 특정 객체를 판독하고 기입할수있게 한다.  이것은 객체의 길이를 연장하기 위하여 제공한다.  상기 메소드가 호출될때, 제어 컴포넌트(150)는 객체가 사용중인 것을 나타내는 특정 객체의 속성을 세팅한다.  리퀘스터(116)는 허가 정보, 객체를 포함하는 파티션 ID, 액세스될 객체의 식별자, 취해질 활동 형태(업데이트 또는 기입) 및 임의의 전술한 옵션을 제공한다.  응답하여, 제어 컴포넌트(150)는 리퀘스터(116)에게 이용할 수 있는 나머지 용량에 따라 리퀘스터의 상태 및 특정 객체의 길이를 리턴한다.9 is a flowchart illustrating an Open_Update_Objectx method. When requester 116 calls this method as indicated by
도 10은 Write_Object 메소드를 도시하는 흐름도이다.  리퀘스터(116)가 블록(242)에 의해 지시된 바와같이 이 메소드를 호출할때, 이것은 제어 컴포넌트(150)가 지정된 위치에서 설계된 객체 블록에 지정된 수가 기입되게 한다.10 is a flowchart illustrating a Write_Object method. When requester 116 calls this method as indicated by
기입 메소드는 다른 메소드가 호출되게 할수있다. 예를들어, 만약 페리티 지원이 액세스될 장치(110-112)를 위하여 호출되면, 기입은 기입될 데이터상에서 익스클루시브 Or 동작을 수행하는 익스클루시브 Or 메소드, 및 이미 지정된 하나 이상의 페리티 장치에 기입될 페리티 데이터를 자동적으로 호출할 수 있다.The write method can cause other methods to be called. For example, if parity support is invoked for the device 110-112 to be accessed, the write is an Exclusive Or method that performs an Exclusive Or operation on the data to be written, and one or more parity devices already specified. You can automatically call the parity data to be filled in.
이러한 메소드를 호출하기 위하여, 리퀘스터(116)는 허가 정보, 객체 식별자, 파티션 ID, 객체내에 기입될 블록의 시작 위치, 객체에 기입될 블록의 수, 옵션 정보, 및 기입될 데이터를 제공한다.  일단 이 메소드가 호출되면, 제어 컴포넌트(150)는 제공된 특정 데이터로 특정 객체를 변형한다.  이것은 블록(244)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 객체의 길이 같은 특정 객체의 필요한 속성, 객체 등과 관련된 시간 스탬프를 변형한다.  이것은 블록(246)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 필요한 경우 파티션 객체 목록 같은 다른 객체의 필요한 속성을 변형한다.  이것은 블록(248)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 특정 리퀘스터에 대한 요청 상태를 리턴한다.  이것은 블록(250)에 의해 지시된다.To invoke this method,
도 11은 Open_Read_Only_Objectx 메소드를 도시하는 흐름도이다.  이 메소드가 호출될때, 제어 컴포넌트(150)는 리퀘스터(116)가 판독 전용 목적을 위하여 지정된 객체에 액세스하게 한다.  따라서, 이 객체가 블록(230)에 의해 지시된 바와같이 호출될때, 리퀘스터는 허가 정보, 파티션 ID, 객체 ID, 및 옵션 정보를 제공한다.  그 다음 제어 컴포넌트(150)는 객체가 사용중인 것을 나타내는 특정 객체의 속성을 세팅한다.  이것은 블록(232)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 객체가 리퀘스터에 의해 기입될수없는 것을 나타내는 객체의 판독 전용 속성을 설정한다.  이것은 블록(234)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 요청 상태 및 지정된 객체의 길이를 리턴한다.  이것은 블록(236)으로 지시된다.11 is a flowchart illustrating an Open_Read_Only_Objectx method. When this method is called, the
도 12는 Read_Objectx 메소드를 도시하는 흐름도이다.  이 메소드는 장치(110)가 지정된 객체로부터 데이터를 리턴하도록 리퀘스터(116)가 요청할때 리퀘스터(116)에 의해 호출된다.  리퀘스터는 허가 정보, 객체 ID, 파티션 ID, 판독될 블록의 시작 위치, 판독될 다수의 블록, 및 임의의 다른 목표된 옵션 정보를 제공한다.  응답하여, 제어 컴포넌트(150)는 요청 상태, 리턴되는 데이터 길이, 및 상기 메소드에 응답하여 리턴되는 실제 데이터를 리턴한다.  이것은 블록(256 및 258)로 지시된다.12 is a flow chart illustrating a Read_Objectx method. This method is called by
도 13은 Close_Objectx 메소드를 도시하는 흐름도이다.  이 메소드가 블록(264)에 의해 지시된 바와같이 리퀘스터(116)에 의해 호출될때, 리퀘스터는 허가 정보, 객체 ID, 및 임의의 목표된 옵션 정보를 제공한다.  응답하여, 제어 컴포넌트(150)는 블록(266)에 의해 지시된 바와같이 특정 객체의 데이터를 변형한다.  게다가, 만약 저장 매체에 미리기입되지 않으면 객체에 대한 기입 결과로서 객체에 대한 임의의 변화는 이때 기입된다.  제어 컴포넌트(150)는 블록(268)에 의해 지시된 바와같이 객체 x의 속성을 업데이트한다.  예를들어, 만약 객체가 새롭게 생성된 객체이면, 속성은 생성 시간, 및 다른 요청된 속성 정보가 업데이트된다.  게다가, 상기 속성은 객체의 데이터가 변경되는 최종 시간을 가리키기 위하여 변경되고, 만약 변경되었다면 데이터 길이 및 속성은 객체가 주어진 리퀘스터에 의해 더 이상 사용되지 않는 것을 나타내는 제어 컴포넌트(150)에 의해 세팅된다.13 is a flowchart illustrating a Close_Objectx method. When this method is called by
제어 컴포넌트(150)는 객체와 연관되고 객체 속성에 반영되는 잔류 캐쉬 정보를 선택적으로 업데이트할 수 있다.  이것은 블록(270)으로 표시된다.  예를들어, 만약 데이터가 폐쇄된 객체에 대해 캐쉬되지 않거나, 더이상 캐쉬가 아닌 것을 저장 장치(110)에게 알리기 위하여 요청을 만드는 특정 리퀘스터(116)가 형성되면, 저장 장치(110)의 운영 시스템은 객체가 폐쇄되고 연속하여 다시 개방될 경우의 애플리케이션에 대하여 캐쉬 정보를 유지할 수 있다.  그러나, 저장 장치(110)는 간섭 충돌의 이벤트에서 통지될 필요가 있는 시스템(100)의 컴포넌트들의 트랙을 유지할 수 있는 동시에, 다른 리퀘스터 요청은 중간에 이러한 객체에 액세스해야 한다.  그 다음 제어 컴포넌트(150)는 블록(272)에 의해 지시된 바와같이 요청 상태를 리턴한다.The
도 4는 Remove_Objectx 메소드를 도시하는 흐름도이다.  블록(278)에 지시된 바와같이 이 메소드가 호출될때, 제어 컴포넌트(150)는 저장 매체로부터 객체를 삭제하기 위해 필요한 단계를 밟는다.  이것은 블록(280)으로 지시된다.  그 다음 제어 컴포넌트(150)는 특정 객체 ID가 이용 가능하지를 반영하기 위하여 객체가 삭제되는 파티션과 연관된 파티션 객체 목록을 변형한다.  이것은 블록(282)으로 지시된다.  그  다음 제어 컴포넌트(150)는 블록(284)에 의해 지시된 바와같이 요청 상태를 리턴한다.  이 메소드를 호출하기 위하여, 리퀘스터(116)는 허가 정보, 파티션 ID, 객체 ID, 및 임의의 목표된 옵션 정보를 제공한다.  그 다음 제어 컴포넌트(150)는 블록(284)에 의해 지시된 바와같이 요청 상태를 리턴한다.4 is a flowchart illustrating a Remove_Objectx method. When this method is called, as indicated in
도 15는 저장 장치(110)상 파티션을 생성하기 위하여 블록(290)에 의해 지시된 바와같이 리퀘스터에 의해 호출될수있는 Create_Partitionx 메소드를 도시하는 흐름도이다.  Create_Partitionx 메소드는 드라이브를 하나 이상의 지역으로 분할하는 동안, 저장 매체상 모든 공간이 평가될 필요가 없다는 것이 주의된다.  게다가, 파티션 지역은 디스크상 여러 존(zone)을 연결할 수 있다.FIG. 15 is a flow diagram illustrating a Create_Partitionx method that may be called by a requester as indicated by
일실시예에서, 이 메소드는 타일 배열로 파티션을 형성하기 위하여 사용되고, 상기 파티션은 장치상 저장 공간의 실제적인 파티션을 나타낸다. 이 배열은 데이터 어레이 같은 서비스 레벨에 의해 공간을 파티션하기 위하여 사용된다. 상기 파티션은 사이즈를 바꿀수 없지만, 제거 및 재생성될수있다.In one embodiment, this method is used to form partitions in an array of tiles, which represent actual partitions of storage space on the device. This arrangement is used to partition space by service level such as data array. The partition cannot be resized but can be removed and recreated.
본 발명의 다른 측면에 따라, 상기 파티션들은 서비스 레벨에 따른 공간을 관리하기 보다 오히려 논리적으로 객체들을 구성하기 위한 논리적 파티션으로서 사용된다. 이런 제 2 실시예에서, 파티션은 동적으로 사이즈가 변경될수있다.According to another aspect of the present invention, the partitions are used as logical partitions for logically organizing objects rather than managing space according to service level. In this second embodiment, the partition can be resized dynamically.
상기 메소드를 호출하기 위하여, 리퀘스터는 허가 정보, 임의의 목표된 옵션, 파티션 ID, 및 식별된 특정 부분에 할당될 공간을 식별하는 초기 공간 할당을 제공한다.  응답하여, 제어 컴포넌트(150)는 블록(292)으로 지시된 바와같은 특정 파티션을 위하여 저장 매체상에 공간을 할당한다.  그 다음 제어 컴포넌트(150)는 블록(294 및 296)에 의해 지시된 바와같이 파티션 제어 객체 및 신청 객체 목록을 형성한다.  상기된 바와같이, 파티션 객체 목록은 파티션시 객체를 네비게이팅하기 위하여 시작 지점으로 제거 및 사용될수없다.  그 다음 제어 컴포넌트(150)는 수행될 파티션을 도시하는 요청 상태 및 파티션 맵을 리턴한다.  이것은 블록(298)에 의해 지시된다.To invoke the method, the requester provides an initial space allocation that identifies the permission information, any desired option, partition ID, and the space to be allocated to the particular portion identified. In response,
도 16은 Remove_partitionx 메소드를 도시하는 흐름도이다.  이 메소드를 호출하기 위하여, 리퀘스터(116)는 허가 정보, 옵션 정보, 및 제거될 파티션을 식별하는 파티션 ID를 제공한다.  이것은 블록(304)으로 지시된다.  응답하여, 제어 컴포넌트(150)는 블록(306)으로 지시된 바와같은 파티션과 관련된 공간을 할당하지 않는다.  그 다음 제어 컴포넌트(150)는 삭제될 파티션과 연관된 파티션 객체 목록의 모든 객체를 제거하고, 파티션 객체를 삭제하고 파티션 제어 객체를 삭제한다.  이것은 블록(308, 310 및 312)로 지시된다.  그 다음 제어 컴포넌트(150)는 요청 상태를 및 파티션로 만들어진 변화를 도시하는 파티션 맵을 리턴한다.  이것은 블록(314)으로 나타낸다.16 is a flowchart illustrating a Remove_partitionx method. To call this method,
본 발명의 일측면에 따라, 데이터 관리 방법은 각각의 저장 장치(110-112)에 통신되어, 저장 장치는 관리 방법을 실행하기 위하여 서로 독립적으로 작용할 수 있다. 이것은 보다 작은 인간의 중재뿐 아니라, 보다 정밀하고 적당한 관리 제어를 유발하는 중요한 장점을 제공한다.In accordance with one aspect of the present invention, a data management method is communicated to each storage device 110-112, so that the storage devices can act independently of one another to execute the management method. This provides important advantages that lead to more precise and proper administrative control as well as smaller human interventions.
예를들어, 저장 데이터 장치(110-112)상 데이터는 각각의 주중에 바람직하게 백업될수있다. 통상적인 시스템은 주말의 한가한 기간동안 백업되어 시스템 유용성이 집무 주중동안 간섭되지 않는다. 그러나, 유용성의 시간대는 시스템 용량이 증가함과 동시에 점차적으로 줄어든다. 따라서, 데이터의 테라바이트를 백업하기에 충분히 길게 시스템을 방해하지 않는 시간을 찾는 문제점이 매우 어렵게된다.For example, data on storage data devices 110-112 may be preferably backed up during each week. Conventional systems are backed up during the free time of the weekend so system availability is not interrupted during the working week. However, the time window for usability decreases gradually as system capacity increases. Thus, the problem of finding a time that does not disturb the system long enough to back up terabytes of data becomes very difficult.
따라서, 본 발명의 일측면에 따라, 객체에 할당된 속성을 바탕으로 객체상에 작용함으로써, 객체 지향 저장 장치(110-112)는 객체가 수행되는 백업 동안 올바른 상태에 도달했을때마다 백업 기능을 알릴수있다. 또한, 모든 파일의 백업은 보다 긴 기간, 즉 다른 파일들이 데이터 보전에 영향을 미치지 않고 업데이트되는 동안에 걸쳐 분산될수있다.Thus, in accordance with one aspect of the present invention, by acting on an object based on attributes assigned to the object, object-oriented storage devices 110-112 perform a backup function whenever the object reaches a correct state during the backup being performed. Can inform In addition, backup of all files can be distributed over a longer period of time, ie, while other files are updated without affecting data integrity.
객체 지향 저장 장치(110-112)에 의한 작용을 호출할수있는 속성의 다른 예는 암호화, 압축, 버전닝(versioning) 및 페리티 중복을 포함한다. 이들 각각의 예에서, 저장 장치(110-112)는 바람직하게 특정 객체 또는 객체 세트에 관한 메소드를 알릴 필요가 있다. 그 다음 상기 장치 자체는 기능을 수행하거나 서비스를 제공하기 위하여 설계된 에이전트를 알린다.Other examples of attributes that can invoke operations by object-oriented storage devices 110-112 include encryption, compression, versioning, and parity redundancy. In each of these examples, storage 110-112 preferably needs to advertise methods related to a particular object or set of objects. The device itself then informs the agent designed to perform the function or provide the service.
예를들어, 압축 및 암호화화는 저장 장치(110-112) 자체에서 수행될수있다. 그러므로, 상기 장치에 통신될 필요가 있는 것은 압축 또는 암호화화가 객체를 위해 요청된다는 사실이다. 에이전트에 의해 수행되는 관리 기능에 대하여, 관리 기능 메소드는 저장 장치에 통신되어야 하는 것뿐 아니라, 기능을 수행하기 위한 에이전트를 식별해야 하므로, 에이전트는 기능을 수행할 시간일때 저장 장치에 의해 액세스될수있다.For example, compression and encryption can be performed on the storage device 110-112 itself. Therefore, what needs to be communicated to the device is the fact that compression or encryption is required for the object. For management functions performed by an agent, the management function methods not only need to be communicated to the storage device, but also must identify the agent to perform the function, so that the agent can be accessed by the storage device when it is time to perform the function. .
본 발명의 일측면에 따라, 결합은 동일한 속성 또는 의존성을 가지는 것들이 식별될수있도록 객체중에서 이루어진다.  예를들어, 데이터베이스가 6 파일 또는 객체를 포함한다고 가정하면, 상기 파일 또는 객체중 어느 것도 모든 것이 폐쇄될때까지 또는 모든 다른 상기 파일 또는 객체들이 의존하는 객체로서 설계된 하나의 파일 또는 객체가 폐쇄될때까지 백업될수없다.  파일 서버(114)는 객체 사이의 이런 종류의 관계를 관리하기 위하여 필요할 수 있다.  게다가, 본 발명은 어레이된 페리티 세트의 경우 처럼 상호 장치 의존성을 이룬다.  그룹의 나머지가 동일한 필수적인 특성을 가지도록 하나의 장치 또는 객체가 확신시키는 것을 가능하게 만듬으로써, 그룹의 관리는 보다 효율적이고 효과적이다.In accordance with one aspect of the present invention, the association is made among the objects such that those having the same attributes or dependencies can be identified. For example, suppose a database contains 6 files or objects, until either all of the files or objects are closed or until one file or object designed as an object upon which all the other files or objects depend is closed. It cannot be backed up.
도 17-24는 저장 장치상 객체에 의해 노출된 메소드를 호출함으로써 수행될수있는 관리 기능을 도시하는 흐름도이다.  상기 메소드를 호출하는 것은 제어 컴포넌트(150), 및/또는 관련 제어 컴포넌트가 호출된 메소드와 연관된 관리 기능을 수행하기 위하여 단계를 수행하도록 한다.17-24 are flow diagrams illustrating management functions that may be performed by invoking a method exposed by an object on a storage device. Invoking the method causes
도 17은 Export_Objectx 메소드를 도시하는 흐름도이다.  리퀘스터(116)는 허가 정보, 옵션 정보, 객체 ID, 타켓 장치 ID 및 타켓 파티션 ID를 제공함으로써 블록(320)에 의해 지시된 바와같이 이 메소드를 호출한다.  엑스포트(export) 메소드는 저장 장치(110-112)가 주어진 객체와 연관된 속성으로 표현된 룰(rule)을 바탕으로 하는 작용을 취하게 한다.  예를들어, 그것은 다른 장치에 객체의 백업 또는 지원 번역을 초기화하기 위하여 사용될수있다.17 is a flowchart showing an Export_Objectx method.
Export_Objectx 메소드가 호출될때, 제어 컴포넌트(150)는 블록(322)으로 지시된 바와같이 저장 매체로부터 특정 객체를 얻는다.  그 다음 제어 컴포넌트(150)는 리퀘스터(116)에 의해 지정된 타켓 장치에서 Open_Create 메소드를 호출한다.  이것은 블록(324)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 특정 객체의 데이터 및 속성을 지원하는 타켓 장치에서 기입 메소드를 호출한다.  이것은 블록(326)에 의해 지시된다.  그 다음 제어 컴포넌트(150)는 타켓 장치에 기입된후 타켓 장치상 객체를 폐쇄하는 타켓 장치에 폐쇄 메소드를 호출한다.  이것은 블록(328)에 의해 지시된다.  최종적으로, 제어 컴포넌트(150)는 타켓 장치에 기입되었던 객체의 새로운 객체 ID에 따라 리퀘스터에 요청 상태를 리턴한다.  이것은 블록(330)에 의해 지시된다.When the Export_Objectx method is called,
제어 컴포넌트(150)에 의해 실행된 인터페이스(128)는 리퀘스터가 리뷰에 대한 객체 속성을 얻고, 객체 속성을 세팅하도록 하는 메소드를 지원한다.  도 18은 각각 대응하는 Get_Objectx_Attributes 및 Get_Objectx_Attributes 메소드를 도시하는 흐름도이다.The interface 128 executed by the
일단 블록(336)에 의해 지시된 바와같이 호출된 도 18에 도시된 메소드는 제어 컴포넌트(150)가 특정 객체에 대한 속성을 얻도록 한다.  도시적인 일실시예에서, 리퀘스터는 허가 정보, 객체 ID, 또는 객체 ID의 목록 및 옵션 정보를 제공한다.  그 다음 제어 컴포넌트(150)는 리퀘스터에 대한 요청 상태에 따라 객체 ID와 연관된 속성, 또는 객체 ID 목록을 얻고, 상기 속성을 리턴한다.  이것은 블록(338)에 의해 지시된다.The method shown in FIG. 18, once invoked as indicated by
도 19에 도시된 Get_Objectx_Attributes 메소드는 블록(344)에 의해 지시된 바와같이 허가 정보, 객체 ID, 및 제어 컴포넌트(150)에 대한 옵션 정보를 제공하는 리퀘스터에 의해 호출될수있다.  그 다음 제어 컴포넌트(150)는 리퀘스터에 의해 제공된 정보를 가지는 특정 객체의 속성을 변형하고, 변형된 특정 객체의 속성에 따라 요청 상태를 리턴한다.  이것은 블록(346 및 348)에 의해 지시된다.The Get_Objectx_Attributes method shown in FIG. 19 may be invoked by the requester providing authorization information, object ID, and optional information for the
본 발명의 다른 측면에 따라, 객체가 로킹될수있어서, 상기 객체들은 객체상에 배치된 락(lock)을 가지는 서버에 의해 객체들이 언로킹되면 액세스될수있다. 하나의 도시적인 실시예에서, 객체들은 객체 레벨, 파티션 레벨, 또는 장치 레벨에 락킹될수있다. 락 메카니즘은 상호 서버 액세스 분해능을 위하여 제공한다. 하나의 바람직한 실시예에서 상기 락은 동시 발생 업데이트을 계획하고 유지 기능 동안 액세스를 방지하기 위하여 사용된다. 도 20, 21 및 22는 Get_Attribute 및 Set_Attribute 메소드의 예로서 고려될수있는 락 메소드를 도시하는 흐름도이다. 그러나, 부가적인 설명은 상기 특정 예를 위하여 제공되어, 리퀘스터 군 사이의 데이터를 공유하는데 사용될수있다.According to another aspect of the invention, an object can be locked so that the objects can be accessed when the objects are unlocked by a server having a lock placed on the object. In one illustrative embodiment, objects may be locked at the object level, partition level, or device level. The lock mechanism provides for mutual server access resolution. In one preferred embodiment the lock is used to schedule concurrent updates and to prevent access during the maintenance function. 20, 21 and 22 are flow diagrams illustrating lock methods that may be considered as examples of Get_Attribute and Set_Attribute methods. However, additional descriptions are provided for this particular example, and can be used to share data between requester groups.
도 20은 Read_Lock_Attributes 메소드를 도시하는 흐름도이다.  이 메소드는 블록(354)에 의해 도시된 바와같이 허가 정보, 객체, 파티션 또는 장치 ID, 락 파라미터, 및 컴포넌트(150)를 제어하기 위한 리퀘스터(116)으로부터의 임의의 옵션 정보를 제공함으로써 호출될수있다.  응답하여, 제어 컴포넌트(150)는 특정 객체가 설정된 락을 가지는지를 결정한다.  그 다음 제어 컴포넌트(150)는 락을 가지는 리퀘스터의 요청 상태를 리턴한다.  이것은 블록(356)에 의해 지시된다.20 is a flowchart illustrating a Read_Lock_Attributes method. This method is called by providing authorization information, an object, partition or device ID, lock parameters, and any optional information from
도 21은 Set_Lock_Attributes 메소드를 도시하는 흐름도이다.  이 메소드는 블록(362)에 의해 지시된 바와같이, 허가 정보, 객체, 파티션 또는 장치 식별자 정보, 락 파라미터 및 옵션 정보를 제공함으로써 호출될수있다.  이 메소드가 호출될때, 제어 컴포넌트(150)는 식별된 객체와 연관된 락을 검사한다.  이것은 블록(364)에 의해 지시된다.  그 다음 제어 컴포넌트는 리퀘스터의 식별을 사용하여 락킹 또는 언락킹 동작을 수행하기 위하여 시도한다.  이것은 블록(366)에 의해 지시된다.  만약 동작을 요청하는 리퀘스터가 락의 소유자이면, 동작이 수행될 것이다.  만약 그렇지 않으면, 동작은 수행되지 않을 것이다.  임의의 경우에, 제어 컴포넌트(150)는 락을 소유하는 서버의 ID를 따라 요청 상태를 리턴한다.  이것은 블록(368)에 의해 지시된다.21 is a flowchart illustrating a Set_Lock_Attributes method. This method may be invoked by providing authorization information, object, partition or device identifier information, lock parameters and option information, as indicated by
도 22는 Reset_Lock_Attribute 메소드를 도시하는 흐름도이다.  이 기능은 락을 소유하는 서버가 더이상 기능하지 않는 경우 락을 리셋하기 위하여 사용된다.  상기 메소드는 블록(374)에 의해 도시된 바와같이 허가 정보, 객체, 파티션 또는 장치 식별자 정보, 락 파라미터, 및 임의의 목표된 옵션 정보를 제공함으로써 호출될수있다.  응답하여, 제어 컴포넌트(150)는 블록(376)에 의해 지시된 바와같이 특정 객체, 파티션 또는 장치를 락킹하고 락을 소유하는 서버의 식별에 따라 요청 상태를 리턴한다.  이것은 블록(378)에 의해 지시된다.22 is a flowchart illustrating a Reset_Lock_Attribute method. This function is used to reset the lock if the server that owns the lock is no longer functioning. The method may be invoked by providing authorization information, object, partition or device identifier information, lock parameters, and any desired option information as shown by
도 23 및 도 24는 Get 및 Set_Device_Association 메소드를 도시하는 흐름도이다. 이들 메소드는 장치(110-112) 사이의 관계를 한정하거나 문의한다. 상기 관계의 한가지 실행은 하나의 저장 장치(110-112)가 제 1 세트 장치의 마스터로서 식별되고, 다른 저장 장치가 상기 세트의 수에 종속한다 것을 포함한다. 제 1 또는 마스터 세트는 세트 속성의 변화를 다른 부재에 알린다. 다른 부재는 만약 속성 세트가 제 1 또는 마스터 세트로부터 제공되지 않으면 속성 세팅을 거부한다. 저장 장치(110-112)가 이들 기능을 수행하도록 하기 위하여, 상기 저장 장치에는 자체 검색 능력이 제공된다. 이것은 상기 장치가 보다 큰 장치 그룹의 맴버쉽에 포함되는지를 결정하기 위하여 상기 장치가 자체적으로 검사되게 한다.23 and 24 are flowcharts showing Get and Set_Device_Association methods. These methods define or query the relationship between devices 110-112. One implementation of the relationship includes that one storage device 110-112 is identified as the master of the first set of devices and another storage device is dependent on the number of the set. The first or master set notifies the other member of the change in the set attribute. The other member rejects the attribute setting if no attribute set is provided from the first or master set. In order for the storage devices 110-112 to perform these functions, the storage device is provided with its own search capability. This allows the device to be checked on its own to determine if the device is included in the membership of a larger device group.
도 23에서, Get_Device_Associations 메소드가 도시된다.  이 메소드는 블록(384)에 의해 지시된 바와같이, 허가 정보 및 옵션 정보를 제공함으로써 호출될수있다.  응답하여, 제어 컴포넌트(150)는 요청 상태, 및 장치가 하나의 부재인 요청된 결합을 리턴한다.  이것은 블록(386)에 의해 지시된다.  도 24는 Set_Device_Associations 메소드를 도시하는 흐름도이다.  이 메소드는 블록(392)에 의해 지시된 바와같이 허가 정보, 옵션 정보, 및 상기 결합을 형성하는 부재 목록과 속성을 제공함으로써 호출될수있다.  응답하여, 제어 컴포넌트(150)는 블록(394)에 의해 지시된 바와같이 저장 매체상에 포함된 장치 결합 객체(156)를 변형한다.  장치 결합 객체는 리퀘스터에 의해 제공된 속성을 포함하고, 객체 속성이 최종적으로 변형될때를 도시하는 타임 스탬프를 포함하도록 변형된다.  제어 컴포넌트(150)는 블록(396)에 의해 지시된 바와같이 요청 상태를 리턴한다.In Fig. 23, the Get_Device_Associations method is shown. This method may be called by providing permission information and option information, as indicated by
상기된 허가 정보는 파일 서버(114)가 저장 장치(110-112)로부터 응답을 얻기 위하여 필요한 자격증을 제공하는 것을 리퀘스터(116-120)에 의해 제어함으로써 파일 서버(114)가 저장소에 게이트 액세스하게 한다.  또한 파일 서버(114)는 설치 보안 메소드를 지지하는 I/O 요청만을 받아들여야 하는 저장 장치(110-112)에게 명령한다.  허가 보안 능력을 바탕으로 하는 키는 Set_Object_Attributes 메소드에 의해 저장 장치(110-112)와 통신된다.  만약 적당한 레벨의 보안성이 저장 장치(110-112)를 위하여 세팅되면, 저장 장치는 보안 컴플라이언스를 위한 모든 I/O 명령을 검사하기 위하여구성될수있다.  그러나, 상기된 바와같이, 몇몇 응용은 보안을 필요로하지 않는다.  게다가, 만약 특정 서버 클러스터가 다른 물리적 장치에 배치된 몇몇 장치를 가지면, 원격으로 배치된 장치와 통신하지만, 로컬 트래픽으로부터 통신하기 위한 보다 높은 레벨의 보안을 형성하는 것이 바람직하다.  이것은 원격으로 배치된 리퀘스터 또는 서버를 위해 보안을 이용하게 하지만, 로컬 리퀘스터 또는 서버에 대한 상기 보안 실행에 따른 성능 손실을 피한다.The permission information described above is controlled by the requester 116-120 that the
게다가, 각각의 저장 장치(110-112)는 스탬핑 보안 메시지 및 객체에 사용될 판독 가능한 모노토닉 증가 클럭을 포함한다.  하나의 도시적인 실시예에서, 다양한 장치에 대한 클럭은 시스템-와이드 베이시스상에 동기화된다.  다른 도시적인 실시예에서, 파일 서버(114)는 저장 장치로부터 저장 장치로 불일치 및 값을 수용한다.In addition, each storage device 110-112 includes a readable monotonic increment clock to be used for stamping security messages and objects. In one illustrative embodiment, clocks for various devices are synchronized on a system-wide basis. In another illustrative embodiment,
따라서, 본 발명은 통상적인 저장 장치에 걸쳐 중요한 장점을 제공하는 디스크 드라이브 같은 객체 지향 저장 장치를 제공하는 것이 도시된다. 객체 지향 저장 장치는 클러스터 아키텍쳐를 크게 개선시킨다. 예를들어, 객체 지향 방식으로 데이터를 저장함으로써, 데이터는 저장 장치 그 자체에 의해 관리될수있다. 객체는 잔류 데이터의 충분한 지식을 저장 장치에 제공하여, 그 자체 공간을 관리하기 위한 책임이 있다는 것을 가정할 수 있다. 게다가, 데이터를 공유하는 것은 장치가 논리적 엔티티를 구성하는 것에 관한 정보를 가질때 보다 잘 제어될수있다. 예를들어, 만약 두개의 시스템이 블록 지향 장치상에 저장된 데이터를 공유하면, 모든 메타데이터 활동은 동시 액세스를 위하여 제어되어야 한다. 비교하여, 객체 지향 장치에서, 보다 많은 메타데이터 활동은 그것에 액세스하는 시스템에게 불분명하다. 따라서, 시스템은 사용자 데이터에 대한 액세스 충돌로 단지 그 자체에 관한 것만 필요하다. 게다가, 장치 그 자체에 의해 수행되는 공간 관리는 동시에 동일 저장 장치상 공간을 관리하기 위한 두개의 시스템으로부터 발생할수있는 임의의 충돌 또는 혼란을 제거한다.Accordingly, it is shown that the present invention provides an object oriented storage device, such as a disk drive, that offers significant advantages over conventional storage devices. Object-oriented storage greatly improves the cluster architecture. For example, by storing data in an object-oriented manner, the data can be managed by the storage device itself. The object may assume that it is responsible for managing its own space by providing the storage device with sufficient knowledge of the residual data. In addition, sharing data can be better controlled when the device has information about what constitutes a logical entity. For example, if two systems share data stored on a block oriented device, all metadata activity must be controlled for simultaneous access. In comparison, in object-oriented devices, more metadata activity is unclear to the system accessing it. Thus, the system only needs to be concerned about itself as an access conflict to the user data. In addition, the space management performed by the device itself eliminates any conflicts or confusion that may arise from two systems for managing space on the same storage device at the same time.
게다가, 이질적인 계산은 객체 추출에 의해 보다 쉽게 이루어진다. 객체 지향 장치는 운영 시스템이 번역할수있는 구성을 적어도 가지기 위한 능력을 제공한다.In addition, heterogeneous calculations are made easier by object extraction. Object-oriented devices provide the ability to at least have a configuration that the operating system can translate.
게다가, 클러스터된 시스템의 성능은 다수의 이유로 인해 객체 지향 저장 장치를 사용함으로써 향상된다. 예를들어, 메타데이터는 장치 그 자체에 꼭 필요하고, 임의의 수의 I/O 동작을 제거한다.In addition, the performance of clustered systems is improved by using object-oriented storage for a number of reasons. For example, metadata is necessary for the device itself and eliminates any number of I / O operations.
게다가, 상기 장치는 객체가 임의의 시간에 개방되거나 폐쇄되고, 보다 효과적으로 데이터를 캐쉬하기 위한 정보를 사용할수있다는 것을 알고있다. 프리페치(prefetch)는 장치가 판독되는 객체의 레이아웃을 알기 때문에 보다 효과적이다. 저장 장치는 추후 액세스 패턴을 효과적으로 결정할 수 있다. 장치에서 캐쉬는 액세스할 다중 시스템에 대해 메타데이터를 유지할 수 있다. 게다가, 장치는 보다 적당하게 데이터를 배치시키는 경우 같은 서비스 결정 품질에 참여할 수 있다. 장치는 저장소를 할당하기 위한 책임이 있으면 이것을 행할 수 있다. 비교하여, 대체로 운영 시스템은 디스크 드라이브상 존에 데이터를 할당할수없다. 따라서, 장치 그 자체에 이런 능력을 제공하는 것은 성능을 향상시킨다.In addition, the device knows that an object can be opened or closed at any time and can use the information to cache data more effectively. Prefetch is more effective because the device knows the layout of the object being read. The storage device can effectively determine the access pattern later. In the device, the cache can maintain metadata for multiple systems to access. In addition, the device may participate in the same quality of service decision when distributing data more appropriately. The device can do this if it is responsible for allocating storage. In comparison, operating systems usually cannot assign data to zones on disk drives. Thus, providing this capability to the device itself improves performance.
본 발명은 다수의 객체(124-126)로서 구성된 그 위에 저장된 데이터를 가지는 저장 매체(132)를 포함하는 저장 장치(112)를 제공하고, 상기 객체 각각은 객체의 특성을 나타내는 속성을 가진다.  제어 컴포넌트(150)는 저장 매체(132)에 결합되어 동작되고 객체(124-126)에 인터페이스(128)를 제공하도록 구성된다.  인터페이스는 객체(124-126)에 액세스하기 위하여 호출되는 (메소드 0 - 메소드 N)을 노출시킨다.The present invention provides a
바람직한 일실시예에서, 다수의 객체(124-126)는 데이터 저장 장치(110)의 특성을 나타내는 속성을 가지는 장치 제어 객체(154)를 포함한다.  다른 바람직한 실시예에서, 저장 매체는 다수의 파티션(158, 160, 162)으로 파티션되고, 각각의 파티션은 다수의 객체(124-126)를 포함한다.  다수의 객체는 다수의 파티션(158, 160 및 162)에 대응하는 다수의 파티션 제어 객체(164)를 포함하고, 각각의 파티션 제어 객체(164)는 대응하는 파티션의 특성을 나타내는 속성을 포함한다.  파티션 제어 객체(164)는 대응하는 파티션의 모든 객체에 속하는 특성을 포함할 수 있다.  다수의 파티션 목록 객체(166)는 다수의 파티션(158, 160 및 162)과 결합되고 데이터 식별, 관련된 파티션에 저장된 객체를 식별을 나타내는 속성을 포함한다.In one preferred embodiment, the plurality of objects 124-126 includes a
인터페이스(128)에 의해 노출된 메소드는 제어 컴포넌트가 특정 객체와 이미 연관된 식별 데이터를 릴리스(release)함으로써 저장 매체(132)로부터 특정 데이터를 삭제하도록 하는 제거 메소드를 포함한다.  상기 메소드는 호출될때 제어 컴포넌트(150)가 다수의 파티션으로 저장 매체(132)를 파티션하도록 하는 생성 파티션을 포함한다.  제거 파티션 메소드는 호출되고 제어 컴포넌트(150)가 저장 매체(132)로부터 특정 파티션을 제거하게 한다.The method exposed by interface 128 includes a remove method that allows the control component to delete specific data from
다른 실시예에서, 다수의 객체는 두개 이상의 데이터 저장 장치중에 결합을 나타내는 속성을 포함하는 장치 결합 객체(156)를 포함한다.  장치 결합 메소드가 호출되고 제어 컴포넌트(150)가 결합 속성에 액세스하게 한다.  장치 결합 메소드는 제어 컴포넌트(150)가 결합 속성을 얻고 리턴하게 하거나 결합 속성에 액세스하게 하기 위하여 사용될수있다.In another embodiment, the plurality of objects includes a
다른 실시예에서, 상기 메소드는 리퀘스터(116)에 의해 호출될때 저장 장치(110)상 객체에 대한 액세스를 리퀘스터(116)에게 제공하는 개방 메소드를 포함한다.In another embodiment, the method includes an open method that provides the requester 116 with access to an object on the
리퀘스터(116)에 의해 호출될때 개방 생성 메소드는 제어 컴포넌트(150)가 리퀘스터(116)에 의해 지정된 속성을 가지는 저장 매체(132)에 새로운 객체를 생성하게 한다.When invoked by
다른 실시예에서, 개방 업데이트 메소드는 리퀘스터(116)에 의해 호출될때, 제어 컴포넌트(150)가 리퀘스터(116)에 의해 구체화되는(specified) 방식으로 리퀘스터에 의해 식별된 객체를 변형하게 하도록 제공된다.  기입 메소드는 제어 컴포넌트(115)가 특정 객체에 데이터를 기입하게 하기 위하여 호출될수있고, 폐쇄 메소드는 제어 컴포넌트(150)가 특정 객체를 폐쇄하도록 호출할 수 있다.In another embodiment, the open update method causes the
다른 실시예에서, 엑스포트 객체 메소드는 제어 컴포넌트(150)가 특정 객체를 제 2 데이터 저장 장치(112)에 복사하도록 호출될수있다.  획득(get) 객체 속성 메소드 및 설정 객체 속성 메소드는 제어 컴포넌트(150)가 지정된 객체의 속성을 얻고 리턴하거나, 특정 객체의 속성을 설정하도록 호출될수있다.  락 메소드는 제어 컴포넌트(150)가 특정 객체의 락 특성에 액세스하도록 호출될수있다.In another embodiment, the export object method may be called to cause the
본 발명은 디스크 드라이브상에서 데이터를 저장하는 방법으로서 실행될수있다.  상기 방법은 객체로서 디스크상 정보를 저장하는 단계 및 상기에서 설정된 바와같이 다수의 메소드들을 호출함으로써 정보를 액세스하는 단계를 포함한다.  본 발명은 데이터 저장 장치와 관련하여 상기된 바와같이 배열된 하나 이상의 디스크 드라이브를 포함하는 데이터 저장 시스템으로서 실행된다.  본 발명은 데이터 저장 시스템에서 컴퓨터에 의해 실행될때, 컴퓨터가 객체의 특성을 나타내는 속성을 가지는 다수의 객체(124-126)로서 디스크(132)상에 데이터를 저장하게 하는 명령을 저장하는 컴퓨터 판독 가능 매체(제어 컴포넌트(150)의 메모리, 또는 디스크(132)중 하나, 또는 다른 컴퓨터 판독 가능 매체)로서 실행될수있다.  실행될때 명령은 컴퓨터가 인터페이스에 의해 노출된 기능을 호출함으로써 인터페이스를 통하여 객체로 디스크(132)상 객체에 액세스하게 한다.The present invention can be implemented as a method of storing data on a disk drive. The method includes storing the information on disk as an object and accessing the information by invoking a number of methods as set above. The invention is implemented as a data storage system comprising one or more disk drives arranged as described above in connection with a data storage device. The present invention is computer readable for storing instructions that, when executed by a computer in a data storage system, cause the computer to store data on
비록 본 발명의 다수의 특성 및 다양한 실시예가 상기 설명에서 본 발명의 다양한 실시예의 상세한 구조 및 기능과 함께 기술되었지만, 본 명세서는 단지 도시적이고 변화는 첨부된 청구범위에서 표현된 용어의 넓은 일반적인 의미에 의해 지시된 전체 범위에 의해 본 발명의 원리내에서 일부분의 구조 및 배열에 대해서 이루어질수있다. 예를들어, 특정 엘리먼트는 본 발명의 범위 및 사상으로부터 벗어나지 않고. 동일한 기능을 유지하는 동안 사용된 특정 인터페이스 메소드에 따라 변화할 수 있다.Although a number of features and various embodiments of the invention have been described in the foregoing description, along with the detailed structure and functionality of the various embodiments of the invention, the specification is illustrative only and variations are to be accorded the broad general meaning of the terms expressed in the appended claims. The full scope dictated by the invention can be made for the structure and arrangement of parts within the principles of the present invention. For example, certain elements may be made without departing from the scope and spirit of the invention. It can change depending on the specific interface method used while maintaining the same functionality.
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| US5473797P | 1997-08-11 | 1997-08-11 | |
| US60/054,737 | 1997-08-11 | ||
| US8183498P | 1998-04-15 | 1998-04-15 | |
| US60/081,834 | 1998-04-15 | ||
| PCT/US1998/016623WO1999008173A2 (en) | 1997-08-11 | 1998-08-10 | Object oriented data storage device | 
| Publication Number | Publication Date | 
|---|---|
| KR20010022801A KR20010022801A (en) | 2001-03-26 | 
| KR100602393B1true KR100602393B1 (en) | 2006-07-20 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| KR1020007001402AExpired - Fee RelatedKR100602393B1 (en) | 1997-08-11 | 1998-08-10 | Object-oriented data storage | 
| Country | Link | 
|---|---|
| JP (1) | JP2003517645A (en) | 
| KR (1) | KR100602393B1 (en) | 
| CN (1) | CN1266514A (en) | 
| DE (1) | DE19882605T1 (en) | 
| GB (1) | GB2345167B (en) | 
| WO (1) | WO1999008173A2 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| CN1267379A (en)* | 1997-08-15 | 2000-09-20 | 西加特技术有限公司 | Redundancy implementation on object oriented data storage device | 
| CN1158604C (en)* | 1997-08-28 | 2004-07-21 | 西加特技术有限责任公司 | Object reconstruction on object oriented data storage device | 
| US6725392B1 (en) | 1999-03-03 | 2004-04-20 | Adaptec, Inc. | Controller fault recovery system for a distributed file system | 
| US6742137B1 (en)* | 1999-08-17 | 2004-05-25 | Adaptec, Inc. | Object oriented fault tolerance | 
| US6823398B1 (en)* | 2000-03-31 | 2004-11-23 | Dphi Acquisitions, Inc. | File system management embedded in a storage device | 
| FI120638B (en)* | 2003-12-17 | 2009-12-31 | Nokia Corp | Protection system for data used by Java applications | 
| US7680864B2 (en) | 2004-03-02 | 2010-03-16 | Intel Corporation | Method and apparatus for managing access to stored objects based on retention policy | 
| US8225221B2 (en)* | 2004-04-12 | 2012-07-17 | Microsoft Corporation | Method and apparatus for constructing representations of objects and entities | 
| US7444464B2 (en) | 2004-11-08 | 2008-10-28 | Emc Corporation | Content addressed storage device configured to maintain content address mapping | 
| US8161013B2 (en) | 2004-11-08 | 2012-04-17 | Emc Corporation | Implementing application specific management policies on a content addressed storage device | 
| US8996466B2 (en) | 2008-12-01 | 2015-03-31 | Sap Se | Extend crud to support lifecyle management and business continuity | 
| US9256383B2 (en) | 2010-03-16 | 2016-02-09 | Amplidata Nv | Device driver for use in a data storage system | 
| US8386840B2 (en) | 2010-12-27 | 2013-02-26 | Amplidata Nv | Distributed object storage system | 
| EP2469413B1 (en) | 2010-12-27 | 2013-06-05 | Amplidata NV | A hierarchical, distributed object storage system | 
| CN111414330B (en)* | 2019-01-04 | 2024-03-22 | 阿里巴巴集团控股有限公司 | Data editing method and system, data processing device and storage medium | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| JP2711216B2 (en)* | 1993-01-26 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | System and method for managing objects | 
| US5613099A (en)* | 1993-02-17 | 1997-03-18 | International Business Machines Corporation | Persistent object storage system with modifiable group skeletal formats | 
| US5893107A (en)* | 1996-07-01 | 1999-04-06 | Microsoft Corporation | Method and system for uniformly accessing multiple directory services | 
| Publication number | Publication date | 
|---|---|
| WO1999008173A2 (en) | 1999-02-18 | 
| JP2003517645A (en) | 2003-05-27 | 
| KR20010022801A (en) | 2001-03-26 | 
| GB0001558D0 (en) | 2000-03-15 | 
| WO1999008173B1 (en) | 1999-11-04 | 
| GB2345167B (en) | 2002-08-21 | 
| WO1999008173A3 (en) | 1999-09-30 | 
| GB2345167A (en) | 2000-06-28 | 
| DE19882605T1 (en) | 2000-08-10 | 
| CN1266514A (en) | 2000-09-13 | 
| Publication | Publication Date | Title | 
|---|---|---|
| US6298401B1 (en) | Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media | |
| US6321358B1 (en) | Object reconstruction on object oriented data storage device | |
| US6704838B2 (en) | Hybrid data storage and reconstruction system and method for a data storage device | |
| KR100602393B1 (en) | Object-oriented data storage | |
| US7240057B2 (en) | System and method for implementing journaling in a multi-node environment | |
| CN100485678C (en) | Distributed object-based storage system storing virtual mappings in object attributes | |
| US8229897B2 (en) | Restoring a file to its proper storage tier in an information lifecycle management environment | |
| JP4310354B2 (en) | Replication facility | |
| US5390297A (en) | System for controlling the number of concurrent copies of a program in a network based on the number of available licenses | |
| JP2010533324A (en) | Mounting a file system to a clustered file system | |
| US20090112811A1 (en) | Exposing storage resources with differing capabilities | |
| US20080319996A1 (en) | Distributed Lock Manager For File System Objects In A Shared File System | |
| KR20020080458A (en) | A method for repartitioning physical sectors of a storage system with use of virtual disc drives, a data processing apparatus and a data storage apparatus | |
| Miller | A reference model for mass storage systems | |
| KR20010022942A (en) | Redundancy implementation on object oriented data storage device | |
| US7831642B1 (en) | Page cache management for a shared file | |
| US8095503B2 (en) | Allowing client systems to interpret higher-revision data structures in storage systems | |
| Guide | HPSS | |
| KR100601705B1 (en) | Method and device for sharing memory among applications | |
| JP3533113B2 (en) | Common resource management method and apparatus, and machine-readable recording medium recording program | |
| HK1028120A (en) | Object oriented data storage device | 
| Date | Code | Title | Description | 
|---|---|---|---|
| PA0105 | International application | St.27 status event code:A-0-1-A10-A15-nap-PA0105 | |
| N231 | Notification of change of applicant | ||
| PN2301 | Change of applicant | St.27 status event code:A-3-3-R10-R13-asn-PN2301 St.27 status event code:A-3-3-R10-R11-asn-PN2301 | |
| PG1501 | Laying open of application | St.27 status event code:A-1-1-Q10-Q12-nap-PG1501 | |
| A201 | Request for examination | ||
| P11-X000 | Amendment of application requested | St.27 status event code:A-2-2-P10-P11-nap-X000 | |
| P13-X000 | Application amended | St.27 status event code:A-2-2-P10-P13-nap-X000 | |
| PA0201 | Request for examination | St.27 status event code:A-1-2-D10-D11-exm-PA0201 | |
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection | St.27 status event code:A-1-2-D10-D21-exm-PE0902 | |
| T11-X000 | Administrative time limit extension requested | St.27 status event code:U-3-3-T10-T11-oth-X000 | |
| T11-X000 | Administrative time limit extension requested | St.27 status event code:U-3-3-T10-T11-oth-X000 | |
| T11-X000 | Administrative time limit extension requested | St.27 status event code:U-3-3-T10-T11-oth-X000 | |
| P11-X000 | Amendment of application requested | St.27 status event code:A-2-2-P10-P11-nap-X000 | |
| P13-X000 | Application amended | St.27 status event code:A-2-2-P10-P13-nap-X000 | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | St.27 status event code:A-1-2-D10-D22-exm-PE0701 | |
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment | St.27 status event code:A-2-4-F10-F11-exm-PR0701 | |
| PR1002 | Payment of registration fee | St.27 status event code:A-2-2-U10-U12-oth-PR1002 Fee payment year number:1 | |
| PG1601 | Publication of registration | St.27 status event code:A-4-4-Q10-Q13-nap-PG1601 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:4 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:5 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:6 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| FPAY | Annual fee payment | Payment date:20120625 Year of fee payment:7 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:7 | |
| LAPS | Lapse due to unpaid annual fee | ||
| PC1903 | Unpaid annual fee | St.27 status event code:A-4-4-U10-U13-oth-PC1903 Not in force date:20130712 Payment event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE | |
| PC1903 | Unpaid annual fee | St.27 status event code:N-4-6-H10-H13-oth-PC1903 Ip right cessation event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date:20130712 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| P22-X000 | Classification modified | St.27 status event code:A-4-4-P10-P22-nap-X000 | |
| P22-X000 | Classification modified | St.27 status event code:A-4-4-P10-P22-nap-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 |