KR101984495B1 - 이동식 저장 장치 및 이를 포함하는 시스템 - Google Patents
이동식 저장 장치 및 이를 포함하는 시스템 Download PDFInfo
- Publication number
- KR101984495B1 KR101984495B1 KR1020120115531A KR20120115531A KR101984495B1 KR 101984495 B1 KR101984495 B1 KR 101984495B1 KR 1020120115531 A KR1020120115531 A KR 1020120115531A KR 20120115531 A KR20120115531 A KR 20120115531A KR 101984495 B1 KR101984495 B1 KR 101984495B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- metadata
- log
- storage device
- log information
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
이동식 저장 장치 및 시스템이 제공된다. 상기 이동식 저장 장치는 메타데이터의 업데이트 관련 정보를 포함하는 로그 정보(log information)를 제공받는 입력부; 상기 로그 정보를 저장하는 로그 저장부; 및 트랜잭션(transaction)에 포함되는 적어도 하나의 메타데이터의 업데이트 작업을 수행하되, 상기 트랜잭션이 중단된 경우 상기 로그 정보를 이용하여 상기 중단된 트랜잭션을 복구(recovery)하는 트랜잭션 매니저(transaction manager)를 포함한다.
Description
본 발명은 이동식 저장 장치 및 이를 포함하는 시스템에 관한 것이다.
이동식 저장 장치는 호스트에 장착되어 동작되고, 호스트로부터 분리 가능하다. 이러한 이동식 저장 장치는 호스트에서 지시한 작업(operation), 예를 들어, 파일 생성 동작, 데이터 라이트 동작, 데이터 리드 동작 등을 수행할 수 있다.
그런데, 이동식 저장 장치가 호스트에서 지시한 작업을 수행하고 있는 동안에, 이동식 저장 장치가 호스트로부터 분리되거나, 갑작스런 파워 오프(power off)가 발생하면, 오류가 발생할 수 있다. 왜냐 하면, 이동식 저장 장치는 작업의 일부만을 진행하다가 중단되었기 때문에, 부분적인 메타데이터의 업데이트(partial updating of metadata)만이 이루어졌기 때문이다.
따라서, 이동식 저장 장치의 오류 발생을 줄이고, 동작 신뢰성(reliability)과 견고성(robustness)를 향상시킬 방안을 개발해야 한다.
본 발명이 해결하려는 과제는, 동작 신뢰성과 견고성이 향상된 이동식 저장 장치를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 동작 신뢰성과 견고성이 향상된 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 저장 장치의 일 태양은 메타데이터의 업데이트 관련 정보를 포함하는 로그 정보(log information)를 제공받는 입력부; 상기 로그 정보를 저장하는 로그 저장부; 및 트랜잭션(transaction)에 포함되는 적어도 하나의 메타데이터의 업데이트 작업을 수행하되, 상기 트랜잭션이 중단된 경우 상기 로그 정보를 이용하여 상기 중단된 트랜잭션을 복구(recovery)하는 트랜잭션 매니저(transaction manager)를 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 시스템의 일 태양은 동일한 트랜잭션에 포함되는 적어도 하나의 메타데이터의 업데이트 작업을 생성하고, 상기 각 작업에 대응되는 메타데이터의 업데이트 관련 정보를 포함하는 로그 정보를 생성하는 호스트; 및 상기 각 메타데이터의 업데이트 작업에 대응되는 로그 정보를 저장하고, 상기 각 메타데이터의 업데이트 작업을 수행하는 이동식 저장 장치를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1a은 본 발명의 일 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 1b는 도 1a의 이동식 저장 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 7는 본 발명의 다른 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 8은 본 발명의 또 다른 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 9는 도 5의 트랜잭션의 완성 전후의 LBA, PBA 매핑에 관한 것을 설명하기 위한 것이다.
도 1b는 도 1a의 이동식 저장 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 다른 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 또 다른 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 7는 본 발명의 다른 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 8은 본 발명의 또 다른 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 9는 도 5의 트랜잭션의 완성 전후의 LBA, PBA 매핑에 관한 것을 설명하기 위한 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1a은 본 발명의 일 실시예에 따른 시스템을 설명하기 위한 블록도이다. 도 1b는 도 1a의 이동식 저장 장치를 설명하기 위한 블록도이다.
본 발명의 일 실시예에 따른 시스템(1) 및 이동식 저장 장치(30)는, 트랜잭션(transaction) 기능을 채택한다. 여기서, 트랜잭션은 논리적 기능을 수행하는 단위를 의미한다. 즉, 트랜잭션은 깨질 수 없는 업무처리의 단위이다.
이러한 트랜잭션은 ACID(Atomicity, Consistency, Isolation, Durability)를 보장한다. 우선, 원자성(atomicity)이란, 트랜잭션은 전부 실행 또는 전부 미실행만 있을 뿐, 일부 실행은 없음을 의미한다. 또한, 일관성(consistency)이란, 트랜잭션이 성공적으로 완료되면, 언제나 일관된 데이터베이스 상태가 유지된다는 의미이다. 즉, 트랜잭션의 실행으로, 일관성이 깨지지 않는다는 것을 의미한다. 또한, 격리성(isolation)은 트랜잭션 실행 중 생성되는 연산의 중간결과에, 다른 트랜잭션이나 작업이 접근할 수 없다는 의미이다. 또한, 영속성(durability)은 성공적으로 완료된 트랜잭션의 결과는 어떠한 경우에라도 보장받는다는 의미이다.
예를 들어, 특정한 커맨드를 수행하기 위해서 3개의 작업을 연속적으로 수행해야 한다면, 3개의 작업은 하나의 트랜잭션으로 취급될 수 있다. 3개의 작업이 모두 수행되지 않으면, 전술한 특정한 커맨드를 수행하지 않은 것으로 취급된다. 예를 들어, 3개의 작업 중 2개의 작업만 수행하다가 중단되면, 추후에 선택적으로 이미 수행된 2개의 작업을 롤백(roll back)하거나, 나머지 1개의 작업을 커미트(commit)해야 한다.
우선 도 1a을 참조하면, 본 발명의 일 실시예에 따른 시스템(1)은 호스트(10), 어플리케이션(20), 이동식 저장 장치(30) 등을 포함할 수 있다. 또한, 호스트(10)는 파일시스템(12)과 드라이버(14)를 포함할 수 있다.
이동식 저장 장치(30)는 호스트(10)에 장착/접속되어 있다.
어플리케이션(20)은 소정의 동작을 수행하기 위해서, 동작 커맨드(CMD)를 파일 시스템(20)에 지시한다.
호스트(10)은 동작 커맨드(CMD)에 관련된 적어도 하나의 작업을 순차적으로 생성한다. 예를 들어, 어플리케이션(20)이 파일A에 데이터를 라이트하라는 동작 커맨드(CMD)를 지시하였다면, 호스트(10)는 라이트 동작과 관련된 작업, 즉, 데이터의 업데이트 작업과, 메타데이터(예를 들어, 비트맵(bitmap), 디렉토리 엔트리(directory entry), FAT 테이블)의 업데이트 작업(META_OP)을 생성한다.
여기서, 메타데이터의 업데이트 작업(META_OP)은 트랜잭션(transaction)으로 처리될 수 있다. 전술한 라이트 동작을 예로 들면, 라이트 동작과 관련된 메타데이터의 업데이트 작업(META_OP), 즉, 비트맵의 업데이트 작업, 디렉토리 엔트리의 업데이트 작업, FAT 테이블의 업데이트 작업은, 트랜잭션으로 처리될 수 있다.
또한, 트랜잭션에 포함되는 적어도 하나의 메타데이터의 업데이트 작업(META_OP)은, 동일한 트랜잭션 아이디(T_id)를 가질 수 있다. 전술한 예에서, 비트맵의 업데이트 작업, 디렉토리 엔트리의 업데이트 작업, FAT 테이블의 업데이트 작업, 즉 3개의 작업 모두의 트랜잭션 아이디는 T_id=1 일 수 있다.
또한, 호스트(10)는 메타데이터의 업데이트 관련 정보를 포함하는 로그 정보(log information)(LOG_INFO)을 생성한다.
여기서, 로그 정보(LOG_INFO)는 작업의 종류, 상기 메타데이터의 업데이트의 종류, 메타데이터의 위치, 메타데이터의 변화량, 구 메타데이터 관련 정보 중 적어도 하나를 포함할 수 있다. 작업의 종류는 예를 들어, create, rename, truncate, write 등일 수 있고, 메타데이터의 업데이트의 종류는 예를 들어, 비트맵의 업데이트, 디렉토리 엔트리의 업데이트, FAT 테이블의 업데이트일 수 있다. 또한, 구(old) 메타데이터 관련 정보는 예를 들어, 구 메타데이터의 내용뿐만 아니라 구 메타데이터의 위치를 포함할 수 있다.
또한, 트랜잭션이 완료되면(즉, 트랜잭션에 포함되는 적어도 하나의 메타데이터 업데이트 작업(META_OP)이 완료되면), 호스트(10)는 트랜잭션 완료를 알리는 완료신호를 제공한다. 뿐만 아니라, 호스트(10)는 트랜잭션이 시작함을 알리는 시작신호를 제공할 수도 있다. 트랜잭션의 시작과 완료를 알리는 것은, 어떠한 형태(예를 들어, 플래그(flag) 이용)라도 무방하다.
한편, 예를 들어, 어플리케이션(20)에서 제공한 동작 커맨드(CMD)에 대응되는 적어도 하나의 작업을 생성하는 것은 파일 시스템(12)에서 수행되고, 트랜잭션 아이디(T_id)를 부여하는 것과 로그 정보(LOG_INFO)를 생성하는 것은 드라이버(14)에서 수행될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 트랜잭션 아이디를 부여하는 것을 파일 시스템(12)에서 수행하여도 무방하다.
파일 시스템(file system)은 TFS4, BTFS, ext2/3, NTFS 등일 수 있으나, 이에 한정되는 것은 아니다.
이동식 저장 장치(30)는 호스트(10)가 지시한 적어도 하나의 작업을 수행한다. 이동식 저장 장치는 호스트에 장착되어 동작하고, 호스트로부터 분리 가능한 저장 장치라면 어떤 것이든 가능하다. 예를 들어, 이동식 저장 장치(30)는 외장형 하드 디스크(external hard disk), SD 카드, MMC 카드, UFS 카드, UHS II 카드, USB 매스(mass) 저장 장치 등일 수 있다.
도 1b에 도시된 것과 같이, 이러한 이동식 저장 장치(30)는 입력부(32), 로그 저장부(34), 트랜잭션 매니저(36) 등을 포함한다.
또한, 이동식 저장 장치(30)는 로그 정보(LOG_INFO)를 저장하고, 트랜잭션에 포함되는 적어도 하나의 메타데이터의 업데이트 작업을 수행한다.
즉, 입력부(32)는 호스트(10)로부터 로그 정보(LOG_INFO)를 제공받고, 로그 저장부(34)는 로그 정보(LOG_INFO)를 저장한다.
여기서, 트랜잭션이 중단되지 않고 완료되면, 트랜잭션 매니저(36)는 완료된 트랜잭션과 관련된 모든 로그 정보(LOG_INFO)를 삭제한다. 로그 정보(LOG_INFO)를 삭제하는 것은, 호스트(10)와 독립적으로(independent) 수행할 수도 있고, 종속적으로(dependent) 수행될 수도 있다. 종속적으로 수행할 경우에는, 트랜잭션이 완료되었을 때, 호스트(10)는 완료신호를 제공하고, 이동식 저장 장치(30)(즉, 트랜잭션 매니저(36))는 완료신호에 응답하여 로그 정보(LOG_INFO)를 삭제할 수도 있다. 이러한 동작에 대해서는 도 3을 이용하여 자세히 후술한다.
그런데, 트랜잭션이 중단되면, 트랜잭션 매니저(36)는 저장된 로그 정보(LOG_INFO)를 이용하여 중단된 트랜잭션을 복구(recovery)한다. 여기서, 트랜잭션이 중단되는 것은, 이동식 저장 장치(30)가 호스트(10)에서 지시한 작업을 수행하고 있는 동안에, 이동식 저장 장치(30)가 호스트로부터 분리되거나, 갑작스런 파워 오프(power off)가 발생하는 경우 등일 수 있으나, 이에 한정되는 것은 아니다. 중단된 트랜잭션을 복구하는 것은, 중단된 트랜잭션과 관련된 메타데이터를 롤백(roll back)하거나, 커미트(commit)할 수 있다. 이러한 동작에 대해서는 도 4을 이용하여 자세히 후술한다.
또한, 파워업(power-up) 구간에서, 트랜잭션 매니저(36)는 중단된 트랜잭션을 복구할 수 있다. 예를 들어, 이동식 저장 장치(30)가 다시 호스트(10)(이전에 분리된 호스트(10)가 아니어도 무방함)에 접속하면, 이동식 저장 장치(30)는 파워업된다. 이 때, 중단된 트랜잭션을 복구한다. 여기서, 트랜잭션 매니저(36)는 파워업 구간에서 로그 정보(LOG_INFO)의 존재 여부를 검출한다. 로그 정보(LOG_INFO)가 존재할 경우 중단된 트랜잭션을 복구한다. 트랜잭션이 완료되면 로그 정보(LOG_INFO)를 삭제하기 때문에, 로그 정보(LOG_INFO)가 존재한다는 뜻은, 트랜잭션이 완료되지 않았다는 의미이다. 트랜잭션 매니저(36)의 복구 동작은 호스트(10)와 독립적으로 수행할 수도 있고, 종속적으로 수행될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 2에서, 호스트 장치는 라이트 커맨드와 로그 정보를 이동식 메모리 장치에 전송하고, 트랜잭션을 초기화한다(2201). 라이트 커맨드에 따라서, 호스트 장치는 로그 정보 또는 로그 레코드를 전송한다. 로그 레코드(로그 정보)는 동작 종류(create, rename, truncate, write), 메타데이터 업데이트 종류(bitmap update, FAT update 등), 미디어 내에서 메타데이터의 위치, 메타데이터의 변경, 오래된 메타데이터의 자세한 내용과 같은 트랜잭션에 대한 자세한 내용을 포함할 수 있다. 이동식 메모리 장치는 로그 정보를 받아서, 미디어를 업데이트하기 전에, 비휘발성 메모리 영역(로그 영역) 상의 특별한 로그 영역 또는 로그 파일에 저장한다. 받은 커맨드는 로그 정보를 포함한다. 로그 정보는 롤백 또는 트랜잭션을 완성할 수 있는 어떤 정보를 포함할 수 있다.
예를 들어, 정보는 다음과 같을 수 있다.
Transaction id= 1
Transaction type = create file
Metadata type = FAT Update
Location of metadata in the Logical Block address and
Index = location within the block
어플리케이션은 전에 말한 내용에 한정되지 않고, 데이터 구조도 다양하게 변경될 수 있다. 정보는 이동식 메모리의 로그 파일 내에 저장된다. 디렉토리 엔트리와 같은 메타데이터 업데이트, 비트맵 업데이트, FAT는 특정한 태스크 아이디(task ID)와 관련된다(2203). 리커버리 동안에, 이동식 메모리는 로그 파일을 체크하고 미디어에 변화를 업데이트할 수 있다. 만약, 다수의 메타데이터 업데이트가 하나의 파일 시스템과 관련된다면, 모든 메타데이터 업데이트는 하나의 태스트 아이디와 관련될 수 있다. 예를 들어, 이전 트랜잭션은 비트맵 업데이트와 FAT 모디피케이션(modification)을 포함하고, 오직 비트맵 변화가 미디어 내에서 업데이트된다고 가정하자. 이후 에러가 발생한다. 에러 상태는 파워 페일, 시스템 페일, 메모리 장치 제거, 프로세스의 급작스런 종료 등 중 어느 하나일 수 있다. 어떤 케이스에서, 트랜잭션의 자세한 내용은, 이동식 메모리 장치의 로그 파일에 저장되어 있다. 페일 이후에, 시스템이 파워업되면, 체크가 이루어진다(2204). 그렇지 않다면, 노말 트랜잭션 동작이 수행된다(2205). 반면에, 페일 후에, 시스템은 파워업된 것이라면, 이동식 메모리 장치는 이전 동작에 대한 자세한 내용을 위한 로그 파일을 참조한다(2206). 페일이 발생한 후에, 불완전한 트랜잭션이 있는지 여부가 체크된다(2207). 만약 불완전한 트랜잭션이 없다면, 2209 스텝으로 넘어간다. 만약, 불완전한 트랜잭션이 있다면, 트랜잭션이 완성된다(2208). 이러한 경우에, 장치는 로그 영역 정보를 리드하고, 끝나지 않은 트랜잭션을 결정하고, 이동식 메모리 장치는 비트맵 내의 변화를 롤백할 것이다. 트랜잭션이 수행된 후, 로그 영역은 깨끗하게 된다(2209).
도 3은 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다. 도 3은 트랜잭션이 중단되지 않고 완료되는 경우를 설명하기 위한 도면이다.
도 3을 참조하면, 호스트(10)는 이동식 저장 장치(30)에 트랜잭션에 포함되는 제1 메타데이터 업데이트 작업(META_OP1)을 지시하고, 제1 메타데이터 업데이트 작업(META_OP1)에 대응되는 제1 로그 정보(LOG_INFO1)을 제공한다(S108).
이동식 저장 장치(30)는 먼저, 제1 로그 정보(LOG_INFO1)를 저장한다(S110). 이어서, 이동식 저장 장치(30)는 제1 메타데이터 업데이트 작업(META_OP1)을 수행한다(S120).
이어서, 호스트(10)는 이동식 저장 장치(30)에 트랜잭션에 포함되는 제2 메타데이터 업데이트 작업(META_OP2)을 지시하고, 제2 메타데이터 업데이트 작업(META_OP2)에 대응되는 제2 로그 정보(LOG_INFO2)를 제공한다(S128).
이동식 저장 장치(30)는 제2 로그 정보(LOG_INFO2)를 저장한다(S130). 이어서, 이동식 저장 장치(30)는 제2 메타데이터 업데이트 작업(META_OP2)을 수행한다(S140).
트랜잭션에 포함되는 모든 메타데이터 업데이트 작업(META_OP1, META_OP2)이 완료되면, 호스트(10)는 완료신호(COMMIT_TRANSACTION)를 이동식 저장 장치(30)에 제공한다(S148).
그러면, 이동식 저장 장치(30)는 트랜잭션에 대응되는 모든 로그 정보(LOG_INFO1, LOG_INFO2)를 제거한다(S150). 즉, 트랜잭션이 완료되면, 로그 정보(LOG_INFO1, LOG_INFO2)는 이동식 저장 장치(30) 내에 남겨지지 않는다.
도 4는 본 발명의 일 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다. 도 4는 트랜잭션이 중단되는 경우를 설명하기 위한 도면이다.
도 4를 참조하면, 제1 호스트(10_1)는 이동식 저장 장치(30)에 트랜잭션에 포함되는 제1 메타데이터 업데이트 작업(META_OP1)을 지시하고, 제1 메타데이터 업데이트 작업(META_OP1)에 대응되는 제1 로그 정보(LOG_INFO1)을 제공한다(S108).
이동식 저장 장치(30)는 먼저, 제1 로그 정보(LOG_INFO1)를 저장한다(S110). 이어서, 이동식 저장 장치(30)는 제1 메타데이터 업데이트 작업(META_OP1)을 수행한다(S120).
이동식 저장 장치(30)는 트랜잭션에 포함되는 모든 메타데이터 업데이트 작업을 수행하지 못하였음에도 불구하고, 이동식 저장 장치(30)는 호스트(10)로부터 분리된다(S122).
그 후, 이동식 저장 장치(30)는 다시 제2 호스트(10_2)에 장착/접속된다(S158). 제2 호스트(10_2)는 제1 호스트(10_1)와 다른 것일 수 있다.
이동식 저장 장치(30)는 파워업된다(S160). 호스트(10)는 복구 신호를 이동식 저장 장치(30)에 제공한다(S168). 이동식 저장 장치(30)는 복구 신호를 제공받은 후, 이동식 저장 장치(30) 내에 로그 정보(LOG_INFO1)가 남겨져 있는지를 체크한다. 로그 정보(LOG_INFO1)가 남겨져 있으면, 중단된 트랜잭션을 복구한다(S170).
도시하지 않았으나, 이동식 저장 장치(30)는 호스트(10)의 복구 신호를 받지 않고, 독립적으로 로그 정보(LOG_INFO)가 남겨져 있는지 체크하여, 중단된 트랜잭션을 복구할 수도 있다.
본 발명의 일 실시예에 따른 시스템(1) 및 이동식 저장 장치(30)는 트랜잭션 기능을 채택하였기 때문에, 이동식 저장 장치(30)가 호스트(10)로부터 분리되거나, 갑작스런 파워 오프(power off)가 발생하는 경우에도, 에러가 발생하지 않는다. 따라서, 동작의 신뢰성 및 견고성이 향상된다.
또한, 전술한 트랜잭션 기능은, 어떠한 파일 시스템(12)에도 적용할 수 있다. 드라이버(14)를 트랜잭션을 지원하도록(예를 들어, 로그 정보를 생성하는 것, 트랜잭션 아이디를 생성하는 것 등) 수정하면, 어떠한 파일 시스템(12)에도 적용할 수 있다. 따라서, 호환성이 매우 높다.
도 5는 본 발명의 다른 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 호스트는 트랜잭션 아이디와 함께 라이트 커맨드를 전송한다(501). 시스템은 트랜잭션 아이디가 0인지 여부를 체크한다(502). 트랜잭션 아이디가 0인 경우, 그것은 로깅(logging)이 불필요함을 의미하고, 즉, 트랜잭션 서포트(transaction support)가 특정한 동작(예를 들어, 데이터 라이트)를 위해서 필요하지 않음을 의미한다. 시스템은 미디어에 라이트한다(503). 만약 트랜잭션 아이디가 0이 아닌 경우, 시스템은 완전한 로지컬 블록을 로그 영역에 라이트한다(504). 그 후, 시스템은 트랜잭션이 완성되었는지 여부를 체크하고, 이는 커미트 트랜잭션 커맨드(commit transaction command)를 받았는지를 나타낸다(505). 만약 커미트 트랜잭션 커맨드가 없다면, 시스템은 커미트 트랜잭션 커맨드를 기다린다(506). 만약, 커미트 트랜잭션 커맨드를 받았다면, 시스템은 로그 섹터(물리적 블록 어드레스)를 메타데이터의 로지컬 블록 어드레스에 매핑한다(507). 시스템은 현재의 트랜잭션 아이디(T_id)를 위한 커미트 플래그를 세팅한다(508).
도 6은 본 발명의 또 다른 실시예에 따른 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 메모리 장치는 파워온(power on) 또는 리셋 후에 초기화된다. 파워 페일(power failure) 이후에, 이동식 메모리 장치는 동일 또는 다른 호스트에 플러그인된다. 이동식 메모리 장치에 한정되지 않고, 호스트에 연결된 임베디드 메모리에 적용가능하다. 시스템은 로그 파일 내에 엔트리가 있는지 확인한다(602). 만약 로그 파일에 엔트리가 없다면, 종료된다. 만약, 로그 파일에 엔트리를 찾을 수 있으면, 시스템은 다음 로그 엔트리를 리드한다(603). 시스템은 커미트 트랜잭션 플래그가 세팅되었는지 체크한다(604). 만약, 시스템이, 아무런 커미트 트랜잭션 플래그가 세팅되지 않았다고 확인하면, 시스템은 현재의 로그 엔트리를 깨끗이 하고, 이전 스텝으로 돌아간다(605). 만약, 시스템이 커미트 트랜잭션 플래그가 세팅되었다고 확인하면, 매핑에 의한 트랜잭션은 섹터(물리적 블록 어드레스)를 로지컬 블록 어드레스로 로깅하고, 리커버리 동작을 완성한다(606). 이하에서, 도 7 및 도 8을 이용하여, 2개 이상의 어플리케이션이 호스트를 통해서 동작 커맨드를 보낼 경우의 동작을 설명하도록 한다.
도 7는 본 발명의 다른 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 7를 참조하면, 제1 어플리케이션(20_1)은 라이트 커맨드, 예를 들어, write(file1, *pBuff, size)(210)를 호스트(10)에 제공한다.
호스트(10)는 우선, 데이터의 업데이트 작업, 예를 들어, write(data, T_id=0)(220)를 이동식 저장 장치(30)에 지시한다. 여기서, 트랜잭션 아이디(T_id)가 0인 것은, 트랜잭션이 아님을 나타낸다.
한편, 제2 어플리케이션(20_2)은 파일 생성 커맨드, 예를 들어, create(file2, *pBuff, size)(250)를 호스트(10)에 제공한다.
이어서, 호스트(10)는 파일 생성 커맨드에 대한 메타데이터의 업데이트 작업, 예를 들어, write(bitmap_sector, T_id=2)(260)를 이동식 저장 장치(30)에 지시한다. 트랜잭션 아이디(T_id)가 2이고, 2번째 트랜잭션이 시작되었음을 알 수 있다. 이 때, 호스트(10)는 write(bitmap_sector, T_id=2)(260)작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32)(즉, T_id=2에 대응되는 영역) 내에, 로그 정보(32_1)가 저장된다. 이동식 저장 장치(30)는 비트맵 업데이트를 수행한다.
이어서, 호스트(10)는 write(FAT_sector, T_id=2)(262)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(FAT_sector, T_id=2)(262) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32)(즉, T_id=2에 대응되는 영역) 내에, 로그 정보(32_2)가 저장된다. 이동식 저장 장치(30)는 FAT 업데이트를 수행한다.
이어서, 호스트(10)는 write(DE_sector, T_id=2)(264)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(DE_sector, T_id=2)(264) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=2에 대응되는 영역) 내에, 로그 정보(32_3)가 저장된다. 이동식 저장 장치(30)는 디렉토리 엔트리 업데이트를 수행한다.
또한, 호스트(10)는 라이트 커맨드에 대한 메타데이터의 업데이트 작업, 예를 들어, write(bitmap_sector, T_id=1)(230)를 이동식 저장 장치(30)에 지시한다. 트랜잭션 아이디(T_id)가 1이고, 1번째 트랜잭션이 시작되었음을 알 수 있다. 이 때, 호스트(10)는 write(bitmap_sector, T_id=1)(230) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_4)가 저장된다. 이동식 저장 장치(30)는 비트맵 업데이트를 수행한다.
이어서, 호스트(10)는 write(FAT_sector, T_id=1)(232)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(FAT_sector, T_id=1)(232) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_5)가 저장된다. 이동식 저장 장치(30)는 FAT 업데이트를 수행한다.
이어서, 호스트(10)는 write(DE_sector, T_id=1)(234)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(DE_sector, T_id=1)(234) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_6)가 저장된다. 이동식 저장 장치(30)는 디렉토리 엔트리 업데이트를 수행한다.
이어서, 호스트(10)는 트랜잭션 완료 신호 CommitTransaction(T_id=2)(270)를 제공한다. 이에 따라, 이동식 저장 장치(30)는 2번째 트랜잭션과 관련된 로그 정보(32_1, 32_2, 32_3), 즉, T_id=2를 갖는 메타데이터 업데이트에 대응되는 로그 정보(32_1, 32_2, 32_3)는 모두 삭제한다.
호스트(10)는 트랜잭션 완료 신호 CommitTransaction(T_id=1)(240)를 제공한다. 이에 따라, 이동식 저장 장치(30)는 1번째 트랜잭션과 관련된 로그 정보(32_4, 32_5, 32_6), 즉, T_id=1를 갖는 메타데이터 업데이트에 대응되는 로그 정보(32_4, 32_5, 32_6)는 모두 삭제한다.
정리하면, 제1 어플리케이션(20)은 제1 동작 커맨드를 파일 시스템(12)에 지시하고, 호스트(10)는 제1 동작 커맨드에 관련된 작업에 제1 트랜잭션 아이디(T_id=1)를 부여하고, 제1 동작 커맨드에 관련된 작업이 모두 종료된 후, 제1 동작 커맨드에 관련된 작업에 관련된 로그 정보(32_4, 32_5, 32_6)를 모두 삭제한다.
또한, 제2 어플리케이션(20)은 제2 동작 커맨드를 파일 시스템(12)에 지시하고, 호스트(10)는 제2 동작 커맨드에 관련된 작업에 제1 트랜잭션 아이디(T_id=1)와 다른 제2 트랜잭션 아이디(T_id=2)를 부여하고, 제2 동작 커맨드에 관련된 작업이 모두 종료된 후, 제2 동작 커맨드에 관련된 작업에 관련된 로그 정보(32_1, 32_2, 32_3)를 모두 삭제한다.
도 8은 본 발명의 또 다른 실시예에 따른 시스템을 설명하기 위한 블록도이다.
도 8에서는, 서로 다른 제1 및 제2 어플리케이션(20_1, 20_2)에서 제1 및 제2 동작 커맨드를 지시하더라도, 호스트(10)에서 제1 및 제2 동작 커맨드를 제공받아 하나의 통합된 트랜잭션을 만들 수도 있음을 설명한다. 통합된 트랜잭션을 만들기 위해서, 제1 및 제2 동작 커맨드에 관련된 작업에 동일한 트랜잭션 아이디(예를 들어, T_id=1)를 부여한다. 구체적인 동작 과정을 설명하면 다음과 같다.
도 8을 참조하면, 제1 어플리케이션(20_1)은 라이트 커맨드, 예를 들어, write(file1, *pBuff, size)(210)를 호스트(10)에 제공한다. 호스트(10)는 우선, 데이터의 업데이트 작업, 예를 들어, write(data, T_id=0)(220)를 이동식 저장 장치(30)에 지시한다.
한편, 제2 어플리케이션(20_2)은 파일 생성 커맨드, 예를 들어, create(file2, *pBuff, size)(250)를 호스트(10)에 제공한다.
이어서, 호스트(10)는 파일 생성 커맨드에 대한 메타데이터의 업데이트 작업, 예를 들어, write(bitmap_sector, T_id=1)(261)를 이동식 저장 장치(30)에 지시한다. 트랜잭션 아이디(T_id)가 1이고, 1번째 트랜잭션이 시작되었음을 알 수 있다. 이 때, 호스트(10)는 write(bitmap_sector, T_id=1)(261)작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_1)가 저장된다. 이동식 저장 장치(30)는 비트맵 업데이트를 수행한다.
이어서, 호스트(10)는 write(FAT_sector, T_id=1)(263)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(FAT_sector, T_id=1)(263) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_2)가 저장된다. 이동식 저장 장치(30)는 FAT 업데이트를 수행한다.
이어서, 호스트(10)는 write(DE_sector, T_id=1)(265)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(DE_sector, T_id=1)(265) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_3)가 저장된다. 이동식 저장 장치(30)는 디렉토리 엔트리 업데이트를 수행한다.
또한, 호스트(10)는 라이트 커맨드에 대한 메타데이터의 업데이트 작업, 예를 들어, write(bitmap_sector, T_id=1)(230)를 이동식 저장 장치(30)에 지시한다. 이 때, 호스트(10)는 write(bitmap_sector, T_id=1)(230) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_4)가 저장된다. 이동식 저장 장치(30)는 비트맵 업데이트를 수행한다.
이어서, 호스트(10)는 write(FAT_sector, T_id=1)(232)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(FAT_sector, T_id=1)(232) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_5)가 저장된다. 이동식 저장 장치(30)는 FAT 업데이트를 수행한다.
이어서, 호스트(10)는 write(DE_sector, T_id=1)(234)를 이동식 저장 장치(30)에 지시한다. 호스트(10)는 write(DE_sector, T_id=1)(234) 작업과 관련된 로그 정보를 생성하여 이동식 저장 장치(30)에 제공한다. 그러면, 이동식 저장 장치(30)의 로그 영역(32) (즉, T_id=1에 대응되는 영역) 내에, 로그 정보(32_6)가 저장된다. 이동식 저장 장치(30)는 디렉토리 엔트리 업데이트를 수행한다.
이어서, 호스트(10)는 트랜잭션 완료 신호 CommitTransaction(T_id=1)(240)를 제공한다. 이에 따라, 이동식 저장 장치(30)는 1번째 트랜잭션과 관련된 로그 정보(32_1, 32_2, 32_3, 32_4, 32_5, 32_6), 즉, T_id=1를 갖는 메타데이터 업데이트에 대응되는 로그 정보(32_1, 32_2, 32_3, 32_4, 32_5, 32_6)는 모두 삭제한다.
정리하면, 호스트(10)는 서로 다른 제1 및 제2 어플리케이션(20)에서 지시한 제1 및 제2 동작 커맨드에 관련된 작업에 하나의 트랜잭션 아이디(T_id=1)를 부여하고, 제1 및 제2 동작 커맨드에 관련된 작업이 모두 종료된 후, 제1 및 제2 동작 커맨드에 관련된 작업에 관련된 로그 정보(32_1, 32_2, 32_3, 32_4, 32_5, 32_6)를 모두 삭제한다.
도 9는 도 5의 트랜잭션의 완성 전후의 LBA, PBA 매핑에 관한 것을 설명하기 위한 것이다.
도 9는 LBA(Logical Block Address)와 PBA(Physical Block Address) 매핑을 보여준다. 테이블은 트랜잭션 리커버리 전후의, 오리지날 메타데이터 섹터와 로그 섹터를 보여준다. 이러한 케이스에서, 에러 상태(예를 들어, 파워 페일)에서조차도, 테이블은 로그 파일 내에 저장된다. 시스템이 파워업될 때, 이동식 메모리 장치는, 단지 물리적 어드레스 블록을 로지컬 블록 어드레스에 맵핑함으로써, 로그 파일로부터 직접 메타데이터 맵핑을 리커버리할 수 있다. 이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 호스트 12: 파일 시스템
14: 드라이버 20: 어플리케이션
30: 이동식 저장 장치
14: 드라이버 20: 어플리케이션
30: 이동식 저장 장치
Claims (10)
- 메타데이터의 업데이트 관련 정보를 포함하는 로그 정보(log information)를 제공받는 입력부;
상기 로그 정보를 저장하는 로그 저장부; 및
트랜잭션(transaction)에 포함되는 적어도 하나의 메타데이터의 업데이트 작업을 수행하되, 상기 트랜잭션이 중단된 경우 상기 로그 정보를 상기 로그 저장부에 유지하고, 상기 트랜 잭션이 완료된 경우 상기 로그 정보를 상기 로그 저장부에서 삭제하도록 상기 로그 저장부를 제어하는 트랜잭션 매니저(transaction manager)를 포함하되,
상기 트랜잭션 매니저는,
파워업 구간에서, 상기 로그 정보의 존재 여부를 검출하고, 상기 로그 정보가 존재할 경우 상기 중단된 트랜잭션을 복구(recovery)하는 이동식 저장 장치. - 제 1항에 있어서,
상기 중단된 트랜잭션을 복구하는 것은, 상기 중단된 트랜잭션에 포함되는 메타데이터를 롤백(roll back)하거나 커미트(commit)하는 이동식 저장 장치. - 삭제
- 삭제
- 삭제
- 제 1항에 있어서,
상기 트랜잭션에 포함되는 적어도 하나의 메타데이터의 업데이트 작업은, 동일한 트랜잭션 아이디를 갖는 이동식 저장 장치. - 제 1항에 있어서,
상기 로그 정보는 작업의 종류, 상기 메타데이터의 업데이트의 종류, 메타데이터의 위치, 메타데이터의 변화량, 구 메타데이터 관련 정보 중 적어도 하나를 포함하는 이동식 저장 장치. - 제1 어플리케이션 및 상기 제1 어플리케이션과 상이한 제2 어플리케이션으로부터 각각 제1 동작 커맨드 및 제2 동작 커맨드를 수신하고, 상기 제1 및 제2 동작 커맨드와 관련된 작업에 동일한 트랜잭션 아이디를 부여하고, 상기 동일한 트랜잭션 아이디에 포함되는 적어도 하나의 메타데이터의 업데이트 작업을 생성하고, 상기 각 작업에 대응되는 메타데이터의 업데이트 관련 정보를 포함하는 로그 정보를 생성하는 호스트; 및
상기 각 메타데이터의 업데이트 작업에 대응되는 로그 정보를 저장하고, 상기 각 메타데이터의 업데이트 작업을 수행하는 이동식 저장 장치를 포함하되,
상기 호스트는, 상기 제1 및 제2 동작 커맨드와 관련된 작업이 모두 종료된 후, 상기 제1 및 제2 동작 커맨드와 관련된 로그 정보를 모두 삭제하는 시스템. - 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/798,947 US9075758B2 (en) | 2012-03-19 | 2013-03-13 | Removable storage device with transactional operation support and system including same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN1005CH2012 | 2012-03-19 | ||
IN1005/CHE/2012 | 2012-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130106258A KR20130106258A (ko) | 2013-09-27 |
KR101984495B1 true KR101984495B1 (ko) | 2019-05-31 |
Family
ID=49454282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120115531A KR101984495B1 (ko) | 2012-03-19 | 2012-10-17 | 이동식 저장 장치 및 이를 포함하는 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101984495B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102184841B1 (ko) * | 2019-06-27 | 2020-11-30 | 전북대학교산학협력단 | 하이브리드 트랜잭셔널 메모리 시스템에서의 트랜잭션 복구 방법 및 트랜잭션 복구 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100390853B1 (ko) | 2000-06-07 | 2003-07-10 | 차상균 | 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 |
KR100857036B1 (ko) | 2007-04-20 | 2008-09-05 | (주)엔텔스 | 과금 시스템에서 트랜잭션 로그 파일을 이용한 장애 복구방법 및 그 장치 |
JP2009282752A (ja) * | 2008-05-22 | 2009-12-03 | Hitachi Systems & Services Ltd | ストレージデバイス及びファイルシステムの記録方法 |
US8452734B2 (en) | 2009-04-30 | 2013-05-28 | Texas Instruments Incorporated | FAT file in reserved cluster with ready entry state |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100501414B1 (ko) * | 2003-11-28 | 2005-07-18 | 한국전자통신연구원 | 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치 |
-
2012
- 2012-10-17 KR KR1020120115531A patent/KR101984495B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100390853B1 (ko) | 2000-06-07 | 2003-07-10 | 차상균 | 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 |
KR100857036B1 (ko) | 2007-04-20 | 2008-09-05 | (주)엔텔스 | 과금 시스템에서 트랜잭션 로그 파일을 이용한 장애 복구방법 및 그 장치 |
JP2009282752A (ja) * | 2008-05-22 | 2009-12-03 | Hitachi Systems & Services Ltd | ストレージデバイス及びファイルシステムの記録方法 |
US8452734B2 (en) | 2009-04-30 | 2013-05-28 | Texas Instruments Incorporated | FAT file in reserved cluster with ready entry state |
Also Published As
Publication number | Publication date |
---|---|
KR20130106258A (ko) | 2013-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9075758B2 (en) | Removable storage device with transactional operation support and system including same | |
US11550675B2 (en) | Remote data replication method and system | |
US8566282B2 (en) | Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship | |
JP5208368B2 (ja) | ファイルシステムを用いて、ファイルを世代ファイルとして自動バックアップするシステムおよび方法 | |
JP4800056B2 (ja) | ストレージシステム及びその制御方法 | |
JP3737741B2 (ja) | バックアップ・コピーの作成方法および装置 | |
US7991749B2 (en) | Database recovery method applying update journal and database log | |
US9880759B2 (en) | Metadata for data storage array | |
US8140790B2 (en) | Failure management method in thin provisioning technology for storage | |
CN104166605B (zh) | 基于增量数据文件的数据备份方法及*** | |
US20140317369A1 (en) | Snapshot creation from block lists | |
US7587562B2 (en) | Data duplication system, data duplication method and program | |
JP5386111B2 (ja) | ファイルシステムの記録方法 | |
CN100429628C (zh) | Ntfs卷中重建目录结构和恢复数据的方法 | |
US7146526B2 (en) | Data I/O system using a plurality of mirror volumes | |
US20070233753A1 (en) | Database system management method, database system, database device, and backup program | |
CN101441582A (zh) | 计算机数据对象的备份和恢复方法及实现该方法的***和程序产品 | |
CN111258666B (zh) | 计算机文件的读取方法、装置、计算机***及存储介质 | |
CN106096447A (zh) | 一种文件保护方法及装置 | |
WO2012081058A1 (en) | Storage subsystem and its logical unit processing method | |
KR102277731B1 (ko) | 스토리지 시스템의 구동 방법 및 스토리지 컨트롤러 | |
KR101984495B1 (ko) | 이동식 저장 장치 및 이를 포함하는 시스템 | |
US9665310B2 (en) | Storage control apparatus, storage control system, and control method | |
JP5290938B2 (ja) | コピー制御装置および方法 | |
JP2004220472A (ja) | 外部記憶装置のデータ回復方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |