KR102342564B1 - 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법 - Google Patents

파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법 Download PDF

Info

Publication number
KR102342564B1
KR102342564B1 KR1020150029682A KR20150029682A KR102342564B1 KR 102342564 B1 KR102342564 B1 KR 102342564B1 KR 1020150029682 A KR1020150029682 A KR 1020150029682A KR 20150029682 A KR20150029682 A KR 20150029682A KR 102342564 B1 KR102342564 B1 KR 102342564B1
Authority
KR
South Korea
Prior art keywords
inode
inodes
stored
entry
deletion
Prior art date
Application number
KR1020150029682A
Other languages
English (en)
Other versions
KR20160107384A (ko
Inventor
이상민
김영균
김홍연
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150029682A priority Critical patent/KR102342564B1/ko
Priority to US15/057,312 priority patent/US10191909B2/en
Publication of KR20160107384A publication Critical patent/KR20160107384A/ko
Application granted granted Critical
Publication of KR102342564B1 publication Critical patent/KR102342564B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치는, 아이노드들이 저장될 수 있는 가용 아이노드 풀, 외부로부터의 파일 시스템 생성 요청에 응답하여 아이노드 할당 요청 신호를 생성하는 파일 시스템 객체 생성 처리기, 상기 아이노드 할당 요청 신호에 응답하여 상기 가용 아이노드 풀에 저장된 아이노드들 중 적어도 하나를 할당하는 아이노드 할당 처리기, 외부로부터의 파일 시스템 삭제 요청에 응답하여 아이노드 해제 요청 신호를 생성하는 파일 시스템 객체 삭제 처리기, 상기 파일 시스템 삭제 요청에 대응하는 삭제 요청된 아이노드를 모으는 아이노드 삭제 쓰레드 및 상기 아이노드 삭제 쓰레드로부터의 상기 삭제 요청된 아이노드를 해제하는 아이노드 해제 처리기를 포함하고, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수 이하로 제한되고, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 상기 최대 아이노드 개수보다 작은 경우, 상기 삭제 요청된 아이노드는 상기 가용 아이노드 풀에 저장된다.

Description

파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법{FILE SYSTEM CREATING AND DELETING APPARATUS AND DRIVING METHOD THEREOF}
본 발명의 실시예는 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법에 관한 것이다.
분산 파일 시스템에서 파일 시스템 객체 생성 및 삭제 성능은 파일 시스템을 평가하는 중요한 요소 중에 하나이다. 특히 분산 파일 시스템일 경우에는 네트워크로 연결된 다수의 클라이언트로부터 동시 다발적으로 파일 혹은 디렉토리 생성 및 삭제를 요청하는 경우가 빈번하다. 그래서 이를 효과적으로 처리하는 것이 파일 시스템의 중요한 역할이다.
파일 시스템은 파일 시스템 객체(예, 파일, 디렉토리 등)를 관리함에 있어서 로깅을 기반한 트랜잭션 처리나 데이터베이스와 같이 트랜잭션을 통해 파일 시스템 객체 (이하 아이노드라 칭함) 생성 및 삭제를 처리함으로써 해당 파일 시스템이 기동 중인 서버 장애에 대비한다. 그러나 이러한 트랙잭션을 통한 아이노드 생성 및 삭제 처리는 단일 요청 별로 매번 아이노드 할당 테이블(혹은 비트맵)을 갱신하여 처리하므로, 아이노드 관리 비용이 증가되고 사용자의 파일 혹은 디렉토리 생성 및 삭제의 지연 시간이 증가된다.
본 발명의 실시예는 파일 시스템 객체의 생성 시 가용 아이노드 풀에 저장되어 있던 아이노드가 할당되고 파일 시스템 객체의 삭제 시 가용 아이노드 삭제 요청 시 회수된 아이노드가 가용 아이노드 풀에 저장되는 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명의 실시예는 삭제 요청된 아이노드들을 삭제 아이노드 엔트리에 저장하고, 삭제 아이노드 엔트리들을 트랜잭션 구조체에 저장하며, 트랜잭션 구조체가 다 찬 경우에 아이노드 해제 처리기에 송신하여 트랜잭션으로 인한 관리 비용이 감소되는 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치는, 아이노드들이 저장될 수 있는 가용 아이노드 풀, 외부로부터의 파일 시스템 생성 요청에 응답하여 아이노드 할당 요청 신호를 생성하는 파일 시스템 객체 생성 처리기, 상기 아이노드 할당 요청 신호에 응답하여 상기 가용 아이노드 풀에 저장된 아이노드들 중 적어도 하나를 할당하는 아이노드 할당 처리기, 외부로부터의 파일 시스템 삭제 요청에 응답하여 아이노드 해제 요청 신호를 생성하는 파일 시스템 객체 삭제 처리기, 상기 파일 시스템 삭제 요청에 대응하는 삭제 요청된 아이노드를 모으는 아이노드 삭제 쓰레드 및 상기 아이노드 삭제 쓰레드로부터의 상기 삭제 요청된 아이노드를 해제하는 아이노드 해제 처리기를 포함할 수 있고, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수 이하로 제한되고, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 상기 최대 아이노드 개수보다 작은 경우, 상기 삭제 요청된 아이노드는 상기 가용 아이노드 풀에 저장될 수 있다.
실시예에 따라, 상기 파일 시스템을 생성하고 삭제하는 장치는 상기 아이노드 할당 처리기 또는 상기 아이노드 해제 처리기로부터의 신호를 기반으로 아이노드 테이블을 관리하는 아이노드 테이블 관리기를 더 포함할 수 있다.
실시예에 따라, 상기 가용 아이노드 풀은, 여러 프로세스들로부터의 접근들을 제어하는 동시성 제어 잠금, 상기 최대 아이노드 개수, 상기 저장된 아이노드의 개수 및 상기 가용 아이노드 풀에 저장된 아이노드의 배열을 포함할 수 있다.
실시예에 따라, 상기 아이노드 삭제 쓰레드에 삭제 아이노드 리스트가 저장되고 상기 삭제 아이노드 리스트는 삭제 아이노드 헤드 및 하나 이상의 삭제 아이노드 엔트리를 포함할 수 있으며, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수인 경우, 상기 삭제 요청된 아이노드는 상기 삭제 아이노드 엔트리에 저장될 수 있다.
실시예에 따라, 상기 삭제 아이노드 헤드는, 여러 프로세스들로부터의 접근들을 제어하는 동시성 제어 잠금, 상기 삭제 아이노드 리스트가 유지되는 기간인 만기 기간(expire period) 및 삭제 아이노드 엔트리중 하나를 가리키는 NEXT 및 PREV를 포함하는 포인터를 포함할 수 있고, 상기 삭제 아이노드 엔트리는, 상기 삭제 아이노드 헤드 또는 다른 삭제 아이노드 엔트리중 하나를 가리키는 NEXT 및 PREV를 포함하는 포인터, 상기 삭제 아이노드 엔트리가 생성된 생성 시간, 상기 삭제 아이노드 엔트리에 저장될 수 있는 최대 아이노드 개수, 상기 삭제 아이노드 엔트리에 저장된 아이노드의 개수 및 상기 삭제 아이노드 엔트리에 저장된 아이노드의 배열을 포함할 수 있다.
실시예에 따라, 상기 포함하는 파일 시스템을 생성하고 삭제하는 장치는, 상기 삭제 아이노드 엔트리의 생성 시간과 현재 시간의 차이가 상기 삭제 아이노드 헤드의 만기 기간 이상인 경우, 상기 삭제 아이노드 엔트리는 해제될 수 있다.
실시예에 따라, 상기 아이노드 삭제 쓰레드로부터 상기 아이노드 해제 처리기로 트랜잭션 구조체가 송신되고, 상기 트랜잭션 구조체는, 상기 트랜잭션 구조체 내 저장될 수 있는 최대 엔트리 개수, 상기 트랜잭션 구조체에 저장된 엔트리 개수 및 상기 트랜잭션 구조체에 저장된 엔트리의 배열을 포함할 수 있고, 상기 트랜잭션 구조체의 엔트리 개수가 상기 트랜잭션 구조체의 최대 엔트리 개수이거나 기설정된 주기가 경과한 경우, 상기 트랜잭션 구조체가 송신되고 상기 트랜잭션 구조체에 저장된 삭제 요청된 아이노드들이 해제될 수 있다.
또한, 본 발명은 파일 시스템을 생성하고 삭제하는 장치의 구동 방법이라는 또 다른 측면이 있다. 본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치의 구동 방법은, 아이노드들이 저장될 수 있는 가용 아이노드 풀을 포함하는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법으로, 외부로부터의 파일 생성 요청에 응답하여 아이노드를 할당하는 단계 및 외부로부터 파일 삭제 요청에 대응하는 삭제 요청된 아이노드를 처리하는 단계를 포함할 수 있고, 상기 아이노드를 할당하는 단계는 외부로부터 파일 생성 요청이 수신된 경우에만 수행되며 상기 가용 아이노드 풀에 저장된 아이노드들 중 하나를 할당하는 단계를 포함할 수 있고, 상기 아이노드를 해제하는 단계는 외부로부터 파일 삭제 요청이 수신된 경우에만 수행되며, 상기 삭제 요청된 아이노드를 상기 가용 아이노드 풀에 저장하는 단계를 포함할 수 있다.
실시예에 따라, 상기 파일 시스템을 생성하고 삭제하는 장치는 삭제 아이노드 헤드 및 하나 이상의 삭제 아이노드 엔트리를 포함하는 아이노드 삭제 쓰레드를 더 포함할 수 있고, 상기 삭제 아이노드 엔트리에는 아이노드들이 저장될 수 있으며, 상기 삭제 요청된 아이노드를 처리하는 단계는 삭제 요청된 아이노드를 상기 삭제 아이노드 엔트리에 저장하는 단계를 더 포함할 수 있고, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수보다 작은 경우, 상기 삭제 요청된 아이노드를 상기 가용 아이노드 풀에 저장하는 단계가 수행되며, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수인 경우, 상기 삭제 요청된 아이노드를 상기 삭제 아이노드 엔트리에 저장하는 단계가 수행된다.
실시예에 따라, 상기 삭제 아이노드 헤드는 상기 삭제 아이노드 리스트가 유지되는 기간인 만기 기간(expire period)을 포함할 수 있고, 상기 삭제 아이노드 엔트리는 상기 삭제 아이노드 엔트리가 생성된 생성 시간 및상기 삭제 아이노드 엔트리에 저장된 아이노드의 배열을 포함할 수 있으며, 상기 파일 시스템을 생성하고 삭제하는 장치의 구동 방법은 상기 삭제 아이노드 엔트리를 처리하는 단계를 더 포함할 수 있고, 상기 삭제 아이노드 엔트리를 처리하는 단계는 현재 시간과 상기 생성 시간의 차이와 상기 만기 기간이 비교되는 단계 및 상기 삭제 아이노드 엔트리를 해제하는 단계를 포함할 수 있으며, 상기 삭제 아이노드 엔트리를 해제하는 단계는 상기 차이가 상기 만기 기간보다 큰 경우에만 수행된다.
실시예에 따라, 상기 아이노드 삭제 쓰레드는 아이노드 해제 처리기로 트랜잭션 구조체를 송신하고, 상기 트랜잭션 구조체는 상기 트랜잭션 구조체 내 저장될 수 있는 최대 엔트리 개수, 상기 트랜잭션 구조체에 저장된 엔트리 개수 및 상기 트랜잭션 구조체에 저장된 엔트리의 배열을 포함할 수 있고, 상기 삭제 아이노드 엔트리를 처리하는 단계는 상기 최대 엔트리 개수와 상기 저장된 엔트리 개수를 비교하는 단계를 포함할 수 있고, 상기 저장된 엔트리 개수가 상기 최대 엔트리 개수인 경우, 상기 트랜잭션 구조체가 상기 아이노드 해제 처리기로 송신된다.
실시예에 따라, 상기 파일 시스템을 생성하고 삭제하는 장치의 구동 방법은 상기 가용 아이노드 풀, 상기 삭제 아이노드 엔트리 및 상기 트랜잭션 구조체를 해제하는 단계를 더 포함할 수 있고, 상기 해제하는 단계는 외부로부터 시스템 종료 요청이 수신되는 경우에만 수행되며, 상기 해제하는 단계에서, 상기 가용 아이노드 풀에 저장된 아이노드들, 상기 삭제 아이노드 엔트리에 저장된 아이노드들 및 상기 트랜잭션 구조체에 저장된 상기 엔트리들이 삭제될 수 있다.
실시예에 따라, 상기 삭제 아이노드 엔트리를 해제하는 단계는 상기 삭제 아이노드 엔트리를 상기 트랜잭션 구조체에 추가하는 단계 및 상기 삭제 아이노드 엔트리에 저장된 아이노드를 가용 아이노드 풀에 삽입하는 단계를 포함할 수 있고, 상기 삭제 아이노드 엔트리를 상기 트랜잭션 구조체에 추가하는 단계는 상기 삭제 아이노드 엔트리에 저장된 아이노드를 가용 아이노드 풀에 삽입하는 단계가 실패한 경우에만 수행된다.
본 발명의 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법은 파일 시스템 객체의 생성 시 가용 아이노드 풀에 저장되어 있던 아이노드가 할당되고 파일 시스템 객체의 삭제 시 가용 아이노드 삭제 요청 시 회수된 아이노드가 가용 아이노드 풀에 저장된다.
또한, 본 발명의 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법은 삭제 요청된 아이노드들을 삭제 아이노드 엔트리에 저장하고, 삭제 아이노드 엔트리들을 트랜잭션 구조체에 저장하며, 트랜잭션 구조체가 다 찬 경우에 아이노드 해제 처리기에 송신하여 트랜잭션으로 인한 관리 비용이 감소된다.
도 1은 본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치를 설명하기 위한 도면이다.
도 2는 도 1에 도시된 가용 아이노드 풀의 데이터 구조를 설명하기 위한 도면이다.
도 3은 도 1에 도시된 아이노드 삭제 쓰레드에 저장된 삭제 아이노드 리스트의 데이터 구조를 설명하기 위한 도면이다.
도 4는 도 1에 도시된 아이노드 삭제 쓰레드가 삭제 아이노드 리스트를 관리하는 것을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치의 구동 방법을 설명하기 위한 도면이다.
도 6은 도 5에 도시된 S200 단계를 설명하기 위한 도면이다.
도 7은 도 5에 도시된 S400 단계를 설명하기 위한 도면이다.
도 8은 도 7에 도시된 S410 단계를 설명하기 위한 도면이다.
도 9는 도 7에 도시된 S460 단계를 설명하기 위한 도면이다.
도 10은 도 5에 도시된 S500 단계를 설명하기 위한 도면이다.
도 11은 도 5에 도시된 S700 단계를 설명하기 위한 도면이다.
이하 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예들을 상세히 설명한다. 명세서 전체에 걸쳐서 동일한 참조번호들은 실질적으로 동일한 구성요소들을 의미한다. 이하의 설명에서, 본 발명과 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 상세한 설명을 생략한다. 또한, 이하의 설명에서 사용되는 구성요소 명칭은 명세서 작성의 용이함을 고려하여 선택된 것일 수 있는 것으로서, 실제 제품의 부품 명칭과는 상이할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치를 설명하기 위한 도면이다. 도 1을 참조하면, 파일 시스템을 생성하고 삭제하는 장치(100)는 파일 시스템 객체 생성 처리기(110), 아이노드 할당 처리기(120), 가용 아이노드 풀(130), 파일 시스템 객체 삭제 처리기(140), 아이노드 테이블 관리기(150), 아이노드 삭제 쓰레드(160) 및 아이노드 해제 처리기(170)를 포함한다.
파일 시스템 객체 생성 처리기(110)는 외부로부터의 파일 시스템 객체(예를 들어, 파일, 디렉토리 등) 생성 요청에 응답하여 아이노드 할당 요청 신호를 생성한다.
아이노드 할당 처리기(120)는 아이노드 할당 요청 신호에 응답하여 아이노드를 할당하고, 아이노드 테이블 관리기(150)에 신호를 송신하여 할당 사실을 알린다. 가용 아이노드 풀(130)에 저장된 아이노드가 있는 경우, 아이노드 할당 처리기(120)는 파일 시스템 객체 생성 요청에 응답하여 가용 아이노드 풀(130)에 저장된 아이노드 중 적어도 하나를 할당한다.
아이노드 풀(130)에는 아이노드들이 저장될 수 있다. 가용 아이노드 풀(130)에 저장된 아이노드의 개수는 가용 아이노드 풀의 최대 아이노드 개수 이하로 제한된다. 아이노드 풀(130)의 데이터 구조는 아래에서 도 2를 참조하여 설명될 것이다.
파일 시스템 객체 삭제 처리기(140)는 외부로부터의 파일 삭제 요청에 응답하여 아이노드 해제 요청 신호를 생성한다.
아이노드 테이블 관리기(150)는 아이노드 할당 처리기(120) 또는 아이노드 해제 처리기(170)로부터의 신호를 기반으로 아이노드 테이블을 관리한다.
아이노드 삭제 쓰레드(160)는 외부로부터의 파일 시스템 삭제 요청에 대응하는 삭제 요청된 아이노드를 모은다. 가용 아이노드 풀(130)에 저장된 아이노드의 개수가 가용 아이노드 풀(130)의 최대 아이노드 개수보다 작은 경우, 삭제 요청된 아이노드는 가용 아이노드 풀(130)에 저장될 수 있다. 아이노드 삭제 쓰레드(160)는 이하에서 도 3 또는 도 4를 참조하여 더욱 자세히 설명될 것이다.
아이노드 해제 처리기(170)는 아이노드 삭제 쓰레드(160)로부터의 아이노드를 해제하고, 아이노드 테이블 관리기(150)에 신호를 송신하여 해제 사실을 알린다.
도 2는 도 1에 도시된 가용 아이노드 풀의 데이터 구조를 설명하기 위한 도면이다. 도 1 및 도 2를 참조하면, 가용 아이노드 풀(130)은 동시성 제어 잠금(131), 최대 아이노드 개수(132), 아이노드 개수(133) 및 아이노드 배열(134)을 포함한다.
동시성 제어 잠금(131)은 여러 프로세스들로부터의 접근들을 제어한다. 어떤 프로세스에서 가용 아이노드 풀(130)에 액세스(access)하는 경우, 동시성 제어 잠금이 요청될 수 있다. 동시성 제어 잠금으로 인해, 다른 프로세서로부터의 액세스가 지연되거나 거부될 수 있다.
최대 아이노드 개수(132)는 가용 아이노드 풀(130)에 저장될 수 있는 최대 아이노드 개수를 저장한다. 예를 들어, 최대 아이노드 개수는 아이노드 테이블의 최대 할당 단위의 2배일 수 있다.
아이노드 개수(133)는 현재 가용 아이노드 풀(130)에 저장된 아이노드의 개수를 저장한다.
아이노드 배열(134)은 아이노드를 순차적으로 저장한다.
도 3은 도 1에 도시된 아이노드 삭제 쓰레드에 저장된 삭제 아이노드 리스트의 데이터 구조를 설명하기 위한 도면이다. 여기서 삭제 아이노드 리스트는 삭제 요청된 아이노드들이 저장된 리스트라고 정의될 수 있다. 도 3에서 도시된 삭제 아이노드 리스트(L160)은 삭제 아이노드 헤드(L160-h) 및 삭제 아이노드 엔트리들(L160-e1 내지 L160-en, 이하 L160-e)를 포함한다. 삭제 아이노드 엔트리는 삭제 아이노드 리스트의 하부 구조로, 삭제 요청된 아이노드들이 저장된 엔트리라고 정의될 수 있다.
삭제 아이노드 헤드(L160-h)는 동시성 제어 잠금(L161-h), 만기 기간(L162-h) 및 포인터(L163-h)를 포함한다.
동시성 제어 잠금(L161-h)은 여러 프로세스들로부터의 접근들을 제어한다. 동시성 제어 잠금(131)과 매우 유사하므로, 더 이상의 상세한 설명은 생략되어도 무방하다.
만기 기간(L162-h)은 각각의 삭제 아이노드 엔트리(L160-e)가 유지되는 기간을 저장한다. 예를 들어, 만기 기간(L162-h)이 10분이고, 삭제 아이노드 엔트리(L160-e1)가 생성된 시간이 현재보다 11분 이전인 경우, 만기 기간의 경과로 인해 삭제 아이노드 엔트리(L160-e1)가 해제될 수 있다.
포인터(L163-h)는 NEXT 및 PREV를 포함한다. NEXT는 삭제 아이노드 엔트리(L160-e) 중 생성 시간이 가장 최근인 삭제 아이노드 엔트리를 가리키는 포인터이다. 도 3에서 도시된 실시예의 경우, 삭제 아이노드 엔트리(L160-e1)가 가장 최근에 생성되었다. PREV는 삭제 아이노드 엔트리(L160-e) 중 생성 시간이 가장 오래된 삭제 아이노드 엔트리를 가리키는 포인터이다. 도 3에서 도시된 실시예의 경우, 삭제 아이노드 엔트리(L160-en)가 가장 최근에 생성되었다.
각각의 삭제 아이노드 엔트리(L160-e)의 데이터 구조가 삭제 아이노드 엔트리(L160-e1)를 예로 들어 설명될 것이다. 삭제 아이노드 엔트리(L160-e1)는 포인터(L161-e1), 생성 시간(L162-e1), 최대 아이노드 개수(L163-e1), 아이노드 개수(L164-e1) 및 아이노드 배열(L165-e1)을 포함한다.
포인터(L161-e1)는 NEXT 및 PREV를 포함한다. NEXT는 해당하는 삭제 아이노드 엔트리 직후에 생성된 삭제 아이노드 엔트리를 가리키는 포인터이고, NEXT는 해당하는 삭제 아이노드 엔트리 직전에 생성된 삭제 아이노드 엔트리를 가리키는 포인터이다. 삭제 아이노드 엔트리들(L160-e) 중 가장 최근에 생성된 삭제 아이노드 엔트리(L160-e1)의 경우 포인터(L161-e1)의 NEXT가 삭제 아이노드 헤드(L160-h)를 가리킬 수 있다. 삭제 아이노드 엔트리들(L160-e) 중 가장 오래 전에 생성된 삭제 아이노드 엔트리(L160-en)의 경우 포인터(L161-en)의 PREV가 삭제 아이노드 헤드(L160-h)를 가리킬 수 있다.
생성 시간(L162-e1)은 삭제 아이노드 엔트리(L160-e1)가 생성된 시간을 저장한다. 삭제 아이노드 엔트리(L160-e1)가 생성된 시간과 현재 시간과의 차이가 연산된 후, 그 차이가 만기 기간(L162-h)보다 큰 지 여부가 비교될 수 있다.
최대 아이노드 개수(L163-e1)는 삭제 아이노드 엔트리(L160-e1)에 저장될 수 있는 최대 아이노드의 개수를 저장한다. 최대 아이노드 개수(L163-e1)는 최대 아이노드 개수(132)와 매우 유사하므로, 더 이상의 상세한 설명은 생략되어도 무방하다.
아이노드 개수(L164-e1)는 현재 삭제 아이노드 엔트리(L160-e1)에 저장된 아이노드의 개수를 저장한다. 아이노드 개수(L164-e1)는 아이노드 개수(133)와 매우 유사하므로, 더 이상의 상세한 설명은 생략되어도 무방하다.
아이노드 배열(L165-e1)은 아이노드를 순차적으로 저장한다. 아이노드 배열(L165-e1)은 아이노드 배열(134)과 매우 유사하므로, 더 이상의 상세한 설명은 생략되어도 무방하다.
각각의 삭제 아이노드 엔트리(L160-e2 내지 L160-en)의 데이터 구조도 삭제 아이노드 엔트리(L160-e1)의 데이터 구조와 동일하다.
도 4는 도 1에 도시된 아이노드 삭제 쓰레드가 삭제 아이노드 리스트를 관리하는 것을 설명하기 위한 도면이다. 이하에서, 삭제 아이노드 리스트의 관리가 도 1 내지 도 4를 참조하여 설명될 것이다. 외부로부터의 파일 시스템 삭제 요청에 대응하는 삭제 요청된 아이노드가 발생한 경우, 포인터(L163-h)의 NEXT가 가리키는 삭제 아이노드 엔트리에 저장된다. 만약 아이노드 개수(133)가 최대 아이노드 개수(132)보다 작은 경우, 삭제 요청된 아이노드는 삭제 아이노드 엔트리 대신 가용 아이노드 풀(130)에 저장될 수도 있다.
포인터(L163-h)의 NEXT가 가리키는 삭제 아이노드 엔트리에 삭제 요청된 아이노드를 저장할 수 없는 경우, 새로운 삭제 아이노드 엔트리(예를 들어, L160-e1)가 생성되고, 포인터(L163-h)의 NEXT는 삭제 아이노드 엔트리(L160-e1)를 가리킨다.
아이노드 삭제 쓰레드(160)는 주기적으로 생성된 시간이 가장 오래된 삭제 아이노드 엔트리를 가져온다. 도 4에 의해 도시된 실시예에서는 포인터(L163-h)의 PREV가 삭제 아이노드 엔트리(L160-en)를 가리킨다. 생성 시간(L162-en)과 현재 시간과의 차이가 연산되고, 그 차이가 만기 기간(L162-h)과 비교된다. 만약 그 차이가 만기 기간(L62-h)보다 큰 경우, 삭제 아이노드 엔트리(L160-en)를 해제한다. 삭제 아이노드 엔트리(L160-en)에 저장된 아이노드들 중 가용 아이노드 풀(130)에 삽입될 수 있는 아이노드들은 삽입되고, 그렇지 않은 아이노드들은 트랜잭션 구조체(180)에 등록된다. 트랜잭션 구조체(180)는 최대 엔트리 개수(181), 엔트리 개수(182) 및 엔트리 배열(183)을 포함한다.
최대 엔트리 개수(181)는 트랜잭션 구조체(180)에 저장될 수 있는 최대 엔트리 개수를 저장하고, 엔트리 개수(182)는 현재 트랜잭션 구조체(180)에 저장된 엔트리 개수를 저장하며, 엔트리 배열(183)은 삭제 아이노드 엔트리를 순차적으로 저장한다. 엔트리 개수(182)가 최대 엔트리 개수(181)인 경우, 트랜잭션 구조체(180)는 아이노드 해제 처리기(170)로 송신되고, 트랜잭션 구조체(180)에 저장된 삭제 요청된 아이노드들이 해제된다. 본 발명의 일 실시예와 같이 트랜잭션 구조체(180)를 통해 트랜잭션을 처리하는 경우, 삭제 요청된 아이노드들이 모여서 단일 트랜잭션으로 처리되므로 아이노드 관리 비용이 감소되고 사용자의 파일 혹은 디렉토리 생성 및 삭제의 지연 시간이 감소된다.
도 5는 본 발명의 일 실시예에 따른 파일 시스템을 생성하고 삭제하는 장치의 구동 방법을 설명하기 위한 도면이다. 이하에서, 파일 시스템을 생성하고 삭제하는 장치의 구동 방법이 도 1 내지 도 5를 참조하여 설명될 것이다.
S100 단계에서, 외부로부터의 파일 시스템 생성 요청이 수신되었는지 여부가 확인된다. 파일 시스템 생성 요청이 수신된 경우 S200 단계가 수행되고, 그렇지 않은 경우, S300 단계가 수행된다.
S200 단계에서, 파일 시스템 생성 요청이 수신되었으므로, 외부로부터의 파일 시스템 생성 요청에 응답하여 파일 시스템 객체 생성 처리기(110)가 아이노드 할당 요청 신호를 생성하고, 아이노드 할당 처리기(120)는 아이노드 할당 요청 신호에 응답하여 아이노드를 할당한다. 이 때, 가용 아이노드 풀(130)에 저장된 아이노드들 중 하나가 할당될 수도 있다.
S300 단계에서, 외부로부터의 파일 시스템 삭제 요청이 수신되었는지 여부가 확인된다. 파일 시스템 생성 요청이 수신된 경우 S400 단계가 수행되고, 그렇지 않은 경우, S500 단계가 수행된다.
S400 단계에서, 외부로부터의 파일 시스템 삭제 요청에 대응하는 삭제 요청된 아이노드가 처리된다. 삭제 요청된 아이노드는 아이노드 삭제 쓰레드(160) 또는 가용 아이노드 풀(130)에 저장될 수 있다. S400 단계의 상세 내용은 도 8 및 도 9를 참조하여 이후에 설명될 것이다.
S500 단계에서, 삭제 아이노드 엔트리들(L160-e)이 처리된다. S500 단계의 상세 내용은 도 10을 참조하여 이후에 설명될 것이다.
S600 단계에서, 외부로부터의 시스템 종료 요청이 수신되었는지 여부가 확인된다.
S700 단계에서, 외부로부터의 시스템 종료 요청에 응답하여, 가용 아이노드 풀(130), 삭제 아이노드 엔트리(L160-e) 및 트랜잭션 구조체(180)가 해제된다. S700 단계의 상세 내용은 도 11을 참조하여 이후에 설명될 것이다.
도 6은 도 5에 도시된 S200 단계를 설명하기 위한 도면이다. 이하에서, 파일 시스템을 생성하고 삭제하는 장치의 구동 방법의 S200 단계가 도 1 내지 도 5를 참조하여 설명될 것이다.
S210 단계에서, 가용 아이노드 풀(130)의 동시성 제어 잠금이 요청된다. 동시성 제어 잠금(131)이 요청되므로, 다른 프로세서로부터의 액세스가 지연되거나 거부된다.
S220 단계에서, 가용 아이노드 풀(130)에 저장된 아이노드 개수(133)가 0인지 여부가 판단된다. 아이노드 개수(133)가 0인 경우 S230 단계가 수행되고, 아이노드 개수(133)가 1 이상인 경우 S270 단계가 수행된다.
S230 단계에서, 아이노드 테이블 관리기(150)로부터 할당되지 않은 모든 아이노드들이 할당된다.
S240 단계에서, 할당된 아이노드가 존재하는지 여부가 판단된다. 할당된 아이노드가 존재하는 경우 S241 단계가 수행되고, 그렇지 않은 경우 S250 단계가 수행된다.
S241 단계에서, 할당된 아이노드들이 가용 아이노드 풀(130)의 아이노드 배열(134)에 삽입(저장)된다.
S242 단계에서, 가용 아이노드 풀(130)의 아이노드 개수(133)가 할당된 아이노드의 개수만큼 증가된다. 그 이후, S220 단계가 다시 수행되고, 아이노드 개수가 할당된 아이노드의 개수이므로 S270 단계가 수행될 수 있다.
S250 단계에서, 아이노드 할당 실패로 판단한다. 이 경우, 파일 시스템을 생성하고 삭제하는 장치(100)는 아이노드 할당이 실패하였다는 메시지를 생성할 수도 있고, 다른 곳에 할당된 아이노드를 강제로 해제시킨 후 할당할 수도 있다.
S270 단계에서, 가용 아이노드 풀(130)에 저장된 아이노드가 1개 이상 존재하므로, 그 중 하나를 할당한다.
S271 단계에서, 가용 아이노드 풀(130)의 아이노드 개수(133)를 1개 감소시킨다. S270 단계 이후 S271 단계가 수행되었으나, 이는 실시예에 불과하다. 다른 실시예의 경우, S271 단계 이후 S270 단계가 수행될 수도 있다.
S272 단계에서, 가용 아이노드 풀(130)의 동시성 제어 잠금(131)이 해제된다. S272 단계 이후, 다른 프로세스가 가용 아이노드 풀(130)에 액세스할 수 있다.
S273 단계에서, 아이노드 할당 성공으로 판단한다. 이 경우, 파일 시스템을 생성하고 삭제하는 장치(100)는 아이노드 할당이 성공하였다는 메시지를 생성할 수 있다.
도 7은 도 5에 도시된 S400 단계를 설명하기 위한 도면이다.
S410 단계에서, 삭제 요청된 아이노드가 가용 아이노드 풀(130)에 삽입된다.
S420 단계에서, 삭제 요청된 아이노드의 가용 아이노드 풀(130)로의 삽입이 성공하였는지 여부가 판단된다. 성공하였다고 판단되는 경우, S400 단계가 종료된다. 그렇지 않은 경우, S460 단계가 수행된다.
S460 단계에서, 삭제 요청된 아이노드가 삭제 아이노드 리스트에 삽입된다.
도 8은 도 7에 도시된 S410 단계를 설명하기 위한 도면이다. 이하에서, S410 단계가 도 1 내지 도 8을 참조로 설명될 것이다.
S411 단계에서, 가용 아이노드 풀(130)의 동시성 제어 잠금이 요청된다. 동시성 제어 잠금(131)이 요청되므로, 다른 프로세서로부터의 액세스가 지연되거나 거부된다.
S412 단계에서, 가용 아이노드 풀(130)에 저장된 아이노드의 개수(133)가 가용 아이노드 풀(130)의 최대 아이노드 개수(132)와 같은지 여부가 판단된다. 만약 같다면 S413 단계가 수행되고, 같지 않다면 S414 단계가 수행된다.
S413 단계에서, 아이노드의 개수(133)가 최대 아이노드 개수(132)와 같으므로, 삭제 요청된 아이노드의 삽입이 실패하였다고 판단한다. 이 경우, 파일 시스템을 생성하고 삭제하는 장치(100)는 아이노드 할당이 실패하였다는 메시지를 생성할 수 있다.
S414 단계에서, 가용 아이노드 풀(130)의 아이노드 배열(134)에 삭제 요청된 아이노드가 삽입된다. 아이노드의 개수(133)가 최대 아이노드 개수(132)보다 작으므로, 삽입이 가능하다.
S415 단계에서, 가용 아이노드 풀(130)의 아이노드의 개수(133)가 1개 증가된다.
S416 단계에서, 삭제 요청된 아이노드의 삽입이 성공하였다고 판단한다. 이 경우, 파일 시스템을 생성하고 삭제하는 장치(100)는 아이노드 할당이 성공하였다는 메시지를 생성할 수 있다.
S417 단계에서, 가용 아이노드 풀(130)의 동시성 제어 잠금(131)이 해제된다. S417 단계 이후, 다른 프로세스가 가용 아이노드 풀(130)에 액세스할 수 있다.
도 9는 도 7에 도시된 S460 단계를 설명하기 위한 도면이다. 이하에서, 이하에서, S460 단계가 도 1 내지 도 9를 참조로 설명될 것이다.
S461 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)을 요청한다. 동시성 제어 잠금(L161-h)이 요청되므로, 다른 프로세서로부터의 액세스가 지연되거나 거부된다.
S462 단계에서, 삭제 아이노드 엔트리가 있는지 여부가 판단된다. 삭제 아이노드 엔트리가 있으면 S466 단계가 수행되고, 삭제 아이노드 엔트리가 없으면 S463 단계가 수행된다.
S463 단계에서, 새로운 삭제 아이노드 엔트리가 할당된다. 설명의 편의를 위해, 삭제 아이노드 엔트리(L160-e1)가 새로 할당되었다고 가정한다.
S464 단계에서, 삭제 아이노드 엔트리의 생성 시간이 현재 시간으로 설정된다. 삭제 아이노드 엔트리(L160-e1)의 생성 시간(L162-e1)이 현재 시간으로 설정된다.
S465 단계에서, 삭제 아이노드 엔트리에 저장된 아이노드의 개수가 0으로 설정된다. 삭제 아이노드 엔트리(L160-e1)의 아이노드 개수(L164-e1)이 0으로 설정된다.
S466 단계에서, 삭제 아이노드 엔트리가 있으므로, 삭제 아이노드 헤드(L160-h)의 NEXT가 가리키는 삭제 아이노드 엔트리를 호출한다. 삭제 아이노드 엔트리들 중 가장 최근에 생성된 삭제 아이노드 엔트리를 호출한다. 설명의 편의를 위해, 포인터(L163-h)의 NEXT가 가리키는 삭제 아이노드 엔트리(L160-e1)가 호출되었다고 가정한다.
S467 단계에서, 호출된 삭제 아이노드 엔트리에 저장된 아이노드 개수가 삭제 아이노드 엔트리의 최대 아이노드 개수인지 여부가 판단된다. 삭제 아이노드 엔트리(L160-e1)의 아이노드 개수(L164-e1)와 최대 아이노드 개수(L163-e1)와 비교된다. 아이노드 개수(L164-e1)가 최대 아이노드 개수(L163-e1)와 같은 경우, S463 단계가 수행된다. 아이노드 개수(L164-e1)가 최대 아이노드 개수(L163-e1)보다 작은 경우, S468 단계가 수행된다.
S468 단계에서, 아이노드 개수(L164-e1)가 최대 아이노드 개수(L163-e1)보다 작으므로, 삭제 아이노드 엔트리(L160-e1)의 아이노드 배열(L165-e1)에 삭제 요청된 아이노드가 삽입된다.
S469 단계에서, 삭제 아이노드 엔트리(L160-e1)의 아이노드 개수(L164-e1)가 1개 증가된다.
S470 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)이 해제된다. S470 단계 이후, 다른 프로세스가 가용 아이노드 풀(130)에 액세스할 수 있다.
도 10은 도 5에 도시된 S500 단계를 설명하기 위한 도면이다.
S510 단계에서, 아이노드 삭제 쓰레드(160)가 기설정된 기간 동안 슬립(sleep)된다.
S520 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)을 요청한다. S520 단계와 S461 단계는 매우 유사하므로, 상세한 설명이 생략되어도 무방하다.
S521 단계에서, 삭제 아이노드 엔트리가 있는지 여부가 판단된다. 삭제 아이노드 엔트리가 있으면 S525 단계가 수행되고, 삭제 아이노드 엔트리가 없으면 S540 단계가 수행된다. S521 단계는 S462 단계와 매우 유사하므로, 상세한 설명은 생략되어도 무방하다.
S525 단계에서, 아이노드 삭제 쓰레드(160)는 삭제 아이노드 리스트 헤드(160-h)의 포인터(163-h)의 PREV가 가리키는 삭제 아이노드 엔트리를 호출한다. 즉, 삭제 아이노드 엔트리(L160-e) 중 생성 시간이 가장 오래된 삭제 아이노드 엔트리가 호출된다. 설명의 편의를 위해, 삭제 아이노드 엔트리(L160-en)가 호출되었다고 가정한다.
S526 단계에서, 현재 시간과 삭제 아이노드 엔트리의 차이가 삭제 아이노드 헤드의 만기 기간과 비교된다. 그 차이가 만기 기간보다 큰 경우, S527 단계가 수행되고, 그 차이가 만기 기간보다 작은 경우, 모든 삭제 아이노드 엔트리들(L160-e)이 현재 시간보다 만기 기간 이내에 생성되었으므로 S540 단계가 수행된다.
S527 단계에서, 삭제 아이노드 헤드의 PREV가 가리키는 내용이 변경된다. 삭제 아이노드 엔트리(L160-en)가 현재 시간보다 만기 기간 이내에 생성되지 않았으므로 해제하기로 결정된다. 포인터(163-h)의 PREV는 다른 삭제 아이노드 엔트리를 가리킬 수도 있고, 아예 아무 것도 가리키지 않을 수도 있다.
S528 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)이 해제된다. S531 단계와 S470 단계는 매우 유사하므로, 상세한 설명이 생략되어도 무방하다.
S530 단계에서, 삭제 아이노드 엔트리(L160-en)가 해제된다.
S530 단계에서, 삭제 아이노드 엔트리(L160-en)의 아이노드 배열(L165-en)에 저장된 아이노드들이 가용 아이노드 풀(130)에 삽입된다. 또는, 삭제 아이노드 엔트리(L160-en)가 트랜잭션 구조체(180)에 추가된다.
S531 단계에서, 삭제 아이노드 엔트리의 아이노드 개수가 0개인지 여부가 판단된다. 아이노드 개수(L164-en)가 0개인 경우, S532 단계가 수행된다. 아이노드 개수(L164-en)이 1개 이상인 경우, S533 단계가 수행된다.
S532 단계에서, 삭제 아이노드 엔트리(L160-en)에 저장된 아이노드가 없으므로, 삭제 아이노드 엔트리(L160-en)가 해제된다.
S533 단계에서, 삭제 아이노드 엔트리(L160-en)에 저장된 아이노드 배열(L165-en)을 가용 아이노드 풀(130)에 삽입한다. 아이노드 배열(L165-en)에 저장된 각각의 아이노드가 가용 아이노드 풀(130)에 삽입될 수 있다. 각각의 아이노드가 가용 아이노드 풀(130)에 삽입되는 단계는 S200 단계와 매우 유사하므로, 상세한 설명이 생략되어도 무방하다.
S534 단계에서, 삭제 아이노드 엔트리에 저장된 모든 아이노드들을 가용 아이노드 풀에 삽입하는 것이 성공하였는지 여부가 판단된다. 성공한 경우, S531 단계가 수행된다. 실패한 경우, 가용 아이노드 풀(130)의 최대 아이노드 개수(132)와 아이노드 개수(133)가 동일하므로, S535 단계가 수행된다. S535 내지 S539 단계에서, 해당 삭제 아이노드 엔트리가 트랜잭션 구조체(180)에 추가된다.
S535 단계에서, 트랜잭션 구조체(180)의 엔트리 개수(182)가 트랜잭션 구조체의 최대 엔트리 개수(181)인지 여부가 판단된다. 엔트리 개수(182)가 최대 엔트리 개수(181)와 동일한 경우, S541 단계가 수행된다. 엔트리 개수(182)가 최대 엔트리 개수(181)보다 작은 경우, S543 단계가 수행된다.
S536 단계에서, 엔트리 개수(182)가 최대 엔트리 개수(181)와 동일하므로, 해당 트랜잭션 구조체(180)가 아이노드 해제 처리기(170)로 송신된다. 아이노드 해제 처리기(170)로 송신된 트랜잭션 구조체(180) 내 엔트리 배열(183) 내 저장된 아이노드들은 할당이 해제되고, 아이노드 해제 처리기(170)는 할당이 해제되었다는 것을 알리는 신호를 아이노드 테이블 관리기(150)에 송신한다.
S537 단계에서, 트랜잭션 구조체(180)가 초기화된다. 트랜잭션 구조체가 일단 해제된 후에 새로운 트랜잭션 구조체가 생성될 수도 있다.
S538 단계에서, 트랜잭션 구조체(180)의 엔트리 배열(183)에 해당 삭제 아이노드 엔트리(L160-en)가 추가된다.
S539 단계에서, 트랜잭션 구조체(180)의 엔트리 개수(182)가 1개 증가된다. 삭제 아이노드 엔트리(L160-en)가 해제된 이후, S531 단계가 수행된다. 도 10에서 도시된 실시예에 따르면 S538 단계 이후 S539 단계가 수행되나, 이는 실시예에 불과하다. S539 단계 이후 S538 단계가 수행될 수도 있다.
S540 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)이 해제된다. S540 단계 이후, 다른 프로세스가 가용 아이노드 풀(130)에 액세스할 수 있다.
S541 단계 내지 S542 단계에서, 삭제 아이노드 엔트리가 없으므로, 트랜잭션 구조체(180)를 아이노드 해제 처리기(170)에 송신한다. S541 단계에서, 트랜잭션 구조체(180)의 엔트리 개수(182)가 1개 이상인 경우에는 S542 단계가 수행되고, 트랜잭션 구조체(180)의 엔트리 개수(182)가 0개인 경우에는 S510 단계가 수행된다. S542 단계에서, 트랜잭션 구조체(180)가 아이노드 해제 처리기(170)에 송신되고, 트랜잭션 구조체(180)의 엔트리 배열(183)에 포함된 아이노드에 대한 할당이 해제된다.
도 11은 도 5에 도시된 S700 단계를 설명하기 위한 도면이다. 이하에서, S700 단계가 도 1 내지 도 11을 참조하여 설명될 것이다.
S710 단계에서, 가용 아이노드 풀(130)의 동시성 제어 잠금이 요청된다. 가용 아이노드 풀(130)의 동시성 제어 잠금이 요청된다. S710 단계는 S210 단계와 매우 유사하다.
S711 단계에서, 가용 아이노드 풀(130)에 저장된 아이노드 개수(133)가 0인지 여부가 판단된다. S711 단계는 S220 단계와 매우 유사하다. 아이노드 개수(133)가 0인 경우 S720 단계가 수행되고, 그렇지 않은 경우 S712 단계가 수행된다.
S712 단계에서, 가용 아이노드 풀(130)의 아이노드 배열(134)에 저장된 아이노드 중 하나가 삭제 아이노드 리스트(L160-e)에 삽입된다. S712 단계는 S460 단계와 매우 유사하다. S712 단계에서, 아이노드가 1개씩 삽입되었으나, 이는 실시예에 불과하다. 복수의 아이노드가 한꺼번에 삭제 아이노드 리스트에 삽입될 수도 있다.
S713 단계에서, 가용 아이노드 풀(130)의 아이노드 개수(133)가 1개 감소된다. 이후, S711 단계가 수행된다.
S720 단계에서, 가용 아이노드 풀(130)의 동시성 제어 잠금(131)이 해제된다. S720 단계는 S272 단계와 매우 유사하다.
S721 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)을 요청한다. S721 단계는 S461 단계와 매우 유사하다.
S722 단계에서, 삭제 아이노드 엔트리가 있는지 여부가 판단된다. S722 단계는 S462 단계와 매우 유사하며, 삭제 아이노드 엔트리가 있는 경우 S723 단계가 수행되며, 삭제 아이노드 엔트리가 없는 경우 S740 단계가 수행된다.
S723 단계에서, 아이노드 삭제 쓰레드(160)는 삭제 아이노드 리스트 헤드(160-h)의 포인터(163-h)의 PREV가 가리키는 삭제 아이노드 엔트리를 호출한다. 설명의 편의를 위해, 삭제 아이노드 엔트리(L160-en)가 호출되었다고 가정한다. S723 단계는 S525 단계와 매우 유사하다.
S724 단계에서, 삭제 아이노드 헤드의 PREV가 가리키는 내용이 변경된다. S724 단계는 S527 단계와 매우 유사하다.
S725 단계에서, 삭제 아이노드 헤드(L160-h)의 동시성 제어 잠금(L161-h)이 해제된다. S725 단계는 S470 단계와 매우 유사하다. S725 단계 이후, S730 단계가 수행된다.
S730 단계에서, 삭제 아이노드 엔트리(L160-en)가 해제된다. S730 단계에서, 삭제 아이노드 엔트리(L160-en)가 트랜잭션 구조체(180)로 이동한다. 트랜잭션 구조체(180)의 엔트리 개수(182)가 최대 엔트리 개수(181)과 같은 경우, 해당 트랜잭션 구조체(180)가 아이노드 해제 처리기(170)로 송신된다.
S731 단계에서, 삭제 아이노드 엔트리의 아이노드 개수가 0개인지 여부가 판단된다. 아이노드 개수(L164-en)가 0개인 경우, S732 단계가 수행된다. 아이노드 개수(L164-en)가 1개 이상인 경우, S733 단계가 수행된다.
S732 단계에서, 삭제 아이노드 엔트리(L160-en)에 저장된 아이노드가 없으므로, 삭제 아이노드 엔트리(L160-en)가 해제된다. 그 후 S721 단계가 수행된다.
S733 단계에서, 트랜잭션 구조체(180)의 엔트리 개수(182)가 트랜잭션 구조체의 최대 엔트리 개수(181)인지 여부가 판단된다. 엔트리 개수(182)가 최대 엔트리 개수(181)와 동일한 경우, S734 단계가 수행된다. 엔트리 개수(182)가 최대 엔트리 개수(181)보다 작은 경우, S736 단계가 수행된다. S733 단계는 S535 단계와 매우 유사하다.
S734 단계에서, 엔트리 개수(182)가 최대 엔트리 개수(181)와 동일하므로, 해당 트랜잭션 구조체(180)가 아이노드 해제 처리기(170)로 송신된다. 아이노드 해제 처리기(170)로 송신된 트랜잭션 구조체(180) 내 엔트리 배열(183) 내 저장된 아이노드들은 할당이 해제되고, 아이노드 해제 처리기(170)는 할당이 해제되었다는 것을 알리는 신호를 아이노드 테이블 관리기(150)에 송신한다.
S735 단계에서, 트랜잭션 구조체(180)가 초기화된다. 트랜잭션 구조체가 일단 해제된 후에 새로운 트랜잭션 구조체가 생성될 수도 있다.
S736 단계에서, 트랜잭션 구조체(180)의 엔트리 배열(183)에 해당 삭제 아이노드 엔트리(L160-en)가 추가된다.
S737 단계에서, 트랜잭션 구조체(180)의 엔트리 개수(182)가 1개 증가된다. 삭제 아이노드 엔트리(L160-en)가 해제된 이후, S731 단계가 수행된다. 도 11에서 도시된 실시예에 따르면 S736 단계 이후 S5737 단계가 수행되나, 이는 실시예에 불과하다. S737 단계 이후 S736 단계가 수행될 수도 있다.
S740 단계에서, 삭제 아이노드 리스트 헤드(L160-h)의 동시성 제어 잠금(L161-h)이 해제된다.
S741 단계 내지 S742 단계에서, 삭제 아이노드 엔트리가 없으므로, 트랜잭션 구조체(180)를 아이노드 해제 처리기(170)에 송신한다. S741 단계에서, 트랜잭션 구조체(180)의 엔트리 개수(182)가 1개 이상인 경우에는 S742 단계가 수행되고, 트랜잭션 구조체(180)의 엔트리 개수(182)가 0개인 경우에는 S700 단계가 종료된다. S742 단계에서, 트랜잭션 구조체(180)가 아이노드 해제 처리기(170)에 송신되고, 트랜잭션 구조체(180)의 엔트리 배열(183)에 포함된 아이노드에 대한 할당이 해제된다. S742 단계가 수행된 이후, S700 단계가 종료된다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의해 정하여져야만 할 것이다.
130: 가용 아이노드 풀 160: 아이노드 삭제 쓰레드
L160-h: 삭제 아이노드 헤드
L160-e: 삭제 아이노드 엔트리들

