KR20140055489A - 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 - Google Patents

메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 Download PDF

Info

Publication number
KR20140055489A
KR20140055489A KR1020120122460A KR20120122460A KR20140055489A KR 20140055489 A KR20140055489 A KR 20140055489A KR 1020120122460 A KR1020120122460 A KR 1020120122460A KR 20120122460 A KR20120122460 A KR 20120122460A KR 20140055489 A KR20140055489 A KR 20140055489A
Authority
KR
South Korea
Prior art keywords
node
sharding
policy
database
target node
Prior art date
Application number
KR1020120122460A
Other languages
English (en)
Other versions
KR101544356B1 (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 KR1020120122460A priority Critical patent/KR101544356B1/ko
Priority to PCT/KR2013/009352 priority patent/WO2014069828A1/en
Priority to US14/063,059 priority patent/US20140122510A1/en
Publication of KR20140055489A publication Critical patent/KR20140055489A/ko
Application granted granted Critical
Publication of KR101544356B1 publication Critical patent/KR101544356B1/ko

Links

Images

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17312Routing techniques specific to parallel machines, e.g. wormhole, store and forward, shortest path problem congestion
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드에 대한 것으로, 분산 저장된 데이터의 축적 및 그에 대한 트랜잭션 발생 상황에 따라 유연하고 지속적이며 자동화된 방법을 통해 데이터의 분산 관리를 지원하는 방법이 제공된다. 본 발명에 따른 분산 데이터베이스 관리 방법은 데이터베이스의 데이터 사이즈 및 노드에 대하여 발생하는 트랜잭션 발생량 중 적어도 하나를 기준으로, 분산 데이터베이스 시스템 구성 노드 중 데이터베이스 분할 대상 노드가 선정되고; 상기 분할 대상 노드가 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성하되, 상기 샤딩 정책은 샤드 키(shard key) 및 샤드 함수(shard function)를 포함하는 것이고; 상기 분할 대상 노드가 상기 생성된 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함한다.

Description

메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 {Distributed database managing method and composition node thereof supporting dynamic sharding based on the metadata and data transaction quantity}
본 발명은 분산 데이터베이스 관리 방법 및 그 구성 노드에 관한 것이다. 보다 자세하게는, 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드에 대한 것으로, 분산 저장된 데이터의 축적 및 그에 대한 트랜잭션 발생 상황에 따라 유연하고 지속적이며 자동화된 방법을 데이터의 분산 관리를 지원하는 방법 및 그러한 방법에 따라 운영되는 분산 데이터베이스 시스템을 구성하는 노드에 적용하는 방법에 관한 것이다.
데이터베이스 분야에서 샤딩(sharding)은 물리적으로 다른 데이터베이스에 데이터를 수평 분할 방식으로 분산 저장하고 조회하는 방법을 의미하며, 샤드(shard)라고 부르는 각각의 개별 파티션이 있는 하나의 데이터베이스의 수평적인 파티셔닝을 의미한다. 샤딩을 수행하는 경우 하나의 큰 데이터베이스를 관리하는 것에 비하여, 각 샤드가 연산 자원의 지원을 더 많이 받을 수 있으므로, 데이터 처리 속도가 빨라지고, 이중화 기술이 적용되는 경우 하나의 샤드에 장애가 발생하더라도 다른 샤드에서 서비스를 제공할 수 있으므로 신뢰도가 향상되는 등의 효과가 있다.
샤딩을 지원하는 솔루션으로 MongoDB가 있다. 이 기술은 비 관계형 데이터를 주 대상으로 하고 있다. 데이터 분할과 관련한 주요 특징은 다음과 같다. 데이터 분할 작업은 청크(chunk)라는 저장 단위를 기준으로 하며, 각 데이터 저장 노드는 이 청크들을 비슷한 개수로 나누어 저장한다. MongoDB는 청크가 일정 크기 이상 되면 데이터를 분리하여 2개의 청크로 만들고 이들 중 1개를 다른 노드로 이동시키는 데이터 분할 방법을 이용하는데. 다만 이때, 전체 노드의 개수는 일정하게 유지된다. 또한, 데이터 노드 추가를 원할 경우, 자동으로 노드를 추가해주는 기능은 제공하지 않는다.
MongoDB 이외에도 DBshards, ScaleBase 등 샤딩을 지원하는 몇몇 솔루션이 존재한다. 그러나, 지금까지 소개된 샤딩 지원 솔루션은 다음의 문제점을 가지고 있다.
- 데이터 분할 저장 작업 완료 후, 분산 환경 기반으로 구축된 데이터 저장/관리 시스템에 대하여 변경(예: 노드 분할)이 매우 어렵다.
- 대부분의 시스템에서 분할 정책(partitioning strategy)으로 modulus hashing이 사용되며, 이 외에 다른 기준(예: date/time range, master lookup 등)을 제공하는 시스템의 경우, 사용자가 직접 선택하여 적용시켜야 한다.
- 위와 같은 이유로, 사용자는 성능 향상을 목적으로 데이터 분산 저장 작업 시, 시작 전 적절한 분할 정책을 매우 신중하게 선정해야 한다. 따라서 이를 위한 데이터 분석 작업에 매우 많은 노력이 필요하다.
- 대부분의 시스템은 데이터 분할 저장 시 한 가지 분할 정책을 기반으로 분할 작업을 수행한다. 이럴 경우, 특정 노드에 데이터 편중 현상이 발생할 수 있고, 데이터에 대한 트랜잭션 부하 불균형 등의 문제가 발생한다.
본 발명이 해결하고자 하는 기술적 과제는 데이터베이스의 데이터 사이즈 및 노드 내 트랜잭션 발생량을 고려하여 분할 대상 노드를 선정하고, 선정된 분할 대상 노드에 대하여 노드 내 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 샤딩 정책을 생성하여 그에 따라 노드 내 데이터베이스 데이터의 적어도 일부를 신규 생성 노드로 샤딩하는 분산 데이터 관리 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 데이터베이스의 데이터 사이즈 및 노드 내 트랜잭션 발생량을 고려하여 분할 대상 노드를 선정하고, 선정된 분할 대상 노드에 대하여 노드 내 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 샤딩 정책을 생성하여 그에 따라 노드 내 데이터베이스 데이터의 적어도 일부를 신규 생성 노드로 샤딩하는 분산 데이터베이스 시스템 구성 노드를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 분산 데이터베이스 시스템 구성 노드 각각이 복수의 샤딩 정책을 관리하여, 각각의 샤딩 정책에 따른 노드 집중도가 분할 한계치를 초과하는지에 따라 분산 데이터베이스 시스템 구성 노드 각각이 스스로 샤딩 수행 여부 및 샤딩 시 적용될 샤딩 정책을 결정하는 분산 데이터 관리 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 분산 데이터베이스 시스템 구성 노드 각각이 복수의 샤딩 정책을 관리하여, 각각의 샤딩 정책에 따른 노드 집중도가 분할 한계치를 초과하는지에 따라 분산 데이터베이스 시스템 구성 노드 각각이 스스로 샤딩 수행 여부 및 샤딩 시 적용될 샤딩 정책을 결정하는 분산 데이터베이스 시스템 구성 노드를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
상기 언급된 기술적 과제들을 해결하기 위한, 본 발명의 일 태양(ASPECT)에 따른 분산 데이터베이스 관리 방법은 데이터베이스의 데이터 사이즈 및 노드에 대하여 발생하는 트랜잭션 발생량 중 적어도 하나를 기준으로, 분산 데이터베이스 시스템 구성 노드 중 데이터베이스 분할 대상 노드가 선정되고; 상기 분할 대상 노드가 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성하되, 상기 샤딩 정책은 샤드 키(shard key) 및 샤드 함수(shard function)를 포함하는 것이고; 상기 분할 대상 노드가 상기 생성된 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함한다. 상기 분산 데이터베이스 관리 방법은 분산 데이터베이스 시스템 구성 노드에 의하여 수행될 수 있다.
일 실시예에 따르면, 상기 선정되고, 생성하고, 샤딩하는 것은 관리자의 조작 없이 분산 데이터베이스 구성 노드 각각에 의하여 자동으로 수행될 수 있다. 다른 실시예에 따르면, 상기 생성하는 것은, 둘 이상의 샤딩 정책을 생성하고; 상기 생성된 샤딩 정책의 포인트를 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 연산하고; 상기 생성된 샤딩 정책 및 각각의 샤딩 정책에 대하여 연산된 포인트를 기 지정된 관리자에 통지하는 것을 포함함으로써, 샤딩 수행 관련 정보를 관리자에 통지할 수 있다. 또 다른 실시예에 따르면, 상기 샤딩하는 것은, 상기 샤딩 정책에 따라 샤딩을 수행한 이후의 데이터베이스 사이즈 및 트랜잭션 분배 상황 예측을 수행하고; 상기 샤딩 이전에 상기 분할 대상 노드, 상기 샤딩 정책 및 트랜잭션 분배 상황을 관리자에 통지하고; 상기 관리자의 확인을 받아 상기 샤딩하는 것을 포함하여 샤딩 수행 여부에 대한 관리자의 확인을 받은 후 상기 샤딩을 진행할 수 있다.
일 실시예에 따르면, 상기 선정되는 것은, 상기 분산 데이터베이스 시스템 구성 노드 각각이 상기 데이터 사이즈 및 상기 트랜잭션 발생량 중 적어도 하나를 이용하여 연산된 노드 집중도의 샤딩 한계치 초과 여부를 모니터링하고; 상기 모니터링 도중 상기 노드 집중도가 상기 한계치를 초과하는 노드가 발견된 경우, 상기 노드가 상기 분할 대상 노드로 선정되는 것을 포함할 수 있다.
일 실시예에 따르면, 상기 생성하는 것은, 상기 트랜잭션 로그를 이용하여 상기 신규 노드의 개수를 결정하고; 상기 신규 노드의 개수를 반영하여 상기 샤딩 정책을 생성하는 것을 포함할 수 있다.
일 실시예에 따르면, 상기 생성하는 것은, 상기 트랜잭션 로그를 이용하여, 상기 분할 대상 노드와 상기 신규 노드 사이의 트랜잭션 로그가 균일하게 분배되도록 상기 샤드 키 및 샤드 함수를 생성하는 것을 포함할 수 있다.
일 실시예에 따르면, 상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 동일한 경우, 상기 분할 대상 노드의 샤드(shard) 명세 정보를 갱신하고, 상기 신규 노드의 샤드 명세 정보를 상기 신규 노드에 기록하는 것을 더 포함할 수 있다.
일 실시예에 따르면, 상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 상이한 경우, 둘 이상의 상기 신규 노드를 상기 분할 대상 노드의 자식 노드로써 등록하고, 상기 분할 대상 노드의 데이터베이스 데이터를 상기 자식 노드에 분할 이전하는 자식 노드 등록 프로세스를 수행하는 것을 더 포함할 수 있다. 이 때, 상기 자식 노드 등록 프로세스는, 상기 분할 대상 노드의 데이터베이스 데이터 전체를 둘 이상의 신규 노드로 샤딩하고; 상기 분할 대상 노드의 샤드 명세 정보에 상기 둘 이상의 신규 노드 모두를 자식 노드로 등록하고; 상기 자식 노드의 샤드 명세 정보를 상기 자식 노드에 기록하는 것을 포함할 수 있다.
본 발명의 다른 태양에 따른 분산 데이터베이스 관리 방법은 분산 데이터베이스 시스템 구성 노드 각각이 복수의 샤딩 정책을 관리하되, 상기 샤딩 정책은 샤드 키, 샤드 함수, 노드 집중도 함수 및 샤딩 한계치를 포함하고; 각각의 상기 구성 노드가, 노드 집중도 함수 값이 상기 샤딩 한계치를 초과하는 샤딩 정책이 발생하는지 여부를 모니터링하고; 상기 구성 노드 중 상기 샤딩 한계치를 초과하는 샤딩 정책인 실시 샤딩 정책이 상기 모니터링에 의해 발견된 노드가 분할 대상 노드로 지정되고; 상기 실시 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부가 하나 이상의 신규 노드로 샤딩(sharding)되는 것을 포함할 수 있다. 상기 분산 데이터베이스 관리 방법은 분산 데이터베이스 시스템 구성 노드 각각에 의하여 수행될 수 있다.
상기 샤딩되는 것은, 상기 실시 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 전부가 둘 이상의 신규 노드로 샤딩(sharding)되는 것을 포함할 수 있다.
본 발명의 또 다른 태양에 따른 분산 데이터베이스 구성 노드는 프로세서; 및 상기 노드의 데이터베이스 데이터, 상기 데이터의 메타 정보 및 상기 노드의 트랜잭션 정보를 저장하는 스토리지를 포함한다. 이 때, 상기 프로세서는, 데이터베이스의 데이터 사이즈 및 노드에 대하여 발생하는 트랜잭션 발생량 중 적어도 하나를 기준으로, 분산 데이터베이스 시스템 구성 노드 중 데이터베이스 분할 대상 노드를 선정하고; 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성하되, 상기 샤딩 정책은 샤드 키(shard key) 및 샤드 함수(shard function)를 포함하는 것이고; 상기 생성된 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 데이터 샤딩 프로세스를 실행할 수 있다.
본 발명의 또 다른 태양에 따른 분산 데이터베이스를 구성하는 노드는 프로세서; 및 상기 노드의 데이터베이스 데이터, 상기 데이터의 메타 정보 및 상기 노드의 트랜잭션 정보를 저장하는 스토리지를 포함한다. 이 때, 상기 프로세서는, 복수의 샤딩 정책을 관리하되, 상기 샤딩 정책은 샤드 키, 샤드 함수, 노드 집중도 함수 및 샤딩 한계치를 포함하고; 노드 집중도 함수 값이 상기 샤딩 한계치를 초과하는 샤딩 정책이 발생하는지 여부를 모니터링하고; 상기 샤딩 한계치를 초과하는 샤딩 정책인 실시 샤딩 정책이 상기 모니터링에 의해 발견된 경우, 상기 실시 샤딩 정책에 따라 상기 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 데이터 샤딩 프로세스를 실행한다.
상기와 같은 본 발명에 따르면, 특정 노드에 대한 샤딩 필요 여부의 감지, 데이터베이스 샤딩에 적용될 최적의 샤딩 정책을 데이터베이스 구성, 데이터 사이즈 및 각 데이터에 대한 트랜잭션 발생량 등을 고려하여 최적의 방안을 수립하여 이를 자동 적용하거나 적어도 관리자에 제시할 수 있는 형태의 유연하고 자동화된 동적 샤딩을 수행할 수 있는 효과가 있다.
또한, 필요에 따라 다양한 샤딩 기준을 적용함으로써 데이터 축적 상황에 따라 트랜잭션을 최적으로 분배할 수 있는 효과가 있다.
또한, 필요에 따라 새로운 노드가 자동으로 분산 데이터베이스 시스템에 도입됨으로써, 데이터 증가에 따른 신규 노드 도입 및 그에 따른 데이터베이스 재구성 작업이 시스템을 통하여 자동으로 수행되는 효과가 있다.
도 1은 데이터베이스 샤딩의 개념을 설명하기 위한 개념도이다.
도 2a 내지 도 2b는 본 발명의 일 실시예에 따라 구성되는 분산 데이터베이스 시스템의 구성 토폴로지 예시도이다.
도 3은 본 발명의 일 실시예에 따른 분산 데이터베이스 관리방법의 순서도이다.
도 4는 본 발명의 일 실시예에 따라 분할 대상 노드가 결정되는 과정을 나타내는 개념도이다.
도 5는 본 발명의 일 실시예에 따라 분할 대상 노드의 DB 데이터에 사이즈를 고려하여 샤딩 정책이 결정되는 과정을 나타내는 개념도이다.
도 6은 본 발명의 일 실시예에 따라 분할 대상 노드의 DB 데이터에 대한 메타데이터 및 노드 내 트랜잭션 발생량 등을 고려하여 샤딩 정책이 결정되는 과정을 나타내는 개념도이다.
도 7은 본 발명의 일 실시예에 따른 분산 데이터베이스 구성 노드의 블록 구성도이다.
도 8은 본 발명의 일 실시예에 따라 분산 데이터베이스 구성 노드가 복수의 샤딩 정책을 관리하는 것을 나타내는 개념도이다.
도 9는 도 8에 따라 복수의 샤딩 정책을 관리하는 분산 데이터베이스 구성 노드에 의하여 수행되는 분산 데이터베이스 관리방법의 순서도이다.
도 10은 본 발명의 일 실시예에 따른 분산 데이터베이스 구성 노드의 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 실시예들에 의하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
본 명세서에서 사용되는 사용되는 '부' 또는 '모듈'이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부' 또는 '모듈'은 어떤 역할들을 수행한다. 그렇지만 '부' 또는 '모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부' 또는 '모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부' 또는 '모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 '부' 또는 '모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부' 또는 '모듈'들로 결합되거나 추가적인 구성요소들과 '부' 또는 '모듈'들로 더 분리될 수 있다.
먼저, 도 1을 참조하여 데이터베이스 샤딩의 개념에 대하여 설명한다. 이미 설명한 바와 같이, 데이터베이스를 샤딩한다는 것은, 데이터 중 일부를 다른 노드로 분할하는 것을 의미한다.
샤딩에서의 데이터베이스 분할 방법으로 수직 분할(VERTICAL PARTITIIONING), 범위 기반 분할(RANGE BASED PARTITIONING) 방식이 존재할 수 있다. 수직 분할 방식은 테이블 별로 서로 다른 노드로 분할하는 것이고, 범위 기반 분할 방식은 하나의 테이블이 비대해지는 경우, 테이블을 분할하여 서로 다른 노드로 분할하는 것이다.
도 1에는 범위 기반 분할 방식이 도시되어 있다. 도 1에 도시된 바와 같이 노드 A에 고객 테이블이 저장되어 있는데, 고객이 증가함에 따라 고객 테이블의 튜플(tuple)의 수가 증가하여 고객 테이블의 튜플(tuple) 중 일부를 신규 노드인 노드 B로 분할하는 것이 도시되어 있다. 도 1에 도시된 것과 같이 테이블의 사이즈가 증가하는 경우, 범위 기반 분할 방식을 통하여 테이블을 서로 다른 물리 노드에 분할 저장할 수 있다. 본 명세서에서 설명되는 샤딩은 상기 범위 기반 분할 방식을 이용하는 것이나, 필요에 따라 수직 분할 방식을 이용하는 실시예도 존재할 수 있다.
다음으로, 도 2a 내지 도 2b를 참조하여 본 발명의 일 실시예에 따라 구성되는 분산 데이터베이스 시스템의 구성 토폴로지를 설명한다.
본 발명에 따른 분산 데이터베이스 시스템(10)은 복수의 구성 노드로 구성될 수 있다. 복수의 구성 노드는 각각 단말로부터 쿼리를 입력 받아 자신이 저장하고 있는 데이터에 대한 쿼리인 경우 처리 후 응답하고, 그렇지 않은 경우 필터링 아웃(filtering out)한다. 도 2a 내지 도 2b에는 도시되어 있지 않지만, 단말로부터 수신된 쿼리를 통합 처리하는 쿼리 인터페이스 장치가 상기 분산 데이터베이스 시스템에 포함될 수도 있다.
도 2a에는 버스 형 토폴로지에 따라 노드(100-1, 100-2, 100-3, 100-4)가 연결된 것이 도시되어 있다. 버스(11)에 복수의 노드(100-1, 100-2, 100-3, 100-4)가 연결된 형태인데, 복수의 노드(100-1, 100-2, 100-3, 100-4)는 동일한 샤딩 정책이 적용된 것이다. 즉, 동일한 샤드 키에 대한 동일한 샤드 함수가 적용되어, 상기 샤드 함수의 함수 값에 따라 저장되는 노드가 결정될 수 있다. 예를 들어, 도 2a에 도시된 것과 같이, ID 속성(attribute)에 대하여 샤드 함수(modular)가 적용된 결과, 함수 값이 0인 경우 제1 노드(100-1), 1인 경우 제2 노드(100-2), 2인 경우 제3 노드(100-3), 3인 경우 제4 노드(100-4)에 데이터가 저장될 수 있다.
한편, 도 2b에는 트리 형 토폴로지가 도시되어 있다. 도 2b에 도시된 분산 데이터베이스 시스템(10)은 버스(11)에 연결된 노드(100-5, 100-6, 100-7) 및 재분할된 노드(100-8, 100-9)를 포함한다. 버스(11)에 연결된 노드(100-5 내지 7)끼리는 동일한 샤딩 정책이 적용된 것일 수 있다.
다만, 버스(11)에 연결된 노드(100-5 내지 7)와 재분할된 노드(100-8, 100-9)에 적용된 샤딩 정책은 서로 다를 수 있다. 이에 대하여는 추후 보다 자세히 설명하기로 한다.
본 발명에 따른 분산 데이터베이스 시스템(10)은 도 2a, 도 2b에 도시된 형태 이외의 다른 토폴로지로도 노드들을 연결할 수 있다.
도 3은 본 발명의 일 실시예에 따른 분산 데이터베이스 관리 방법의 순서도이다. 도 3에 도시된 각 동작은 분산 데이터베이스 구성 노드 각각에 의하여 수행될 수 있다.
먼저, 각각의 노드는 노드 집중도의 값을 모니터링 한다(S100). 상기 노드 집중도는 데이터베이스의 데이터 사이즈 및 노드 내 트랜잭션 발생량 중 적어도 하나를 기준으로 연산된 값일 수 있다. 상기 데이터베이스의 데이터 사이즈는 상기 데이터베이스를 구성하는 하나 이상의 테이블 중 적어도 한 테이블의 튜플 개수를 이용하여 연산될 수 있으며, 상기 트랜잭션 발생량은 각 테이블에 대하여 발생된 트랜잭션 또는 각 테이블 내 특정 범위의 튜플에 대하여 발생된 트랜잭션 건수에 대한 데이터일 수 있다. 상기 노드 집중도는 노드 내에 데이터 처리 부담이 어느 정도인지를 의미하는 값으로, 예를 들어 상기 데이터 사이즈가 커지고 상기 트랜잭션 발생량이 커질수록 증가할 수 있다.
각 노드는 상기 노드 집중도 값이 샤딩 한계치를 초과하는지 감시한다(S102). 상기 샤딩 한계치는 관리자에 의하여 설정된 상수(contant value)일 수도 있고, 각 노드가 스토리지 여유 공간, CPU, 메모리 및 NETWORK 대역폭 평균 사용률 등의 하드웨어 자원 사용 관련 데이터를 반영하여 자동으로 갱신하는 값일 수도 있다.
어떠한 노드가 분할 대상 노드로 선정되는지의 이해를 돕기 위하여, 도 4를 참조하여 설명한다. 예를 들어, 분산 데이터베이스 시스템(10)이 3개의 노드(100-10 내지 12)로 구성되는 경우 분산 데이터베이스에서 관리되는 전체 데이터는 3개의 노드(100-10 내지 12)에 분산되어 저장된다. 데이터베이스 관리자는 각 노드에 데이터가 균일하게 저장되도록 데이터를 분산 저장할 것이나, 데이터가 축적되는 형태가 데이터베이스 관리자의 예상을 빗나가는 경우, 도 4에 도시된 것과 같이 특정 노드(100-11)에 데이터(200-2) 및 트랜잭션이 몰릴 수 있다. 이러한 경우, 그 노드(100-11)는 분할 대상 노드로 선정된다. 분할 대상 노드(100-11) 내부에서 상기 설명된 노드 집중도의 모니터링 및 노드 집중도와 샤딩 한계치의 비교 동작이 수행되며, 그 결과 분할 대상 노드(100-11)는 스스로 분할 대상 노드가 되었음을 판정하게 된다.
상기 분할 대상 노드는 기 지정된 샤딩 정책에 따라 노드 내 데이터를 하나 이상의 신규 노드로 샤딩하거나, 분할 대상 노드가 된 시점에 정해지는 샤딩 정책에 따라 샤딩할 수 있다.
분할 대상 노드가 된 시점에 샤딩 정책을 정하는 경우(S104), 데이터 축적에 따른 데이터베이스 구성 및 각 데이터에 대한 트랜잭션 건수에 따라 적절한 샤딩 정책을 적용할 수 있는 효과가 있다. 일 실시예에 따르면, 분할 대상 노드가 된 시점에 상기 분할 대상 노드가 스스로 상기 샤딩 정책을 하나 이상 생성할 수 있다.
상기 샤딩 정책은 샤드 키 및 샤드 함수를 포함한다. 다만, 이는 범위 기반 분할 방식의 샤딩을 수행하는 경우이고, 수직 분할 방식의 샤딩을 수행하는 경우 그에 따른 샤딩 정책이 생성될 수도 있다.
분할 대상 노드가 스스로 샤딩 정책을 생성하는 실시예에 대하여 도 5 및 6을 참조하여 설명한다.
도 5는 데이터베이스 스키마가 두 개의 테이블을 포함하는 경우를 가정한다. 물론 대부분의 데이터베이스, 예를 들어 관계형 데이터베이스는 두 개를 초과하는 테이블로 구성될 것이다. 도 5에서는 설명의 편의를 위하여 두 개의 테이블을 가지는 데이터베이스를 가정하는 것이며, 본 발명의 범위는 한 개 이상의 테이블로 구성되는 데이터베이스에 대하여 미칠 수 있다.
도 5에 도시된 두 개의 테이블, 즉 고객 테이블 및 주문 테이블의 사이즈는 각각 약 10만 건, 약 250만 건이라고 가정한다. 즉, 고객 테이블에 포함되는 튜플의 개수는 약 10만개이고, 주문 테이블에 포함되는 튜플의 개수는 약 250만 건이다. 또한, 고객 테이블 대상의 트랜잭션 건수는 시간당 약 3만건, 주문 테이블 대상의 트랜잭션 건수는 시간당 약 18만 건이라고 가정한다. 상기 가정 사항을 고려하면, 고객 테이블 및 주문 테이블 중 분할 대상이되는 테이블은 주문 테이블이 될 것이다.
분할 대상 노드는 주문 테이블 대상의 트랜잭션 건수를 기준으로 신규 노드 개수를 결정할 수 있다. 예를 들어, 노드 당 트랜잭션 기준치가 시간당 약 6만 건이라고 하면, 주문 테이블 대상의 신규 노드는 2개가 될 것이다. 만약, 샤딩의 방식이 기존 노드는 더 이상 사용하지 않고 신규 노드로 모든 데이터를 옮기는 방식이라면, 신규 노드는 3개가 될 것이다.
분할 대상 노드는 상기 신규 노드 개수를 기준으로 샤드 함수를 생성할 수 있다.
분할 대상 노드는, 주문 테이블의 각 속성 중 하나를 샤드 키로 사용할 수 있다. 샤드 키의 선정은 데이터 및 데이터가 사용되는 성격에 따라 결정될 수 있으며, 예를 들어, 도 5에 도시된 것과 같이 주문 테이블의 속성 중 하나인 고객 ID가 샤드 키로 사용될 수 있다.
분할 대상 노드가 스스로 샤딩 정책을 다른 생성하는 실시예에 대하여 도 6을 참조하여 설명한다.
도 6에 도시된 것은, 특정 범위의 튜플에 트랜잭션이 몰리는 경우를 가정한다. 예를 들어, 쇼핑몰 운영을 위한 데이터베이스의 경우, 고객 별로 트랜잭션 건수가 서로 다를 수 있다. 예를 들어, VIP 고객인 경우 일반 고객에 비하여 트랜잭션이 훨씬 많이 발생할 것이다. 고객 정보의 경우, 공통적으로 억세스 될 확률이 높기 때문에, VIP 고객에 대한 고객 정보 튜플은 트랜잭션을 많이 발생시키게 된다. 도 6에서는 이러한 상황에 따라, 일반 고객(약 9만 8천명)의 고객 테이블 튜플들은 시간당 약 2만건의 트랜잭션을 발생시키지만, VIP 고객의 고객 테이블 튜플들은 시간당 약 21만건의 트랜잭션을 발생시키는 것을 가정한다.
이러한 경우, 고객 테이블을 분할 하되, 다수의 트랜잭션을 발생시키는 튜플들은 하나의 노드에 소수만 존재하도록 분할할 필요가 있다. 예를 들어, 전체 10만 건의 튜플을 단순히 3만3천 건씩 균일하게 분할하는 경우 특정 노드에 VIP 튜플이 몰릴 수 있고 이러한 경우에는 샤딩의 효과가 반감될 것이다. 따라서, 도 6에 도시된 것과 같이 VIP 고객에 해당하는 튜플만을 2개의 샤드로 나누어 신규 노드(100-13, 100-14)로 분할하면, 트랜잭션 분산에 따른 데이터베이스 처리 속도 증가가 가능할 것이다.
도 5 내지 도 6에 도시된 바와 같이, 분할 대상 노드는 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성할 수 있다. 상기 분할 대상 노드는, 상기 트랜잭션 로그를 이용하여, 상기 분할 대상 노드와 상기 신규 노드 사이의 트랜잭션이 균일하게 분배되도록 상기 샤드 키 및 샤드 함수를 생성할 수 있다.
다시 도 3으로 돌아가서 설명하면, 분할 대상 노드는 정해진 샤딩 정책에 따라 상기 분할 대상 노드 내 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩할 수 있다.
한편, 상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 동일할 수도 있고 다를 수도 있다. 상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 동일한 경우에는 도 2a에 도시된 바와 같이, 상기 분할 대상 노드와 상기 신규 노드가 버스 토폴로지로 연결될 수 있다.
반면에, 상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 다른 경우, 도 2b에 도시된 바와 같이, 상기 분할 대상 노드와 상기 신규 노드는 트리 구조 토폴로지로 연결될 수 있다. 상기 분할 대상 노드는 둘 이상의 상기 신규 노드를 상기 분할 대상 노드의 자식 노드로써 등록하고, 상기 분할 대상 노드의 데이터베이스 데이터를 상기 자식 노드에 분할 이전하는 자식 노드 등록 프로세스를 수행할 수 있다. 즉, 상기 분할 대상 노드는 데이터를 저장하지 않고 자식 노드들로 유입되는 쿼리를 자식 노드들로 전달하는 역할만을 수행할 수 있다. 상기 자식 노드 등록 프로세스는, 상기 분할 대상 노드의 데이터베이스 데이터 전체를 둘 이상의 신규 노드로 샤딩하고, 상기 분할 대상 노드의 샤드 명세 정보에 상기 둘 이상의 신규 노드 모두를 자식 노드로 등록하고, 상기 자식 노드의 샤드 명세 정보를 상기 자식 노드에 기록하는 것을 포함할 수 있다.
한편, 본 발명에 따른 분산 데이터베이스 시스템을 구성하는 구성 노드들은 노드 내에 저장된 데이터의 범위에 대한 정보인 샤드 명세 정보를 저장할 수 있다. 각 구성 노드는 쿼리 유입 시, 상기 샤드 명세 정보를 참조하여 쿼리 데이터가 구성 노드 내에 저장된 것인지 여부를 판단한 후, 저장 된 것이라면 처리 후 응답하고, 노드 내에 저장된 것이 아니라면 필터링 아웃할 수 있다.
상기 샤딩이 수행 된 후에, 상기 분할 대상 노드 및 상기 신규 노드는 상기 샤드 명세 정보를 갱신하거나, 신규 기록할 수 있다.
한편, 일 실시예에 따르면, 상기 샤딩 과정은 관리자의 조작 없이 분할 대상 노드가 스스로 수행할 수 있으나, 다른 실시예에 따르면 상기 샤딩 과정에 적어도 관리자에 대한 안내 동작이 포함될 수도 있다.
예를 들어, 상기 분할 대상 노드는 둘 이상의 샤딩 정책을 생성하고, 상기 생성된 샤딩 정책의 포인트를 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 연산하고, 상기 생성된 샤딩 정책 및 각각의 샤딩 정책에 대하여 연산된 포인트를 기 지정된 관리자에 통지함으로써, 관리자가 각 샤딩 정책에 대하여 판단할 수 있는 근거 자료를 제공할 수 있다.
또한 예를 들어, 상기 분할 대상 노드는 상기 샤딩 정책에 따라 샤딩을 수행한 이후의 데이터베이스 사이즈 및 트랜잭션 분배 상황 예측을 수행하고, 상기 샤딩 이전에 상기 분할 대상 노드, 상기 샤딩 정책 및 트랜잭션 분배 상황을 관리자에 통지하고, 상기 관리자의 확인을 받아 상기 샤딩을 수행할 수도 있다. 즉, 상기 샤딩 과정은 관리자의 확인을 거쳐 수행되는 점에서, 안정성을 높일 수 있다.
다음으로, 도 7을 참조하여 본 발명의 일 실시예에 따른 분산 데이터베이스 구성 노드의 구성을 설명하기로 한다. 도 7에 도시된 바와 같이, 본 실시예에 따른 각 구성 노드는 쿼리 처리기(108), 데이터 샤드 엔진(102), 샤딩 관리 정보 저장부(106) 및 데이터베이스 데이터 저장부(104)를 포함할 수 있다.
쿼리 처리기(108)는 유입된 쿼리를 처리하는 모듈로써, 상기 샤드 명세 데이터를 포함할 수 있다. 쿼리 처리기(108)는, 쿼리 유입 시, 상기 샤드 명세 정보를 참조하여 쿼리 데이터가 구성 노드 내에 저장된 것인지 여부를 판단한 후, 저장 된 것이라면 처리 후 응답하고, 노드 내에 저장된 것이 아니라면 필터링 아웃할 수 있다.
데이터 샤드 엔진(102)은 샤딩 시작 여부의 모니터링과, 샤딩 정책 생성을 담당한다. 데이터 샤드 엔진(102)은 상기 모니터링 방법 및 샤딩 정책 생성 과정은 상기 설명된 실시예들에 따른다.
샤딩 관리 정보 저장부(106)에는 데이터베이스를 구성하는 테이블 및 각 테이블의 사이즈 등의 데이터베이스 데이터(104)에 대한 데이터인 메타 정보(160), 각 테이블 또는 각 테이블 내 특정 범위의 튜플들에 대한 트랜잭션 발생의 기록인 트랜잭션 로그(161), 분할 대상 노드가 되었을 때 적용될 샤딩 정책에 대한 정보(162), 그룹함수(Aggregate Function), 비수치 데이터에 대한 값의 범위 등 데이터베이스 데이터(104)에 대한 요약 정보(163)가 저장될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 각 샤딩 정책에 따라 샤딩 수행 여부의 결정 기준이 달라질 수 있다. 도 8을 참조하면, 각 샤딩 정책 마다 노드 집중도 값을 결정하는 수식 및 샤딩 한계치가 달라질 수 있다. 이러한 경우, 도 3에 도시된 분산 데이터베이스 관리 방법이 도 9와 같이 수정될 수 있다.
도 9를 참조하여 본 발명의 다른 실시예에 따른 분산 데이터베이스 관리 방법을 설명한다.
먼저, 각 구성 노드의 데이터 샤드 엔진(102)은 샤딩 정책 정보(162)의 형태로 관리되는 각 샤딩 정책 별로 정해진 수식에 따라 노드 집중도를 연산하고(S200), 연산된 노드 집중도가 해당 샤딩 정책의 샤딩 한계치를 초과하는지 판정한다(S202). 노드 집중도가 샤당 한계치를 초과하는 샤딩 정책을 가지는 노드는 분할 대상 노드가 되고, 상기 샤딩 정책에 따라 데이터를 하나 이상의 신규 노드로 샤딩하게 된다(S204).
도 10은 본 발명의 일 실시예에 따른 분산 데이터베이스 구성 노드의 구성도이다. 도 10에 도시된 바와 같이, 본 실시예에 따른 분산 데이터베이스 구성 노드는 CPU, RAM, UI, 스토리지, 네트워크 인터페이스가 버스에 연결된 구조를 가질 수 있다.
상기 CPU는 데이터베이스의 데이터 사이즈 및 노드에 대하여 발생하는 트랜잭션 발생량 중 적어도 하나를 기준으로, 분산 데이터베이스 시스템 구성 노드 중 데이터베이스 분할 대상 노드를 선정하고, 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성하되, 상기 샤딩 정책은 샤드 키(shard key) 및 샤드 함수(shard function)를 포함하는 것이고, 상기 생성된 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 데이터 샤딩 프로세스를 실행할 수 있다.
본 발명의 다른 실시예에 따르면, 상기 CPU는 복수의 샤딩 정책을 관리하되, 상기 샤딩 정책은 샤드 키, 샤드 함수, 노드 집중도 함수 및 샤딩 한계치를 포함하고, 노드 집중도 함수 값이 상기 샤딩 한계치를 초과하는 샤딩 정책이 발생하는지 여부를 모니터링하고, 상기 샤딩 한계치를 초과하는 샤딩 정책인 실시 샤딩 정책이 상기 모니터링에 의해 발견된 경우, 상기 실시 샤딩 정책에 따라 상기 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 데이터 샤딩 프로세스를 실행할 수도 있다.
또한, 상기 스토리지는 상기 노드의 데이터베이스 데이터, 상기 데이터의 메타 정보 및 상기 노드의 트랜잭션 정보를 저장할 수 있다. 또한, 도 10에 도시된 것과 달리, 상기 스토리지는 네트워크를 통하여 상기 CPU, RAM, NIC와 연결될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
분산 데이터베이스 구성 노드 100-1 내지 100-14
데이터 샤드 엔진 102
데이터베이스 데이터 저장부 104
샤딩 관리 정보 저장부 106
쿼리 처리기 108

Claims (14)

  1. 데이터베이스의 데이터 사이즈 및 노드에 대하여 발생하는 트랜잭션 발생량 중 적어도 하나를 기준으로, 분산 데이터베이스 시스템 구성 노드 중 데이터베이스 분할 대상 노드가 선정되고;
    상기 분할 대상 노드가 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성하되, 상기 샤딩 정책은 샤드 키(shard key) 및 샤드 함수(shard function)를 포함하는 것이고;
    상기 분할 대상 노드가 상기 생성된 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 분산 데이터베이스 관리 방법.
  2. 제1 항에 있어서,
    상기 선정되고, 생성하고, 샤딩하는 것은 관리자의 조작 없이 수행되는 분산 데이터베이스 관리 방법.
  3. 제1 항에 있어서,
    상기 생성하는 것은,
    둘 이상의 샤딩 정책을 생성하고;
    상기 생성된 샤딩 정책의 포인트를 상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 연산하고;
    상기 생성된 샤딩 정책 및 각각의 샤딩 정책에 대하여 연산된 포인트를 기 지정된 관리자에 통지하는 것을 포함하는 분산 데이터베이스 관리 방법.
  4. 제1 항에 있어서,
    상기 샤딩하는 것은,
    상기 샤딩 정책에 따라 샤딩을 수행한 이후의 데이터베이스 사이즈 및 트랜잭션 분배 상황 예측을 수행하고;
    상기 샤딩 이전에 상기 분할 대상 노드, 상기 샤딩 정책 및 트랜잭션 분배 상황을 관리자에 통지하고;
    상기 관리자의 확인을 받아 상기 샤딩하는 것을 포함하는 분산 데이터베이스 관리 방법.
  5. 제1 항에 있어서,
    상기 선정되는 것은,
    상기 분산 데이터베이스 시스템 구성 노드 각각이 상기 데이터 사이즈 및 상기 트랜잭션 발생량 중 적어도 하나를 이용하여 연산된 노드 집중도의 샤딩 한계치 초과 여부를 모니터링하고;
    상기 모니터링 도중 상기 노드 집중도가 상기 한계치를 초과하는 노드가 발견된 경우, 상기 노드가 상기 분할 대상 노드로 선정되는 것을 포함하는 분산 데이터베이스 관리 방법.
  6. 제1 항에 있어서,
    상기 생성하는 것은,
    상기 트랜잭션 로그를 이용하여 상기 신규 노드의 개수를 결정하고;
    상기 신규 노드의 개수를 반영하여 상기 샤딩 정책을 생성하는 것을 포함하는 분산 데이터베이스 관리 방법.
  7. 제1 항에 있어서,
    상기 생성하는 것은,
    상기 트랜잭션 로그를 이용하여, 상기 분할 대상 노드와 상기 신규 노드 사이의 트랜잭션이 균일하게 분배되도록 상기 샤드 키 및 샤드 함수를 생성하는 것을 포함하는 분산 데이터베이스 관리 방법.
  8. 제1 항에 있어서,
    상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 동일한 경우, 상기 분할 대상 노드의 샤드(shard) 명세 정보를 갱신하고, 상기 신규 노드의 샤드 명세 정보를 상기 신규 노드에 기록하는 것을 더 포함하는 분산 데이터베이스 관리 방법.
  9. 제1 항에 있어서,
    상기 분할 대상 노드에 적용된 샤딩 정책과 상기 신규 노드에 적용된 샤딩 정책이 상이한 경우, 둘 이상의 상기 신규 노드를 상기 분할 대상 노드의 자식 노드로써 등록하고, 상기 분할 대상 노드의 데이터베이스 데이터를 상기 자식 노드에 분할 이전하는 자식 노드 등록 프로세스를 수행하는 것을 더 포함하는 분산 데이터베이스 관리 방법.
  10. 제9 항에 있어서,
    상기 자식 노드 등록 프로세스는,
    상기 분할 대상 노드의 데이터베이스 데이터 전체를 둘 이상의 신규 노드로 샤딩하고;
    상기 분할 대상 노드의 샤드 명세 정보에 상기 둘 이상의 신규 노드 모두를 자식 노드로 등록하고;
    상기 자식 노드의 샤드 명세 정보를 상기 자식 노드에 기록하는 것을 포함하는 분산 데이터베이스 관리 방법.
  11. 분산 데이터베이스 시스템 구성 노드 각각이 복수의 샤딩 정책을 관리하되, 상기 샤딩 정책은 샤드 키, 샤드 함수, 노드 집중도 함수 및 샤딩 한계치를 포함하고;
    각각의 상기 구성 노드가, 노드 집중도 함수 값이 상기 샤딩 한계치를 초과하는 샤딩 정책이 발생하는지 여부를 모니터링하고;
    상기 구성 노드 중 상기 샤딩 한계치를 초과하는 샤딩 정책인 실시 샤딩 정책이 상기 모니터링에 의해 발견된 노드가 분할 대상 노드로 지정되고;
    상기 실시 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부가 하나 이상의 신규 노드로 샤딩(sharding)되는 것을 포함하는 분산 데이터베이스 관리 방법.
  12. 제11 항에 있어서,
    상기 샤딩되는 것은,
    상기 실시 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 전부가 둘 이상의 신규 노드로 샤딩(sharding)되는 것을 포함하는 분산 데이터베이스 관리 방법.
  13. 분산 데이터베이스를 구성하는 노드에 있어서,
    프로세서; 및
    상기 노드의 데이터베이스 데이터, 상기 데이터의 메타 정보 및 상기 노드의 트랜잭션 정보를 저장하는 스토리지를 포함하되,
    상기 프로세서는,
    데이터베이스의 데이터 사이즈 및 노드에 대하여 발생하는 트랜잭션 발생량 중 적어도 하나를 기준으로, 분산 데이터베이스 시스템 구성 노드 중 데이터베이스 분할 대상 노드를 선정하고;
    상기 분할 대상 노드에 포함된 데이터베이스 데이터의 메타 정보 및 트랜잭션 로그를 이용하여 상기 분할 대상 노드에 적용될 샤딩 정책을 생성하되, 상기 샤딩 정책은 샤드 키(shard key) 및 샤드 함수(shard function)를 포함하는 것이고;
    상기 생성된 샤딩 정책에 따라 상기 분할 대상 노드의 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 데이터 샤딩 프로세스를 실행하는 분산 데이터베이스 구성 노드.
  14. 분산 데이터베이스를 구성하는 노드에 있어서,
    프로세서; 및
    상기 노드의 데이터베이스 데이터, 상기 데이터의 메타 정보 및 상기 노드의 트랜잭션 정보를 저장하는 스토리지를 포함하되,
    상기 프로세서는,
    복수의 샤딩 정책을 관리하되, 상기 샤딩 정책은 샤드 키, 샤드 함수, 노드 집중도 함수 및 샤딩 한계치를 포함하고;
    노드 집중도 함수 값이 상기 샤딩 한계치를 초과하는 샤딩 정책이 발생하는지 여부를 모니터링하고;
    상기 샤딩 한계치를 초과하는 샤딩 정책인 실시 샤딩 정책이 상기 모니터링에 의해 발견된 경우, 상기 실시 샤딩 정책에 따라 상기 데이터베이스 데이터 중 적어도 일부를 하나 이상의 신규 노드로 샤딩(sharding)하는 것을 포함하는 데이터 샤딩 프로세스를 실행하는 분산 데이터베이스 구성 노드.
KR1020120122460A 2012-10-31 2012-10-31 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드 KR101544356B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120122460A KR101544356B1 (ko) 2012-10-31 2012-10-31 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드
PCT/KR2013/009352 WO2014069828A1 (en) 2012-10-31 2013-10-18 Distributed database managing method and composition node thereof supporting dynamic sharding based on the metadata and data transaction quantity
US14/063,059 US20140122510A1 (en) 2012-10-31 2013-10-25 Distributed database managing method and composition node thereof supporting dynamic sharding based on the metadata and data transaction quantity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120122460A KR101544356B1 (ko) 2012-10-31 2012-10-31 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드

Publications (2)

Publication Number Publication Date
KR20140055489A true KR20140055489A (ko) 2014-05-09
KR101544356B1 KR101544356B1 (ko) 2015-08-13

Family

ID=50548392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120122460A KR101544356B1 (ko) 2012-10-31 2012-10-31 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드

Country Status (3)

Country Link
US (1) US20140122510A1 (ko)
KR (1) KR101544356B1 (ko)
WO (1) WO2014069828A1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104200669A (zh) * 2014-08-18 2014-12-10 华南理工大学 一种基于Hadoop的套牌车识别方法及系统
KR20160037761A (ko) * 2014-09-18 2016-04-06 앰플리데이터 엔.브이. 동적 샤딩을 위한 컴퓨터 구현 방법
KR20170073605A (ko) * 2014-10-21 2017-06-28 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 합성 파티션 함수 제공 기법
KR20170074850A (ko) 2014-10-27 2017-06-30 인튜어티브 서지컬 오퍼레이션즈 인코포레이티드 통합 수술 테이블 아이콘을 위한 시스템 및 방법
WO2018021593A1 (ko) * 2016-07-27 2018-02-01 (주)선재소프트 테이블 재구성시 트랜잭션의 성능저하를 최소화하는 온라인 데이터 베이스 관리 시스템 및 방법
KR20190016743A (ko) * 2017-08-09 2019-02-19 네이버 주식회사 데이터베이스 샤딩 환경에서의 데이터 복제
KR20190092362A (ko) * 2019-07-31 2019-08-07 네이버 주식회사 데이터베이스 샤딩 환경에서의 데이터 복제
CN111913925A (zh) * 2019-05-08 2020-11-10 厦门网宿有限公司 一种分布式存储系统中的数据处理方法及系统
CN114676141A (zh) * 2022-03-31 2022-06-28 北京泰迪熊移动科技有限公司 一种数据处理方法、装置及电子设备
WO2024039129A1 (ko) * 2022-08-17 2024-02-22 주식회사 블룸테크놀로지 블록체인 네트워크에서 다이나믹 샤딩 시스템 및 방법

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11093468B1 (en) * 2014-03-31 2021-08-17 EMC IP Holding Company LLC Advanced metadata management
US10043208B2 (en) 2014-05-30 2018-08-07 Walmart Apollo, Llc Smart order management and database sharding
US10410169B2 (en) 2014-05-30 2019-09-10 Walmart Apollo, Llc Smart inventory management and database sharding
US9659079B2 (en) 2014-05-30 2017-05-23 Wal-Mart Stores, Inc. Shard determination logic for scalable order and inventory management architecture with a sharded transactional database
US10346897B2 (en) 2014-05-30 2019-07-09 Walmart Apollo, Llc Method and system for smart order management and application level sharding
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US11321661B1 (en) * 2014-08-07 2022-05-03 Shiplify, LLC Method for building and filtering carrier shipment routings
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
CN104462479B (zh) * 2014-12-18 2017-11-24 杭州华为数字技术有限公司 跨节点的晚期物化方法和装置
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
CN107408128B (zh) 2015-04-20 2020-12-08 甲骨文国际公司 用于使用高速缓存和碎片拓扑提供对分片数据库的访问的系统和方法
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10394817B2 (en) * 2015-09-22 2019-08-27 Walmart Apollo, Llc System and method for implementing a database
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10496614B2 (en) * 2015-10-07 2019-12-03 Oracle International Corporation DDL processing in shared databases
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
CN105550229B (zh) * 2015-12-07 2019-05-03 北京奇虎科技有限公司 分布式存储系统数据修复的方法和装置
CN105550230B (zh) * 2015-12-07 2019-07-23 北京奇虎科技有限公司 分布式存储系统节点故障的侦测方法和装置
WO2017112664A1 (en) * 2015-12-21 2017-06-29 Kochava Inc. Self regulating transaction system and methods therefor
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US10642860B2 (en) 2016-06-03 2020-05-05 Electronic Arts Inc. Live migration of distributed databases
US10628462B2 (en) * 2016-06-27 2020-04-21 Microsoft Technology Licensing, Llc Propagating a status among related events
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11138178B2 (en) * 2016-11-10 2021-10-05 Futurewei Technologies, Inc. Separation of computation from storage in database for better elasticity
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US11030169B1 (en) * 2017-03-07 2021-06-08 Amazon Technologies, Inc. Data re-sharding
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
KR102008446B1 (ko) 2017-04-26 2019-08-07 주식회사 알티베이스 하이브리드샤딩시스템
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
CN108804465B (zh) * 2017-05-04 2023-06-30 中兴通讯股份有限公司 一种分布式缓存数据库数据迁移的方法及系统
KR101982756B1 (ko) 2017-05-18 2019-05-28 주식회사 알티베이스 분산인메모리기반 복합형스트림 데이터처리시스템 및 방법
US10740733B2 (en) 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
KR101989074B1 (ko) * 2017-08-10 2019-06-14 네이버 주식회사 데이터베이스 샤딩 환경에서의 복제 로그 기반의 마이그레이션
CN107729370A (zh) * 2017-09-12 2018-02-23 上海艾融软件股份有限公司 微服务多数据源连接实现方法
US11954117B2 (en) * 2017-09-29 2024-04-09 Oracle International Corporation Routing requests in shared-storage database systems
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN111353884B (zh) * 2018-12-20 2024-05-03 上海智知盾科技有限公司 区块链交易处理方法及系统
WO2020142906A1 (zh) * 2019-01-08 2020-07-16 张季恒 基于结构化有向无环图的交易分配方法和装置
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11194773B2 (en) 2019-09-12 2021-12-07 Oracle International Corporation Integration of existing databases into a sharding environment
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
CN111274028B (zh) * 2020-01-15 2023-09-05 新方正控股发展有限责任公司 基于数据库中间件的分区方法、分区装置和可读存储介质
CN111242232B (zh) * 2020-01-17 2023-11-14 广州欧赛斯信息科技有限公司 数据分片处理方法、装置及学分银行服务器
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
WO2021185338A1 (zh) * 2020-03-19 2021-09-23 华为技术有限公司 事务处理系统的管理方法、装置、设备及介质
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
CN111784078B (zh) * 2020-07-24 2022-04-26 支付宝(杭州)信息技术有限公司 一种针对决策树的分布式预测方法和系统
CN112445795A (zh) * 2020-10-22 2021-03-05 浙江蓝卓工业互联网信息技术有限公司 一种时序数据库的分布式存储扩容方法及数据查询方法
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113468132B (zh) * 2021-09-01 2021-12-21 支付宝(杭州)信息技术有限公司 对区块链系统中的分片进行缩容的方法及装置
CN114238333A (zh) * 2021-12-17 2022-03-25 中国邮政储蓄银行股份有限公司 数据拆分方法、装置以及设备
CN115964445B (zh) * 2023-02-23 2024-03-05 合肥申威睿思信息科技有限公司 一种分布式数据库的多副本实现方法和装置
CN116910310B (zh) * 2023-06-16 2024-02-13 广东电网有限责任公司佛山供电局 一种基于分布式数据库的非结构化数据存储方法及装置
CN116567007B (zh) * 2023-07-10 2023-10-13 长江信达软件技术(武汉)有限责任公司 一种基于任务切分的微服务水利数据共享交换方法
CN116860180B (zh) * 2023-08-31 2024-06-04 中航国际金网(北京)科技有限公司 一种分布式存储方法、装置、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7693813B1 (en) 2007-03-30 2010-04-06 Google Inc. Index server architecture using tiered and sharded phrase posting lists
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US9740762B2 (en) * 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104200669A (zh) * 2014-08-18 2014-12-10 华南理工大学 一种基于Hadoop的套牌车识别方法及系统
KR20160037761A (ko) * 2014-09-18 2016-04-06 앰플리데이터 엔.브이. 동적 샤딩을 위한 컴퓨터 구현 방법
KR20170073605A (ko) * 2014-10-21 2017-06-28 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 합성 파티션 함수 제공 기법
KR20220038827A (ko) * 2014-10-21 2022-03-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 데이터 저장소를 파티셔닝하고 리밸런싱하는 기법
KR20170074850A (ko) 2014-10-27 2017-06-30 인튜어티브 서지컬 오퍼레이션즈 인코포레이티드 통합 수술 테이블 아이콘을 위한 시스템 및 방법
WO2018021593A1 (ko) * 2016-07-27 2018-02-01 (주)선재소프트 테이블 재구성시 트랜잭션의 성능저하를 최소화하는 온라인 데이터 베이스 관리 시스템 및 방법
KR20190016743A (ko) * 2017-08-09 2019-02-19 네이버 주식회사 데이터베이스 샤딩 환경에서의 데이터 복제
CN111913925A (zh) * 2019-05-08 2020-11-10 厦门网宿有限公司 一种分布式存储系统中的数据处理方法及系统
CN111913925B (zh) * 2019-05-08 2023-08-18 厦门网宿有限公司 一种分布式存储系统中的数据处理方法及系统
KR20190092362A (ko) * 2019-07-31 2019-08-07 네이버 주식회사 데이터베이스 샤딩 환경에서의 데이터 복제
CN114676141A (zh) * 2022-03-31 2022-06-28 北京泰迪熊移动科技有限公司 一种数据处理方法、装置及电子设备
WO2024039129A1 (ko) * 2022-08-17 2024-02-22 주식회사 블룸테크놀로지 블록체인 네트워크에서 다이나믹 샤딩 시스템 및 방법

Also Published As

Publication number Publication date
US20140122510A1 (en) 2014-05-01
WO2014069828A1 (en) 2014-05-08
KR101544356B1 (ko) 2015-08-13

Similar Documents

Publication Publication Date Title
KR101544356B1 (ko) 메타데이터 및 트랜잭션 발생량을 고려한 동적 샤딩 기능을 지원하는 분산 데이터베이스 관리 방법 및 그 구성 노드
US10963435B1 (en) Data validation of data migrated from a source database to a target database
US20190213175A1 (en) Data migration method and system
US7457835B2 (en) Movement of data in a distributed database system to a storage location closest to a center of activity for the data
WO2019128205A1 (zh) 实现灰度发布的方法、装置及计算节点和系统
US8990243B2 (en) Determining data location in a distributed data store
US10574752B2 (en) Distributed data storage method, apparatus, and system
CN106817432B (zh) 云计算环境下虚拟资源弹性伸展的方法,系统和设备
US20090034537A1 (en) Temporal affinity-based routing of workloads
WO2021003935A1 (zh) 数据集群存储的方法、装置及计算机设备
US20110314019A1 (en) Parallel processing of continuous queries on data streams
CN107368369B (zh) 分布式容器管理方法及系统
US8244998B1 (en) Optimized backup for a clustered storage system
US20150281114A1 (en) Systems and methods for allocating work for various types of services among nodes in a distributed computing system
US9225586B2 (en) Automatic expansion method, management device, management system
CN102148850A (zh) 一种集群系统的业务处理方法及集群系统
WO2016169237A1 (zh) 数据处理方法及装置
EP3373158B1 (en) Data storage method and coordinator node
US20220286373A1 (en) Scalable real time metrics management
CN109783564A (zh) 支持多节点的分布式缓存方法及设备
CN104298598A (zh) 分布式环境下rdfs本体的调试方法
CN105975345A (zh) 一种基于分布式内存的视频帧数据动态均衡存储管理方法
CN101963978B (zh) 一种分布式数据库的管理方法、装置及系统
CN108153759B (zh) 一种分布式数据库的数据传输方法、中间层服务器及系统
US20220103500A1 (en) Method and device for managing group member, and method for processing group message

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
LAPS Lapse due to unpaid annual fee