KR101574871B1 - 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 - Google Patents

키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101574871B1
KR101574871B1 KR1020137032369A KR20137032369A KR101574871B1 KR 101574871 B1 KR101574871 B1 KR 101574871B1 KR 1020137032369 A KR1020137032369 A KR 1020137032369A KR 20137032369 A KR20137032369 A KR 20137032369A KR 101574871 B1 KR101574871 B1 KR 101574871B1
Authority
KR
South Korea
Prior art keywords
information
servers
data
message
key
Prior art date
Application number
KR1020137032369A
Other languages
English (en)
Other versions
KR20140033086A (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 KR20140033086A publication Critical patent/KR20140033086A/ko
Application granted granted Critical
Publication of KR101574871B1 publication Critical patent/KR101574871B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/186Passive fault masking when reading multiple copies of the same data
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 발명은 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들을 갖는 키 값 스토리지에 데이터를 저장하는 방법에 관련되며, 그 방법은, a) 비밀 정보에 대한 약속 정보를 생성하는 단계, b) 저장될 데이터, 그 데이터에 대한 대응 키 및 생성된 약속 정보를 포함하는 제 1 메시지를 n 개 서버들에 전달하는 단계, c) 제 1 메시지에 포함된 정보를 적어도 다수의 서버들 상에 저장하는 단계, d) 적어도 n-t 개 서버들에 의해 제 1 저장 확인 정보를 제공하는 단계, e) 대응 키 및 비밀 정보를 포함하는 제 2 메시지를 n 개 서버들에 전달하는 단계, f) 제 2 메시지에 포함된 정보를 저장하는 단계, 및 g) 적어도 n-t 개 서버들에 의해 제 2 저장 확인 정보를 제공하는 단계를 포함한다. 본 발명은 키 값 스토리지에 저장된 데이터를 읽는 방법과 키 값 스토리지에 데이터를 저장하는 시스템 및 키 값 스토리지에 저장된 데이터를 읽는 시스템에 추가로 관련된다.

Description