Claims (13)

  1. 아이노드들이 저장될 수 있는 가용 아이노드 풀;
    외부로부터의 파일 시스템 생성 요청에 응답하여 아이노드 할당 요청 신호를 생성하는 파일 시스템 객체 생성 처리기;
    상기 아이노드 할당 요청 신호에 응답하여 상기 가용 아이노드 풀에 저장된 아이노드들 중 적어도 하나를 할당하는 아이노드 할당 처리기;
    외부로부터의 파일 시스템 삭제 요청에 응답하여 아이노드 해제 요청 신호를 생성하는 파일 시스템 객체 삭제 처리기;
    상기 파일 시스템 삭제 요청에 대응하는 삭제 요청된 아이노드를 모으는 아이노드 삭제 쓰레드; 및
    상기 아이노드 삭제 쓰레드로부터의 상기 삭제 요청된 아이노드를 해제하는 아이노드 해제 처리기를 포함하고,
    상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수 이하로 제한되고, 상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 상기 최대 아이노드 개수보다 작은 경우, 상기 삭제 요청된 아이노드는 상기 가용 아이노드 풀에 저장되는 파일 시스템을 생성하고 삭제하는 장치.
  2. 제1항에 있어서,
    상기 파일 시스템을 생성하고 삭제하는 장치는 상기 아이노드 할당 처리기 또는 상기 아이노드 해제 처리기로부터의 신호를 기반으로 아이노드 테이블을 관리하는 아이노드 테이블 관리기를 더 포함하는 파일 시스템을 생성하고 삭제하는 장치.
  3. 제1항에 있어서,
    상기 가용 아이노드 풀은,
    여러 프로세스들로부터의 접근들을 제어하는 동시성 제어 잠금;
    상기 최대 아이노드 개수;
    상기 저장된 아이노드의 개수; 및
    상기 가용 아이노드 풀에 저장된 아이노드의 배열을 포함하는 파일 시스템을 생성하고 삭제하는 장치.
  4. 제1항에 있어서,
    상기 아이노드 삭제 쓰레드에 삭제 아이노드 리스트가 저장되고 상기 삭제 아이노드 리스트는 삭제 아이노드 헤드 및 하나 이상의 삭제 아이노드 엔트리를 포함하며,
    상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수인 경우, 상기 삭제 요청된 아이노드는 상기 삭제 아이노드 엔트리에 저장되는 파일 시스템을 생성하고 삭제하는 장치.
  5. 제4항에 있어서,
    상기 삭제 아이노드 헤드는,
    여러 프로세스들로부터의 접근들을 제어하는 동시성 제어 잠금;
    상기 삭제 아이노드 엔트리가 유지되는 기간인 만기 기간(expire period); 및
    상기 삭제 아이노드 엔트리 중 하나를 가리키는 NEXT 및 PREV를 포함하는 포인터를 포함하고,
    상기 삭제 아이노드 엔트리는,
    상기 삭제 아이노드 헤드 또는 다른 삭제 아이노드 엔트리 중 하나를 가리키는 NEXT 및 PREV를 포함하는 포인터;
    상기 삭제 아이노드 엔트리가 생성된 생성 시간;
    상기 삭제 아이노드 엔트리에 저장될 수 있는 최대 아이노드 개수;
    상기 삭제 아이노드 엔트리에 저장된 아이노드의 개수; 및
    상기 삭제 아이노드 엔트리에 저장된 아이노드의 배열을 포함하는 파일 시스템을 생성하고 삭제하는 장치.
  6. 제5항에 있어서,
    상기 포함하는 파일 시스템을 생성하고 삭제하는 장치는,
    상기 삭제 아이노드 엔트리의 생성 시간과 현재 시간의 차이가 상기 삭제 아이노드 헤드의 만기 기간 이상인 경우, 상기 삭제 아이노드 엔트리는 해제되는 파일 시스템을 생성하고 삭제하는 장치.
  7. 제1항에 있어서,
    상기 아이노드 삭제 쓰레드로부터 상기 아이노드 해제 처리기로 트랜잭션 구조체가 송신되고,
    상기 트랜잭션 구조체는,
    상기 트랜잭션 구조체 내 저장될 수 있는 최대 엔트리 개수;
    상기 트랜잭션 구조체에 저장된 엔트리 개수; 및
    상기 트랜잭션 구조체에 저장된 엔트리의 배열을 포함하고,
    상기 트랜잭션 구조체의 엔트리 개수가 상기 트랜잭션 구조체의 최대 엔트리 개수이거나 기설정된 주기가 경과한 경우, 상기 트랜잭션 구조체가 송신되고 상기 트랜잭션 구조체에 저장된 삭제 요청된 아이노드들이 해제되는 파일 시스템을 생성하고 삭제하는 장치.
  8. 아이노드들이 저장될 수 있는 가용 아이노드 풀을 포함하는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법으로,
    외부로부터의 파일 생성 요청에 응답하여 아이노드를 할당하는 단계; 및
    외부로부터 파일 삭제 요청에 대응하는 삭제 요청된 아이노드를 처리하는 단계를 포함하고,
    상기 아이노드를 할당하는 단계는 외부로부터 파일 생성 요청이 수신된 경우에만 수행되며 상기 가용 아이노드 풀에 저장된 아이노드들 중 하나를 할당하는 단계를 포함하고,
    상기 아이노드를 해제하는 단계는 외부로부터 파일 삭제 요청이 수신된 경우에만 수행되며, 상기 삭제 요청된 아이노드를 상기 가용 아이노드 풀에 저장하는 단계를 포함하고,
    상기 파일 시스템을 생성하고 삭제하는 장치는 삭제 아이노드 헤드 및 하나 이상의 삭제 아이노드 엔트리를 포함하는 아이노드 삭제 쓰레드를 더 포함하고,
    상기 삭제 아이노드 엔트리에는 아이노드들이 저장될 수 있으며,
    상기 삭제 요청된 아이노드를 처리하는 단계는 삭제 요청된 아이노드를 상기 삭제 아이노드 엔트리에 저장하는 단계를 더 포함하고,
    상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수보다 작은 경우, 상기 삭제 요청된 아이노드를 상기 가용 아이노드 풀에 저장하는 단계가 수행되며,
    상기 가용 아이노드 풀에 저장된 아이노드의 개수가 상기 가용 아이노드 풀의 최대 아이노드 개수인 경우, 상기 삭제 요청된 아이노드를 상기 삭제 아이노드 엔트리에 저장하는 단계가 수행되는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법.
  9. 제8항에 있어서,
    상기 삭제 아이노드 헤드는 상기 삭제 아이노드 엔트리가 유지되는 기간인 만기 기간(expire period)을 포함하고,
    상기 삭제 아이노드 엔트리는 상기 삭제 아이노드 엔트리가 생성된 생성 시간 및상기 삭제 아이노드 엔트리에 저장된 아이노드의 배열을 포함하며,
    상기 파일 시스템을 생성하고 삭제하는 장치의 구동 방법은 상기 삭제 아이노드 엔트리를 처리하는 단계를 더 포함하고,
    상기 삭제 아이노드 엔트리를 처리하는 단계는 현재 시간과 상기 생성 시간의 차이와 상기 만기 기간이 비교되는 단계 및 상기 삭제 아이노드 엔트리를 해제하는 단계를 포함하며,
    상기 삭제 아이노드 엔트리를 해제하는 단계는 상기 차이가 상기 만기 기간보다 큰 경우에만 수행되는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법.
  10. 제9항에 있어서,
    상기 아이노드 삭제 쓰레드는 아이노드 해제 처리기로 트랜잭션 구조체를 송신하고,
    상기 트랜잭션 구조체는 상기 트랜잭션 구조체 내 저장될 수 있는 최대 엔트리 개수, 상기 트랜잭션 구조체에 저장된 엔트리 개수 및 상기 트랜잭션 구조체에 저장된 엔트리의 배열을 포함하고,
    상기 삭제 아이노드 엔트리를 처리하는 단계는 상기 최대 엔트리 개수와 상기 저장된 엔트리 개수를 비교하는 단계를 포함하고,
    상기 저장된 엔트리 개수가 상기 최대 엔트리 개수인 경우, 상기 트랜잭션 구조체가 상기 아이노드 해제 처리기로 송신되는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법.
  11. 제10항에 있어서,
    상기 파일 시스템을 생성하고 삭제하는 장치의 구동 방법은 상기 가용 아이노드 풀, 상기 삭제 아이노드 엔트리 및 상기 트랜잭션 구조체를 해제하는 단계를 더 포함하고,
    상기 해제하는 단계는 외부로부터 시스템 종료 요청이 수신되는 경우에만 수행되며,
    상기 해제하는 단계에서, 상기 가용 아이노드 풀에 저장된 아이노드들, 상기 삭제 아이노드 엔트리에 저장된 아이노드들 및 상기 트랜잭션 구조체에 저장된 엔트리들이 삭제되는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법.
  12. 제10항에 있어서,
    상기 삭제 아이노드 엔트리를 해제하는 단계는 상기 삭제 아이노드 엔트리를 상기 트랜잭션 구조체에 추가하는 단계 및 상기 삭제 아이노드 엔트리에 저장된 아이노드를 가용 아이노드 풀에 삽입하는 단계를 포함하고,
    상기 삭제 아이노드 엔트리를 상기 트랜잭션 구조체에 추가하는 단계는 상기 삭제 아이노드 엔트리에 저장된 아이노드를 가용 아이노드 풀에 삽입하는 단계가 실패한 경우에만 수행되는 파일 시스템을 생성하고 삭제하는 장치의 구동 방법.
  13. 삭제
