KR102316397B1 - 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들 - Google Patents

추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들 Download PDF

Info

Publication number
KR102316397B1
KR102316397B1 KR1020207002954A KR20207002954A KR102316397B1 KR 102316397 B1 KR102316397 B1 KR 102316397B1 KR 1020207002954 A KR1020207002954 A KR 1020207002954A KR 20207002954 A KR20207002954 A KR 20207002954A KR 102316397 B1 KR102316397 B1 KR 102316397B1
Authority
KR
South Korea
Prior art keywords
aof
utilization
determining
threshold
shard
Prior art date
Application number
KR1020207002954A
Other languages
English (en)
Other versions
KR20200125921A (ko
Inventor
이프타흐 슐만
요아브 슈타인베르크
요시 고틀리브
오란 아그라
Original Assignee
이프타흐 슐만
요아브 슈타인베르크
요시 고틀리브
오란 아그라
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이프타흐 슐만, 요아브 슈타인베르크, 요시 고틀리브, 오란 아그라 filed Critical 이프타흐 슐만
Priority to KR1020217033557A priority Critical patent/KR20210130824A/ko
Publication of KR20200125921A publication Critical patent/KR20200125921A/ko
Application granted granted Critical
Publication of KR102316397B1 publication Critical patent/KR102316397B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/1805Append-only file systems, e.g. using logs or journals to store data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들이 제공된다. 일부 실시예들에 따르면, 방법들은 데이터베이스의 샤드의 이용률을 결정하는 단계; 이용률이 영구 스토리지 이용률 임계값을 초과하는지를 결정하는 단계; 추가-전용-파일로부터 샤드를 복구하기 위한 복구 시간을 결정하는 단계; 복구 시간이 복구 시간 임계값을 초과하는지를 결정하는 단계; 및 이용률이 이용률 임계값을 초과하는 것으로 결정될 때, 또는 복구 시간이 복구 시간 임계값을 초과하는 것으로 결정될 때, 추가-전용-파일 재기입이 수행되게 하는 단계를 포함한다.

Description

추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들
본 출원은 2017년 6월 30일자로 출원된 미국 특허 출원 제15/639,965호의 이익을 주장하며, 이는 본 명세서에서 전체적으로 참조로 포함된다.
<기술 분야>
개시된 주제는 추가-전용-파일(append-only file) 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들에 관한 것이다.
데이터베이스 액세스 속도 요구 사항들이 계속 증가하고, 랜덤 액세스 메모리(random access memory)(RAM)에 대한 비용들이 계속 감소함에 따라, 인-메모리 데이터베이스 시스템들의 인기가 계속 증가하고 있다. 이러한 데이터베이스 시스템들에서는, 컴퓨터 하드 디스크들과 같은 비-휘발성 저장 디바이스들에 데이터를 저장하는 대신, RAM에 데이터가 저장되므로, 훨씬 더 빠르다.
휘발성 스토리지(RAM 등)를 사용하는 인-메모리 데이터베이스들의 문제점은 그 안에 저장된 데이터가 정전과 같은 다양한 상황들에서 쉽게 손실될 수 있다는 것이다.
인-메모리 데이터베이스 시스템에서 데이터-지속성을 관리하기 위한 인기있는 접근법은 비-휘발성 스토리지(예를 들어, 컴퓨터 하드 디스크, 스토리지 에어리어 네트워크(Storage Area Network)(SAN) 또는 네트워크 부착형 스토리지(Network Attached Storage)(NAS) 등)(이는 본 명세서에서 영구 스토리지로도 지칭됨)에 저장되는 추가-전용-파일(append-only file)(AOF)에 데이터를 기입하는 것이다. 통상적으로, 이러한 접근법에서, 인-메모리 데이터베이스에 의해 수신된 모든 "기입" 커맨드는 또한 컴퓨터 비-휘발성 스토리지에 저장된 AOF에 기입된다. Redis와 같은 최신 인-메모리 데이터베이스 시스템들은 AOF에 대한 커맨드들의 "기입들"을 제어하는 여러 방법들을 제공하며, 예를 들어, "기입" 커맨드마다 AOF에 새로운 라인이 기입되거나, 또는 모든 새로운 "기입" 커맨드들이 AOF에 N초 후에 기입되며, 여기서 N은 임의의 적절한 값을 갖는다.
인-메모리 데이터베이스 노드가 고장나고 노드의 RAM에서 이전에 호스팅된 데이터가 손실되는 이벤트에서, 데이터 손실로부터 복구하기 위해 데이터베이스 메모리에 AOF가 로딩될 수 있다.
AOF 접근법의 문제점은 AOF가 매우 빠르게 커지는 경향이 있다는 것이다. 이것은 데이터베이스 시스템에 도달하는 모든 "기입" 커맨드가 AOF에 새로운 텍스트 라인으로서 기입되기 때문이다. 따라서, 동일한 데이터베이스 객체에 대한 다수의 "기입" 커맨드들이 AOF에서 단지 하나가 아닌 다수의 라인들로 이어질 것이다.
AOF의 사이즈를 제어하기 위해, 각각의 객체에 대해 하나의 라인만이 존재하도록 기존의 인-메모리 데이터 세트가 새로운 AOF에 재기입되는 AOF 재기입 이벤트가 트리거될 수 있다. 대안적으로, 재기입 동작은 그 제1 부분이 직렬 및 압축 방식으로 인-메모리 데이터 세트의 스냅샷을 포함하는 새로운 파일을 생성할 수 있고(Redis 용어로, 이것은 RDB 포맷이라고 함), 모든 새로운 '기입' 동작은 AOF 포맷을 사용하여 파일에 추가될 것이다. 이 이벤트는 대개 디스크 상의 AOF의 사이즈가 RAM의 데이터 세트의 사이즈보다 N배 더 클 때 트리거된다(여기서, N은 임의의 적절한 값을 가질 수 있음).
Redis와 같이 인-메모리 데이터베이스에 대한 AOF 재기입을 구현하는 한가지 방법은 리눅스 COW(Copy On Write) 프로세스를 사용하여 인-메모리 데이터 세트의 스냅샷을 생성하는 것이다. 이것은 새로운 재기입 AOF가 데이터베이스의 시점 상태를 나타내는 것을 보장한다. 재기입 프로세스 동안, 인-메모리 데이터베이스는 AOF의 2개의 사본, 즉, (1) 현재의 AOF에 기입하는 것; 및 (2) 새로운 재기입 AOF에 기입하는 것을 유지 관리한다. 또한, 인-메모리 데이터베이스는 스냅샷을 생성한 시점부터 AOF 재기입 프로세스가 끝날 때까지 데이터 세트에 행해진 모든 변경들을 포함하는 내부 인-메모리 버퍼를 유지 관리한다.
전체 데이터 세트 스냅샷이 새로운 AOF에 기입될 때, AOF 재기입 프로세스가 완료되고, 스냅샷이 생성된 이후에 데이터 세트에 행해진 모든 변경들은 새로운 AOF에도 기입된다.
AOF 재기입 이벤트들의 문제점은 이들이 디스크-집약적인 동작들이라는 것이다. 재기입 이벤트가 발생할 때, 이것은 인-메모리 데이터베이스에 대한 업데이트들이 현재의 AOF에 기입되는 것을 차단하여, 전체 데이터베이스 실행 시간을 상당히 지연시킬 수 있다. 이러한 특성은 인-메모리 데이터베이스가 데이터베이스 서비스 제공자와 그 고객 간의 표준 서비스 레벨 계약 조건을 위반하게 할 수 있다.
따라서, 추가-전용-파일 재기입들을 제어하기 위한 새로운 방법들, 시스템들 및 매체들을 제공하는 것이 바람직하다.
개시된 주제의 다양한 실시예들에 따르면, 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들이 제공된다.
개시된 주제의 일부 실시예들에 따르면, 추가-전용-파일(append-only-file) 재기입들을 제어하기 위한 방법들이 제공되며, 방법들은 데이터베이스의 샤드(shard)의 이용률을 결정하는 단계; 이용률이 영구 스토리지 이용률 임계값을 초과하는지를 결정하는 단계; 추가-전용 파일로부터 샤드를 복구하기 위한 복구 시간을 결정하는 단계; 복구 시간이 복구 시간 임계값을 초과하는지를 결정하는 단계; 및 이용률이 이용률 임계값을 초과하는 것으로 결정될 때, 또는 복구 시간이 복구 시간 임계값을 초과하는 것으로 결정될 때, 추가-전용-파일 재기입이 수행되게 하는 단계를 포함한다.
개시된 주제의 일부 실시예들에 따르면, 추가-전용-파일 재기입들을 제어하기 위한 시스템들이 제공되며, 시스템들은 적어도 하나의 하드웨어 프로세서를 포함하고, 적어도 하나의 하드웨어 프로세서는, 데이터베이스의 샤드의 이용률을 결정하고, 이용률이 영구 스토리지 이용률 임계값을 초과하는지를 결정하고, 추가-전용-파일로부터 샤드를 복구하기 위한 복구 시간을 결정하고, 복구 시간이 복구 시간 임계값을 초과하는지를 결정하고, 이용률이 이용률 임계값을 초과하는 것으로 결정될 때, 또는 복구 시간이 복구 시간 임계값을 초과하는 것으로 결정될 때, 추가-전용-파일 재기입이 수행되게 하도록 구성된다.
일부 실시예들에 따르면, 프로세서에 의해 실행될 때, 프로세서로 하여금, 추가-전용-파일 재기입들을 제어하기 위한 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 비-일시적 컴퓨터 판독 가능 매체가 제공되며, 방법은, 데이터베이스의 샤드의 이용률을 결정하는 단계; 이용률이 영구 스토리지 이용률 임계값을 초과하는지를 결정하는 단계; 추가-전용-파일로부터 샤드를 복구하기 위한 복구 시간을 결정하는 단계; 복구 시간이 복구 시간 임계값을 초과하는지를 결정하는 단계; 및 이용률이 이용률 임계값을 초과하는 것으로 결정될 때, 또는 복구 시간이 복구 시간 임계값을 초과하는 것으로 결정될 때, 추가-전용-파일 재기입이 수행되게 하는 단계를 포함한다.
개시된 주제의 다양한 목적들, 특징들 및 이점들은, 이하의 도면들과 관련하여 고려될 때, 개시된 주제의 이하의 상세한 설명을 참조하여 보다 충분히 이해될 수 있으며, 유사한 참조 번호들은 유사한 엘리먼트들을 식별한다.
도 1은 개시된 주제의 일부 실시예들에 따른 클러스터 아키텍처의 다이어그램의 예이다.
도 2는 개시된 주제의 일부 실시예들에 따른 노드 아키텍처의 다이어그램의 예이다.
도 3은 개시된 주제의 일부 실시예들에 따라 AOF 재기입 이벤트를 트리거할지를 결정하기 위한 프로세스의 흐름도의 예이다.
도 4는 개시된 주제의 일부 실시예들에 따라 복구 시간을 결정하기 위한 프로세스의 흐름도의 예이다.
도 5는 일부 실시예들에 따라 도 1 및/또는 도 2에 도시된 컴포넌트들 중 임의의 것을 구현하는 데 사용될 수 있는 서버들 중 하나 이상을 구현하는 데 사용될 수 있는 하드웨어의 다이어그램의 예이다.
다양한 실시예들에 따르면, 추가-전용-파일(AOF) 재기입들을 제어하기 위한 메커니즘들(이는 방법들, 시스템들 및/또는 매체들을 포함할 수 있음)이 제공된다.
일반적으로 말하자면, 이들 메커니즘들은 총 영구 스토리지 이용률이 임계값을 충족시키거나 이를 초과할 때, AOF 할당량의 AOF 이용률이 임계값을 충족시키거나 이를 초과할 때, 및/또는 AOF로부터 데이터베이스의 일부를 복구할 시간이 임계값을 충족시키거나 이를 초과할 때, AOF 재기입 이벤트를 트리거함으로써 AOF 재기입 이벤트들을 제어할 수 있다. 이러한 메커니즘들은 샤드 레벨에서 동작할 수 있으며, 여기서 샤드는 데이터베이스의 데이터 세트의 서브세트를 나타내며, 대개 상이한 프로세스에 의해 관리된다.
일부 실시예들에 따르면, 인-메모리 비-관계형 데이터베이스의 예가 도 1에 예시된 바와 같은 시스템(100)으로서 구현될 수 있다. 도시된 바와 같이, 시스템(100)은 하나 이상의 클러스터(102) 및 하나 이상의 애플리케이션(104)을 포함할 수 있다.
클러스터들(102)은 아래에서 더 설명되는 바와 같이 인-메모리 데이터 스토리지뿐만 아니라 관련된 기능을 제공하기 위해 노드들(110)의 하나 이상의 클러스터를 포함할 수 있다. 클러스터들(102)은 또한 일부 실시예들에서 노드들(110)에 커플링되는 임의의 적절한 영구 스토리지(112)를 포함할 수 있다.
애플리케이션들(104)은 노드들(110)에 저장된 데이터 및 관련된 정보를 사용하는 하나 이상의 애플리케이션일 수 있다. 도 1에 도시된 바와 같이, 각각의 애플리케이션(104)은 하나 이상의 서버를 사용하여 실행될 수 있다. 임의의 적절한 서버들이 일부 실시예들에서 사용될 수 있다.
도 2를 참조하면, 일부 실시예들에 따라 클러스터(102)에서 노드(110)로서 사용될 수 있는 노드(200)의 예가 예시되어 있다. 도시된 바와 같이, 일부 실시예들에서, 노드(200)는 프록시(202), 클러스터 노드 관리자(cluster node manager)(CNM)(204), 0개 이상의 샤드(206) 및 공통 클러스터 스토리지(common cluster storage)(CCS)(208)를 포함할 수 있다. 또한, 도 2에도 도시된 바와 같이, 노드(200)는 일부 실시예들에서 임의의 적절한 영구 저장 디바이스(210)에 커플링될 수 있다.
일부 실시예들에 따르면, 프록시(202)는 노드(200)의 제어 흐름을 관리하고, 동일한 클러스터에서 노드(200)와 하나 이상의 다른 노드 사이의 제어 흐름을 관리하고, 노드(200)와 다른 클러스터의 하나 이상의 노드 사이의 제어 흐름을 관리하는 데 사용될 수 있다. 프록시(202)는 또한 일부 실시예들에서 클라이언트 인증을 수행하고, 요청이 인증되면, 요청 포워딩을 수행하는 데 사용될 수 있다. 임의의 적절한 하나 이상의 클라이언트 인증 메커니즘이 사용될 수 있다. 예를 들어, 보안 소켓 계층(Secured Socket Layer)(SSL) 인증, 단순 인증 및 보안 계층(Simple Authentication and Security Layer)(SASL) 인증, 비밀번호 인증, 소스 IP 인증, 아마존 웹 서비스 보안 그룹, 및/또는 임의의 다른 적절한 인증 메커니즘들이 일부 실시예들에서 사용될 수 있다.
일부 실시예들에 따르면, 클러스터 노드 관리자(cluster node manager)(CNM)(204)는 노드 관리 기능들 및 클러스터 관리 기능들을 수행하는 데 사용될 수 있다. 예를 들어, 이러한 기능들은 새로운 데이터베이스의 프로비저닝/디프로비저닝, 샤드 마이그레이션(예를 들어, 샤드를 하나의 노드로부터 다른 노드로 이동시킴), 재-샤딩(re-sharding)(예를 들어, 데이터베이스에 더 많은 샤드(들)를 추가), 자동-스케일링(예를 들어, 클러스터로부터 노드들을 추가/제거), 재-밸런싱(예를 들어, 클러스터 노드들 상의 샤드들의 최적 재-순서화), 자원 관리(예를 들어, 주어진 샤드가 그 최대 프로세싱 용량에 도달하였는지, 또는 막 그 메모리 한계를 초과하였는지를 결정), 및/또는 노드 및/또는 클러스터 관리와 관련된 임의의 다른 적절한 기능을 포함할 수 있다.
일부 실시예들에 따르면, 노드 관리자로서의 CNM(204)은 또한 도 3과 관련하여 아래에서 설명되는 프로세스와 같이 샤드(206)에 의해 수행되는 AOF 재기입 이벤트를 언제 트리거할지를 결정하기 위한 프로세스를 제공할 수 있다.
일부 실시예들에서, 샤드(들)(206)는 인-메모리 비-관계형 데이터베이스 기능 및 임의의 다른 적절한 샤드 프로세스(들)를 제공하는 데 사용될 수 있다. 일부 실시예들에서, 샤드(들)는 강화된 기능을 갖는 오픈-소스 Redis 서버에 기초할 수 있다. 일부 실시예들에서, 샤드(들)는 다음 옵션들: (1) Redis 데이터베이스(DB); (2) Redis DB의 파티션; (3) Memcached 버킷; 또는 (4) Memcached 버킷의 파티션 중 하나를 나타낼 수 있다. 일부 실시예들에서, 각각의 클러스터의 노드는 N개의 샤드(206)를 관리하고, 일부 실시예들에서는, 0개를 포함하여, 임의의 적절한 수의 샤드가 있을 수 있다.
일부 실시예들에서, 샤드(들)(206)는 그 AOF들을 기입하기 위해 영구 스토리지(210)를 사용한다.
일부 실시예들에 따르면, 공통 클러스터 스토어(common cluster store)(CCS)(208)는 내부 클러스터 레포지토리 서비스이다(이는 Redis 아키텍처에 기초할 수 있음). 일부 실시예들에서, 이 서비스는 샤드 당, 데이터베이스 당, 노드 당 및 클러스터 당 구성, 통계 및 경보 정보를 포함할 수 있다. 클러스터의 모든 노드들은 클러스터 당 구성과 동기화될 수 있다. 프록시 및 CNM은 CCS에 등록되어, 그들의 동작들과 관련된 구성 변경 이벤트들을 수신할 수 있다.
일부 실시예들에서, 노드는 하나 이상의 데이터베이스 파티션을 포함할 수 있는 데이터베이스의 하나 이상의 샤드를 저장할 수 있다. 각각의 샤드는, 샤드의 마스터가 판독 및 기입 요청들 모두를 서빙할 수 있고 샤드의 슬레이브가 판독 요청들만을 서빙할 수 있도록, 샤드의 마스터 또는 샤드의 슬레이브 중 어느 것일 수 있다. 일부 실시예들에서, 단일 노드는 샤드들의 마스터들 및 샤드들의 슬레이브들의 임의의 적절한 조합으로 다수의 샤드들을 저장할 수 있다.
도 3을 참조하면, 데이터베이스의 노드에 대한 AOF 재기입 동작을 언제 트리거할지를 결정하기 위한 프로세스의 예(300)가 도시되어 있다. 일부 실시예들에서, 이 프로세스는 CNM(204)에 의해 수행될 수 있다.
예시된 바와 같이, 프로세스(300)가 단계(302)에서 시작한 후, 프로세스는 단계(304)에서 노드의 샤드들에 대한 AOF들을 포함하는 영구 스토리지의 현재의 총 이용률을 결정할 수 있다. 이 결정은 임의의 적절한 방식으로 이루어질 수 있다. 예를 들어, 일부 실시예들에서, 영구 스토리지의 총 이용률은 모든 AOF들의 사이즈들의 합을 영구 스토리지 사이즈로 나눔으로써 결정될 수 있다.
다음으로, 단계(306)에서, 프로세스(300)는 영구 스토리지의 현재의 총 이용률이 AOF 재기입을 트리거하기 위한 임계값보다 큰지(또는 그 이상인지)를 결정할 수 있다. 임의의 적절한 임계값(또는 임계값들)이 일부 실시예들에서 사용될 수 있다. 예를 들어, 일부 실시예들에서, 임계값은 90%일 수 있다. 다른 예로서, 일부 실시예들에서, 임계값은 80%일 수 있다.
단계(304) 및 단계(306)에서 영구 스토리지의 현재의 총 이용률을 백분율로 결정하고, 영구 스토리지의 해당 현재의 총 이용률을 임계값 백분율과 비교하는 것에 대한 대안으로서, 현재의 총 이용률 및 임계값에 대해 영구 스토리지 공간의 절대값들이 사용될 수 있다. 보다 구체적으로, 예를 들어, 일부 실시예들에서, 영구 스토리지의 현재의 총 이용률은 AOF들의 사이즈들의 합과 동일할 수 있고, 임계값은 영구 스토리지의 사이즈(또는 그 일부 백분율)와 동일할 수 있다.
단계(306)에서 영구 스토리지의 현재의 총 이용률이 AOF 재기입을 트리거하기 위한 임계값보다 큰 것으로(또는 그 이상인 것으로) 결정되는 경우, 프로세스(300)는 AOF 재기입이 트리거되는 단계(316)로 분기될 수 있다. 단계(316)에서 AOF 재기입이 트리거되면, 프로세스(300)는 단계(304)로 루프백할 수 있다.
단계(306)에서 프로세스(300)가 영구 스토리지의 현재의 총 이용률이 AOF 재기입을 트리거하기 위한 임계값보다 크지 않은 것으로(또는 그 이상이 아닌 것으로) 결정된다고 결정하는 경우, 프로세스는 단계(308)에서 노드의 각각의 샤드에 대한 AOF의 할당량에 대해 AOF의 현재의 이용률을 결정할 수 있다. 이 결정은 임의의 적절한 방식으로 이루어질 수 있다. 예를 들어, 일부 실시예들에서, 샤드에 대한 AOF의 현재의 이용률은 샤드에 대한 현재의 AOF 사이즈를 샤드에 대한 최대 AOF 사이즈로 나눔으로써 결정될 수 있다. 샤드에 대한 최대 AOF 사이즈는 임의의 적절한 값을 가질 수 있다. 예를 들어, 일부 실시예들에서, AOF에 대한 최대 사이즈는 데이터베이스 노드 상의 샤드의 RAM 이용률(백분율로 표현)에 총 사용 가능한 영구 스토리지 공간을 곱한 것과 동일할 수 있다. 따라서, 데이터베이스 노드 상의 샤드의 RAM 이용률이 데이터베이스 노드의 사용 가능한 RAM의 10%에 대응하고 총 사용 가능한 영구 스토리지 공간이 100GB인 경우, 최대 파일 사이즈는 10GB와 동일하게 계산될 수 있다(10%*100GB).
다음으로, 단계(310)에서, 프로세스(300)는 임의의 샤드의 AOF 영구 스토리지 이용률이 영구 스토리지 이용률에 기초하여 AOF 재기입을 트리거하기 위한 임계값보다 큰지(또는 그 이상인지)를 결정할 수 있다. 임의의 적절한 임계값(또는 임계값들)이 일부 실시예들에서 사용될 수 있다. 예를 들어, 일부 실시예들에서, 임계값은 90%일 수 있다. 다른 예로서, 일부 실시예들에서, 임계값은 80%일 수 있다.
단계(308) 및 단계(310)에서 영구 스토리지 이용률을 백분율로 결정하고, 해당 영구 스토리지 이용률을 임계값 백분율과 비교하는 것에 대한 대안으로서, AOF 영구 스토리지 이용률 및 임계값에 대해 영구 스토리지 사이즈들의 절대값들이 사용될 수 있다. 보다 구체적으로, 예를 들어, 일부 실시예들에서, 샤드에 대한 AOF 영구 스토리지 이용률은 샤드에 대한 AOF의 사이즈와 동일할 수 있고, 임계값은 샤드에 대한 최대 AOF 사이즈(또는 그 일부 백분율)와 동일할 수 있다(예를 들어, 이는 전술한 바와 같이 계산될 수 있다).
단계(310)에서 임의의 샤드의 영구 스토리지 이용률이 AOF 재기입을 트리거하기 위한 임계값보다 큰 것으로(또는 그 이상인 것으로) 결정되는 경우, 프로세스(300)는 AOF 재기입이 트리거되는 단계(316)로 분기될 수 있다. 단계(316)에서 AOF 재기입이 트리거되면, 프로세스(300)는 단계(304)로 루프백할 수 있다.
단계(310)에서 임의의 샤드의 영구 스토리지 이용률이 AOF 재기입을 트리거하기 위한 임계값보다 크지 않은 것으로(또는 그 이상이 아닌 것으로) 결정되는 경우, 프로세스(300)는 노드에 대한 AOF들(즉, 노드의 모든 샤드들에 대한 AOF들)로부터 노드의 복구를 위한 복구 시간을 결정할 수 있는 단계(312)로 분기할 수 있다. 프로세스(300)는 이 복구 시간을 임의의 적절한 방식으로 결정할 수 있다. 예를 들어, 일부 실시예들에서, 이 복구 시간은 아래에서 설명되는 도 4의 프로세스를 사용하여 결정될 수 있다.
다음으로, 단계(314)에서, 프로세스(300)는 복구 시간이 복구 시간에 기초하여 AOF 재기입을 트리거하기 위한 임계값보다 큰지(또는 그 이상인지)를 결정할 수 있다. 임의의 적절한 임계값(또는 임계값들)이 일부 실시예들에서 사용될 수 있다. 예를 들어, 일부 실시예들에서, 임계값은 데이터베이스가 준수해야 하는 하나 이상의 서비스-레벨 계약에 명시된 최대 다운 타임과 동일할 수 있다. 보다 구체적으로, 예를 들어, 이 임계값은 1시간일 수 있다.
단계(314)에서 복구 시간이 AOF 재기입을 트리거하기 위한 임계값보다 큰 것으로(또는 그 이상인 것으로) 결정되는 경우, 프로세스(300)는 AOF 재기입이 트리거되는 단계(316)로 분기될 수 있다. 단계(316)에서 AOF 재기입이 트리거되면, 또는 단계(314)에서 임의의 샤드의 복구 시간이 AOF 재기입을 트리거하기 위한 임계값보다 크지 않은 것으로(또는 그 이상이 아닌 것으로) 결정되는 경우, 프로세스(300)는 단계(304)로 루프백할 수 있다.
도 4를 참조하면, 노드에 대한 AOF들로부터 노드의 복구를 위한 복구 시간을 결정하기 위한 프로세스의 예(400)가 도시되어 있다. 일부 실시예들에서, 이 프로세스는 AOF 파일에서 각각의 커맨드를 실행하는 데 걸리는 시간을 축적하는 샤드(206)(도 2)와, 축적된 값을 복구 임계값으로서 CCS에 기입된 것과 비교하고, 임계값에 도달할 때, AOF 재기입 동작을 트리거하는 CNM(204)(도 2)의 조합에 의해 수행될 수 있다. 예시된 바와 같이, 프로세스(400)가 단계(402)에서 시작하면, 프로세스는 단계(404)에서 샤드에 대한 재기입 시간을 추정된 값으로 초기화할 수 있으며, 이는 AOF 파일의 초기 부분이 인-메모리 로딩되는 데 걸리는 추정 시간을 나타낸다. 이 추정은 샤드의 키들의 수, 및 영구 스토리지 볼륨에 의해 제공되는 판독 쓰루풋에 기초할 수 있다. 다음으로, 프로세스는 단계(406)에서 샤드에 대한 기입 동작을 대기할 수 있다.
기입 동작이 완료되면, 프로세스(400)는 기입 동작을 완료하는 시간을 결정할 수 있다. 이 결정은 임의의 적절한 방식으로 이루어질 수 있다. 예를 들어, 일부 실시예들에서, 이 결정은 AOF에 기입되는 임의의 기입 동작의 실행 시간을 측정함으로써 이루어질 수 있다.
다음으로, 단계(410)에서, 프로세스(400)는 단계(408)에서 결정된 시간을 샤드에 대한 총 재기입 시간에 추가할 수 있다. 그 후, 단계(412)에서, 프로세스는(예를 들어, 도 3의 단계(312)와 관련하여 위에서 설명된 바와 같이) 재기입 동작이 트리거되었는지를 결정할 수 있다. 재기입 동작이 트리거된 것으로 결정된 경우, 프로세스(400)는 단계(404)로 루프백할 수 있다. 그렇지 않으면, 프로세스(400)는 단계(406)로 루프백할 수 있다.
도 1 및 도 2와 관련하여 위에서 설명된 바와 같이, 서버들은 하나 이상의 애플리케이션 서버, 클러스터 및/또는 영구 스토리지를 구현하는 데 사용될 수 있다. 이들 서버들 중 임의의 하나 이상은 임의의 적절한 범용 디바이스 또는 특수 목적 디바이스일 수 있다. 아래에서 추가로 설명되는 바와 같이, 이들 범용 또는 특수 목적 디바이스들 중 임의의 디바이스는 하드웨어 프로세서(마이크로프로세서, 디지털 신호 프로세서, 제어기 등일 수 있음), 메모리, 통신 인터페이스들, 디스플레이 제어기들, 입력 디바이스들 등과 같은 임의의 적절한 컴포넌트들을 포함할 수 있다.
일부 실시예들에서, 도 1 및 2와 관련하여 설명된 컴포넌트들 중 임의의 2개 이상의 것 사이의 통신은 인터넷, 인트라넷, 광역 네트워크(wide-area network)(WAN), 근거리 네트워크(local-area network)(LAN), 무선 네트워크, Wi-Fi 네트워크, 디지털 가입자 회선(digital subscriber line)(DSL) 네트워크, 프레임 릴레이 네트워크, 비동기 전송 모드(asynchronous transfer mode)(ATM) 네트워크, 가상 사설 네트워크(virtual private network)(VPN), 인트라넷 등을 포함하는 임의의 적절한 컴퓨터 네트워크 또는 이러한 네트워크들의 조합을 사용하여 구현될 수 있다.
도 5는 일부 실시예들에 따라 서버들 중 하나 이상을 구현하는 데 사용될 수 있는 하드웨어의 예(500)를 예시한다. 도시된 바와 같이, 서버(500)는 하드웨어 프로세서(502), 메모리(504), 통신 인터페이스(506), 입/출력 인터페이스(들)(508) 및/또는 임의의 다른 적절한 컴포넌트들을 포함할 수 있다. 하드웨어 프로세서(502)는 임의의 적절한 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서 등을 사용하여 구현될 수 있다. 메모리(504)는 임의의 적절한 랜덤 액세스 메모리(random access memory)(RAM), 판독 전용 메모리(read only memory)(ROM), 자기 매체, 광학 매체 등을 사용하여 구현될 수 있다. 통신 인터페이스(506)는 와이어들, 광섬유, 전파 및/또는 임의의 다른 적절한 매체들을 통해 통신하기 위한 임의의 적절한 단방향 또는 양방향 인터페이스(들)를 포함할 수 있다. 입/출력 인터페이스(들)(508)는 키보드들, 터치 스크린들, 포인터 컨트롤들(마우스, 마우스들, 트랙볼, 스타일러스, 트랙 패드 등), 디스플레이들, 오디오 출력들 등을 포함하여 사용자 입력을 수신하고/하거나 출력을 제공하기 위한 임의의 적절한 인터페이스를 포함할 수 있다.
일부 실시예들에서, 본 명세서에 기술된 기능들 및/또는 프로세스들을 수행하기 위한 명령어들을 저장하기 위해 임의의 적절한 컴퓨터 판독 가능 매체가 사용될 수 있다. 이 매체는 일부 실시예들에서 메모리(504)의 일부이거나 이로부터 분리될 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨터 판독 가능 매체는 일시적이거나 비-일시적일 수 있다. 예를 들어, 비-일시적 컴퓨터 판독 가능 매체는 자기 매체(하드 디스크들, 플로피 디스크들 등), 광학 매체(콤팩트 디스크들, 디지털 비디오 디스크들, 블루-레이 디스크들 등), 반도체 매체(랜덤 액세스 메모리(RAM), 플래시 메모리, 전기적으로 프로그램 가능한 판독 전용 메모리(electrically programmable read only memory)(EPROM), 전기적으로 소거 가능한 프로그램 가능한 판독 전용 메모리(electrically erasable programmable read only memory)(EEPROM) 등), 송신 동안 일시적(fleet)이지 않거나 또는 임의의 영구성의 가상(semblance of permanence)이 없는 임의의 적절한 매체, 및/또는 임의의 적절한 유형의 매체와 같은 매체를 포함할 수 있다. 다른 예로서, 일시적 컴퓨터 판독 가능 매체는 네트워크들 상의, 와이어들, 도전체들, 광섬유들, 회로들, 송신 동안 일시적이고 임의의 영구성의 가상이 없는 임의의 적절한 매체, 및/또는 임의의 적절한 무형의 매체 내의 신호들을 포함할 수 있다.
개시된 주제의 일부 실시예들에서, 도 3 및 도 4의 프로세스들의 상기 기술된 단계들은 도면들에 도시되고 기술된 순서 및 시퀀스에 제한되지 않는 임의의 순서 또는 시퀀스로 실행 또는 수행될 수 있다. 또한, 도 3 및 도 4의 프로세스들의 상기 단계들 중 일부는 레이턴시 및 프로세싱 시간들을 감소시키기 위해, 적절한 경우, 실질적으로 동시에, 또는 병렬로 실행 또는 수행될 수 있다. 또한, 도 3 및 도 4는 단지 예들로서 제공된다는 것에 유의하여야 한다. 이들 도면들에 도시된 단계들 중 적어도 일부는 나타낸 것과 상이한 순서로 수행되거나, 동시에 수행되거나, 또는 생략될 수 있다.
본 명세서에 기술된 예들(및 "과 같은," "예를 들어", "포함하는" 등으로 표현된 절들)의 제공은 청구되는 주제를 특정 예들로 제한하는 것으로 해석되어서는 안되며, 오히려, 예들은 많은 가능한 양태들 중 일부만을 예시하는 것으로 의도된다. 또한, 본 명세서에서 사용되는 바와 같이, 메커니즘이라는 용어는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 적절한 조합을 포함할 수 있다는 것에 유의해야 한다.
본 발명은 전술한 예시적인 실시예들에서 설명되고 예시되었지만, 본 개시내용은 단지 예에 의해서만 이루어졌으며, 후술하는 청구 범위에 의해서만 제한되는 본 발명의 사상 및 범주로부터 벗어나지 않고, 본 발명의 구현의 세부 사항들에 대한 많은 변경들이 이루어질 수 있다는 것이 이해될 것이다. 개시된 실시예들의 특징들은 다양한 방식들로 조합 및 재배열될 수 있다.

Claims (15)

  1. 추가-전용-파일(append-only-file)(AOF) 재기입들을 제어하기 위한 방법으로서,
    데이터베이스의 샤드(shard)의 AOF 이용률을 결정하는 단계;
    상기 AOF 이용률이 AOF 이용률 임계값을 초과하는지를 결정하는 단계;
    AOF 재기입이 수행되기 전에, 적어도 복수의 기입 동작들의 각각에 대한 기입 시간들을 상기 샤드에 추가함으로써 상기 AOF 재기입을 수행할 때 AOF로부터 상기 샤드를 복구하기 위한 시간의 추정치인 복구 시간을 결정하는 단계;
    상기 복구 시간이 복구 시간 임계값을 초과하는지를 결정하는 단계; 및
    상기 AOF 이용률이 상기 AOF 이용률 임계값을 초과하는 것으로 결정될 때, 또는 상기 복구 시간이 상기 복구 시간 임계값을 초과하는 것으로 결정될 때, 상기 AOF 재기입이 수행되게 하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 이용률을 결정하는 단계는 상기 샤드에 대한 AOF 사이즈를 상기 샤드에 대한 최대 AOF 사이즈로 나누는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 복구 시간을 결정하는 단계는 서비스 레벨 계약에 명시된 최대 다운 타임에 기초하는 방법.
  4. 제1항에 있어서, 상기 복구 시간을 결정하는 단계는,
    상기 AOF의 스냅샷 부분의 초기 추정 로딩 시간을 결정하는 단계;
    상기 AOF에 대한 복수의 기입 동작들의 각각의 기입 동작에 대해, 상기 기입 동작을 완료하는 데 필요한 시간량을 결정하는 단계; 및
    상기 복수의 기입 동작들에 대해 결정된 시간량들을 상기 초기 추정 로딩 시간과 합산하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서,
    현재의 총 영구 스토리지 이용률을 결정하는 단계;
    상기 현재의 총 영구 스토리지 이용률이 총 영구 스토리지 이용률 임계값을 초과하는지를 결정하는 단계; 및
    상기 현재의 총 영구 스토리지 이용률이 상기 총 영구 스토리지 이용률 임계값을 초과할 때, AOF 재기입이 수행되게 하는 단계
    를 추가로 포함하는 방법.
  6. 추가-전용-파일(AOF) 재기입들을 제어하기 위한 시스템으로서,
    적어도 하나의 하드웨어 프로세서
    를 포함하고, 상기 적어도 하나의 하드웨어 프로세서는,
    데이터베이스의 샤드의 AOF 이용률을 결정하고,
    상기 AOF 이용률이 AOF 이용률 임계값을 초과하는지를 결정하고,
    AOF 재기입이 수행되기 전에, 적어도 복수의 기입 동작들의 각각에 대한 기입 시간들을 상기 샤드에 추가함으로써 상기 AOF 재기입을 수행할 때 AOF로부터 상기 샤드를 복구하기 위한 시간의 추정치인 복구 시간을 결정하고,
    상기 복구 시간이 복구 시간 임계값을 초과하는지를 결정하고,
    상기 AOF 이용률이 상기 AOF 이용률 임계값을 초과하는 것으로 결정될 때, 또는 상기 복구 시간이 상기 복구 시간 임계값을 초과하는 것으로 결정될 때, 상기 AOF 재기입이 수행되게 하도록
    구성되는 시스템.
  7. 제6항에 있어서, 상기 적어도 하나의 하드웨어 프로세서는 적어도 상기 샤드에 대한 AOF 사이즈를 상기 샤드에 대한 최대 AOF 사이즈로 나눔으로써 상기 이용률을 결정하는 시스템.
  8. 제6항에 있어서, 상기 적어도 하나의 하드웨어 프로세서는 적어도 서비스 레벨 계약에 명시된 최대 다운 타임에 기초하여 상기 복구 시간을 결정하는 시스템.
  9. 제6항에 있어서, 상기 적어도 하나의 하드웨어 프로세서는 적어도,
    상기 AOF의 스냅샷 부분의 초기 추정 로딩 시간을 결정하고,
    상기 AOF에 대한 복수의 기입 동작들의 각각의 기입 동작에 대해, 상기 기입 동작을 완료하는 데 필요한 시간량을 결정하고,
    상기 복수의 기입 동작들에 대해 결정된 시간량들을 상기 초기 추정 로딩 시간과 합산함으로써,
    상기 복구 시간을 결정하는 시스템.
  10. 제6항에 있어서, 상기 적어도 하나의 하드웨어 프로세서는 또한,
    현재의 총 영구 스토리지 이용률을 결정하고,
    상기 현재의 총 영구 스토리지 이용률이 총 영구 스토리지 이용률 임계값을 초과하는지를 결정하고,
    상기 현재의 총 영구 스토리지 이용률이 상기 총 영구 스토리지 이용률 임계값을 초과할 때, AOF 재기입이 수행되게 하도록
    구성되는 시스템.
  11. 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 추가-전용-파일(AOF) 재기입들을 제어하기 위한 방법을 수행하게 하는 컴퓨터 실행 가능 명령어들을 포함하는 비-일시적 컴퓨터 판독 가능 매체로서, 상기 방법은,
    데이터베이스의 샤드의 AOF 이용률을 결정하는 단계;
    상기 AOF 이용률이 AOF 이용률 임계값을 초과하는지를 결정하는 단계;
    AOF 재기입이 수행되기 전에, 적어도 복수의 기입 동작들의 각각에 대한 기입 시간들을 상기 샤드에 추가함으로써 상기 AOF 재기입을 수행할 때 AOF로부터 상기 샤드를 복구하기 위한 시간의 추정치인 복구 시간을 결정하는 단계;
    상기 복구 시간이 복구 시간 임계값을 초과하는지를 결정하는 단계; 및
    상기 AOF 이용률이 상기 AOF 이용률 임계값을 초과하는 것으로 결정될 때, 또는 상기 복구 시간이 상기 복구 시간 임계값을 초과하는 것으로 결정될 때, 상기 AOF 재기입이 수행되게 하는 단계
    를 포함하는 비-일시적 컴퓨터 판독 가능 매체.
  12. 제11항에 있어서, 상기 이용률을 결정하는 단계는 상기 샤드에 대한 AOF 사이즈를 상기 샤드에 대한 최대 AOF 사이즈로 나누는 단계를 포함하는 비-일시적 컴퓨터 판독 가능 매체.
  13. 제11항에 있어서, 상기 복구 시간을 결정하는 단계는 서비스 레벨 계약에 명시된 최대 다운 타임에 기초하는 비-일시적 컴퓨터 판독 가능 매체.
  14. 제11항에 있어서, 상기 복구 시간을 결정하는 단계는,
    상기 AOF의 스냅샷 부분의 초기 추정 로딩 시간을 결정하는 단계;
    상기 AOF에 대한 복수의 기입 동작들의 각각의 기입 동작에 대해, 상기 기입 동작을 완료하는 데 필요한 시간량을 결정하는 단계; 및
    상기 복수의 기입 동작들에 대해 결정된 시간량들을 상기 초기 추정 로딩 시간과 합산하는 단계
    를 포함하는 비-일시적 컴퓨터 판독 가능 매체.
  15. 제11항에 있어서, 상기 방법은,
    현재의 총 영구 스토리지 이용률을 결정하는 단계;
    상기 현재의 총 영구 스토리지 이용률이 총 영구 스토리지 이용률 임계값을 초과하는지를 결정하는 단계; 및
    상기 현재의 총 영구 스토리지 이용률이 상기 총 영구 스토리지 이용률 임계값을 초과할 때, AOF 재기입이 수행되게 하는 단계
    를 추가로 포함하는 비-일시적 컴퓨터 판독 가능 매체.
KR1020207002954A 2017-06-30 2018-07-02 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들 KR102316397B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020217033557A KR20210130824A (ko) 2017-06-30 2018-07-02 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/639,965 2017-06-30
US15/639,965 US11138076B2 (en) 2017-06-30 2017-06-30 Methods, systems, and media for controlling append-only file rewrites
PCT/US2018/040590 WO2019006454A1 (en) 2017-06-30 2018-07-02 METHODS, SYSTEMS, AND MEDIA FOR CONTROLLING FILE ADJUSTMENTS ONLY IN ADD

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020217033557A Division KR20210130824A (ko) 2017-06-30 2018-07-02 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들

Publications (2)

Publication Number Publication Date
KR20200125921A KR20200125921A (ko) 2020-11-05
KR102316397B1 true KR102316397B1 (ko) 2021-10-25

Family

ID=64738224

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207002954A KR102316397B1 (ko) 2017-06-30 2018-07-02 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들
KR1020217033557A KR20210130824A (ko) 2017-06-30 2018-07-02 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217033557A KR20210130824A (ko) 2017-06-30 2018-07-02 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들

Country Status (8)

Country Link
US (3) US11138076B2 (ko)
EP (1) EP3646183A4 (ko)
KR (2) KR102316397B1 (ko)
CN (1) CN111033471B (ko)
AU (2) AU2018294443B2 (ko)
CA (1) CA3068321A1 (ko)
IL (1) IL271581A (ko)
WO (1) WO2019006454A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138076B2 (en) * 2017-06-30 2021-10-05 Redis Ltd. Methods, systems, and media for controlling append-only file rewrites
US10769126B1 (en) * 2017-09-22 2020-09-08 Amazon Technologies, Inc. Data entropy reduction across stream shard
US11204842B2 (en) * 2017-11-22 2021-12-21 Acronis International Gmbh System and method for automating formation and execution of a backup strategy using machine learning
CN111435942B (zh) * 2019-01-14 2023-04-18 北京京东尚科信息技术有限公司 redis集群访问方法、系统、中间件、介质及设备
CN110032496B (zh) * 2019-04-19 2023-10-13 杭州玳数科技有限公司 一种支持多样化日志合并的日志采集方法及系统
CN113590379A (zh) * 2021-06-25 2021-11-02 国电南瑞科技股份有限公司 Redis数据持久化方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258242A1 (en) 2010-04-16 2011-10-20 Salesforce.Com, Inc. Methods and systems for appending data to large data volumes in a multi-tenant store
US20140279930A1 (en) 2013-03-15 2014-09-18 Amazon Technologies, Inc. Fast crash recovery for distributed database systems

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
US7020599B1 (en) * 2001-12-13 2006-03-28 Oracle International Corporation (Oic) Mean time to recover (MTTR) advisory
US7076263B2 (en) * 2002-02-19 2006-07-11 Qualcomm, Incorporated Power control for partial channel-state information (CSI) multiple-input, multiple-output (MIMO) systems
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
US8949395B2 (en) * 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
GB0424488D0 (en) 2004-11-05 2004-12-08 Ibm A method apparatus computer program and computer program product for adjusting the frequency at which data is backed up
JP2007179435A (ja) * 2005-12-28 2007-07-12 Sony Corp 情報処理装置、情報処理方法、プログラム
US20080083037A1 (en) * 2006-10-03 2008-04-03 Rmcl, Inc. Data loss and theft protection method
US8341637B2 (en) 2008-08-12 2012-12-25 International Business Machines Corporation Utilization management
JP5091894B2 (ja) * 2009-03-13 2012-12-05 株式会社日立製作所 ストリーム回復方法、ストリーム回復プログラム、および、障害回復装置
US8543728B2 (en) * 2010-03-25 2013-09-24 Verizon Patent And Licensing Inc. Dampening interface flapping
US8370310B2 (en) * 2011-03-04 2013-02-05 Microsoft Corporation Managing database recovery time
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9996540B2 (en) 2011-03-31 2018-06-12 EMC IP Holding Company LLC System and method for maintaining consistent points in file systems using a prime dependency list
US8671249B2 (en) 2011-07-22 2014-03-11 Fusion-Io, Inc. Apparatus, system, and method for managing storage capacity recovery
US8689047B2 (en) * 2011-07-22 2014-04-01 Microsoft Corporation Virtual disk replication using log files
GB2495468B (en) * 2011-09-02 2017-12-13 Skype Video coding
US8694754B2 (en) * 2011-09-09 2014-04-08 Ocz Technology Group, Inc. Non-volatile memory-based mass storage devices and methods for writing data thereto
CN103577476B (zh) * 2012-08-06 2016-06-08 腾讯科技(深圳)有限公司 网页浏览记录的处理方法及网页浏览装置
CN102902561B (zh) 2012-09-13 2016-01-20 新浪网技术(中国)有限公司 数据存储方法及数据存储系统
US9152501B2 (en) * 2012-12-19 2015-10-06 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems
US9304998B2 (en) * 2012-12-19 2016-04-05 Microsoft Technology Licensing, Llc Main-memory database checkpointing
US8949224B2 (en) 2013-01-15 2015-02-03 Amazon Technologies, Inc. Efficient query processing using histograms in a columnar database
JP6075180B2 (ja) * 2013-04-18 2017-02-08 オムロン株式会社 作業管理システムおよび作業管理方法
US10324781B2 (en) * 2013-04-25 2019-06-18 Feitian Technologies Co., Ltd. Method for managing application on card
US10110540B2 (en) * 2013-05-31 2018-10-23 Nasdaq Technology Ab Apparatus, system, and method of elastically processing message information from multiple sources
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9268653B2 (en) * 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
TWI626547B (zh) * 2014-03-03 2018-06-11 國立清華大學 於分散式資料庫中將系統狀態一致地還原至欲還原時間點之方法及系統
US9547565B2 (en) * 2014-03-11 2017-01-17 Iex Group, Inc. Techniques for message retransmission mechanism
US9569120B2 (en) * 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
US9424140B1 (en) 2014-08-20 2016-08-23 Amazon Technologies, Inc. Providing data volume recovery access in a distributed data store to multiple recovery agents
JP5975473B2 (ja) * 2014-08-29 2016-08-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation バックアップ方法、リストア方法、ストレージ・システムおよびプログラム
WO2016118176A1 (en) * 2015-01-20 2016-07-28 Hewlett Packard Enterprise Development Lp Database management
CN105989160A (zh) * 2015-03-03 2016-10-05 大唐软件技术股份有限公司 一种针对Redis数据库的内存数据持久化方法和装置
US9824092B2 (en) * 2015-06-16 2017-11-21 Microsoft Technology Licensing, Llc File storage system including tiers
US10162714B2 (en) 2015-08-27 2018-12-25 Netapp, Inc. Methods and systems for restoring data containers in a storage system
US10467100B2 (en) * 2016-08-15 2019-11-05 Western Digital Technologies, Inc. High availability state machine and recovery
US20180150220A1 (en) * 2016-11-25 2018-05-31 Samsung Electronics Co., Ltd. System and method for improving storage device i/o performance
US10481988B2 (en) * 2017-01-24 2019-11-19 Zerto Ltd. System and method for consistency verification of replicated data in a recovery system
US11138076B2 (en) * 2017-06-30 2021-10-05 Redis Ltd. Methods, systems, and media for controlling append-only file rewrites

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258242A1 (en) 2010-04-16 2011-10-20 Salesforce.Com, Inc. Methods and systems for appending data to large data volumes in a multi-tenant store
US20140279930A1 (en) 2013-03-15 2014-09-18 Amazon Technologies, Inc. Fast crash recovery for distributed database systems

Also Published As

Publication number Publication date
AU2018294443B2 (en) 2021-08-19
EP3646183A1 (en) 2020-05-06
US11138076B2 (en) 2021-10-05
AU2021266299A1 (en) 2021-12-09
EP3646183A4 (en) 2021-03-10
WO2019006454A1 (en) 2019-01-03
AU2018294443A1 (en) 2020-01-30
AU2021266299B2 (en) 2023-07-13
US20190004906A1 (en) 2019-01-03
CN111033471B (zh) 2023-05-16
WO2019006454A8 (en) 2020-01-09
US11687419B2 (en) 2023-06-27
IL271581A (en) 2020-02-27
CA3068321A1 (en) 2019-01-03
KR20200125921A (ko) 2020-11-05
CN111033471A (zh) 2020-04-17
US20220027242A1 (en) 2022-01-27
US20230273866A1 (en) 2023-08-31
KR20210130824A (ko) 2021-11-01

Similar Documents

Publication Publication Date Title
KR102316397B1 (ko) 추가-전용-파일 재기입들을 제어하기 위한 방법들, 시스템들 및 매체들
US11188469B2 (en) Page cache write logging at block-based storage
US11445019B2 (en) Methods, systems, and media for providing distributed database access during a network split
US9613040B2 (en) File system snapshot data management in a multi-tier storage environment
US10073747B2 (en) Reducing recovery time in disaster recovery/replication setup with multitier backend storage
US9740436B2 (en) Elastic file system management in storage cloud environments
US9633036B2 (en) Deduplicated data processing rate control
US9342457B2 (en) Dynamically modifying durability properties for individual data volumes
US20190163371A1 (en) Next generation storage controller in hybrid environments
US20160149766A1 (en) Cloud based management of storage systems
US11941030B2 (en) Methods for hierarchical propagation in tree structures and devices thereof
JP2023530996A (ja) クラスタの容量縮小・拡張方法及びシステム、容量縮小・拡張制御端末、及び媒体
US10135750B1 (en) Satisfaction-ratio based server congestion control mechanism
US20240103975A1 (en) Dynamic resource scaling for large-scale backups
Aparicio et al. Experience in running relational databases on clustered storage

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant