KR101994021B1 - 파일 조작 방법 및 장치 - Google Patents

파일 조작 방법 및 장치 Download PDF

Info

Publication number
KR101994021B1
KR101994021B1 KR1020177027991A KR20177027991A KR101994021B1 KR 101994021 B1 KR101994021 B1 KR 101994021B1 KR 1020177027991 A KR1020177027991 A KR 1020177027991A KR 20177027991 A KR20177027991 A KR 20177027991A KR 101994021 B1 KR101994021 B1 KR 101994021B1
Authority
KR
South Korea
Prior art keywords
file
data page
index information
identifier
data
Prior art date
Application number
KR1020177027991A
Other languages
English (en)
Other versions
KR20170123336A (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 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드
Publication of KR20170123336A publication Critical patent/KR20170123336A/ko
Application granted granted Critical
Publication of KR101994021B1 publication Critical patent/KR101994021B1/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/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/13File access structures, e.g. distributed indices
    • 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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원은 파일 조작 방법 및 장치를 개시한다. 해당 방법의 일 구체적인 실시예는, 목적 파일에 대한 조작 요청을 수신하는 단계; 파일 이름과 데이터 페이지 식별자를 기반으로, 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 단계; 및 색인 정보를 기반으로 데이터 페이지를 검색하고, 데이터 페이지에 대한 조작을 수행하는 단계를 포함한다. 따라서, 온 칩 메모리 중에 저장한 색인에 의존하여 파일에 대한 조작을 실시하였으므로, 색인을 액세스하는 메모리 오버헤드가 0에 상당하도록 하고 메모리 자원을 절약하여 시스템 오버헤드를 감소시키게 된다.

Description

파일 조작 방법 및 장치
본 특허 출원은 2015년 12월 25일에 제출한 출원번호가 201510993999.9인 중국 특허 출원의 우선권을 주장하는 바, 상기 출원의 모든 내용은 통합되어 본원에 원용된다.
기술 분야
본 출원은 컴퓨터 기술 분야에 관한 것으로, 구체적으로 파일 시스템 분야에 관한 것이며, 특히 파일 조작 방법 및 장치에 관한 것이다.
임베디드 기기 중에서, 임베디드 파일 시스템을 통해 파일에 대한 조작을 수행한다. 기존의 임베디드 파일 시스템 중, 보통 로그 구조를 이용하여 파일에 대하여 저장을 진행하고, 즉 색인과 파일 데이터를 동시에 파일 중에 저장하고, 파일의 데이터 페이지들이 저장 공간 상에 비연속적이다. 파일에 대한 조작을 진행할 경우, 색인을 통해 데이터 페이지를 검색하여 데이터 페이지를 단위로 하여 조작을 진행하는 방식을 이용한다.
그러나, 상기 방식을 이용하여 파일에 대한 조작을 진행할 경우, 한편으로, 색인이 점용한 메모리 공간은 비교적 크므로 파일에 대한 조작의 과정 중 오버헤드를 크게 하고, 따라서 전체 임베디드 시스템의 시스템 오버헤드를 증가시키게 된다. 다른 한편으로, 파일의 데이터 페이지들이 저장 공간 상에 비연속적으므로, 제3자 애플리케이션의 실행 가능한 파일에 대한 동적 로딩을 실시하지 못한다.
본 출원은 상기 배경기술 부분에서 존재한 기술적 문제를 해결하기 위하여, 파일 조작 방법 및 장치를 제공한다.
제1 방면에 있어서, 본 출원은 파일 조작 방법을 제공하며, 해당 방법은, 목적 파일에 대한 조작 요청을 수신하되, 조작 요청은 파일 이름과, 목적 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 단계; 파일 이름과 데이터 페이지 식별자를 기반으로, 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 단계; 및 색인 정보를 기반으로 데이터 페이지를 검색하고, 데이터 페이지에 대한 조작을 수행하는 단계를 포함한다.
제2 방면에 있어서, 본 출원은 파일 조작 장치를 제공하며, 해당 장치는, 목적 파일에 대한 조작 요청을 수신하도록 구성되되, 조작 요청은 파일 이름과, 목적 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 수신 유닛; 파일 이름과 데이터 페이지 식별자를 기반으로, 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하도록 구성되되, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 획득 유닛; 및 색인 정보를 기반으로 데이터 페이지를 검색하고, 데이터 페이지에 대한 조작을 수행하도록 구성된 처리 유닛을 포함한다.
본 출원에 따른 파일 조작 방법 및 장치에 있어서, 목적 파일에 대한 조작 요청을 수신하여; 파일 이름과 데이터 페이지 식별자를 기반으로 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되며; 색인 정보를 기반으로 데이터 페이지를 검색하고, 데이터 페이지에 대한 조작을 수행한다. 따라서, 온 칩 메모리 중에 저장한 색인에 의존하여 파일에 대한 조작을 실시하였으므로 색인을 방문하는 메모리 오버헤드가 0에 상당하도록 하고 메모리 자원을 절약하여 시스템 오버헤드를 감소시키게 된다.
이하 첨부된 도면들을 참조하여 진행한 비 한정적인 실시예에 대한 상세한 설명으로부터, 본 출원의 기타 특징, 목적 및 장점들은 더욱 명확해 질 것이다.
도1은 본 출원이 적용 가능한 예시적 시스템의 구조도이다.
도2는 본 출원에 따른 방법의 일 실시예의 흐름도이다.
도3은 제1단계 색인을 저장하는 데이터 페이지의 구조적 개략도이다.
도4는 제2단계 색인을 저장하는 데이터 페이지의 구조적 개략도이다.
도5는 2단계 색인을 통해 데이터 페이지를 검색하는 개략도이다.
도6은 본 출원에 따른 파일 조작 방법의 다른 일 실시예의 흐름도이다.
도7은 실행 가능한 파일의 데이터 페이지의 배치를 도시한다.
도8은 데이터 파일의 데이터 페이지의 배치를 도시한다.
도9는 파일 작성의 일 예시적 흐름도이다.
도10은 데이터를 데이터 페이지에 기록하는 일 예시적 흐름도이다.
도11은 본 출원에 따른 파일 조작 장치의 일 실시예의 구조적 개략도이다.
도12는 본 출원의 실시예에 따른 단말기 장치 또는 서버를 실현하기에 적합한 컴퓨터 시스템의 구조적 개략도이다.
이하, 첨부된 도면 및 실시예들을 결부하여 본 출원을 상세히 설명하기로 한다. 본 명세서에서 설명된 구체적인 실시예들은 오직 해당 발명을 설명하기 위한 것일 뿐, 해당 발명을 한정하기 위한 것이 아님을 이해할 것이다. 또한, 설명의 편의를 위하여, 도면에는 오직 본 발명에 관련된 부분만이 도시되어 있다.
본 출원의 실시예 및 실시예의 특징들은 서로 모순되지 않는 한 상호 조합할 수 있다. 이하, 첨부된 도면을 참조하고 실시예들을 결부하여 본 출원을 상세히 설명하기로 한다.
도1은 본 출원의 파일 조작 방법 또는 파일 조작 장치의 실시예를 적용할 수 있는 예시적 시스템 아키텍처(100)를 나타낸다.
도1에 도시된 바와 같이, 시스템 아키텍처(100)는 단말기 장치(101, 102 및 103), 네트워크(104) 및 서버(105)를 포함할 수 있다. 네트워크(104)는 단말기 장치(101, 102 및 103)와 서버(105) 사이에 전송 링크를 제공하는 매체이다. 네트워크(104)는 유선, 무선 전송 링크 또는 광섬유 케이블 등과 같은 여려가지 연결 유형을 포함할 수 있다.
사용자는 단말기 장치(101, 102 및 103)를 사용하여 네트워크(104)를 통해 서버(105)와 인터랙션을 진행하여 메세지를 수신 또는 발신할 수 있다. 단말기 장치(101, 102 및 103)에는 각종 통신 애플리케이션들이 설치될 수 있다.
단말기 장치(101, 102 및 103)는 디스플레이 스크린을 구비하고 네트워크 통신을 지원하는 각종의 전자기기일 수 있으며, 스마트폰, 태블릿 PC, 전자책 단말기, MP3 플레이어(Moving Picture Experts Group Audio Layer III), MP4(Moving Picture Experts Group Audio Layer IV) 플레이어, 랩탑형 컴퓨터 및 데스크톱 컴퓨터 등을 포함하나, 이에 한정되는 것은 아니다.
서버(105)는 다양한 서비스를 제공하는 서버일 수 있고, 예를 들어, 단말기 장치(101, 102 및 103) 상의 애플리케이션에 파일 저장 서비스를 제공하는 클라우드 서버일 수 있다. 서버는 수신한 파일 조작 요청에 대하여 처리를 진행하고 처리 결과(예를 들어, 판독한 파일 데이터)를 단말기 장치에 피드백한다.
도1 중의 단말기 장치, 네트워크 및 서버의 수량은 단지 예시적인 것으로 이해할 것이다. 실제 수요에 따라, 임의 수량의 단말기 장치, 네트워크 및 서버를 구비할 수 있다.
도2를 참조하면, 본 출원에 따른 파일 조작 방법의 일 실시예의 프로세스(200)를 도시한다. 본 출원의 실시예에서 제공하는 파일 조작 방법은, 일반적으로 단말기 장치(101, 102 및 103) 또는 도1 중의 서버(105)에 의해 수행되는 것을 유의하여야 하고, 따라서, 파일 조작 장치는 일반적으로 단말기 장치(101, 102 및 103) 또는 서버(105) 중에 설치된다. 해당 방법은 아래와 같은 단계들을 포함한다.
단계(201)에서, 목적 파일에 대한 조작 요청을 수신한다.
본 실시예에 있어서, 파일 조작 방법을 실행하는 전자 기기(예를 들어, 도1에 도시된 단말기 장치 또는 서버)는 유선 연결 방식 또는 무선 연결 방식을 통해 목적 파일에 대한 조작 요청을 수신할 수 있다. 조작 요청은 파일 이름과, 목적 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함한다. 본 실시예에 있어서, 목적 파일에 대한 조작 요청의 유형은 기록 조작, 판독 조작과 업데이트 요청일 수 있다. 목적 파일은 데이터 페이지를 단위로 하여 저장될 수 있고, 따라서, 파일에 대한 조작도 데이터 페이지를 단위로 하여 진행된다. 예를 들어, 목적 파일이 플래시(flash) 메모리 중에 저장될 경우, 한 목적 파일의 데이터는 다수의 데이터 페이지, 즉 플래시 페이지(flash page) 상에 저장될 수 있다. 즉, 목적 파일에 대한 조작은 목적 파일을 저장하는 데이터 페이지에 대한 조작을 통해 완료된다.
단계(202)에서, 파일 이름과 데이터 페이지 식별자를 기반으로 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득한다.
본 실시예에 있어서, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장될 수 있다. 예를 들어, 데이터 페이지에 대한 조작을 수행하는 프로세서가 MCU(Microcontroller Unit, 마이크로 제어 장치)일 경우, 색인 정보는 MCU의 온 칩 메모리(온 보드 플래시로 칭할 수도 있음)중에 저장될 수 있다. 본 실시예에 있어서, 색인 정보는 데이터 페이지의 저장 공간의 주소와 관련된 정보일 수 있고, 예를 들어, 색인 정보 중 데이터 페이지를 기록하는 물리 주소일 수 있다.
본 출원 중의 색인 구조를 설명하기 전에, 먼저 1단계 색인만 이용하여 플래시 메모리 상에 직접 색인(파일 색인으로 칭할 수도 있음)을 보존할 경우에 존재하는 문제를 설명하기로 한다. 한편으로, 파일이 점용한 저장 공간의 크기가 서로 다르므로 점용한 데이터 페이지의 수량도 다르고, 따라서 파일 이름과 데이터 페이지의 대응 관계를 직접 저장할 경우, 색인이 점용한 저장 공간의 크기는 비고정적인 것이다. 이리하여, 색인 중에 파일을 저장하는 데이터 페이지를 증가시키거나 업데이트할 경우, 색인 전체에 대한 수정을 야기하게 된다. 다른 한편으로, 색인이 차지한 저장 공간 매우 크고, 데이터 페이지의 증감 또는 업데이트 시 플래시 메모리 상에서 직접 수정할 수 없고, 먼저 메모리 중에 카피하여 수정을 진해한 후에 플래시 메모리 중에 다시 기록할 수 밖에 없으므로 대량의 메모리 소모를 초래하게 된다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 색인 정보는 파일 이름과 파일 식별자를 포함하는 제1 색인 정보와, 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 포함한다.
본 실시예에 있어서, 색인의 구조는 2단계 색인일 수 있으며, 제1단계 색인은 파일 이름으로부터 파일 식별자까지의 색인이고, 즉 파일 이름을 통해 파일 식별자를 검색하는 색인이다. 제2단계 색인은 파일 이름 식별자와 데이터 페이지 식별자로부터 데이터 페이지까지의 색인이고, 즉 파일 이름 식별자와 데이터 페이지 식별자를 통해 데이터 페이지를 검색하는 색인이다. 따라서, 2단계 색인 구조에 대하여, 제1 색인 정보와 제2 색인 정보를 설정한다. 제1 색인 정보 중에 파일 이름과 파일 식별자가 포함될 수 있고, 제2 색인 정보 중에 데이터 페이지의 저장 공간의 주소, 즉 데이터 페이지의 물리 주소가 포함될 수 있다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 온 칩 메모리의 저장 공간 중에서 제1 데이터 페이지를 선택하는 단계; 파일 이름을 키값으로 하는 제1 해시 테이블을 작성하는 단계; 제1 해시 테이블 중 키값에 대응되는 위치 상에 제1 색인 정보를 저장하는 단계; 및 제1 해시 테이블을 제1 데이터 페이지 중에 저장하는 단계를 더 포함한다.
본 실시예에 있어서, 온 칩 메모리 중에서 제1단계 색인을 저장하기 위한 데이터 페이지, 즉 제1 데이터 페이지를 선택할 수 있다. 다음, 목적 파일의 파일 이름을 키값으로 하는 제1 해시 테이블을 작성하고, 제1 해시 테이블 중 키값에 대응되는 위치 상에, 즉 슬롯(slot) 상에 제1 색인 정보를 저장할 수 있다. 다음, 제1 해시 테이블을 제1 데이터 페이지 중에 저장한다. 본 실시예에 있어서, 제1단계 색인을 저장하는 제1 데이터 페이지가 다수 개일 수 있고, 서로 다른 제1 데이터 페이지는 데이터 페이지 식별자를 통해 구분될 수 있고, 제1 데이터 페이지들은 저장 공간 상에서 연속할 필요가 없다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 온 칩 메모리의 저장 공간 중에서 제2 데이터 페이지를 선택하는 단계; 파일 식별자와 데이터 페이지 식별자를 키값으로 하는 제2 해시 테이블을 작성하는 단계; 제2 해시 테이블 중 키값에 대응되는 위치 상에 제2 색인 정보를 저장하는 단계; 및 제2 해시 테이블을 제2 데이터 페이지 중에 저장하는 단계를 더 포함한다.
본 실시예에 있어서, 온 칩 메모리 중에서 제2단계 색인을 저장하기 위한 데이터 페이지, 즉 제2 데이터 페이지를 선택할 수 있다. 다음, 파일 식별자와 데이터 페이지 식별자를 키값으로 하는 제2 해시 테이블을 작성하고, 제2 해시 테이블 중 키값에 대응되는 위치 상에, 즉 슬롯 상에 제2 색인 정보를 저장할 수 있으며, 다음, 제2 해시 테이블을 제2 데이터 페이지 중에 저장한다. 본 실시예에 있어서, 제2단계 색인을 저장하는 제2 데이터 페이지는 다수 개일 수 있고, 서로 다른 제2 데이터 페이지는 데이터 페이지 식별자를 통해 구분될 수 있고, 제2 데이터 페이지들은 저장 공간 상에서 연속할 필요가 없다.
도3을 참조하면, 제1단계 색인을 저장하는 데이터 페이지의 구조적 개략도를 나타낸다. 도3에 있어서, 유형 번호(magic number)는 파일의 유형을 표시한다. 파일 식별자(fileid)는 제1단계 색인을 저장하는 데이터 페이지가 속한 파일을 표시하고, 해당 파일은 데이터 파일(일반 파일로 칭할 수도 있음)이고, 파일 식별자 0을 해당 파일의 파일 식별자로 이용할 수 있다. 데이터 페이지 식별자(pageid)는 데이터 페이지가 파일의 몇 번째 데이터 페이지인지를 표시한다. 버전 번호(version)는 데이터 페이지 상에 저장한 데이터의 버전을 표시한다. 제1 해시 테이블의 키값은 파일 이름이고, 제1 해시 테이블의 슬롯 상에는 연결 리스트가 저장될 수 있다. 연결 리스트 중 각 노드는 한 저장 노드(hash node)에 대응될 수 있다. 저장 노드 중에는 파일 이름과 파일 식별자를 포함하는 제1 색인 정보가 저장된다. 수량 파라미터(count)는 사용된 저장 노드의 개수를 표시한다.
도4를 참조하면, 제2단계 색인을 저장하는 데이터 페이지의 구조적 개략도를 나타낸다. 도4에 있어서, 유형 번호(magic number)는 파일의 유형을 표시한다. 파일 식별자(fileid)는 제2단계 색인을 저장하는 데이터 페이지가 속한 파일을 표시하고, 해당 파일은 데이터 파일일 수 있고, 파일 식별자 1을 해당 파일의 파일 식별자로 이용할 수 있다. 데이터 페이지 식별자(pageid)는 데이터 페이지가 해당 파일의 몇 번째 데이터 페이지인지를 표시한다. 버전 번호(version)는 데이터 페이지 상에 저장한 데이터의 버전 번호를 표시한다. 제2 해시 테이블의 키값은 파일 식별자와 데이터 페이지 식별자이고, 제2 해시 테이블의 슬롯 상에는 저장 노드(hash node)가 저장될 수 있다. 저장 노드 중에는 데이터 페이지의 물리 주소를 포함하는 제2 색인 정보가 저장된다. 수량 파라미터(count)는 사용된 저장 노드의 개수를 표시한다.
본 실시예에 있어서, 제1단계 색인과 제2단계 색인이 제1 데이터 페이지와 제2 데이터 페이지 중에 저장될 경우, 제1단계 색인과 제2단계 색인에 관련된 데이터 구조의 총화를 제1 색인표와 제2 색인표로 칭할 수 있다. 제1 색인 정보와 제2 색인 정보를 저장하는 저장 노드가 점용한 저장 공간의 크기는 고정 길이일 수 있다. 2단계 색인이 다수의 데이터 페이지를 포함하는 상황에 대하여, 다수의 색인표를 이용하여 각각 맵핑하는 것을 표시한다. 즉, 저장 공간을 많이 차지한 큰 색인표를 저장 공간을 적게 차지한 작은 색인표로 나누고, 작은 색인표는 연속적 데이터 페이지 상에 저장될 필요가 없다. 이리하여, 데이터 페이지의 증가, 절감 및 업데이트는 색인을 저장한 한 데이터 페이지 상에 한정되어 진행될 수 있으므로, 색인 유지 과정 중에 존재한 대량 메모리 소모의 문제를 피하게 된다.
단계(203), 색인 정보를 기반으로 데이터 페이지를 검색하고, 데이터 페이지에 대한 조작을 수행한다.
본 실시예에 있어서, 색인 정보 중의 데이터 페이지의 물리 주소를 기반으로 데이터 페이지를 검색하고 데이터 페이지에 대한 조작을 수행할 수 있다. 예를 들어, 데이터를 데이터 페이지에 기록하고, 데이터 페이지에서 데이터를 판독한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 색인 정보를 기반으로 데이터 페이지를 검색하는 단계는, 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하는 단계; 제2 해시 테이블 중 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하는 단계; 및 제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라 데이터 페이지를 검색하는 단계를 포함한다.
이하, 2단계 색인을 예로 들어, 데이터 페이지 검색 과정을 설명하기로 한다. 도5를 참조하면, 2단계 색인을 통해 데이터 페이지를 검색하는 개략도를 나타낸다.
만일, 제1 파일에 대한 조작 요청 중에 제1 파일의 제1 파일 이름(filename1)과 제1 데이터 페이지 식별자(pageid1)가 포함된다. 제2 파일에 대한 조작 요청 중에 제2 파일의 제2 파일 이름(filename2) 및 제2 데이터 페이지 식별자(pageid2)와 제3 데이터 페이지 식별자(pageid3)가 포함된다. 여기서, 제1 데이터 페이지 식별자는 255이다. 제2 데이터 페이지 식별자와 제3 데이터 페이지 식별자는 1과 2이다. 다음, 제1 파일 이름(filename1)과 제2 파일 이름(filename2)을 키값으로 하여 해시값을 계산하여 획득하고, 제1 해시 테이블 중 해당 해시값에 대응되는 슬롯 상에 저장된 연결 리스트를 각각 획득한다. 연결 리스트 중 제1 파일 이름과 제2 파일 이름에 대응되는 저장 노드 1과 저장 노드 2를 각각 확정한다. 저장 노드 1에 제1 파일 이름(filename1)과 제1 파일을 포함하는 파일 식별자(fileid1)의 제1 색인 정보가 저장된다. 저장 노드 2에 제2 파일 이름(filename2)과 제2 파일을 포함하는 파일 식별자(fileid2)의 제2 색인 정보가 저장된다. 따라서, 제1 파일의 파일 식별자(fileid1)와 제2 파일의 파일 식별자(fileid2)를 획득한다. 제1 파일의 파일 식별자(fileid1)와 제1 데이터 페이지 식별자(pageid1)를 키값으로 하여 해시값 계산을 진행하여 해시값을 획득하고, 제2 해시 테이블 중 해당 해시값에 대응되는 슬롯 상에서 저장 노드 5를 검색한다. 저장 노드 5에 제1 데이터 페이지 식별자(pageid1)에 대응되는 데이터 페이지의 물리 주소를 포함하는 제2 색인 정보가 저장되므로 제1 파일 중의 데이터 페이지를 검색한다. 제2 데이터 페이지 식별자(pageid2) 및 제3 데이터 페이지 식별자(pageid3)를 각각 제2 파일의 파일 식별자(fileid2)와 키값으로 하여 해시값 계산을 진행하여 해시값을 획득할 수 있으며, 제2 해시 테이블 중 해당 해시값에 대응되는 슬롯 상에서 저장 노드 3과 저장 노드 4를 검색한다. 저장 노드 3중에 제2 데이터 페이지 식별자(pageid2)에 대응되는 데이터 페이지의 물리 주소를 포함하는 제2 색인 정보가 저장되므로 제2 파일 상 제2 데이터 페이지 식별자(pageid2)에 대응되는 데이터 페이지를 검색한다. 저장 노드 4에 제3 데이터 페이지 식별자(pageid3)에 대응되는 데이터 페이지의 물리 주소를 포함하는 제2 색인 정보가 저장되므로, 제2 파일 상 제3 데이터 페이지 식별자(pageid3)에 대응되는 데이터 페이지를 검색한다.
이하, 본 실시예 중의 색인과 기존 기술의 차이점을 설명하기로 한다. 기존의 임베디드 파일 시스템 중에서 색인이 차지한 메모리 공간은 비교적 큰 것이 차이점이다. 임베디드 파일 시스템으로 yaffs 파일 시스템을 예로 들 경우, yaffs 파일 시스템 중에는 32개의 파일이 저장되고 데이터 페이지의 크기는 1KB이라고 가정한다. 그렇다면, 공간 복잡도가 최악인 상황에서, 색인이 점용한 메모리 공간은 3KB를 초과한다. 그러나, 본 실시예에 있어서, 색인 구조는 온 칩 메모리 중의 데이터 페이지 상에 직접 저장되고, 프로세서가 파일 시스템을 경유할 필요없이 온 칩 메모리의 데이터 페이지에 대하여 방문을 직접 진행할 수 있으므로, 자원이 한정된 임베디드 시스템 중, 색인을 방문하는 메모리 오버헤드가 0에 상당하고 메모리 자원을 절약하고, 전체 임베디드 시스템의 시스템 오버헤드를 진일보 경감시키게 된다.
도6을 참조하면, 본 출원에 따른 파일 조작 방법의 다른 일 실시예의 프로세스(600)를 도시한다. 본 출원의 실시예에서 제공하는 파일 조작 방법은 보통 단말기 장치(101, 102 및 103) 또는 도1 중의 서버(105)에 의해 수행됨을 유의하여야 하며, 해당 방법은 아래와 같은 단계들을 포함한다.
단계(601), 목적 파일을 작성한다.
본 실시예에 있어서, 파일 이름에 대응되는 파일 식별자를 할당하며; 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 생성하고 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 제1 색인 정보를 저장하는 방식을 이용하여 목적 파일을 작성할 수 있다. 본 실시예에 있어서, 목적 파일을 작성할 경우, 먼저, 파일에 한 파일 식별자를 할당할 수 있고, 다음, 파일 이름과 파일 식별자를 제1단계 색인을 저장하는 데이터 페이지 중에 보존한다. 예를 들어, 먼저 파일 이름에 대하여 해시값 계산을 진행하여 해시값을 획득하고, 다음, 제1단계 색인을 저장하는 데이터 페이지 중의 해시 테이블 중 해시값에 대응되는 슬롯의 연결 리스트 상에서, 유휴 저장 노드가 존재하는지 여부를 검색한다. 유휴 저장 노드가 존재할 경우, 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 해당 저장 노드 중에 저장한다. 그러지 아니할 경우, 연결 리스트 상에 저장 노드를 추가하고, 추가한 저장 노드 중에 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 저장한다.
도7을 참조하면, 실행 가능한 파일의 데이터 페이지의 배치를 도시한다.
본 실시예에 있어서, 실행 가능한 파일은 다수의 연속적인 데이터 페이지로 구성된 저장 영역 내에 저장될 수 있다. 첫 번째 데이터 페이지 상에, 즉 데이터 페이지 식별자가 0인 데이터 페이지 상에 한 데이터 구조를 저장할 수 있고, 해당 데이터 구조 중에 유형 번호(magic number), 파일 식별자(fileid), 데이터 페이지 식별자(pageid), 파일 이름(name)과 저장 공간 파라미터(size)가 포함될 수 있다. 여기서, 유형 번호의 수치는 데이터 페이지가 속한 파일의 유형이 실행 가능한 파일인 것을 표시한다. 파일 식별자는 실행 가능한 파일의 파일 식별자를 표시하고, 데이터 페이지 식별자는 데이터 페이지 식별자이고, 파일 이름은 실행 가능한 파일의 파일 명칭이고, 파일 크기 파라미터는 실행 가능한 파일의 크기를 표시한다. 데이터 구역(data area)은 실행 가능한 파일의 데이터를 저장한다.
도8을 참조하면, 데이터 파일의 데이터 페이지의 배치를 도시한다.
본 실시예에 있어서, 데이터 파일은 다수의 데이터 페이지를 포함할 수 있으며, 첫 번째 데이터 페이지를 파일 헤더로 간주하여 파일의 속성 정보를 보존할 수 있고, 기타의 데이터 페이지는 파일의 데이터를 저장한다. 데이터 파일의 각 데이터 페이지 중에 한 데이터 구조(태그(tag) 데이터 구조로 칭할 수도 있음)가 포함될 수 있고, 해당 데이터 구조는 유형 번호(magic number), 파일 식별자(fileid), 데이터 페이지 식별자(pageid)와 버전 번호(version)를 포함할 수 있다. 여기서, 유형 번호는 데이터 페이지가 속한 파일의 유형이 데이터 파일인 것을 표시하고, 파일 식별자는 전역 단일 파일 식별자이고, 데이터 페이지 식별자는 파일 중 현재 데이터 페이지의 위치를 표시하고, 버전 번호는 데이터 페이지 상에 저장된 데이터의 버전이고, 버전 번호는 동일한 파일 식별자와 데이터 페이지 식별자를 구비한 데이터 페이지를 구분할 수 있고, 큰 버전 번호가 데이터 페이지 중의 데이터가 비교적 새로운 데이터인 것을 표시한다. 처음으로 데이터를 데이터 페이지 중에 기록할 경우, 버전 번호는 1로 설정될 수 있다. 길이 파라미터(length)는 데이터 페이지에 보존된 유효 데이터의 길이를 표시하고, 데이터 구역(data area)은 데이터 파일의 데이터를 저장한다. 본 실시예에 있어서, 동일한 파일에 속한 데이터 페이지들을 데이터 페이지 식별자가 작은 것으로부터 큰 것까지의 순서에 때라 배열하고, 다음, 동일한 데이터 페이지 식별자를 구비한 데이터 페이지의 버전 번호의 크기를 비교하여 버전 번호가 작은 페이지를 제거하면, 파일의 모든 데이터를 획득할 수 있다.
도9를 참조하면, 파일을 작성하는 일 예시적 흐름도를 나타낸다. 아래와 같은 단계들을 포함한다.
단계(9001), 한 이용 가능한 파일 식별자를 할당한다. 파일 식별자는 전역 단일 파일 식별자이다.
단계(9002), 유휴 저장 노드의 색인표가 존재하는지 여부를 판단한다. 제1단계 색인이 제1 데이터 페이지 중에 저장될 경우, 제1단계 색인과 관련된 데이터 구조의 총화를 제1 색인표로 칭할 수 있다. 상기 색인표는 제1 색인표이다. 색인표 중에 유휴 저장 노드가 존재하는지 여부를 판단할 수 있다. 유휴 저장 노드가 존재할 경우, 단계(9003)를 수행하고, 그러지 아니할 경우, 단계(9004)를 수행한다.
단계(9003), 색인표 중 유휴 저장 노드 내에 파일 이름과, 대응되는 파일 식별자를 보존한다.
단계(9004), 한 색인표를 새로 추가하고 파일 이름 및 대응되는 파일 식별자를 한 저장 노드 중에 저장한다.
단계(9005), 새로운 데이터 페이지에 할당하고 파일의 데이터를 데이터 페이지에 기록한다.
단계(602), 목적 파일에 대한 조작 요청을 수신한다.
본 실시예에 있어서, 조작 요청은 파일 이름과, 목적 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함한다. 본 실시예에 있어서, 목적 파일에 대한 조작 요청의 유형은 기록 조작과 판독 조작일 수 있다. 목적 파일은 데이터 페이지를 단위로 하여 저장될 수 있고, 따라서, 파일에 대한 조작도 데이터 페이지를 단위로 하여 진행될 수 있다. 예를 들어, 목적 파일이 플래시(flash) 메모리 중에 저장될 경우, 한 목적 파일의 데이터는 다수의 데이터 페이지, 즉 플래시 페이지(flash page) 상에 저장될 수 있다. 즉, 목적 파일에 대한 조작은 목적 파일을 저장하는 데이터 페이지에 대한 조작을 통해 완료된다.
단계(603), 파일 이름과 데이터 페이지 식별자를 기반으로, 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득한다.
본 실시예에 있어서, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장된다. 본 실시예에 있어서, 색인 정보는 데이터 페이지의 저장 공간의 주소와 관련된 정보일 수 있고, 예를 들어, 색인 정보 중 데이터 페이지를 기록하는 물리 주소일 수 있으므로 색인 정보를 통해 데이터 페이지를 검색한다. 본 실시예에 있어서, 색인 정보는 온 칩 메모리 중에 저장될 수 있다. 예를 들어, 데이터 페이지에 대한 조작을 수행하는 프로세서가 MCU일 경우, 색인 정보는 MCU의 온 칩 메모리(온 보드 플래시(flash)로 칭할 수도 있음) 중에 저장될 수 있다.
본 실시예에 있어서, 색인의 구조는 2단계 색인일 수 있으며, 제1단계 색인은 파일 이름으로부터 파일 식별자까지의 색인이고, 즉 파일 이름을 통해 파일 식별자를 검색하는 색인이다. 제2단계 색인은 파일 이름 식별자와 데이터 페이지 식별자로부터 데이터 페이지까지의 색인이고, 즉 파일 이름 식별자와 데이터 페이지 식별자를 통해 데이터 페이지를 검색하는 색인이다. 따라서, 2단계 색인 구조에 대하여, 제1 색인 정보와 제2 색인 정보를 설정한다. 제1 색인 정보 중에는 파일 이름과 파일 식별자가 포함될 수 있고, 제2 색인 정보 중에는 데이터 페이지의 저장 공간의 주소, 즉 데이터 페이지의 물리 주소가 포함될 수 있다.
단계(604), 색인 정보를 기반으로 데이터 페이지를 검색하고, 검색한 데이터 페이지에 대하여 조작 유형 식별자에 대응되는 조작을 수행한다.
본 실시예에 있어서, 목적 파일이 실행 가능한 파일일 경우, 실행 가능한 파일을 저장하기 위한 데이터 페이지의 수량을 확정하며; 수량의 저장 공간의 주소가 연속적인 데이터 페이지와 데이터 페이지의 데이터 페이지 식별자를 할당하고, 데이터 페이지 중 첫 데이터 페이지 중에 실행 가능한 파일의 저장 공간의 크기를 지시하는 저장 공간 파라미터를 저장하며; 첫 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하며; 제2 해시 테이블 중 파일 식별자와 첫 데이터 페이지의 데이터 페이지 식별자에 대응되는 위치 상에 제2 색인 정보를 저장하는 방식을 이용하여, 실행 가능한 파일에 대한 기록 요청을 처리할 수 있다.
본 실시예에 있어서, 실행 가능한 파일을 저장하기 전에, 먼저 실행 가능한 파일을 저장하기 위한, 저장 공간의 주소가 연속적인 데이터 페이지를 할당할 수 있다. 다음, 주소가 연속적인 데이터 페이지 상에 실행 가능한 파일의 데이터를 기록할 수 있으며, 동시에, 실행 가능한 파일의 파일 이름을 제1단계 색인 중에 저장하고, 첫 데이터 페이지의 물리 주소를 제2단계 색인 중에 저장한다. 본 실시예에 있어서, 실행 가능한 파일을 저장하는 첫 데이터 페이지 중에, 실행 가능한 파일의 파일 이름과 파일 크기를 기록할 수 있다.
본 실시예에 있어서, 목적 파일이 실행 가능한 파일일 경우, 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하며; 제2 해시 테이블 중 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하고, 제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라 첫 데이터 페이지를 검색하며; 첫 데이터 페이지 중에 저장한 저장 공간 파라미터에 따라, 저장 공간의 주소가 연속적인 데이터 페이지의 수량을 계산하며; 수량의 데이터 페이지 중의 데이터를 판독하여 실행 가능한 파일에 대하여 로딩을 진행하는 방식을 이용하여, 실행 가능한 파일에 대한 로딩 요청을 처리할 수 있다. 여기서, 로딩 요청은 파일 이름과 첫 데이터 페이지의 데이터 페이지 식별자를 포함한다.
본 실시예에 있어서, 실행 가능한 파일에 대하여 로딩을 진행할 경우, 실행 가능한 파일의 파일 식별자와 첫 데이터 페이지의 데이터 페이지 식별자(즉, 0)에 따라 2단계 색인을 통해 첫 데이터 페이지를 검색할 수 있다. 다음, 첫 데이터 페이지 상에 저장한 저장 공간 파라미터, 즉 크기(size) 필드에 따라 저장 공간의 주소가 연속적인 데이터 페이지의 수량, 즉 실행 가능한 파일의 데이터 페이지의 수량을 계산하고, 다음, 상기 저장 공간의 주소가 연속적인 데이터 페이지를 판독함으로써 실행 가능한 파일에 대한 동적 로딩을 실시하게 된다.
본 실시예에 있어서, 데이터 파일의 기록 조작은 두 종류로 분류되고, 하나는 데이터 페이지 상의 기존 데이터를 오버라이트 하는 조작이고, 다른 하나는 새로운 데이터를 추가 방식으로 기록하는 조작이다. 본 실시예에 있어서, 데이터 파일에 대한 기록 추가 요청을 수신하되, 기록 추가 요청은 파일 이름을 포함하며; 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하며; 기록 추가 방식으로 데이터 파일에 기록된 데이터를 저장하기 위한 데이터 페이지와, 데이터 페이지의 데이터 페이지 식별자를 할당하며; 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하고, 제2 해시 테이블 중 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 제2 색인 정보를 저장하는 방식을 이용하여, 데이터 파일에 대한 기록 추가 요청을 처리할 수 있다. 본 실시예에 있어서, 데이터 파일에 대한 기록 추가 요청을 처리할 경우, 즉 새로운 데이터를 기록 추가 방식으로 기록할 경우, 데이터를 새로 할당한 데이터 페이지 상에 기록하여야 하고, 다음, 버전 번호를 1로 설정한다. 동시에, 기록 추가를 완료한 후, 제2단계 색인 중에 저장 노드를 증가하고, 저장 노드 중에 파일 식별자와, 새로 할당한 데이터 페이지의 데이터 페이지 식별자를 포함하는 제2 저장 정보를 저장한다.
본 실시예에 있어서, 데이터 파일에 대한 업데이트 요청을 처리할 경우, 즉 데이터 페이지 상의 기존 데이터를 오버라이트할 경우, 먼저 데이터 페이지를 검색할 수 있고, 다음, 업데이트 데이터를 포함하는 한 페이지의 데이터를 데이터 페이지 중에 기록하고, 동시에, 데이터 페이지에 대응되는 버전 번호를 증가시킨다.
도10을 참조하면, 데이터를 데이터 페이지에 기록하는 일 예시적 흐름도를 나타낸다. 아래와 같은 단계들을 포함한다.
단계(1001), 파일 기록 위치에 따라 데이터 페이지 식별자를 계산하고, 파일 식별자와 데이터 페이지 식별자에 대응되는 데이터 페이지를 검색한다. 즉 기록 위치에 따라 데이터 페이지 식별자를 계산하고, 파일 이름과 데이터 페이지 식별자에 대응되는 데이터 페이지를 검색한다. 기록 위치는 기록하고자 하는 데이터가 전체 파일 중의 위치를 표시하고, 기록 위치와 파일의 크기에 따라, 기록하고자 하는 데이터가 위치한 데이터 페이지의 데이터 페이지 식별자를 계산하는 것을 확정할 수 있다. 다음, 제2단계 색인을 통해 파일 식별자와 데이터 페이지 식별자에 대응되는 데이터 페이지를 검색할 수 있다.
단계(1002), 검색 해 냈는지 여부를 판단한다. 검색해 냈을 경우, 단계(1003)를 수행하고, 그러지 아니할 경우, 단계(1004)를 수행한다.
단계(1003), 데이터 페이지 상의 파일 데이터를 수정하고, 버전 번호에 1을 더하여 새로운 데이터 페이지에 저장한다.
단계(1004), 데이터를 새로 할당한 데이터 페이지 중에 저장하고, 산출한 데이터 페이지 식별자를 저장한다. 즉 새로운 데이터 페이지를 할당하여, 기록하고자 하는 데이터를 새로 할당한 데이터 페이지 상에 저장하고, 새로운 데이터 페이지 중에 산출한 데이터 페이지 식별자를 저장한다.
단계(1005), 제2단계 색인 중에 새로 할당한 데이터 페이지의 파일 식별자와 데이터 페이지 식별자를 증가시킨다.
도6에서 보이는 바와 같이, 도2에 대응되는 실시예와 비교시, 본 실시예 중의 파일 조작 방법의 프로세스(600)는 목적 파일을 작성하는 단계(601)를 강조하는 부분에서 차이됨을 알 수 있다.. 단계(601)는 주소가 연속적인 데이터 페이지를 미리 할당함으로써 실행 가능한 파일을 저장하여 실행 가능한 파일의 이진코드가 주소가 연속적인 데이터 페이지 중에 저장되도록 할 수 있다. 따라서, 실행 가능한 파일에 대한 로딩을 진행하여야 할 경우, 주소가 연속적인 데이터 페이지 중에서 실행 가능한 파일의 이진코드를 판독할 수 있으므로, 제3자 애플리케이션의 실행 가능한 파일에 대한 동적 로딩을 실시하게 된다.
본 출원에 있어서, 상기 실시예 중에서 설명한 파일에 대한 조작 방식과, 로그 구조의 파일 시스템이 파일을 관리하는 방식을 결부하여 임베디드 파일 시스템을 구축할 수 있다. 즉, 온 칩 메모리 중에서 2단계 색인 구조를 구축하고, 다음, 2단계 색인 구조와, 로그 구조의 파일 시스템이 파일을 관리하는 방식을 결부하여, 온 칩 메모리 중에서 임베디드 파일 시스템을 구축할 수 있다.
이하, 상기 구축한 임베디드 파일 시스템과 기존 기술의 차이점을 설명하기로 한다.
기존 임베디드 파일 시스템 중에 있어서, 데이터 페이지의 저장과 관리는 로그 구조를 이용하고, 파일은 주소가 연속적인 저장 공간 상에 저장될 수 없고, 즉 파일의 데이터 페이지의 주소가 비연속적이다. 따라서, 기존의 임베디드 파일 시스템은 실행 가능한 파일, 즉 실행 가능한 파일의 이진코드의 동적 로딩을 지원할 수 없다. 나아가, 상기 임베디드 파일 시스템을 사용하는 임베디드 기기(예를 들어, 사물인터넷 기기)는 제3자 애플리케이션의 실행 가능한 파일에 대한 동적 로딩을 지원할 수 없다. 그러나, 본 출원에서 구축된 임베디드 파일 시스템은, 한편으로, 저장 자원이 한정적인 임베디드 시스템 중에서, 비교적 적은 메모리 오버헤드로 데이터 페이지에 대한 고효율 조작을 실시하였다. 다른 한편으로, 제3자 애플리케이션의 실행 가능한 파일에 대한 동적 로딩을 지원한다.
도11을 더 참조하면, 상기 각 도면에 도시된 방법의 구현으로서, 본 출원은 파일 조작 장치의 일 실시예를 제공하며, 해당 장치의 실시예는 도2에 도시된 방법의 실시예에 대응되고, 해당 장치는 구체적으로 다양한 전자 기기 중에 적용될 수 있다.
도11에 도시된 바와 같이, 본 실시예의 파일 조작 장치(1100)는, 수신 유닛(1101), 획득 유닛(1102) 및 처리 유닛(1103)을 포함한다. 수신 유닛(1101)은, 목적 파일에 대한 조작 요청을 수신하도록 구성되되, 조작 요청이 파일 이름과, 목적 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하며; 획득 유닛(1102)은, 파일 이름과 데이터 페이지 식별자를 기반으로, 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하도록 구성되되, 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되며; 처리 유닛(1103)은, 색인 정보를 기반으로 데이터 페이지를 검색하고, 데이터 페이지에 대한 조작을 수행하도록 구성된다.
본 실시예에 있어서, 수신 유닛(1101)은 목적 파일에 대한 조작 요청을 수신할 수 있다. 목적 파일에 대한 조작 요청의 유형은 기록 조작, 판독 조작 및 업데이트 요청일 수 있다. 목적 파일은 데이터 페이지를 단위로 하여 저장을 진행할 수 있고, 따라서, 파일에 대한 조작도 데이터 페이지를 단위로 하여 진행된다.
본 실시예에 있어서, 획득 유닛(1102)은 파일 이름과 데이터 페이지 식별자를 기반으로, 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득할 수 있다. 색인 정보는 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장될 수 있다. 예를 들어, 데이터 페이지에 대한 조작을 수행하는 프로세서가 MCU일 경우, 색인 정보는 MCU의 온 칩 메모리(온 보드 플래시(flash)로 칭할 수도 있음) 중에 저장될 수 있다. 본 실시예에 있어서, 색인 정보는 데이터 페이지의 저장 공간의 주소와 관련된 정보일 수 있고, 예를 들어, 색인 정보 중 데이터 페이지를 기록하는 물리 주소일 수 있다.
본 실시예에 있어서, 처리 유닛(1103)은 색인 정보를 기반으로(예를 들어, 색인 정보 중의 데이터 페이지의 물리 주소를 기반으로) 데이터 페이지를 검색하고 데이터 페이지에 대한 조작을 수행할 수 있다. 예를 들어, 데이터를 데이터 페이지에 기록하고, 데이터 페이지에서 데이터를 판독한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 색인 정보는, 파일 이름과 파일 식별자를 포함하는 제1 색인 정보와, 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 장치(1100)는, 온 칩 메모리의 저장 공간 중에서 제1 데이터 페이지를 선택하도록 구성된 제1 선택 유닛(미도시); 파일 이름을 키값으로 하는 제1 해시 테이블을 작성하도록 구성된 제1 작성 유닛(미도시); 제1 해시 테이블 중 키값에 대응되는 위치 상에 제1 색인 정보를 저장하도록 구성된 제 1 색인 정보 저장 유닛(미도시); 및 제1 해시 테이블을 제1 데이터 페이지 중에 저장하도록 구성된 제1 해시 테이블 저장 유닛(미도시)을 더 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 장치(1100)는, 온 칩 메모리의 저장 공간 중에서 제2 데이터 페이지를 선택하도록 구성된 제2 선택 유닛(미도시); 파일 식별자와 데이터 페이지 식별자를 키값으로 하는 제2 해시 테이블을 작성하도록 구성된 제2 작성 유닛(미도시); 제2 해시 테이블 중 키값에 대응되는 위치 상에 제2 색인 정보를 저장하도록 구성된 제2 색인 정보 저장 유닛(미도시); 및 제2 해시 테이블을 제2 데이터 페이지 중에 저장하도록 구성된 제2 해시 테이블 저장 유닛(미도시)을 더 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 처리 유닛(1103)은, 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하도록 구성된 파일 식별자 획득 서브 유닛(미도시); 제2 해시 테이블 중 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하도록 구성된 제2 색인 정보 획득 서브 유닛(미도시); 및 제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라, 데이터 페이지를 검색하도록 구성된 검색 서브 유닛(미도시)을 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 장치(1100)는, 목적 파일에 대한 조작 요청을 수신하기 전에, 목적 파일에 대한 작성 요청을 수신하도록 구성되되, 작성 요청이 파일 이름을 포함하는 작성 요청 수신 유닛(미도시); 파일 이름에 대응되는 파일 식별자를 할당하도록 구성된 파일 식별자 할당 유닛(미도시); 및 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 생성하고, 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 제1 색인 정보를 저장하도록 구성된 색인 정보 생성 유닛(미도시)을 더 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 장치(1100)는, 실행 가능한 파일에 대한 기록 요청을 수신하고, 실행 가능한 파일을 저장하기 위한 데이터 페이지의 수량을 확정하도록 구성된 기록 요청 수신 유닛(미도시); 수량의 저장 공간의 주소가 연속적인 데이터 페이지와, 데이터 페이지의 데이터 페이지 식별자를 할당하고, 데이터 페이지 중의 첫 데이터 페이지 중에, 실행 가능한 파일의 저장 공간의 크기를 지시하는 저장 공간 파라미터를 저장하도록 구성된 제1 할당 유닛(미도시); 첫 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하도록 구성된 제2 색인 정보 생성 유닛(미도시); 및 제2 해시 테이블 중 파일 식별자와 첫 데이터 페이지의 데이터 페이지 식별자에 대응되는 위치 상에 상기 제2 색인 정보를 저장하도록 구성된 제2 색인 정보 저장 유닛(미도시)을 더 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 장치(1100)는, 실행 가능한 파일에 대한 로딩 요청을 수신하도록 구성되되, 로딩 요청은 파일 이름과, 첫 데이터 페이지의 데이터 페이지 식별자를 포함하는 로딩 요청 수신 유닛(미도시); 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하도록 구성된 제1 파일 식별자 획득 유닛(미도시); 제2 해시 테이블 중 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하고, 제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라, 첫 데이터 페이지를 검색하도록 구성된 데이터 페이지 검색 유닛(미도시); 첫 데이터 페이지 중에 저장한 저장 공간 파라미터에 따라, 저장 공간의 주소가 연속적인 데이터 페이지의 수량을 계산하도록 구성된 계산 유닛(미도시); 및 수량의 데이터 페이지 중의 데이터를 판독하여 실행 가능한 파일에 대하여 로딩을 진행하도록 구성된 판독 유닛(미도시)을 더 포함한다.
본 실시예의 일부 선택적인 구현 방식에 있어서, 장치(1100)는, 데이터 파일에 대한 기록 추가 요청을 수신하도록 구성되되, 기록 추가 요청은 파일 이름을 포함하는 기록 추가 요청 수신 유닛(미도시); 제1 해시 테이블 중 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하도록 구성된 제2 파일 식별자 획득 유닛(미도시); 기록 추가 방식으로 데이터 파일에 기록한 데이터를 저장하기 위한 데이터 페이지와, 데이터 페이지의 데이터 페이지 식별자를 할당하도록 구성된 제2 할당 유닛(미도시); 및 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하고, 제2 해시 테이블 중 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 제2 색인 정보를 저장하도록 구성된 제2 색인 정보 처리 유닛(미도시)을 더 포함한다.
해당 분야의 당업자는, 상기 파일 조작 장치(1100)가 프로세서 및 메모리 등과 같은 기타 공지 구조들을 더 포함하고 있음을 이해할 것이고, 이러한 공지된 구조들이 불필요하게 본 개시의 실시예를 흐리게 할 경우, 도11 중에 도시되지 않음을 이해할 것이다.
도12는 본 출원의 실시예에 따른 단말기 장치 또는 서버를 실현하기에 적합한 컴퓨터 시스템의 구조적 개략도이다.
도12에 도시된 바와 같이, 컴퓨터 시스템(1200)은 중앙 처리 장치(CPU; 1201)를 포함하고, 이는 판독 전용 메모리 장치(ROM; 1202)에 저장된 프로그램 또는 저장 부분(1208)으로부터 랜덤 액세스 메모리 장치(RAM; 1203)에 로딩된 프로그램에 의하여 각종 적당한 동작 및 처리를 실행할 수 있다. RAM(1203)에는 시스템(1200) 조작에 필요한 각종 프로그램 및 데이터들이 더 저장되어 있다. CPU(1201), ROM(1202) 및 RAM(1203)은 버스(1204)를 통하여 서로 연결된다. 입력/출력(I/O) 인터페이스(1205)도 버스(1204)에 연결된다.
키보드, 마우스 등을 포함하는 입력 부분(1206); 음극선관(CRT), 액정 표시 장치(LCD) 등 및 스피커 등을 포함하는 출력 부분(1207); 하드 디스크 등을 포함하는 저장 부분(1208); 및 LAN 카드, 모뎀 장치 등과 같은 네트워크 인터페이스 카드를 포함하는 통신 부분(1209)을 포함하는 구성요소는 I/O 인터페이스(1205)에 연결된다. 통신 부분(1209)은 인터넷과 같은 네트워크를 통하여 통신 처리를 실행한다. 드라이버(1210)는 수요에 따라 I/O 인터페이스(1205)에도 연결된다. 드라이버(1210)에서 판독된 컴퓨터 프로그램이 수요에 따라 저장 부분(1208)에 설치되도록 드라이버(1210)에는 수요에 따라 디스크, 콤팩트디스크, 광자기 디스크, 반도체 메모리 장치 등과 같은 분리 가능한 매체(1211)가 설치된다.
특히, 본 개시의 실시예에 의하면, 상기에 흐름도를 참조하여 설명한 프로세스는 컴퓨터 소프트웨어 프로그램으로 구현될 수 있다. 예를 들면, 본 개시의 실시예는 일 컴퓨터 프로그램 제품을 포함한다. 상기 컴퓨터 프로그램 제품은 유형적으로 컴퓨터 판독 가능한 매체에 포함되는 컴퓨터 프로그램을 포함하되, 컴퓨터 프로그램은 흐름도에 도시된 방법을 수행하기 위한 프로그램 코드를 포함한다. 이러한 실시예에서, 해당 컴퓨터 프로그램은 통신 부분(1209)을 통하여 네트워크로부터 다운로드되어 설치되고, 및/또는 분리 가능한 매체(1211)로부터 설치될 수 있다.
첨부한 도면 중의 흐름도 및 블록도는 본 출원의 여러 실시예에 따른 시스템, 방법, 컴퓨터 프로그램 제품의 실시 가능한 체계구조, 기능 및 동작을 도시하였다. 이러한 방면에 있어서, 흐름도 또는 블록도 중의 각 블록은 하나의 모듈, 프로그램 세그먼트, 또는 코드의 일부분을 나타내고, 상기 모듈, 프로그램 세그먼트, 또는 코드의 일부분은 소정의 로직 기능을 실현하기 위한 하나 또는 다수의 실행 가능한 명령어를 포함한다. 일부 대체 실시예에서, 블록에 표기된 기능은 도면에 표기된 순서와 다른 순서로 진행될 수 있음을 이해하여야 한다. 예를 들면, 순차적으로 표시된 두 개의 블록은 사실상 관련된 기능에 따라 대체로 병행으로 진행될 수 있으며, 반대된 순서로 진행될 수도 있다. 블록도 및/또는 흐름도의 각 블록 및 블록도 및/또는 흐름도의 블록의 조합은 소정의 기능 또는 동작을 진행하는 하드웨어를 기반으로 하는 전용의 시스템으로 구현되거나, 전용 하드웨어 및 컴퓨터 명령어의 조합으로 구현될 수 있다.
다른 한편으로, 본 출원은 비휘발성 컴퓨터 저장 매체를 더 제공하며, 해당 비휘발성 컴퓨터 저장 매체는 상기 실시예 중 상기 장치에 포함되는 비휘발성 컴퓨터 저장 매체이거나, 단말기 장치에 설치되지 않은 독립적으로 존재하는 비휘발성 컴퓨터 저장 매체일 수 있다. 상기 비휘발성 컴퓨터 저장 매체에는 하나 또는 다수의 프로그램이 저장되어 있을 수 있고, 상기 하나 또는 다수의 프로그램이 하나의 기기에 의해 실행될 경우, 상기 기기로 하여금, 목적 파일에 대한 조작 요청을 수신하되, 상기 조작 요청은 파일 이름과, 목적 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 단계; 상기 파일 이름과 데이터 페이지 식별자를 기반으로, 상기 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 상기 색인 정보는 상기 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 단계; 및 상기 색인 정보를 기반으로 상기 데이터 페이지를 검색하고, 상기 데이터 페이지에 대한 조작을 수행하는 단계를 수행하도록 한다.
이상의 설명은 오직 본 출원의 바람직한 실시예 및 이용한 기술 원리에 대한 설명일 뿐이다. 본 발명의 청구 범위는 상기 기술적 특징의 특정 조합으로 이루어진 기술적 방안에 한정되는 것이 아니라, 본 발명의 사상을 벗어나지 않는 한 상기 기술적 특징 또는 그의 균등한 특징들의 임의 조합으로 이루어진 기타 기술적 방안도 포함한다는 것을 해당 분야의 당업자라면 자명할 것이다. 상기 특징과 본 출원에 개시된 유사한 기능을 구비한 기술적 특징을 서로 교체하여 형성된 기술적 방안을 예로 들 수 있으나, 이에 한정되는 것은 아니다.

Claims (20)

  1. 파일 조작 방법으로서,
    조작하고자 하는 대상 파일에 대한 조작 요청을 수신하되, 상기 조작 요청은 대상 파일의 파일 이름과, 대상 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 단계;
    상기 파일 이름과 데이터 페이지 식별자를 기반으로, 상기 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 상기 색인 정보는 상기 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 단계; 및
    상기 색인 정보를 기반으로 상기 데이터 페이지를 검색하고, 상기 데이터 페이지에 대한 조작을 수행하는 단계를 포함하고,
    상기 색인 정보는 파일 이름과 파일 식별자를 포함하는 제1 색인 정보와, 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 포함하고,
    상기 방법은,
    상기 온 칩 메모리의 저장 공간 중에서 제1 데이터 페이지를 선택하는 단계;
    파일 이름을 키값으로 하는 제1 해시 테이블을 작성하는 단계;
    상기 제1 해시 테이블 중 상기 키값에 대응되는 위치 상에 제1 색인 정보를 저장하는 단계; 및
    상기 제1 해시 테이블을 제1 데이터 페이지 중에 저장하는 단계를 더 포함하고,
    대상 파일에 대한 조작 요청을 수신하기 전에, 상기 방법은,
    대상 파일에 대한 작성 요청을 수신하되, 상기 작성 요청은 파일 이름을 포함하는 단계;
    상기 파일 이름에 대응되는 파일 식별자를 할당하는 단계; 및
    상기 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 생성하고, 제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 상기 제1 색인 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 파일 조작 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 온 칩 메모리의 저장 공간 중에서 제2 데이터 페이지를 선택하는 단계;
    파일 식별자와 데이터 페이지 식별자를 키값으로 하는 제2 해시 테이블을 작성하는 단계;
    상기 제2 해시 테이블 중 상기 키값에 대응되는 위치 상에 제2 색인 정보를 저장하는 단계; 및
    상기 제2 해시 테이블을 제2 데이터 페이지 중에 저장하는 단계를 더 포함하는 것을 특징으로 하는 파일 조작 방법.
  5. 제4항에 있어서,
    상기 색인 정보를 기반으로 상기 데이터 페이지를 검색하는 단계는,
    제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하는 단계;
    제2 해시 테이블 중 상기 파일 식별자와 상기 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하는 단계; 및
    제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라, 상기 데이터 페이지를 검색하는 단계를 포함하는 것을 특징으로 하는 파일 조작 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 대상 파일은 실행 가능한 파일이며,
    상기 방법은,
    상기 실행 가능한 파일에 대한 기록 요청을 수신하고, 상기 실행 가능한 파일을 저장하기 위한 데이터 페이지의 수량을 확정하는 단계;
    상기 수량의 저장 공간의 주소가 연속적인 데이터 페이지 및 상기 데이터 페이지의 데이터 페이지 식별자를 할당하고, 상기 데이터 페이지 중의 첫 데이터 페이지 중에 상기 실행 가능한 파일의 저장 공간의 크기를 지시하는 저장 공간 파라미터를 저장하는 단계;
    상기 첫 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하는 단계; 및
    제2 해시 테이블 중 상기 파일 식별자와 첫 데이터 페이지의 데이터 페이지 식별자에 대응되는 위치 상에 상기 제2 색인 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 파일 조작 방법.
  8. 제7항에 있어서,
    상기 실행 가능한 파일에 대한 로딩 요청을 수신하되, 상기 로딩 요청은 파일 이름과, 상기 첫 데이터 페이지의 데이터 페이지 식별자를 포함하는 단계;
    제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하는 단계;
    제2 해시 테이블 중 상기 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하고, 상기 제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라, 상기 첫 데이터 페이지를 검색하는 단계;
    상기 첫 데이터 페이지 중에 저장한 상기 저장 공간 파라미터에 따라, 저장 공간의 주소가 연속적인 데이터 페이지의 수량을 계산하는 단계; 및
    상기 수량의 데이터 페이지 중의 데이터를 판독하여 상기 실행 가능한 파일에 대하여 로딩을 진행하는 단계를 더 포함하는 것을 특징으로 하는 파일 조작 방법.
  9. 제1항에 있어서,
    상기 대상 파일은 데이터 파일이며,
    상기 방법은,
    상기 데이터 파일에 대한 기록 추가 요청을 수신하되, 상기 기록 추가 요청은 파일 이름을 포함하는 단계;
    제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하는 단계;
    기록 추가 방식으로 데이터 파일에 기록한 데이터를 저장하기 위한 데이터 페이지와 상기 데이터 페이지의 데이터 페이지 식별자를 할당하는 단계; 및
    상기 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하고, 제2 해시 테이블 중 상기 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 상기 제2 색인 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 파일 조작 방법.
  10. 파일 조작 장치로서,
    조작하고자 하는 대상 파일에 대한 조작 요청을 수신하도록 구성되되, 상기 조작 요청은 대상 파일의 파일 이름과, 대상 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 수신 유닛;
    상기 파일 이름과 데이터 페이지 식별자를 기반으로, 상기 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하도록 구성되되, 상기 색인 정보는 상기 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 획득 유닛; 및
    상기 색인 정보를 기반으로 상기 데이터 페이지를 검색하고, 상기 데이터 페이지에 대한 조작을 수행하도록 구성된 처리 유닛을 포함하고,
    상기 색인 정보는 파일 이름과 파일 식별자를 포함하는 제1 색인 정보와, 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 포함하고,
    상기 장치는,
    상기 온 칩 메모리의 저장 공간 중에서 제1 데이터 페이지를 선택하도록 구성된 제1 선택 유닛;
    파일 이름을 키값으로 하는 제1 해시 테이블을 작성하도록 구성된 제1 작성 유닛;
    상기 제1 해시 테이블 중 상기 키값에 대응되는 위치 상에 제1 색인 정보를 저장하도록 구성된 제 1 색인 정보 저장 유닛; 및
    상기 제1 해시 테이블을 제1 데이터 페이지 중에 저장하도록 구성된 제1 해시 테이블 저장 유닛을 더 포함하고,
    대상 파일에 대한 조작 요청을 수신하기 전에, 대상 파일에 대한 작성 요청을 수신하도록 구성되되, 상기 작성 요청은 파일 이름을 포함하는 작성 요청 수신 유닛;
    상기 파일 이름에 대응되는 파일 식별자를 할당하도록 구성된 파일 식별자 할당 유닛; 및
    상기 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 생성하고, 제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 상기 제1 색인 정보를 저장하도록 구성된 색인 정보 생성 유닛을 더 포함하는 것을 특징으로 하는 파일 조작 장치.
  11. 삭제
  12. 삭제
  13. 제10항에 있어서,
    상기 온 칩 메모리의 저장 공간 중에서 제2 데이터 페이지를 선택하도록 구성된 제2 선택 유닛;
    파일 식별자와 데이터 페이지 식별자를 키값으로 하는 제2 해시 테이블을 작성하도록 구성된 제2 작성 유닛;
    상기 제2 해시 테이블 중 상기 키값에 대응되는 위치 상에 제2 색인 정보를 저장하도록 구성된 제2 색인 정보 저장 유닛; 및
    상기 제2 해시 테이블을 제2 데이터 페이지 중에 저장하도록 구성된 제2 해시 테이블 저장 유닛을 더 포함하는 것을 특징으로 하는 파일 조작 장치.
  14. 제13항에 있어서,
    상기 처리 유닛은,
    제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하도록 구성된 파일 식별자 획득 서브 유닛;
    제2 해시 테이블 중 상기 파일 식별자와 상기 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하도록 구성된 제2 색인 정보 획득 서브 유닛; 및
    제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라, 상기 데이터 페이지를 검색하도록 구성된 검색 서브 유닛을 포함하는 것을 특징으로 하는 파일 조작 장치.
  15. 삭제
  16. 제10항에 있어서,
    실행 가능한 파일에 대한 기록 요청을 수신하고, 상기 실행 가능한 파일을 저장하기 위한 데이터 페이지의 수량을 확정하도록 구성된 기록 요청 수신 유닛;
    상기 수량의 저장 공간의 주소가 연속적인 데이터 페이지 및 상기 데이터 페이지의 데이터 페이지 식별자를 할당하고, 상기 데이터 페이지 중의 첫 데이터 페이지 중에 상기 실행 가능한 파일의 저장 공간의 크기를 지시하는 저장 공간 파라미터를 저장하도록 구성된 제1 할당 유닛;
    상기 첫 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하도록 구성된 제2 색인 정보 생성 유닛; 및
    제2 해시 테이블 중 상기 파일 식별자와 첫 데이터 페이지의 데이터 페이지 식별자에 대응되는 위치 상에 상기 제2 색인 정보를 저장하도록 구성된 제2 색인 정보 저장 유닛을 더 포함하는 것을 특징으로 하는 파일 조작 장치.
  17. 제16항에 있어서,
    상기 실행 가능한 파일에 대한 로딩 요청을 수신하도록 구성되되, 상기 로딩 요청은 파일 이름과, 상기 첫 데이터 페이지의 데이터 페이지 식별자를 포함하는 로딩 요청 수신 유닛;
    제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하도록 구성된 제1 파일 식별자 획득 유닛;
    제2 해시 테이블 중 상기 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 저장한 제2 색인 정보를 획득하고, 상기 제2 색인 정보 중의 데이터 페이지의 저장 공간의 주소에 따라, 상기 첫 데이터 페이지를 검색하도록 구성된 데이터 페이지 검색 유닛;
    상기 첫 데이터 페이지 중에 저장한 상기 저장 공간 파라미터에 따라, 저장 공간의 주소가 연속적인 데이터 페이지의 수량을 계산하도록 구성된 계산 유닛; 및
    상기 수량의 데이터 페이지 중의 데이터를 판독하여 상기 실행 가능한 파일에 대하여 로딩을 진행하도록 구성된 판독 유닛을 더 포함하는 것을 특징으로 하는 파일 조작 장치.
  18. 제10항에 있어서,
    데이터 파일에 대한 기록 추가 요청을 수신하도록 구성되되, 상기 기록 추가 요청은 파일 이름을 포함하는 기록 추가 요청 수신 유닛;
    제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 저장한 제1 색인 정보 중의 파일 식별자를 획득하도록 구성된 제2 파일 식별자 획득 유닛;
    기록 추가 방식으로 데이터 파일에 기록한 데이터를 저장하기 위한 데이터 페이지와 상기 데이터 페이지의 데이터 페이지 식별자를 할당하도록 구성된 제2 할당 유닛; 및
    상기 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 생성하고, 제2 해시 테이블 중 상기 파일 식별자와 데이터 페이지 식별자에 대응되는 위치 상에 상기 제2 색인 정보를 저장하도록 구성된 제2 색인 정보 처리 유닛을 더 포함하는 것을 특징으로 하는 파일 조작 장치.
  19. 프로세서; 및
    메모리를 포함하되,
    상기 메모리에는 상기 프로세서에 의해 실행될 수 있는 컴퓨터 판독 가능한 명령어가 저장되고, 상기 컴퓨터 판독 가능한 명령어가 실행될 경우, 상기 프로세서는 파일 조작 방법을 수행하며, 상기 방법은,
    조작하고자 하는 대상 파일에 대한 조작 요청을 수신하되, 상기 조작 요청은 대상 파일의 파일 이름과, 대상 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 단계;
    상기 파일 이름과 데이터 페이지 식별자를 기반으로, 상기 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 상기 색인 정보는 상기 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 단계; 및
    상기 색인 정보를 기반으로 상기 데이터 페이지를 검색하고, 상기 데이터 페이지에 대한 조작을 수행하는 단계를 포함하고,
    상기 색인 정보는 파일 이름과 파일 식별자를 포함하는 제1 색인 정보와, 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 포함하고,
    상기 방법은,
    상기 온 칩 메모리의 저장 공간 중에서 제1 데이터 페이지를 선택하는 단계;
    파일 이름을 키값으로 하는 제1 해시 테이블을 작성하는 단계;
    상기 제1 해시 테이블 중 상기 키값에 대응되는 위치 상에 제1 색인 정보를 저장하는 단계; 및
    상기 제1 해시 테이블을 제1 데이터 페이지 중에 저장하는 단계를 더 포함하고,
    대상 파일에 대한 조작 요청을 수신하기 전에, 상기 방법은,
    대상 파일에 대한 작성 요청을 수신하되, 상기 작성 요청은 파일 이름을 포함하는 단계;
    상기 파일 이름에 대응되는 파일 식별자를 할당하는 단계; 및
    상기 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 생성하고, 제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 상기 제1 색인 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 기기.
  20. 프로세서에 의해 실행될 수 있는 컴퓨터 판독 가능한 명령어가 저장되어 있는 비휘발성 컴퓨터 저장 매체에 있어서,
    상기 컴퓨터 판독 가능한 명령어가 프로세서에 의해 실행될 경우, 상기 프로세서는 파일 조작 방법을 수행하며, 상기 방법은,
    조작하고자 하는 대상 파일에 대한 조작 요청을 수신하되, 상기 조작 요청은 대상 파일의 파일 이름과, 대상 파일을 저장하기 위한 데이터 페이지의 데이터 페이지 식별자를 포함하는 단계;
    상기 파일 이름과 데이터 페이지 식별자를 기반으로, 상기 데이터 페이지의 저장 공간의 주소와 관련된 색인 정보를 획득하되, 상기 색인 정보는 상기 조작에 대응되는 기계 명령어를 실행하기 위한 프로세서의 온 칩 메모리 중에 저장되는 단계; 및
    상기 색인 정보를 기반으로 상기 데이터 페이지를 검색하고, 상기 데이터 페이지에 대한 조작을 수행하는 단계를 포함하고,
    상기 색인 정보는 파일 이름과 파일 식별자를 포함하는 제1 색인 정보와, 데이터 페이지의 저장 공간의 주소를 포함하는 제2 색인 정보를 포함하고,
    상기 방법은,
    상기 온 칩 메모리의 저장 공간 중에서 제1 데이터 페이지를 선택하는 단계;
    파일 이름을 키값으로 하는 제1 해시 테이블을 작성하는 단계;
    상기 제1 해시 테이블 중 상기 키값에 대응되는 위치 상에 제1 색인 정보를 저장하는 단계; 및
    상기 제1 해시 테이블을 제1 데이터 페이지 중에 저장하는 단계를 더 포함하고,
    대상 파일에 대한 조작 요청을 수신하기 전에, 상기 방법은,
    대상 파일에 대한 작성 요청을 수신하되, 상기 작성 요청은 파일 이름을 포함하는 단계;
    상기 파일 이름에 대응되는 파일 식별자를 할당하는 단계; 및
    상기 파일 이름과 파일 식별자를 포함하는 제1 색인 정보를 생성하고, 제1 해시 테이블 중 상기 파일 이름에 대응되는 위치 상에 상기 제1 색인 정보를 저장하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 컴퓨터 저장 매체.
KR1020177027991A 2015-12-25 2016-06-17 파일 조작 방법 및 장치 KR101994021B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510993999.9 2015-12-25
CN201510993999.9A CN105550345B (zh) 2015-12-25 2015-12-25 文件操作方法和装置
PCT/CN2016/086216 WO2017107414A1 (zh) 2015-12-25 2016-06-17 文件操作方法和装置

Publications (2)

Publication Number Publication Date
KR20170123336A KR20170123336A (ko) 2017-11-07
KR101994021B1 true KR101994021B1 (ko) 2019-06-27

Family

ID=55829534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177027991A KR101994021B1 (ko) 2015-12-25 2016-06-17 파일 조작 방법 및 장치

Country Status (6)

Country Link
US (1) US11003625B2 (ko)
EP (1) EP3260993A4 (ko)
JP (1) JP6542909B2 (ko)
KR (1) KR101994021B1 (ko)
CN (1) CN105550345B (ko)
WO (1) WO2017107414A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105550345B (zh) 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置
WO2018115992A1 (en) * 2016-12-22 2018-06-28 Itext Group Distributed blockchain-based method for saving the location of a file
US11016932B2 (en) 2017-09-21 2021-05-25 Alibaba Group Holding Limited Systems, methods, and apparatuses for simplifying filesystem operations utilizing a key-value storage system
CN108255433B (zh) * 2018-01-12 2021-12-07 珠海极海半导体有限公司 Flash存储器、Flash存储器的文件管理方法和装置
CN108763582B (zh) * 2018-06-11 2023-04-21 腾讯科技(深圳)有限公司 文件搜索方法、装置、终端及存储介质
CN109857718A (zh) * 2019-02-01 2019-06-07 广州亚美信息科技有限公司 一种应用于嵌入式系统的日志式文件系统
US10817466B2 (en) * 2019-03-22 2020-10-27 Bank Of America Corporation Dynamic server pool data segmentation using dynamic ordinal partition key without locks
US11580162B2 (en) 2019-04-18 2023-02-14 Samsung Electronics Co., Ltd. Key value append
CN110489425B (zh) * 2019-08-26 2022-04-12 上海达梦数据库有限公司 一种数据访问方法、装置、设备及存储介质
CN111400267B (zh) * 2019-11-19 2023-09-01 杭州海康威视系统技术有限公司 记录日志的方法和装置
CN111290714B (zh) * 2020-02-06 2023-09-05 北京百度网讯科技有限公司 数据读取方法和装置
CN111309985B (zh) * 2020-03-10 2023-08-25 支付宝(杭州)信息技术有限公司 基于PostgreSQL数据库的高维向量存储方法和装置
CN113553300B (zh) * 2021-07-27 2024-05-24 北京字跳网络技术有限公司 文件的处理方法、装置、可读介质和电子设备
CN113742307B (zh) * 2021-08-11 2023-08-25 达梦数据技术(江苏)有限公司 一种基于值日志系统的二级索引的存储和查询方法及系统
CN117093881B (zh) * 2023-10-19 2024-01-12 深圳大普微电子股份有限公司 一种数据压缩方法、装置及电子设备和存储介质
CN117235078B (zh) * 2023-11-15 2024-01-30 湖南速子文化科技有限公司 一种高速处理海量数据的方法、系统、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009125027A1 (es) 2008-04-11 2009-10-15 Microelectronica Española S.A.U. Procedimiento para acceder a un sistema de almacenamiento con múltiples sistemas de ficheros
CN104346357A (zh) 2013-07-29 2015-02-11 中国科学院声学研究所 一种嵌入式终端的文件存取方法及系统

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2305746B (en) * 1995-09-27 2000-03-29 Canon Res Ct Europe Ltd Data compression apparatus
US6862602B2 (en) * 1997-03-07 2005-03-01 Apple Computer, Inc. System and method for rapidly identifying the existence and location of an item in a file
US6324637B1 (en) * 1999-08-13 2001-11-27 Sun Microsystems, Inc. Apparatus and method for loading objects from a primary memory hash index
US7412462B2 (en) * 2000-02-18 2008-08-12 Burnside Acquisition, Llc Data repository and method for promoting network storage of data
US6567817B1 (en) * 2000-09-08 2003-05-20 Hewlett-Packard Development Company, L.P. Cache management system using hashing
US6748401B2 (en) * 2001-10-11 2004-06-08 International Business Machines Corporation Method and system for dynamically managing hash pool data structures
KR100484942B1 (ko) * 2002-03-14 2005-04-25 한국전자통신연구원 대용량 파일시스템의 디렉토리 관리방법
US7158999B2 (en) * 2004-02-20 2007-01-02 Mainstar Software Corporation Reorganization and repair of an ICF catalog while open and in-use in a digital data storage system
US7272654B1 (en) * 2004-03-04 2007-09-18 Sandbox Networks, Inc. Virtualizing network-attached-storage (NAS) with a compact table that stores lossy hashes of file names and parent handles rather than full names
US7730012B2 (en) * 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US20060059204A1 (en) * 2004-08-25 2006-03-16 Dhrubajyoti Borthakur System and method for selectively indexing file system content
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7650389B2 (en) * 2006-02-01 2010-01-19 Subhashis Mohanty Wireless system and method for managing logical documents
CN100377118C (zh) 2006-03-16 2008-03-26 浙江大学 基于sram的嵌入式文件系统的实现方法
US7444499B2 (en) * 2006-03-28 2008-10-28 Sun Microsystems, Inc. Method and system for trace generation using memory index hashing
US20080104146A1 (en) * 2006-10-31 2008-05-01 Rebit, Inc. System for automatically shadowing encrypted data and file directory structures for a plurality of network-connected computers using a network-attached memory with single instance storage
US9690790B2 (en) * 2007-03-05 2017-06-27 Dell Software Inc. Method and apparatus for efficiently merging, storing and retrieving incremental data
US7979671B2 (en) * 2008-07-28 2011-07-12 CacheIQ, Inc. Dual hash indexing system and methodology
US9235577B2 (en) * 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US8572409B2 (en) * 2008-09-26 2013-10-29 Stephen P. Spackman Method and apparatus for non-redundant encrypted storage
US8495036B2 (en) * 2008-10-24 2013-07-23 Microsoft Corporation Blob manipulation in an integrated structured storage system
JP2012531674A (ja) * 2009-06-26 2012-12-10 シンプリヴィティ・コーポレーション ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け
WO2011114382A1 (en) * 2010-03-19 2011-09-22 Hitachi, Ltd. Virtual file system and hierarchical storage management for cloud computing containing different underlying file systems
US8935487B2 (en) * 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
CN101901263A (zh) * 2010-07-22 2010-12-01 华为终端有限公司 文件系统的访问方法及装置
US8271462B2 (en) * 2010-12-10 2012-09-18 Inventec Corporation Method for creating a index of the data blocks
US8788788B2 (en) * 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US8793467B2 (en) * 2011-09-30 2014-07-29 Pure Storage, Inc. Variable length encoding in a storage system
CN102629234B (zh) * 2012-01-18 2015-01-21 物联微电子(常熟)有限公司 一种单片机片内置Flash数据快速检索方法
US8793466B2 (en) * 2012-04-27 2014-07-29 Netapp, Inc. Efficient data object storage and retrieval
US8762353B2 (en) * 2012-06-13 2014-06-24 Caringo, Inc. Elimination of duplicate objects in storage clusters
US9043334B2 (en) * 2012-12-26 2015-05-26 Industrial Technology Research Institute Method and system for accessing files on a storage system
US8751763B1 (en) * 2013-03-13 2014-06-10 Nimbus Data Systems, Inc. Low-overhead deduplication within a block-based data storage
US20150215389A1 (en) * 2014-01-30 2015-07-30 Salesforce.Com, Inc. Distributed server architecture
JP6150785B2 (ja) * 2014-12-05 2017-06-21 アビニシオ テクノロジー エルエルシー 個別にアクセス可能なデータ単位の記憶の管理
CN105550345B (zh) 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009125027A1 (es) 2008-04-11 2009-10-15 Microelectronica Española S.A.U. Procedimiento para acceder a un sistema de almacenamiento con múltiples sistemas de ficheros
CN104346357A (zh) 2013-07-29 2015-02-11 中国科学院声学研究所 一种嵌入式终端的文件存取方法及系统

Also Published As

Publication number Publication date
CN105550345A (zh) 2016-05-04
US20180285376A1 (en) 2018-10-04
EP3260993A1 (en) 2017-12-27
WO2017107414A1 (zh) 2017-06-29
JP2018518733A (ja) 2018-07-12
CN105550345B (zh) 2019-03-26
JP6542909B2 (ja) 2019-07-10
US11003625B2 (en) 2021-05-11
KR20170123336A (ko) 2017-11-07
EP3260993A4 (en) 2018-01-24

Similar Documents

Publication Publication Date Title
KR101994021B1 (ko) 파일 조작 방법 및 장치
CN109254733B (zh) 用于存储数据的方法、装置和系统
CN107870728B (zh) 用于移动数据的方法和设备
WO2017167171A1 (zh) 一种数据操作方法,服务器及存储系统
US11314689B2 (en) Method, apparatus, and computer program product for indexing a file
CN106326309B (zh) 一种数据查询方法和装置
TW201220197A (en) for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment
CN105468642A (zh) 数据的存储方法及装置
CN105677904B (zh) 基于分布式文件系统的小文件存储方法及装置
JP2012089094A5 (ko)
US20150169570A1 (en) Method and device for managing data
CN108021333B (zh) 随机读写数据的系统、装置及方法
CN109240607B (zh) 一种文件读取方法和装置
CN104423982A (zh) 请求的处理方法和处理设备
US10515055B2 (en) Mapping logical identifiers using multiple identifier spaces
CN111831691B (zh) 一种数据读写方法及装置、电子设备、存储介质
WO2014190700A1 (zh) 一种内存访问的方法、缓冲调度器和内存模块
CN106934066B (zh) 一种元数据处理方法、装置和存储设备
CN101483668A (zh) 热点数据的网络存储和访问方法、设备及系统
CN108205559B (zh) 一种数据管理方法及其设备
US10311026B2 (en) Compressed data layout for optimizing data transactions
CN115437579B (zh) 一种元数据管理方法、装置、计算机设备及可读存储介质
CN110837499B (zh) 数据访问处理方法、装置、电子设备和存储介质
WO2016090985A1 (zh) 缓存的读取、读取处理方法及装置
CN112579633A (zh) 一种数据检索方法、装置、设备及存储介质

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