KR1020150029682A 2015-03-03 2015-03-03 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법 KR102342564B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150029682A KR102342564B1 (ko) 2015-03-03 2015-03-03 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법
US15/057,312 US10191909B2 (en) 2015-03-03 2016-03-01 File system creating and deleting apparatus and driving method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150029682A KR102342564B1 (ko) 2015-03-03 2015-03-03 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법

Publications (2)

Publication Number Publication Date
KR20160107384A KR20160107384A (ko) 2016-09-19
KR102342564B1 true KR102342564B1 (ko) 2021-12-24

Family

ID=56850077

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150029682A KR102342564B1 (ko) 2015-03-03 2015-03-03 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법

Country Status (2)

Country Link
US (1) US10191909B2 (ko)
KR (1) KR102342564B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9965361B2 (en) * 2015-10-29 2018-05-08 International Business Machines Corporation Avoiding inode number conflict during metadata restoration
US10713215B2 (en) 2015-11-13 2020-07-14 International Business Machines Corporation Allocating non-conflicting inode numbers
CN106960055B (zh) * 2017-04-01 2020-08-04 广东浪潮大数据研究有限公司 一种文件删除方法及装置
US10788892B2 (en) 2018-05-23 2020-09-29 Facebook Technologies, Llc In-field illumination and imaging for eye tracking
US11301421B2 (en) * 2018-05-25 2022-04-12 Microsoft Technology Licensing, Llc Scalable multi-tier storage structures and techniques for accessing entries therein
US11204892B2 (en) 2019-03-21 2021-12-21 Microsoft Technology Licensing, Llc Techniques for snapshotting scalable multitier storage structures
US11650426B2 (en) 2019-05-09 2023-05-16 Meta Platforms Technologies, Llc Holographic optical elements for eye-tracking illumination
CN112506896B (zh) * 2019-09-16 2023-08-04 杭州海康威视系统技术有限公司 一种数据删除方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066182A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation Inode management in redirect-on-write file system
US20130326535A1 (en) 2012-06-05 2013-12-05 Fujitsu Limited Storage medium, information processing device, and information processing method
US20150120792A1 (en) 2013-10-25 2015-04-30 International Business Machines Corporation Managing Filesystem Inodes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571259B1 (en) 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
KR100898342B1 (ko) 2006-12-01 2009-05-20 한국전자통신연구원 공유 파일 삭제를 지연하는 객체기반 저장 시스템 및 공유파일 삭제를 지연하는 방법
US20080133609A1 (en) 2006-12-01 2008-06-05 Electronics And Telecommunications Research Institute Object-based storage system for defferring elimination of shared file and method thereof
JP4907605B2 (ja) 2007-06-25 2012-04-04 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. inodeの割り当て及び割り当て解除の方法及びコンピュータプログラム
US8484164B1 (en) * 2009-10-23 2013-07-09 Netapp, Inc. Method and system for providing substantially constant-time execution of a copy operation
US20110153606A1 (en) 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method of managing metadata in asymmetric distributed file system
US9323775B2 (en) 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
JP5722467B2 (ja) * 2011-11-28 2015-05-20 株式会社日立製作所 ストレージシステムコントローラ、ストレージシステム及びアクセス制御方法
KR20130075018A (ko) 2011-12-27 2013-07-05 한국전자통신연구원 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
KR101535703B1 (ko) * 2012-09-28 2015-07-09 삼성에스디에스 주식회사 데이터 객체 변환 장치 및 방법
US20140181437A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on mirrored storage devices through file system controls
KR20140111789A (ko) * 2013-03-12 2014-09-22 삼성전자주식회사 디지털 tv 타임 쉬프트 방법 및 이를 이용한 디지털 tv 타임 쉬프트 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120066182A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation Inode management in redirect-on-write file system
US20130326535A1 (en) 2012-06-05 2013-12-05 Fujitsu Limited Storage medium, information processing device, and information processing method
US20150120792A1 (en) 2013-10-25 2015-04-30 International Business Machines Corporation Managing Filesystem Inodes