키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템{METHOD AND SYSTEM FOR STORING AND READING DATA IN OR FROM A KEY VALUE STORAGE}
본 발명은 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들을 갖는 키 값 스토리지에 데이터를 저장하는 방법에 관한 것이다.
본 발명은 추가로 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들을 갖는 키 값 스토리지에 저장된 데이터를 읽는 방법에 관한 것이다.
본 발명은 추가로 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되며 라이터 (writer) 는 키 값 스토리지에 데이터를 쓰기 위한 것인, 복수의 n 개 서버들을 갖는 키 값 스토리지에 데이터를 저장하는, 바람직하게는 청구항 1 내지 청구항 15 항 중 어느 한 항에 기재된 방법을 수행하는 시스템에 관한 것이다.
본 발명은 추가로 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되며 리더 (reader) 는 키 값 스토리지에 저장된 데이터를 읽기 위한 것인, 복수의 n 개 서버들을 갖는 키 값 스토리지에 저장된 데이터를 읽는, 바람직하게는 청구항 1 내지 청구항 15 항 중 어느 한 항에 기재된 방법을 수행하는 시스템에 관한 것이다.
키 값 스토어들 (key value stores; KVS) 이라고도 또한 불리는 키 값 스토리지들은, 데이터베이스들, 검색 엔진들, 클라우드 기반 플랫폼들, 예를 들어 맵리듀스 (map-reduce) 와 같은 클라우드 프로그래밍 프레임워크들로부터 소셜 네트워크들과 같은 협업 애플리케이션들까지의 범위의 다양한 대규모 분산 시스템들 (distributed systems) 을 위해 증가하는 관심을 받고 있다. 예를 들면 기존의 스토리지 데이터베이스들은 종종 확장성 및 성능을 위해 분산형 키 값 스토어의 상단에 검색 인덱스들을 구현한다. 키 값 스토어들은 높은 레벨 계층들에 대한 스토리지 계층으로서 역할을 할 수 있을 뿐만 아니라 또한 피어 투 피어 파일공유 (filesharing) 에서와 같이 애플리케이션들을 직접 서빙할 수도 있다. 스토리지 서버들 중 하나 이상이 예를 들어 소프트웨어 오류 또는 하드웨어 고장 등으로 인해 기능이 멈춘다면, 키 값 스토어는 이러한 고장을 보상해야 한다. Cassandra, Redis, HBase, Dynamo 및 Memcached와 같은 키 값 스토어들은 복제를 채용함으로써 스토리지 서버들의 고장 (failure) 또는 기능멈춤 (crash) 을 견딘다.
키 값 스토어들의 하나의 바람직한 특징은 심지어 상이한 사용자들에 의한 동시 액세스가 수행되는 경우에도 데이터 일관성 및 가용성을 보장한다는 것이다. 최고도의 데이터 일관성은 이른바 원자적 (atomic) 일관성이며, 이는 특정한 값이 특정한 키 하에서 저장되거나 읽기 동작이 그 값을 반환하는 경우, 모든 후속하는 읽기 동작이 대응하는 값 (v) 또는 더 새로운 값 (v') 을 반환하지만 v보다 오래된 값을 결코 반환하지 않는다는 것을 의미한다. 기존의 키 값 스토어들은 단일 키들의 레벨에서 원자적 일관성을 지원하고 다수의 키들에 대한 트랜잭션 액세스는 더 높은 레벨 계층들에서 수행된다. 많은 애플리케이션들에 대해 원자적 일관성은 필수이다.
가용성은 일관성에 상보적이다, 즉, 키 값 스토어의 올바른 클라이언트라고 가정되는 클라이언트가 읽기 또는 쓰기 동작을 호출한다면 그 동작은 결함 (faulty) 서버들에도 불구하고 그리고 다른 잠재적 결함 클라이언트들의 거동에 무관하게 성공적이어야 한다.
코어 스토리지 계층으로서 키 값 스토어에 의존하는 애플리케이션들 및 시스템들의 증가하는 수에 대해, 키 값 스토어의 강건성이 또한 중요하다. 그러나, 많은 수의 상호접속 노드들을 구성하는 분산형 시스템들의 증가하는 복잡도로 인해, 일부 노드가 고장날 확률은 증가하고 있다. 그런 우발적인 하드웨어 및 소프트웨어 결함들, 예를 들어 소프트웨어 버그들의 위험이, 또한 상당히 증가하여 키 값 스토어의 강건성을 감소시킨다. 추가의 최근에 생겨난 위험은 취약점 악용이다: 클라우드 컴퓨팅의 도래로 인해, 데이터는 인터넷에서 직접 액세스가능한 클라우드 서빙 플랫폼들에 아웃소싱된다. 결과들 중 하나는, 예를 들어 소프트웨어 버그들로 인한 클라우드 서빙 플랫폼들의 악용가능한 취약점들이고 이는 잠재적인 데이터 손실 및 데이터 손상을 야기한다.
이들 문제들을 극복하기 위해, James Hendricks, Gregory R. Ganger, Michael K. Reiter의 비특허 문헌: "Low-overhead byzantine fault-tolerant-storage", SOSP 2007: 73-86 은, 임의로 고장날 수도 있다는 것을 의미하는 비잔틴 (byzantine) 리더들을 용인하는 무경합 (contention-free) 실행들로만 복귀하는데 필요한 읽기 동작들을 기재한다.
Barbara Liskov, Rodrigo Rodrigues의 비특허 문헌: Tolerating Byzantine Faulty Clients in a Quorum System. ICDCS 2006에서, 디지털 서명들은 비잔틴 리더들을 용인하는데 이용된다.
Amitanand S. Aiyer, Lorenzo Alvisi, Rida A Bazzi의 비특허 문헌: "Bounded Wait-Free Implementation of Optimally Resilient Byzantine Storage Without (Unproven) Cryptographic Assumptions", 디스크 2007: 7-19에서, 결국에는 모든 메시지를 모든 서버들에 전달하는 통신채널들이 기재되며, 이는 비동기 시스템들에서 구현하기 어렵다. 게다가, 거기에 기재된 방법에 의해 나타난 읽기 대기시간은 서버들의 수에서 선형적이다.
단점들 중 하나는, 인증되지 않은 데이터를 위한 위에서 언급된 기존의 방법들이 높은 대기시간, 확장성의 부족 및 경합 하의 진행의 부족 때문에 실용적이지 않다는 것이다. 게다가 서명들을 사용하지 않는 기존의 방법들의 대부분은 단일 라이터에 최적화되어 있다.
그러므로 본 발명의 목적은 특히 서버들 및 리더들에 의한 비잔틴 고장들을 용인하는, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명의 추가의 목적은 무서명이고 원자적 일관성을 제공하는, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명의 다른 추가의 목적은 확장가능한, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명의 다른 추가의 목적은 데이터를 쓰고 읽기 위한 대기시간을 감소시키는, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명의 추가의 목적은 임의로 고장날 수도 있는 많은 수의 서버들을 허용하는, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명의 다른 추가의 목적은 임의의 기존의 무서명 방법 또는 시스템보다 강건한, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명의 다른 추가의 목적은 낮은 비용으로 그리고 읽혀질 또는 저장될 데이터에 대해 증가된 유연성으로 손쉬운 구현예를 가능하게 하는, 키 값 스토리지에 데이터를 저장하거나 그것으로부터 데이터를 읽기 위한 방법들 및 시스템들을 제공하는 것이다.
본 발명에 따르면 앞서 언급된 목적들은 청구항 1의 방법에 의해 달성된다.
청구항 1에 따르면 그 방법은 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들을 갖는 키 값 스토리지에 데이터를 저장하기 위한 것이다.
청구항 1에 따르면 그 방법은,
a) 비밀 정보에 대한 약속 정보를 생성하는 단계,
b) 저장될 데이터, 그 데이터에 대한 대응 키 및 생성된 약속 정보를 포함하는 제 1 메시지를 n 개 서버들에 전달하는 단계,
c) 제 1 메시지에 포함된 정보를 적어도 다수의 서버들 상에 저장하는 단계,
d) 적어도 n-t 개 서버들에 의해 제 1 저장 확인 정보를 제공하는 단계,
e) 대응 키 및 비밀 정보를 포함하는 제 2 메시지를 n 개 서버들에 전달하는 단계,
f) 제 2 메시지에 포함된 정보를 저장하는 단계, 및
g) 적어도 n-t 개 서버들에 의해 제 2 저장 확인 정보를 제공하는 단계를 특징으로 한다.
본 발명에 따르면 앞서 언급된 목적들은 청구항 2의 방법에 의해 추가로 달성된다.
청구항 2에 따르면 그 방법은 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들을 갖는 키 값 스토리지에 저장된 데이터를 읽기 위한 것이다.
청구항 2에 따르면 그 방법은,
A) 읽혀질 데이터에 대응하는 키를 포함하는 제 1 메시지를 전달하는 단계,
B) 적어도 2t+1 개 서버들로부터 읽혀질 데이터에 대한 후보들을 수집하는 단계,
C) 약속 정보에 대응하는 비밀 정보 및 읽혀질 데이터에 대응하는 정보로 답신하는 단계,
D) 약속 정보 및 비밀 정보의 매칭에 기초하여 수집된 후보들을 유효성 검증하는 단계,
E) 유효성 검증된 후보들에 따라 읽혀질 데이터에 대한 후보들을 결정하는 단계,
F) 동일한 후보의 읽혀질 데이터 및 대응하는 비밀 정보를 포함하는 t+1 개 답신 메시지들에 기초하여 읽혀질 데이터를 선택하는 단계를 특징으로 한다.
앞서 언급된 목적들은 청구항 16의 시스템에 의해 추가로 달성된다.
청구항 16에 따르면, 그 시스템은 추가로 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되며 라이터는 키 값 스토리지에 데이터를 쓰기 위한 것인, 복수의 n 개 서버들을 갖는 키 값 스토리지에 데이터를 저장하기 위한, 바람직하게는 청구항 1 내지 청구항 15 항 중 어느 한 항에 기재된 방법을 수행하기 위한 것이다.
청구항 16에 따르면 그 시스템은, 라이터가, 저장될 데이터, 그 데이터에 대한 대응 키, 및 비밀 정보로부터 생성된 약속 정보를 포함하는 제 1 메시지를 n 개 서버들에 전달하도록 동작가능하게 구성되며,
적어도 다수의 서버들이 제 1 메시지에 포함된 정보를 저장하도록 동작가능하게 구성되며,
라이터는 적어도 n-t 개 서버들에 의해 제 1 저장 확인 정보를 수신한 후에, 대응 키 및 비밀 정보를 포함하는 제 2 메시지를 n 개 서버들에 전달하도록 동작가능하게 구성되고,
적어도 n-t 개 서버들은 제 2 메시지에 포함된 제 2 메시지의 정보를 저장한 후에 제 2 저장 확인 정보를 제공하도록 동작가능하게 구성되는 것을 특징으로 한다.
앞서 언급된 목적들은 청구항 17에 기재된 시스템에 의해 추가로 달성된다.
청구항 17에 따르면, 그 시스템은 추가로 t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되며, 리더는 키 값 스토리지에 저장된 데이터를 읽기 위한 것인, 복수의 n 개 서버들을 갖는 키 값 스토리지에 저장된 데이터를 읽기 위한, 바람직하게는 청구항 1 내지 청구항 15 항 중 어느 한 항에 기재된 방법을 수행하기 위한 것이다.
청구항 17에 따르면 그 시스템은, 리더가, 읽혀질 데이터에 대응하는 키를 포함하는 제 1 메시지를 전달하며, 적어도 2t+1 개 서버들로부터 읽혀질 데이터에 대응하는 후보들을 수집하며, 비밀 정보로부터 생성된 약속 정보에 대응하는 비밀 정보와 읽혀질 데이터에 대응하는 정보로 답신하고, 읽혀질 동일한 후보 및 대응하는 비밀 정보를 포함하는 t+1 개 답신 메시지들에 기초하여 읽혀질 데이터를 선택하도록 동작가능하게 구성되며, 읽혀질 데이터에 대한 후보들은 유효성 검증된 후보들에 따라 결정되어 있고, 수집된 후보들은 약속 정보 및 비밀 정보의 매칭에 기초하여 유효성 검증되어 있는 것을 특징으로 한다.
본 발명에 따르면 원자적 일관성이 충족되고 악성 서버들뿐만 아니라, 즉, 리더들이 포함되는 악성 클라이언트들로부터의 악성 고장들에 견디는 강건한 무서명 키 값 스토리지를 청구항 1, 2, 15 및 16에 따른 방법 및 시스템들이 제공한다는 것이 처음 인식되었다.
본 발명에 따르면 추가로, 청구항 1, 2, 15 및 16에 따른 방법들 및 시스템들이 확장가능하며, 즉, 대기시간, 메시지들의 수, 메시지 사이즈 및 스토리지 요건들과 같은 모든 관련 메트릭들이 클라이언트의 개체군 (population) 의 사이즈에 의존하지 않는다는 것이 처음 인식되었다. 본 발명에 따르면 지원되는 클라이언트들의 수에 대한 상한은 없다. 추가로 리더들은 완전히 미지의 것일 수도 있다.
본 발명에 따르면 읽기 대기시간이 현저히 감소되고 적절히 (gracefully) 저하된다, 즉, 최대 2 개의 라운드들이 제공된다는 것이 추가로 처음 인식되었다.
본 발명에 따르면 청구항 1, 2, 15 및 16에 따른 방법들 및 시스템들이 가볍다 (lightweight) 는 것이 추가로 처음 인식되었다: 비밀 정보 및 약속 정보의 계산은 저렴하고 기록되는 값에 의존하지 않는다. 추가로 비밀 정보 및 대응하는 약속 정보는 미리 그리고/또는 시스템 외부에서 생성될 수 있다.
본 발명에 따르면 청구항 1, 2, 15 및 16에 따른 방법들 및 시스템들이 강건하다는 것이 추가로 처음 인식되었다: 리더는 결코 위조된 또는 쓸모없이된 (obsolete) 값을 반환하지 않는다. 가용성은 메타데이터, 즉 약속 정보의 비밀엄수 (secrecy) 가 제공되는 한 보장된다.
본 발명에 따르면 청구항 1, 2, 15 및 16에 따른 방법들 및 시스템들이 디지털 서명들에 의존하지 않으며 이에 의해 데이터를 서명하고 검증하는 것에 연관된 컴퓨테이션 비용을 절약한다는 것이 추가로 처음 인식되었다. 게다가 공공 인프라 및/또는 연관된 키 관리를 갖는 신뢰성있는 딜러들이 필요하지 않다.
추가의 특징들, 이점들 및 바람직한 실시형태들은 다음의 종속청구항에서 설명된다.
바람직한 실시형태에 따르면 타임스탬프 정보가 생성되고, 저장될 데이터에 할당된다. 생성된 타임스탬프 정보를 데이터에 할당함으로써, 병존하는 라이터들로부터의 저장될 데이터는 타임스탬프 정보에 따라 쉽사리 저장될 수 있어 손쉬운 방법으로 원자적 일관성을 보장한다: 저장된 데이터에 대해 특정한 타임스탬프가 할당되고, 읽기 동작이 수행되는 경우 읽기 동작은 키 또는 더 새로운 데이터에 대응하는 데이터를 반환한다.
추가의 바람직한 실시형태에 따르면 생성된 타임스탬프 정보는 전체적으로 일관된다. 예를 들어 서버들이 전체적으로 일관된 타임스탬프를 데이터에 국소적으로 할당하도록 구성되는 경우, 타임스탬프 정보에 관한 라이터들의 명시적 조정은 필요하지 않다: 예를 들어 일관된 타임스탬프 정보를 획득하기 위해 그것들의 타임스탬프 정보를 교환하는 것, 즉, 그것들의 로컬 타임스탬프들을 조정하는 것은 필요하지 않으며 따라서 비용을 절약하고 대기시간을 감소시킨다.
추가의 바람직한 실시형태에 따르면 생성된 타임스탬프 정보는 타임스탬프 정보를 저장될 데이터에 할당하기 전에 수집된다. 이는 유연성을 향상시키는데, 이는 예를 들어 각각의 서버가 로컬 타임스탬프 정보를 만들거나 또는 생성할 수도 있어서이다. 상이한 타임스탬프들이 그 다음에 라이터에 의해 수집되고 조정된다. 이는 각각의 서버가 상이한 서버들의 특정한 로컬 요구들에 최적화될 수도 있는 자신 소유의 로컬 타임스탬프를 사용하는 것을 가능하게 한다.
추가의 바람직한 실시형태에 따르면 타임스탬프 정보는 단계 c) 및/또는 f) 를 수행하기 전에 평가된다. 이는 데이터에 대응하여 저장되는 가장 실제적인 데이터에 최고 타임스탬프를 제공하는 것을 가능하게 한다.
추가의 바람직한 실시형태에 따르면 타임스탬프 정보의 유효성은, 바람직하게는 적어도 대칭적으로 인증된 타임스탬프 정보를 교환함으로써 검증된다. 예를 들어 동기화되지 않은 클록들을 갖는 여러 라이터들이 동일한 키를 업데이트하는 경우 그것들은 임의의 올바른 서버가 알 수 있는 최고 (highest) 타임스탬프를 결정하는 것을 필요로 한다. 그 목적을 위해 라이터는 n-t 개 서버들 중에서 하나의 서버가 알 수 있는 최고 타임스탬프를 선택한다. 악성 서버들은 임의의 올바른 서버의 마지막 타임스탬프보다 상당히 높은 타임스탬프로 답신할 수도 있으며 이에 의해 타임스탬프들을 낭비한다. 타임스탬프들을 유효성 검증하기 위해 라이터들은 라이터들에만 알려진 대칭 키를 공유하고 그 키로 값에 할당된 모든 타임스탬프를 인증하여 검증된 타임스탬프 정보를 제공할 수도 있다.
추가의 바람직한 실시형태에 따르면 약속 정보는 해싱에 의해 생성된다. 이점들 중 하나는, 거의 부가적인 정보가 메시지들에 포함될 필요가 없고 약속 정보를 생성하는 것이 저렴하다는 것이다. 더욱이 숨겨진 값이 공개적으로 이용가능할 수도 있어서, 양호한 성능 및/또는 확장성을 위해 서버들로부터 리더들로의 검증의 이동을 가능하게 한다. 해싱에 의해 약속 정보를 생성하기 위해 단방향 함수가 충분한 길이의 랜덤 비트 스트링에 적용된다. 약속 정보는 그 후 단계 b) 에서 사용되고 랜덤 비트 스트링에 의해 표현되는 대응하는 비밀 정보는 그 다음에 단계 e) 에 따라 전달된다. 그 후, 올바른 서버들에서의 단계 D) 가, 라이터가 리더로부터 수신된 비밀 정보에 약속했는지의 여부를 점검하는 것을 포함하는 읽기 동작에 의해 트리거된다.
추가의 바람직한 실시형태에 따르면 약속 정보는 랜덤 값과 그 랜덤 값에 적용되는 차수 t의 랜덤 다항식의 다항식 값을 이용하는 것에 의해 생성된다. 이점들 중 하나는 비밀 정보가, 많아야 t 개의 몫 (share) 들의 악의적 당사자들의 집단적 지식으로부터 너무 일찍 구성될 수 없고 상대방은 부분 정확 비밀 정보를 구성하는 것이 방지된다는 것이다. 부분적으로 정확한 비밀 정보는 올바른 서버들의 엄격한 (strict) 서브세트에 의해 유효성 검증된 비밀 정보를 의미한다. 약속 정보를 구성하기 위해, 비밀 정보를 표현하는 차수 t의 랜덤 다항식 P가 구성된다. 그러면 랜덤 값들 xi - 각각이 n 개 서버들의 각각을 위한 것임 - 을 고르고 P(xi) 를 계산함으로써 n 개의 약속 정보가 구성된다. i-번째 서버에 대한 약속은 그러면 쌍 (xi, P(xi)) 으로 구성된다. 약속 정보는 그러면 보안 또는 인증된 점 대 점 채널들을 통해 단계 b) 에 따라 전달되어, 올바른 서버로 전송된 각각의 약속 정보가 수신자들에게만 알려진다는 것을 보장할 수도 있다. 라이터가 그 다음에 단계 e) 에 따라 다항식 P를 모든 서버들에 전송한다.
읽기 동작이 일어나면, 올바른 서버에서의 단계 D) 에 따른 유효성 검증은, 라이터가 다항식 P'에 약속했는지의 여부, 즉, 리더로부터 수신된 키 (k), 타임스탬프 (ts), 및 다항식 P'을 갖는 투플(k, ts, P')에 의해 표현되는 후보에 연관된 다항식 P'을 서술하는 곡선이 라이터로부터 수신된 대응하는 투플(k, ts, v, (xi, P(xi)))로부터 취해진 점((xi, P(xi))을 포함하는지를 점검하는 것을 포함하는 읽기 동작에 의해 트리거된다. 올바름은 개인 채널들에 의해 보장될 수도 있고 올바른 서버들은 그것들의 몫들을 나타내지 않아야 한다.
추가의 바람직한 실시형태에 따르면, 약속 정보는 서버들에 의존하여 생성되며, 바람직하게는 각각의 서버에 대해 대응하는 별개의 약속 정보가 생성된다. 이는 각각의 서버에 대해 로컬 약속 정보를 생성하는 것을 가능하게 하고 정보 이론적 또는 무조건적 보안을 제공하는 것을 가능하게 할 수도 있다.
추가의 바람직한 실시형태에 따르면, 보안 채널들, 바람직하게는 인증된 점 대 점 채널들은 메시지 및/또는 정보 교환을 위해 사용된다. 이는 수신기가 전송기로부터 메시지를 수신한다면 그 전송기가 그 메시지를 전송한 것을 보장한다. 수신기 및 전송기는 양쪽 모두가 올바르다면 전송기에 의해 전송된 모든 메시지는 결국에는 수신기에 의해 수신된다.
추가의 바람직한 실시형태에 따르면, 후보들은 저장된 키와 가장 실제로 저장된 및/또는 가장 실제로 수신된 비밀 정보를 포함한다. 이는 특정한 타임스탬프 또는 더 새롭게 표현되는 원자적 일관성으로 상이한 후보들의 단순하고 신속한 유효성 검증을 가능하게 한다.
추가의 바람직한 실시형태에 따르면, 모든 후보들의 합집합 세트 (union set) 가 단계 C) 에서 전송된다. 이는 메시지 내의 최소의 정보로 모든 후보들을 송신하여, 동일한 후보들이 한 번을 초과하여 송신되는 것을 피하는 것을 가능하게 한다. 추가의 이점은, 유효성 검증을 위한 모든 필요한 정보가 서버들로 송신되고 리더들에 대해 서버들에 의해 이용가능하게 될 수도 있으므로 유효성 검증이 서버들에 의해 또는 서버들에 후속하여 리더들에 의해 수행될 수도 있다는 것이다.
추가의 바람직한 실시형태에 따르면, 단계 B) 에 따른 수집된 후보들을 포함하는 제 3 메시지와 단계 D) 에 따른 유효성 검증된 후보들을 포함하는 제 4 메시지는 제 1 메시지 수신 시에 제공된다. 제 3 메시지와 제 4 메시지는 특히 하나의 메시지로 제공될 수도 있다.
예를 들어 단계 A) 에 따른 제 1 메시지에 답신하는 올바른 서버는 단계 B) 에 따른 읽혀질 데이터를 위한 후보들을 수집하고 또한 수집된 후보들 중 유효성 검증된 후보들을 전송한다. 대기 상태, 즉, 읽혀질 데이터의 동일한 후보 및 대응하는 비밀 정보를 포함하는 t+1 개의 제 2 메시지들을 수신하는 것은 그 다음에 단계 D) 에 따라 유효성 검증된 수집된 후보들에 적용된다. 차단을 피하기 위하여 리더는 미리 주어진 조건, 예를 들어 로컬 타이머의 만료가 충족되기까지만 대기 상태가 충족되기를 대기한다. 하나의 페이즈에서의 읽기 동작이 성공적이지 못하면, 리더는 제 1 페이즈를 완료하기 위해 별개의 스레드에서 대기하면서 제 2 페이즈를 수행할 수도 있다. 이점들 중 하나는 읽기 동작이 대기시간에 관해 영향을 받지 않는다는 것이다. 데이터의 재전송을 피하기 위하여, 서버들은 또한 데이터, 바람직하게는 제 1 읽기 페이즈 동안에 리더에 이미 전송된 데이터 투플들의 추적을 유지할 수도 있다.
추가의 바람직한 실시형태에 따르면, 읽혀질 데이터에 대한 후보들은 제 4 메시지를 수신 시 필터링된다. 이점들 중 하나는 리더들이 제 1 페이즈의 말미에 후보들을 필터링하여 겟 (get) 또는 읽기 동작이 제 1 페이즈에서 완료되는 것을 가능하게 하므로 제 2 페이즈를 수행하는 것이 그 다음에는 더 이상 필요하지 않다는 것이다.
본 발명의 교시를 유익한 방식으로 설계하고 더욱 발전시키는 여러 방법들이 있다. 이를 위해 한편으로는 특허 청구항 1에 종속하는 특허 청구항들과 다른 한편으로는 도면에 예시된 예로서의 본 발명의 바람직한 실시형태들의 다음의 설명이 바람직한 것이 된다. 도면의 도움으로 본 발명의 바람직한 실시형태들에 관련하여, 본 교시의 일반적으로 바람직한 실시형태들 및 추가의 개발물들을 설명할 것이다.
도면들 중에서:
도 1은 본 발명의 일 실시형태에 따라 데이터를 저장하는 방법을 도시한다; 그리고
도 2는 본 발명의 일 실시형태에 따라 데이터를 읽는 방법을 도시한다.
도 1은 본 발명의 일 실시형태에 따라 데이터를 저장하는 방법을 도시한다.
도 1에서 라이터 (w) 는 4 개의 서버들 (S1-S4) (총 n=4 개의 서버들이고 허용된 악성 서버들의 수 t=1) 을 포함하는 키 값 스토리지에서 키 (k) 하에 값 (v) 을 저장하기 위한 풋 (put) 또는 쓰기 동작 put(k, v) 을 수행한다. 약속 정보 (commit) 가 제공된 비밀 정보에 따라 미리 생성된다고 가정된다.
제 1 단계에서 라이터 (w) 는 제 1 메시지 (1a) 를 서버들 (S1-S4) 에 전달한다. 제 1 메시지 (1a) 내에 라이터 (w) 는 키 (k), 저장될 값 (v), 타임스탬프 정보 (ts) 및 약속 정보 (commit) 를 포함시킨다. 라이터는 그 메시지를 모든 서버들 (S1-S4) 로 전송하고 적어도 n-t=4-1=3 개 서버들로부터의 답신을 기다린다.
올바른 서버 (Si) 가 제 1 메시지 (1a) 를 수신하는 경우 대응하는 서버 (Si) 는 키 (k), 값 (v), 약속 정보 (commit) 및 ts'>ts인 타임스탬프 정보 (ts') 를 갖는 메시지를 수신하지 못하고 그때에 서버 (Si) 는 수신된 제 1 메시지 (1a) 에 포함된 정보, 즉, 키 (k), 값 (v), 타임스탬프 정보 (ts) 및 약속 정보 (commit) 를 저장 (참조 기호 saving1) 한다. 어느 경우에나 서버 (Si) 는 수신확인 메시지, 즉, ok-메시지로 라이터 (w) 에 답신한다.
4-1=3 개 ok-메시지들 또는 답신들을 수신한 후 라이터 (w) 는 이제 키 (k), 타임스탬프 (ts) 및 약속 정보 (commit) 에 대응하는 비밀 정보 (secret) 를 포함하는 다른 라운드의 메시지들 (제 2 메시지들, 참조 기호 2a로 표시됨) 을 전송함으로써 비밀 정보 (secret) 를 드러내 보인다. 키 (k) 와 타임스탬프 (ts) 는 비밀 정보에, 약속 정보에 그리고 대응하는 값 (v) 과 관련된다.
올바른, 즉, 비고장 또는 비악성 서버 (Si) 가 키 (k), 타임스탬프 (ts) 및 비밀 정보 (secret) 를 포함하는 제 2 메시지 (2a) 를 수신하는 경우, 서버 (Si) 가 키 (k) 및 ts'>ts인 타임스탬프 정보 (ts') 를 포함하는 추가의 제 2 메시지 (2a) 를 수신하지 않는다면 서버 (Si) 는 투플 <k, ts, secret>을 저장 (saving2) 한다. 어느 경우에나 서버 (Si) 는 ok-메시지 (2b) 로 답신한다. 제 1 메시지들 (1a, 1b) 을 갖는 제 1 페이즈 및 제 2 메시지들 (2a, 2b) 을 갖는 제 2 페이즈를 포함하는 풋 또는 쓰기 동작은 라이터 (w) 가 3 개의 ok-메시지들 (2b) 을 수신한 경우에 완료된다.
다음의 가정들 하에 쓰기 또는 풋 동작의 대기시간은 추가로 감소될 수 있다: 라이터에 의한 풋 또는 쓰기 동작은 서버들과의 2 개의 통신 라운드들에서 완료되는 것이 가능하게 된다.
a) 개별 키들에 대한 액세스가 순차적이며, b) 라이터들/리더들 및 서버들 사이의 언더라잉 (underlying) 네트워크가 동기적이라는 것과 c) 고장이 없다는 가정들 하에, 다음의 풋 또는 쓰기 동작이 본 발명에 따라 수행될 수도 있다. 공시성 (synchrony), 경합 없음 및 실패 없음에 의해 표현되는 기간들은 "일반적인 경우"로서 종종 간주되거나 또는 불린다.
일반적인 경우에 모든 올바른 서버들 (Si) 은 동일한 키 (k) 에 대해 업데이트들의 동일한 시퀀스를 적용하고 이에 따라 그것들은 모든 동일한 최고 타임스탬프 (ts) 를 보유한다. 그러므로 서버들 (Si) 은 라이터 (w) 에 의한 명시적 조정 없이 전체적으로 일관된 타임스탬프 (ts) 를 값 (v) 에 국소적으로 할당할 수도 있다. 라이터는 타임스탬프 수집 및 할당 페이즈를 건너뛸 수도 있다. 풋 또는 읽기 동작이 그 다음에 다음과 같이 수정된다: 사전쓰기 (pre-write) 페이즈에서 라이터 (w) 는 타임스탬프 (ts) 없이 제 1 메시지 (1a) 를 전송하며; 제 1 메시지 (1a) 는 그러므로 키 (k), 값 (v) 및 약속 정보 (commit) 를 포함한다. 올바른 서버 (Si) 는 제 1 메시지 (1a) 를 수신 시, 최고 로컬 타임스탬프 (ts) 를 더 높은 타임스탬프 값 (ts'=ts+1) 까지 증분만큼 증가시키고 키 (k), 값 (v) 및 약속 정보 (commit) 를 포함하는 수신된 투플을 타임스탬프 (ts'=ts+1) 와 함께 저장 (saving1) 한다.
서버 (Si) 는 그 다음에 타임스탬프 정보 (ts') 를 포함하는 제 1 메시지 (1b) 로 라이터 (w) 에 답신한다. 라이터 (w) 는 그러면 동일한 타임스탬프들 (ts') 을 갖는 서버들 (S1-S4) 로부터 n-t=4-1=3 개 답신들을 수신하기까지 대기한다. 그 함의 (implication) 는 t+1=2 개의 올바른 서버들이 값 (v) 에 동일한 타임스탬프 (ts') 를 할당하였다는 것이다. 추가의 풋 또는 쓰기 동작들을 차단하지 않기 위하여, 라이터 (w) 는 로컬 타이머의 만료까지만 대기한다. 어느 경우에나 라이터 (w) 는 n-t=4-1=3 개 서버들로부터 답신들을 받기 위해 대기한다. 모든 답신들 (제 1 ok-메시지들 (1b)) 이 동일한 타임스탬프 (ts) 를 가지고 있는 경우 라이터 (w) 는 키 (k), 타임스탬프 (ts) 및 비밀 정보 (secret) 를 포함하는 제 2 메시지 (2a) 를 전송함으로써 쓰기 페이즈로 진행한다. 모든 답신들 (1b) 이 상이한 타임스탬프들을 포함한다면 라이터 (w) 는 ts'=ts+1이고 타임스탬프 (ts) 는 수신된 최고 타임스탬프를 나타내는, 키 (k), 타임스탬프 (ts'), 값 (v) 및 약속 정보 (commit) 를 포함하는 제 1 메시지 (1a') 를 추가로 전송함으로써 사전쓰기 페이즈를 반복한다.
도 2는 본 발명의 일 실시형태에 따라 데이터를 읽는 방법을 도시한다.
겟 (get) 또는 읽기 동작에서 리더 (rd) 는 키 (k) 를 포함하는 제 1 메시지 (1a) 를 전송하고 n-t=4-1=3 개 서버들로부터의 답신들을 대기한다. 올바른 서버 (Si) 가 리더 (rd) 로부터 키 (k) 를 포함하는 제 1 메시지 (1a) 를 수신하는 경우 서버 (Si) 는 이전의 쓰기 동작으로부터 수신된 키 (k), 타임스탬프 (ts) 및 비밀 정보 (secret) 로 된 최고 타임스탬프된 (time-stamped) 투플의 후보들 (Ci) 의 세트와, 다른 및 잠재적 악성 리더들 (rd) 로부터 수신된 ts'>ts 인 키 (k), 타임스탬프 (ts') 및 비밀 정보 (secret') 를 포함하는 투플들의 추가의 세트를 구성한다. 서버 (Si) 는 그러면 세트 Ci 를 대응하는 제 1 메시지 (1b) 로 리더 (rd) 에 전송한다.
리더 (rd) 가 3 개의 서버들로부터 제 1 답신 메시지들 (1b) 을 수신하는 경우, 리더 (rd) 는 모든 후보 세트들 (Ci) 의 합집합 세트 (C) 를 포함하는 제 2 메시지 (2a) 를 모든 n 개의 서버들 (S1-S4) 에 전송한다. 올바른 서버 (Si) 가 합집합 세트 (C) 를 포함하는 대응하는 제 2 메시지 (2a) 를 수신하는 경우 서버 (Si) 는 키 (k), 타임스탬프 (ts) 및 비밀 정보 (secret) 를 포함하는 각각의 투플에 대해, 키 (k), 타임스탬프 (ts), 값 (v) 및 약속 정보 (commit) 를 포함하는 대응하는 투플이 서버 (Si) 상에 국소적으로 저장되어 있는지를 점검한다. 그렇다면 서버 (Si) 는 약속 정보 (commit) 를 이용하여 비밀 정보 (secret) 를 유효성 검증한다. 서버 (Si) 는 그 다음에 앞서 언급된 유효성 검증을 통과한 키 (k), 타임스탬프 (ts) 및 값 (v) 을 포함하는 투플들의 추가의 세트 (Vi) 를 구성한다. 서버 (Si) 는 세트 (Vi) 를 리더 (rd) 에 제 2 답신 메시지 (2b) 로 전송한다. 마지막 단계에서 리더 (rd) 는 적어도 3 개의 서버들로부터 대응하는 답신 메시지들 (2b) 을 수신하는 것을 대기한다. 최고 타임스탬프 (ts) 를 갖는 유효성 검증된 후보들 (Vi) 의 값 (v) 은 그 다음에 선택되고 겟 또는 읽기 동작 get(k) 을 위한 값 (v) 으로서 반환된다. 키 (k), 타임스탬프 (ts) 및 비밀 정보 (secret) 를 포함하는 유효성 검증된 후보 (V) 는 t+1 개 서버들이 키 (k), 타임스탬프 (ts) 및 값 (v) 을 포함하는 제 2 답신 메시지들 (2b) 로 답신하는 경우에 유효하다. 키 (k'), 타임스탬프 (ts'), 비밀 정보 (secret') 를 갖는 후보는 n-t=4-3=1 개 서버가 키 (k'), 타임스탬프 (ts'), 값 (v') 을 포함하지 않는 제 2 답신 메시지들 (2b) 로 답신하는 경우에 유효하지 않다.
위에서 정의된 것과 같은 일반적인 경우에, k'=k 인 키 (k'), 타임스탬프 (ts), 비밀 정보 (secret) 를 갖는 투플에 의해 표현되는 반환된 후보와 함께, k'=k인 키 (k'), 타임스탬프 (ts), 값 (v) 을 포함하는 유효성 검증된 투플에 포함된 대응하는 값이 제 1 페이즈 (메시지들 (1a 및 1b) 에 의해 표현됨) 에서의 n-t=4-1=3 개 서버들로부터 제 1 페이즈에서 수집된다면, 겟 또는 읽기 동작은 메시지들 (2a, 2b) 을 갖는 제 2 페이즈를 또한 건너뛸 수 있다. 키 (k) 만을 포함하는 제 1 메시지 (1a) 에 답신하는 올바른 서버 (Si) 는 리더 (rd) 에 제 1 답신 메시지 (1b) 및 제 2 답신 메시지 (2b) 를 다시 전송하거나 답신한다. 답신 메시지들 (1b, 2b) 양쪽 모두는 도 2의 메시지들 (1b 및 2b) 에서 묘사된 것과 동일한 정보를 포함한다. 이 메시지들의 분리는 논리적이고 포함된 데이터는 단일 물리적 메시지로 전송될 수 있다.
리더 (rd) 에서, 도 2에서 메시지들 (2a, 2b) 에 의해 표현되는 제 2 읽기 페이즈의 대기 상태는 제 1 페이즈에서 수신된 메시지들 (1b, 2b) 에 적용된다. 대기 상태는 리더 (rd) 가 적어도 n-t=4-1=3 개 서버들로부터 답신 메시지들 (1b, 2b) 을 수신하기 위해 대기한다는 것을 의미한다.
차단을 피하기 위해, 리더 (rd) 는 로컬 타이머의 만료까지만 충족될 조건을 기다리기 위해 대기한다. 추가로 리더 (rd) 는 하나의 페이즈에서의 읽기가 성공하지 못한다면 별개의 스레드에서 대기함으로써 제 2 페이즈로 이동할 수도 있으며; 겟 또는 읽기 동작의 대기시간은 따라서 영향을 받지 않는다. 데이터의 재전송을 피하기 위해 서버들은 제 1 페이즈 동안에 리더 (rd) 에 이미 전송된 데이터 투플들의 추적을 유지할 수도 있다.
요약하여 본 발명은 가용성, 무결성 및 원자적 일관성을 제공한다: 무결성은 다음의 방법으로 충족된다: 키 (k) 의 겟 또는 읽기 동작이 값 (v) 을 반환한다면 그 값은 비잔틴 서버에 의해 만들어지지 않는다. 상세하게는 겟 또는 읽기 동작이 키 (k) 하의 값 (v) 을 수신하면 t+1 개 서버들은 값 (v) 이 쓰여져 있음을 확인하기 때문에 무결성은 충족된다. 따라서 올바른 서버는 값 (v) 을 저장하고 그러므로 v 는 위조되지 않는다.
추가로 가용성은 다음으로 만족된다: 값 (v) 을 갖는 키 (k) 의 풋 또는 쓰기 동작과 값 (v) 에 대한 키 (k) 의 읽기 또는 겟 동작은 결코 차단하지 않는다.
심지어 추가의 원자적 일관성이 다음으로 만족된다: 키 (k) 의 겟 또는 읽기 동작이 값 (v) 을 반환하면 값 (v) 은 a) 키 (k) 를 갖는 겟 또는 읽기 동작 또는 b) 겟 또는 읽기 동작과 병행하는 풋 또는 쓰기 동작에 선행하는 키 (k) 및 값 (v) 을 갖는 마지막 풋 또는 쓰기 동작에 의해 쓰여진다. 키 (k) 를 갖는 겟 또는 읽기 동작이 값 (v) 을 반환하고 값 (k') 을 갖는 나중의 겟 또는 읽기 동작이 값 (v') 를 반환하면, 키 (k) 및 값 (v') 을 갖는 쓰기 동작 또는 풋 동작은 키 (k) 및 값 (v) 을 갖는 쓰기 또는 풋 동작에 선행하지 않는다.
상세하게는 원자적 일관성은 다음의 이유들로 충족된다: 풋 또는 쓰기 동작 put(k, v) 가 겟 또는 읽기 동작 get(k) 에 선행하면, 키 (k), 타임스탬프 정보 (ts) 및 비밀 정보 (secret) 를 포함하는 대응하는 후보 (k, ts, secret) 는 t+1 개의 올바른 서버들 상에 저장된다. 키 (k) 에 대한 겟 또는 읽기 동작은 n-t 개 서버들이 답신하는 것을 대기하므로, t+1 개 올바른 서버들 중 하나는 n-t 개 서버들 (쿼럼 (quorum) 교차점) 중에 있고 ts'=ts인 후보 (k, ts', secret') 로 답신한다. 서버가 올바른 서버이므로, 후보는 결코 무효로 되지 않고 결국에는 유효하게 된다. 따라서 원자적 일관성은 연관된 값 (v') 을 반환함으로써 충족된다.
겟 또는 읽기 동작들인 get(k) 및 get(k)' 이 비악성 리더들에 의한 읽기 동작들인 경우, 및 v, v' 가 반환되는 대응하는 값들이며, 추가로 키 (k) 및 값 (v') 을 갖는 쓰기 또는 풋 동작이 키 (k) 및 값 (v) 을 갖는 대응하는 풋 또는 읽기 동작에 선행한다는 모순에 의해 추정된 채로, get(k) 가 get(k)' 에 선행하는 경우 - get(k) 동작이 값 (v) 을 반환하므로 - t+1 개 서버들은 키 (k), 타임스탬프 (ts) 및 비밀 정보 (secret) 를 포함하는 대응하는 후보를 보증한다. 제 1 메시지들 (1a, 1b) 에 의해 표현되는 따라서 사전쓰기 페이즈는 완료된다. 그것은 t+1 개의 올바른 서버들이 키 (k), 타임스탬프 정보 (ts), 값 (v) 및 약속 정보 (commit) 를 저장하고 있다는 것을 의미한다.
읽기 동작 get(k) 는 <k, ts, secret>를 포함하는 후보를 t+1 개의 올바른 서버들에 답신한다. 다른 겟 또는 읽기 동작 get(k)' 이 n-t 개 서버들이 답신하기를 대기하므로, 그것들 중 적어도 하나는 키 (k), 타임스탬프 (ts) 및 비밀 정보 (k, ts, secret) 를 보고하고, t+1 개의 올바른 서버들이 (k, ts, v, commit) 를 저장하고 있기 때문에 후보 (k, ts, secret) 는 결국에는 유효성 검증된다. 리더 (rd) 가 항상 최고 타임스탬프된 유효한 후보를 반환하고 값 (v') 이 v 보다 낮은 타임스탬프 (ts) 로 할당되므로 - 풋 동작 put(k, v') 이 put(k, v) 에 선행하기 때문에 - 겟 동작 get(k)' 은 그 가정에 모순되게 값 (v') 을 반환하지 않는다. 그러므로 원자적 일관성은 더 충족된다.
요약하여 본 발명은 리더가 반환되는 후보로서 값을 선택하면, 쓰기 동작은 사전쓰기 페이즈를 완료해야만 한다, 즉, 그 값은 t+1 개의 올바른 서버들의 세트에 저장된다는 것을 규정한다. 읽기 동작이 사전쓰기 페이즈에 연관된 답신을 건너뛸 수 있다. 본 발명은 추가로 사전쓰기 페이즈의 완전성을 제공한다: 값은 라이터에 의해 유일하게 알려진 비밀 정보에 대한 약속 정보와 함께 쓰여진다. 비밀 정보는 사전쓰기 페이즈의 완료 후에만 라이터에 의해 드러내어진다. 읽기 동작 동안, 약속 정보는 비밀 정보의 유효성을 검증하는데 사용된다. 비밀 정보의 유효성 및 값 양쪽 모두가 필요한 만큼의, 즉, 적어도 t+1 개의 서버들에 의해 확인되면, 값은 위조되지 않는 것이 보장되고 사전쓰기 페이즈는 완료된다.
본 발명에 따르면 단일 왕복을 취하는 하나의 답신이면 충분하다. 추가로 본 발명은 실제 반환 후보를 결정하기 전에 리더들이 답신하는 것을 규정한다. 그러므로 반환 후보를 포함하는 세트의 답신은 충분하여서 후속하는 읽기들에 필터링의 태스크를 남긴다. 답신은 모든 관련 후보들을 수집한 후에 즉시 수행될 수도 있어서 별도의 답신 페이즈들이 필요 없게 한다.
추가로 본 발명은 읽기 동작의 경우 메타데이터, 즉, 값 자체가 아니라 값에 관한 데이터만을 답신하여서, 악성 리더들이 서버들에서의 저장된 정보를 손상시키는 것을 방지하고 비잔틴 리더들에 견디는 것을 허용한다.
본 발명은 비밀이 제 1 페이즈에서 약속되고 비밀이 제 2 페이즈에서 드러나는 것을 규정한다. 읽기 동작 동안 약속 정보는 비밀 정보의 유효성을 점검하기 위해 사용된다. 비밀 정보가 t+1 서버들에 의해 유효성 검증된다면 쓰기 또는 풋 동작은 충분한 진전을 이루었고 잠재적인 후보는 반환될 수도 있다. 그렇지 않으면 n-t 개 서버들은 비밀 정보를 무효로 하고 후보는 떨어진다.
하나의 실시형태에서 본 발명은 타임스탬프 없이 값들을 사전쓰기하는 것과 서버들이 명시적 조정 없이 타임스탬프들을 국소적으로 할당하는 것을 규정한다. 이는 단일 라운드에서 읽기 동작을 가능하게 한다. 서버들은 마치 그것들이 리더로부터 메시지 (2a) 를 이미 수신했던 것처럼 키 (k) 를 갖는 제 1 메시지에 메시지들 (1b 및 2b) 양쪽 모두로 답신한다. 리더들은 그 다음에 제 1 라운드의 말미에 후보들을 필터링해야 한다.
본 발명은 다음을 제공한다:
1) 악성 고장들에 견디는 강건한 무서명 원자적 키 값 스토어. 악성 서버들 및 클라이언트들 (리더들) 모두가 지원된다.
2) 대기시간, 메시지들의 수, 메시지 사이즈 및 스토리지 요건과 같은 모든 관련 메트릭들이 클라이언트 개체군의 사이즈에 의존하지 않는다는 의미에서의 확장성. 클라이언트들의 수에 상한은 없다. 더욱이, 리더들은 완전히 미지일 수도 있다. 확장성은 메시지들의 수 및 메시지 사이즈들이 클라이언트들의 수에 의존하지 않는다는 것을 의미한다. 서버간 통신의 부족 때문에, 메시지들의 수는 서버들의 수에 비례한다.
3) 최적의 그리고 적절히 저하하는 읽기 대기시간: (단일 키에 대한 공시성 및 경합 없음에 의해 표현되는) 일반적인 경우의 하나의 라운드와 최악의 경우의 2 개의 라운드들. 낮은 대기시간: 본 발명은 2 개의 왕복들의 읽기에 최저 가능 대기시간을 제공한다.
4) 최적의 복제 차수 3t+1; 지원되는 악성 서버들의 비율 (fraction) 은 향상될 수 없다. 결과적인 이점은 각각이 날짜의 공유를 보유하는 다수의 데이터 노드들이 결함 공차 (tolerance) 를 위해 복제되는 데이터센터 환경에서 분명하게 나타난다.
5) 쓰여진 값에 의존하지 않는 저렴하고 간단한 방법으로 비밀들 및 약속을 컴퓨팅. 그러므로 메타데이터는 중요한 경로 외부에서 미리 생성될 수 있다.
6) 악성 서버들의 임계값, 임의의 수의 클라이언트 기능멈춤들, 비동기성 (asynchrony) 및 경합에도 불구하고 보장된 가용성 및 일관성. 리더는 위조된 또는 쓸모없이된 값을 결코 반환하지 않고 가용성은 메타데이터의 비밀엄수가 유지되는 한 보장된다. 따라서, 방법 및 시스템의 안전성은 (결정론적으로) 항상 보장된다. 본 발명은 임의의 서명 기반 프로토콜보다 더 강건하다.
서명 기반 스토리지 프로토콜들은 특정한 가정, 예컨대 키들의 비밀엄수, 특정한 수학적 문제들을 푸는 다루기힘듦 (인수분해의 난해함) 하에서만 일관성 및 무결성을 보장한다. 이들 가정이 위반되는 경우, 또한 일관성 및 무결성이 위반된다. 일관성과 무결성은 본 발명에 의해 제공된다. 심지어 최악의 경우 가정들의 세트로부터 일탈하여도, 안전은 유지된다.
본원에서 언급된 본 발명의 많은 변형들 및 다른 실시형태들은 본 발명이 관련되는 기술분야의 당업자에게 상술한 내용 및 관련 도면들에 제시된 교시들의 이점을 가진다는 생각을 떠올리게 할 수 있을 것이다. 따라서, 본 발명이 개시된 특정 실시형태들로 국한되어서는 안 된다는 것과, 변형들과 다른 실시형태들이 첨부된 청구항들의 범위 안에 포함되도록 의도된다는 것이 이해된다. 특정 용어들이 사용되었지만, 이는 포괄적이고 설명적인 맥락에서 사용된 것일 뿐 한정할 용도로 사용된 것은 아니다.

Claims (25)

  1. t<n 개 서버들 (S1, S2, S3, S4) 이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들 (S1, S2, S3, S4) 을 갖는 키 값 스토리지에 라이터 (writer) 가 데이터 (v) 를 저장 (put) 하는 방법으로서,
    a) 비밀 정보 (secret) 에 대한 약속 정보 (commit) 를 생성하는 단계,
    b) 저장될 상기 데이터 (v), 상기 데이터 (v) 에 대한 대응 키 (k) 및 상기 생성된 약속 정보 (commit) 를 포함하는 제 1 메시지 (1a) 를 상기 n 개 서버들에 전달하는 단계,
    c) 상기 제 1 메시지 (1a) 에 포함된 정보를 적어도 다수의 서버들 (S1, S2, S3) 에 저장하는 단계 (saving1),
    d) 적어도 n-t 개 서버들 (S1, S2, S3) 에 의해 제 1 저장 확인 정보 (1b) 를 제공하는 단계,
    e) 대응 키 (k) 및 상기 비밀 정보 (secret) 를 포함하는 제 2 메시지 (2a) 를 상기 n 개 서버들 (S1, S2, S3, S4) 로 전달하는 단계,
    f) 상기 제 2 메시지 (2a) 에 포함된 정보를 저장하는 단계 (saving2), 및
    g) 적어도 n-t 개 서버들 (S1, S2, S3) 에 의해 제 2 저장 확인 정보 (2b) 를 제공하는 단계를 특징으로 하는 방법.
  2. t<n 개 서버들 (S1, S2, S3, S4) 이 임의로 고장날 수도 있고 3t+1=n 이 충족되는, 복수의 n 개 서버들 (S1, S2, S3, S4) 을 갖는 키 값 스토리지에 저장된 데이터 (v) 를 리더 (reader) 가 읽는 (get) 방법으로서,
    A) 읽혀질 상기 데이터 (v) 에 대응하는 키 (k) 를 포함하는 제 1 메시지 (1a) 를 전달하는 단계,
    B) 적어도 2t+1 개 서버들 (S2, S3, S4) 로부터 읽혀질 상기 데이터 (v) 에 대한 후보들 (C2, Ci, Cold) 을 수집하는 단계 (1b),
    C) 약속 정보 (commit) 에 대응하는 비밀 정보 (secret) 및 읽혀질 상기 데이터 (v) 에 대응하는 정보로 답신하는 단계 (2a),
    D) 상기 약속 정보 (commit) 및 상기 비밀 정보 (secret) 의 매칭에 기초하여 상기 수집된 후보들 (C2, Ci, Cold) 을 유효성 검증 (verification) 하는 단계,
    E) 상기 유효성 검증된 후보들 (Vi) 에 따라 읽혀질 데이터 (v) 에 대한 후보들을 결정하는 단계, 및
    F) 읽혀질 데이터 (v) 의 동일한 후보 및 대응하는 비밀 정보 (secret) 를 포함하는 t+1 개 답신 메시지들 (2b) 에 기초하여 상기 읽혀질 데이터를 선택하는 단계를 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    타임스탬프 정보 (ts) 가 생성되어 저장될 상기 데이터 (v) 에 할당되는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서,
    생성된 타임스탬프 정보 (ts) 는 전체적으로 (globally) 일관된 것을 특징으로 하는 방법.
  5. 제 3 항에 있어서,
    상기 타임스탬프 정보 (ts) 를 저장될 상기 데이터 (v) 에 할당하기 전에, 생성된 타임스탬프 정보 (ts) 가 수집되는 것을 특징으로 하는 방법.
  6. 제 3 항에 있어서,
    단계 c) 및 단계 f) 중 적어도 하나를 수행하기 전에, 상기 타임스탬프 정보 (ts) 가 평가되는 것을 특징으로 하는 방법.
  7. 제 3 항에 있어서,
    타임스탬프 정보 (ts) 의 유효성은, 적어도 대칭적으로 인증된 타임스탬프 정보를 교환함으로써 검증되는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 약속 정보 (commit) 는 해싱에 의해 생성되는 것을 특징으로 하는 방법.
  9. 제 1 항에 있어서,
    상기 약속 정보 (commit) 는 랜덤 값 (xi) 과 상기 랜덤 값 (xi) 에 적용되는 차수 t의 랜덤 다항식 (P) 의 다항식 값을 사용하는 것에 의해 생성되는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서,
    상기 약속 정보 (commit) 는 서버 (S1, S2, S3, S4) 의존적이며,
    각각의 서버 (S1, S2, S3, S4) 에 대해 대응하는 별개의 약속 정보 (commit) 가 생성되는 것을 특징으로 하는 방법.
  11. 제 1 항에 있어서,
    보안 채널들이 메시지 및/또는 정보 교환을 위해 사용되는 것을 특징으로 하는 방법.
  12. 제 2 항에 있어서,
    후보들 (C2, Ci, Cold) 은 저장된 키 (k) 와, 가장 최근에 저장된 및/또는 가장 최근에 수신된 비밀 정보 (secret) 를 포함하는 것을 특징으로 하는 방법.
  13. 제 2 항에 있어서,
    모든 후보들 (C2, Ci, Cold) 의 합집합 세트 (C) 가 단계 C) 에서 송신되는 것을 특징으로 하는 방법.
  14. 제 2 항에 있어서,
    단계 B) 에 따라 상기 수집된 후보들 (C2, Ci, Cold) 을 포함하는 제 3 메시지와 단계 D) 에 따라 유효성 검증된 후보들 (V1, V2, Vold) 을 포함하는 제 4 메시지는 상기 제 1 메시지 (1a) 수신 시에 제공되는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서,
    읽혀질 상기 데이터 (v) 에 대한 후보들은 상기 제 4 메시지 수신 시에 필터링되는 것을 특징으로 하는 방법.
  16. t<n 개 서버들이 임의로 고장날 수도 있고 3t+1=n 이 충족되며 라이터 (w) 는 키 값 스토리지에 데이터 (v) 를 쓰기 위한 것인, 복수의 n 개 서버들 (S1, S2, S3, S4) 을 갖는 상기 키 값 스토리지에 데이터 (v) 를 저장하기 위한 시스템으로서,
    상기 라이터 (w) 는 저장될 상기 데이터 (v), 상기 데이터 (v) 에 대한 대응 키 (k), 및 비밀 정보 (secret) 로부터 생성된 약속 정보 (commit) 를 포함하는 제 1 메시지 (1a) 를 상기 n 개 서버들 (S1, S2, S3, S4) 에 전달하도록 동작가능하게 구성되며,
    적어도 다수의 서버들 (S1, S2, S3, S4) 이 상기 제 1 메시지 (1a) 에 포함된 정보를 저장하도록 동작가능하게 구성되며,
    상기 라이터 (w) 는 적어도 n-t 개 서버들 (S1, S2, S3, S4) 에 의해 제 1 저장 확인 정보 (1b) 를 수신한 후에, 대응 키 (k) 및 상기 비밀 정보 (secret) 를 포함하는 제 2 메시지 (2a) 를 상기 n 개 서버들 (S1, S2, S3, S4) 에 전달하도록 동작가능하게 구성되고,
    적어도 n-t 개 서버들 (S1, S2, S3, S4) 은 상기 제 2 메시지 (2a) 에 포함된 상기 제 2 메시지 (2a) 의 정보를 저장한 후에 제 2 저장 확인 정보 (2b) 를 제공하도록 동작가능하게 구성되는 것을 특징으로 하는 시스템.
  17. 삭제
  18. 삭제
  19. 제 2 항에 있어서,
    상기 약속 정보 (commit) 는 해싱에 의해 생성되는 것을 특징으로 하는 방법.
  20. 제 2 항에 있어서,
    상기 약속 정보 (commit) 는 랜덤 값 (xi) 과 상기 랜덤 값 (xi) 에 적용되는 차수 t의 랜덤 다항식 (P) 의 다항식 값을 사용하는 것에 의해 생성되는 것을 특징으로 하는 방법.
  21. 제 20 항에 있어서,
    상기 약속 정보 (commit) 는 서버 (S1, S2, S3, S4) 의존적이며,
    각각의 서버 (S1, S2, S3, S4) 에 대해 대응하는 별개의 약속 정보 (commit) 가 생성되는 것을 특징으로 하는 방법.
  22. 제 2 항에 있어서,
    보안 채널들이 메시지 및/또는 정보 교환을 위해 사용되는 것을 특징으로 하는 방법.
  23. t<n 개 서버들 (S1, S2, S3, S4) 이 임의로 고장날 수도 있고 3t+1=n 이 충족되며 리더 (rd) 는 키 값 스토리지에 저장된 데이터 (v) 를 읽기 위한 것인, 복수의 n 개 서버들을 갖는 상기 키 값 스토리지에 저장된 데이터를 읽기 위한 시스템으로서,
    상기 리더 (rd) 는, 읽혀질 상기 데이터 (v) 에 대응하는 키 (k) 를 포함하는 제 1 메시지 (1a) 를 전달하며, 적어도 2t+1 개 서버들 (S1, S2, S3, S4) 로부터 읽혀질 상기 데이터 (v) 에 대응하는 후보들 (C2, Ci, Cold) 을 수집하며, 비밀 정보 (secret) 로부터 생성된 약속 정보 (commit) 에 대응하는 상기 비밀 정보 (secret) 와 읽혀질 상기 데이터 (v) 에 대응하는 정보로 답신하고, 읽혀질 동일한 후보 (C2, Ci, Cold) 및 대응하는 비밀 정보 (secret) 를 포함하는 t+1 개 답신 메시지들 (C2, Ci, Cold) 에 기초하여 읽혀질 상기 데이터 (v) 를 선택하도록 동작가능하게 구성되며,
    읽혀질 상기 데이터 (v) 에 대한 후보들 (C2, Ci, Cold) 은 유효성 검증된 후보들 (Vi) 에 따라 결정되었고, 상기 수집된 후보들 (C2, Ci, Cold) 은 상기 약속 정보 (commit) 및 상기 비밀 정보 (secret) 의 매칭에 기초하여 유효성 검증된 것을 특징으로 하는 시스템.
  24. 제 11 항에 있어서,
    상기 보안 채널들은 인증된 점 대 점 채널들인 것을 특징으로 하는 방법.
  25. 제 22 항에 있어서,
    상기 보안 채널들은 인증된 점 대 점 채널들인 것을 특징으로 하는 방법.
KR1020137032369A 2012-07-06 2012-07-06 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템 KR101574871B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2012/063322 WO2013152812A1 (en) 2012-07-06 2012-07-06 Method and system for storing and reading data in or from a key value storage

Publications (2)

Publication Number Publication Date
KR20140033086A KR20140033086A (ko) 2014-03-17
KR101574871B1 true KR101574871B1 (ko) 2015-12-04

Family

ID=46604273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137032369A KR101574871B1 (ko) 2012-07-06 2012-07-06 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US9454312B2 (ko)
EP (1) EP2689333B1 (ko)
JP (1) JP5801482B2 (ko)
KR (1) KR101574871B1 (ko)
ES (1) ES2524124T3 (ko)
WO (1) WO2013152812A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6459702B2 (ja) * 2015-03-26 2019-01-30 日本電気株式会社 データベースシステム、情報記憶方法、プログラム
CN107135240B (zh) * 2016-02-29 2020-12-15 华为技术有限公司 一种分布式系统中命令分发方法、装置及系统
US10425483B2 (en) 2016-05-16 2019-09-24 International Business Machines Corporation Distributed client based cache for keys using demand fault invalidation
WO2018095540A1 (en) 2016-11-25 2018-05-31 NEC Laboratories Europe GmbH Method and system for byzantine fault - tolerance replicating of data
SG11202000804PA (en) 2017-08-15 2020-02-27 Nchain Holdings Ltd Threshold digital signature method and system
EP4325770A3 (en) 2017-08-15 2024-04-24 nChain Licensing AG Threshold ecdsa for securing bitcoin wallet
KR102406666B1 (ko) 2017-09-20 2022-06-08 삼성전자주식회사 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
US10592260B1 (en) * 2017-09-21 2020-03-17 Inductive Automation, LLC Hierarchical data binding for industrial control systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010039630A1 (en) 2000-01-14 2001-11-08 Klaus Kursawe Method of achieving multiple processor agreement in asynchronous networks
US20100106974A1 (en) 2008-10-24 2010-04-29 Aguilera Marcos K System For And Method Of Writing And Reading Redundant Data
JP2013178677A (ja) 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、ディスパッチャおよび分散処理管理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496840B1 (en) * 2000-05-31 2002-12-17 International Business Machines Corporation Method, system and program products for atomically and persistently swapping resource groups
JP2003121659A (ja) 2001-01-23 2003-04-23 Sumitomo Electric Ind Ltd 光ファイバコイルへの充填材含浸方法
JP2004254027A (ja) * 2003-02-19 2004-09-09 Toshiba Corp サーバ装置、鍵管理装置、暗号通信方法及びプログラム
JP5348125B2 (ja) * 2008-02-29 2013-11-20 日本電気株式会社 サーバ認証システム、サーバ認証方法及びサーバ認証用プログラム
US8189789B2 (en) * 2008-11-03 2012-05-29 Telcordia Technologies, Inc. Intrusion-tolerant group management for mobile ad-hoc networks
US20120117067A1 (en) * 2010-10-29 2012-05-10 Navteq North America, Llc Method and apparatus for providing a range ordered tree structure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010039630A1 (en) 2000-01-14 2001-11-08 Klaus Kursawe Method of achieving multiple processor agreement in asynchronous networks
US20100106974A1 (en) 2008-10-24 2010-04-29 Aguilera Marcos K System For And Method Of Writing And Reading Redundant Data
JP2013178677A (ja) 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、ディスパッチャおよび分散処理管理装置

Also Published As

Publication number Publication date
JP5801482B2 (ja) 2015-10-28
US9454312B2 (en) 2016-09-27
US20140143369A1 (en) 2014-05-22
EP2689333B1 (en) 2014-09-10
JP2014524204A (ja) 2014-09-18
ES2524124T3 (es) 2014-12-04
KR20140033086A (ko) 2014-03-17
WO2013152812A1 (en) 2013-10-17
EP2689333A1 (en) 2014-01-29

Similar Documents

Publication Publication Date Title
KR101574871B1 (ko) 키 값 스토리지에 또는 그로부터 데이터를 저장하고 읽기 위한 방법 및 시스템
KR102170345B1 (ko) 뷰 변경 프로토콜을 종료하기 위한 시스템 및 방법
AU2019203862B2 (en) System and method for ending view change protocol
KR102230829B1 (ko) 합의 시스템 다운타임 복구
US10108630B2 (en) Cluster unique identifier
KR20200112633A (ko) 합의 시스템 다운타임 복구
EP3631668A1 (en) High integrity logs for distributed software services
CN109716317A (zh) 用于创建时间准确的事件流的系统和方法
CN111815454B (zh) 数据上链方法及装置、电子设备、存储介质
CN113204530B (zh) 分布式文件系统的数据写入方法、装置、设备以及介质
CN111339551B (zh) 数据的验证方法及相关装置、设备
CN109254956A (zh) 一种数据存储的方法、数据下载的方法、装置及电子设备
CN110278246B (zh) 一种针对联盟链的存证业务转移方法、装置及设备
US11625385B2 (en) Method and apparatus for managing data based on blockchain
Koçi et al. ADLMCC–Asymmetric distributed lock management in cloud computing
Spenger Using Blockchain for Tamper-Proof Broadcast Protocols
JP2021096650A (ja) 証跡記録システム及びデータ検証方法
Bessani et al. Decoupled quorum-based Byzantine-resilient coordination in open distributed systems
Solat Nouvelle architecture de base de données distribuée tolérante aux pannes, auto-configurable, scalable, sécurisée, décentralisée et haute performance utilisant une technique de fragmentation innovante pour permettre l'utilisation de mécanismes de consensus BFT dans des réseaux à très grande échelle
Solat Novel fault-tolerant, self-configurable, scalable, secure, decentralized, and high-performance distributed database replication architecture using innovative sharding to enable the use of BFT consensus mechanisms in very large-scale networks
Lu et al. A Novel Approach for Improving Accuracy for Distributed Storage Networks
CN113722272A (zh) 基于区块链的电子档案管理方法、装置及系统
KR20240002729A (ko) 외부 저장장치를 활용하는 비잔틴 장애 감내 블록 데이터 저장 시스템, 장치 및 방법
CN116192867A (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191120

Year of fee payment: 5