Also Published As

Publication number Publication date
KR20160107384A (ko) 2016-09-19
US10191909B2 (en) 2019-01-29
US20160259801A1 (en) 2016-09-08

Similar Documents

Publication Publication Date Title
KR102342564B1 (ko) 파일 시스템을 생성하고 삭제하는 장치 및 그의 구동 방법
US11899592B2 (en) Computer storage deduplication
US20200356552A1 (en) Data ingestion using file queues
US10896102B2 (en) Implementing secure communication in a distributed computing system
US10678614B2 (en) Messages with delayed delivery in an in-database sharded queue
US11016939B2 (en) Architecture for scalable metadata microservices orchestration
US10853337B2 (en) Lifecycle transition validation for storage objects
US11099937B2 (en) Implementing clone snapshots in a distributed storage system
US9110909B2 (en) File level hierarchical storage management system, method, and apparatus
US20190213085A1 (en) Implementing Fault Domain And Latency Requirements In A Virtualized Distributed Storage System
US20160212206A1 (en) Deterministic database system and data transferring method thereof
US9251008B2 (en) Client object replication between a first backup server and a second backup server
CN107943718B (zh) 一种清理缓存文件的方法和装置
US20200019475A1 (en) Scalable, persistent, high performance and crash resilient metadata microservice
JP2004280485A (ja) 計算機システム
US10599622B2 (en) Implementing storage volumes over multiple tiers
US10628235B2 (en) Accessing log files of a distributed computing system using a simulated file system
US8930328B2 (en) Storage system, storage system control method, and storage control device
JP2006277545A (ja) 計算機システム、記憶装置システムおよびライト処理制御方法
CN107391045B (zh) 一种目录空间配额方法及系统
US10642697B2 (en) Implementing containers for a stateful application in a distributed computing system
US20200019330A1 (en) Combined Read/Write Cache for Deduplicated Metadata Service
US20180046488A1 (en) Thin client system, method, and non-transitory computer-readable storage medium
US20100199058A1 (en) Data Set Size Tracking and Management
WO2020215580A1 (zh) 一种分布式全局数据去重方法和装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant