KR101938501B1 - Dynamic load-based merging - Google Patents

Dynamic load-based merging Download PDF

Info

Publication number
KR101938501B1
KR101938501B1 KR1020177005030A KR20177005030A KR101938501B1 KR 101938501 B1 KR101938501 B1 KR 101938501B1 KR 1020177005030 A KR1020177005030 A KR 1020177005030A KR 20177005030 A KR20177005030 A KR 20177005030A KR 101938501 B1 KR101938501 B1 KR 101938501B1
Authority
KR
South Korea
Prior art keywords
data
server
server group
incremental data
merge
Prior art date
Application number
KR1020177005030A
Other languages
Korean (ko)
Other versions
KR20170042298A (en
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 claimed from PCT/US2015/045747 external-priority patent/WO2016032803A1/en
Publication of KR20170042298A publication Critical patent/KR20170042298A/en
Application granted granted Critical
Publication of KR101938501B1 publication Critical patent/KR101938501B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/17Details of further file system functions
    • 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/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • 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/3433Recording 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 for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06314Calendaring for a resource
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 하나의 실시예는 동적 부하 기반 병합을 용이하게 하는 시스템을 제공한다. 동작 동안, 시스템은 제1 컴퓨팅 디바이스의 메모리에서 증분 데이터를 식별한다. 증분 데이터는 제2 컴퓨팅 디바이스의 저장 디바이스에서의 기준 데이터에 대한 업데이트를 포함한다. 증분 데이터의 사이즈가 임계값을 초과하게 되면, 시스템은 복수의 서버 그룹들로부터 제1 서버 그룹을 선택한다. 제2 컴퓨팅 디바이스는 이 제1 서버 그룹에 속한다. 시스템은 그러면 제1 서버 그룹으로부터의 데이터 액세스 요청들을 복수의 서버 그룹들에서의 다른 서버 그룹들로 마이그레이션하고 제1 컴퓨팅 디바이스의 메모리로부터의 증분 데이터를 제2 컴퓨팅 디바이스에서의 저장 디바이스에 병합한다. 병합은 제2 컴퓨팅 디바이스의 저장 디바이스에 대한 일괄 순차 디스크 쓰기들을 포함한다.One embodiment of the present invention provides a system that facilitates dynamic load-based merging. During operation, the system identifies incremental data in the memory of the first computing device. The incremental data includes an update to the reference data at the storage device of the second computing device. When the size of the incremental data exceeds the threshold value, the system selects a first server group from a plurality of server groups. The second computing device belongs to this first server group. The system then migrates data access requests from the first server group to the other server groups in the plurality of server groups and merges the incremental data from the memory of the first computing device into the storage device at the second computing device. The merge includes batch sequential disk writes to the storage device of the second computing device.

Figure R1020177005030
Figure R1020177005030

Description

동적 부하 기반 병합{DYNAMIC LOAD-BASED MERGING}{DYNAMIC LOAD-BASED MERGING}

관련 출원Related application

35 U.S.C. 119 하에, 본 출원은 2014년 8월 27일자로 출원된 중국 특허 출원 제201410429616.0호의 우선권의 혜택 및 권리를 주장한다.35 U.S.C. 119, the present application claims the benefit of and priority of Chinese patent application No. 201410429616.0, filed on August 27, 2014.

분야Field

본 출원은 컴퓨터 기술들의 분야에 관한 것이고, 특히, 데이터 관리를 위한 방법 및 시스템에 관한 것이다.This application relates to the field of computer technologies and, more particularly, to methods and systems for data management.

컴퓨터 및 네트워크 기술들의 진보로, 상이한 애플리케이션들로부터의 사용자들에 의해 수행되는 다양한 동작들이 광범위한 스토리지 할당으로 이어진다. 예를 들어, 다수의 사용자가 상이한 애플리케이션들, 이를테면 상이한 플랫폼들 상에서 실행중인 모바일 애플리케이션들뿐만 아니라 상이한 운영 체제들에서의 상이한 브라우저들 상에서 실행중인 웹-인터페이스들을 통해 전자 상거래 웹사이트 상에서 동시에 쇼핑할 수 있다. 대응하는 쇼핑 레코드들은 전자 상거래 서비스를 용이하게 하는 시스템의 저장 디바이스들에(예컨대, 데이터베이스에) 저장된다.With advances in computer and network technologies, various operations performed by users from different applications lead to widespread storage allocation. For example, multiple users can simultaneously shop on an e-commerce website through different applications, such as mobile applications running on different platforms as well as web-interfaces running on different browsers in different operating systems have. Corresponding shopping records are stored (e. G., In a database) in the storage devices of the system facilitating e-commerce services.

그러나, 그 시스템에 동시에 액세스하는 상이한 애플리케이션들은 증가하는 수의 사용자 활동들을 야기하며, 결과적으로, 증가하는 양의 사용자 레코드들이 시스템에 저장되게 한다. 많은 수의 이들 레코드들은 그것들이 업데이트되고 있는 동안 사용자들에 의해 액세스될 수 있다. 따라서, 시스템에서의 저장된 데이터는 사용자들의 액세스 및 업데이트 빈도들에 기초하여 지속적으로 관리되는 것이 필요하다. 이러한 저장된 데이터의 관리는 사용자의 데이터 액세스에 대한 영향을 감소시키는 그러한 방식으로 데이터 저장소에 대한 쓰기 동작들의 할당을 포함한다.However, different applications that access the system at the same time cause an increasing number of user activities, resulting in an increasing amount of user records being stored in the system. A large number of these records can be accessed by users while they are being updated. Thus, the stored data in the system needs to be continuously managed based on the users' access and update frequencies. Management of such stored data includes allocation of write operations to the data store in such a manner as to reduce the impact on the user ' s data access.

시스템에서의 데이터 관리를 위해 다수의 방법이 이용가능하지만, 동시 발생 애플리케이션들(concurrent applications)에 대한 효율적인 저장 관리에서는 일부 문제들이 여전히 남아 있다.Although a number of methods are available for data management in a system, some problems still remain in efficient storage management for concurrent applications.

본 발명의 하나의 실시예는 동적 부하 기반 병합(dynamic load-based merging)을 용이하게 하는 시스템을 제공한다. 동작 동안, 시스템은 제1 컴퓨팅 디바이스의 메모리에서 증분 데이터를 식별한다. 증분 데이터는 제2 컴퓨팅 디바이스의 저장 디바이스에서의 기준 데이터에 대한 업데이트를 포함한다. 증분 데이터의 사이즈가 임계값을 초과하게 되면, 시스템은 복수의 서버 그룹들로부터 제1 서버 그룹을 선택한다. 제2 컴퓨팅 디바이스는 이 제1 서버 그룹에 속한다. 시스템은 그러면 제1 서버 그룹으로부터의 데이터 액세스 요청들을 복수의 서버 그룹들에서의 다른 서버 그룹들로 마이그레이션하고 제1 컴퓨팅 디바이스의 메모리로부터의 증분 데이터를 제2 컴퓨팅 디바이스에서의 저장 디바이스에 병합한다. 병합은 제2 컴퓨팅 디바이스의 저장 디바이스에 대한 일괄 순차 디스크 쓰기들을 포함한다.One embodiment of the present invention provides a system that facilitates dynamic load-based merging. During operation, the system identifies incremental data in the memory of the first computing device. The incremental data includes an update to the reference data at the storage device of the second computing device. When the size of the incremental data exceeds the threshold value, the system selects a first server group from a plurality of server groups. The second computing device belongs to this first server group. The system then migrates data access requests from the first server group to the other server groups in the plurality of server groups and merges the incremental data from the memory of the first computing device into the storage device at the second computing device. The merge includes batch sequential disk writes to the storage device of the second computing device.

이 실시예의 변형예에서, 기준 데이터는 복수의 태블릿들로 분할되며, 태블릿이 기준 데이터의 비-중복 세그먼트이다.In a variation of this embodiment, the reference data is divided into a plurality of tablets, and the tablet is a non-overlapping segment of the reference data.

추가의 변형예에서, 복수의 서버 그룹들 중 각각의 서버 그룹은 기준 데이터의 각각의 태블릿의 사본을 포함한다.In a further variation, each server group of the plurality of server groups includes a copy of each tablet of reference data.

이 실시예의 변형예에서, 복수의 서버 그룹들로부터 제1 서버 그룹을 선택하는 단계는, 서버 그룹들의 시퀀스로부터 제1 서버 그룹을 식별하는 단계를 포함한다.In a variation of this embodiment, selecting a first server group from a plurality of server groups comprises identifying a first server group from a sequence of server groups.

추가의 변형예에서, 시스템은 증분 데이터의 병합이 각각의 서버 그룹에 대해 수행되었는지를 결정하고 증분 데이터의 병합이 수행되지 않은 서버 그룹을 선택한다.In a further variation, the system determines if a merge of incremental data has been performed for each server group and selects a group of servers for which no merge of incremental data has been performed.

이 실시예의 변형예에서, 시스템은 복수의 서버 그룹들 중 각각의 서버 그룹의 데이터 액세스 요청 트래픽 비율을 포함하는 트래픽 제어 테이블을 유지하고, 제1 서버 그룹에 대한 트래픽 비율이 트래픽 제어 테이블에서의 임계값에 도달하였는지를 결정한다. 결정된 경우, 시스템은 제1 서버 그룹이 병합을 위해 준비가 되어 있는지를 결정한다.In a variation of this embodiment, the system maintains a traffic control table containing the data access request traffic ratios of each of the plurality of server groups, and the traffic ratio for the first server group is greater than the threshold Value has been reached. If so, the system determines if the first server group is ready for merging.

이 실시예의 변형예에서, 시스템은 병합이 제1 서버 그룹에 대해 완료되는지를 결정한다. 결정된 경우, 시스템은 다른 서버 그룹들로부터 다시 제1 서버 그룹으로 데이터 액세스 요청들을 복원한다.In a variation of this embodiment, the system determines if the merge is complete for the first server group. If so, the system restores data access requests from the other server groups back to the first server group.

이 실시예의 변형예에서, 시스템은 제1 서버 그룹이 증분 데이터의 병합 동안 데이터 액세스 요청들을 서빙하기 위해 필요한지를 결정하고, 제1 서버 그룹에서의 컴퓨팅 디바이스들에 의한 리소스 소비가 조건을 충족시키는지의 여부를 결정한다.In a variation of this embodiment, the system determines whether the first server group is needed to serve data access requests during the merge of the incremental data, and whether the resource consumption by the computing devices in the first server group satisfies the condition .

추가의 변형예에서, 시스템은 제1 서버 그룹으로부터 서빙되는 데이터 액세스 요청들과 연관된 성능 레벨을 결정한다. 성능 레벨이 임계값 미만이면, 시스템은 증분 데이터의 병합을 일시중지시킨다.In a further variation, the system determines a performance level associated with data access requests served from the first server group. If the performance level is below the threshold, the system pauses the merge of the incremental data.

추가의 변형예에서, 시스템은 데이터 액세스 요청들을 서빙하기 위한 증분 데이터의 병합에 의해 점유된 리소스들을 해제시킨다.In a further variation, the system releases the resources occupied by the merge of the incremental data to serve the data access requests.

본원에 포함되고 출원서의 일부를 구성하는 본원에서의 첨부 도면들은, 본 출원의 여러 예시적인 실시예들을 도시하고, 본 출원에 대한 제한으로 해석되지 않는 명세서와 함께, 본 출원을 예시하는 역할을 한다. 도면들 중에서:
도 1a는 본 출원의 일 실시예에 따른, 증분 및 기준 데이터에 기초한 예시적인 데이터 관리를 도시한다.
도 1b는 본 출원의 일 실시예에 따른, 업데이트 및 저장 서버들에 기초한 예시적인 데이터 관리 시스템을 도시한다.
도 2는 본 출원의 일 실시예에 따른, 기준 데이터의 예시적인 태블릿들을 도시한다.
도 3a는 본 출원의 일 실시예에 따른, 병합 프로세스를 개시하게 하는 데이터 관리 시스템을 도시하는 흐름도를 나타낸다.
도 3b는 본 출원의 일 실시예에 따른, 데이터 관리 시스템의 오프-피크 병합 프로세스(off-peak merging process)를 도시하는 흐름도를 나타낸다.
도 3c는 본 출원의 일 실시예에 따른, 데이터 관리 시스템의 동적-제어식 병합 프로세스를 도시하는 흐름도를 나타낸다.
도 4는 본 출원의 일 실시예에 따른, 예시적인 데이터 관리 시스템의 개략적인 구조도이다.
도면들에서, 유사한 참조 번호들이 동일한 도면 엘리먼트들을 지칭한다.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this application, illustrate several exemplary embodiments of the present application and serve to illustrate the present application, along with the specification not being construed as a limitation on the present application . Among the drawings:
FIG. 1A illustrates exemplary data management based on incremental and reference data, in accordance with an embodiment of the present application.
1B illustrates an exemplary data management system based on update and storage servers, in accordance with one embodiment of the present application.
Figure 2 illustrates exemplary tablets of reference data, according to one embodiment of the present application.
FIGURE 3A illustrates a flow diagram illustrating a data management system for initiating a merge process, in accordance with one embodiment of the present application.
Figure 3B shows a flow diagram illustrating an off-peak merging process of a data management system, in accordance with one embodiment of the present application.
3C depicts a flow diagram illustrating a dynamic-controlled merging process of a data management system, in accordance with one embodiment of the present application.
4 is a schematic structural diagram of an exemplary data management system, in accordance with one embodiment of the present application.
In the drawings, like reference numerals refer to the same drawing elements.

본 발명의 실시예들은 액세스되고 있는 저장 서버들로부터 데이터 업데이트들을 우회(diverting)시킴으로써 데이터 액세스를 효율적으로 관리하는 문제를 해결한다. 데이터 액세스가 그들 저장 서버들에서 불가피하다면, 저장 서버로부터의 데이터는 저장 서버들에서의 리소스들이 이용 가능할 때 업데이트된다.Embodiments of the present invention solve the problem of efficiently managing data access by diverting data updates from the storage servers being accessed. If data access is unavoidable on their storage servers, the data from the storage server is updated when resources on the storage servers are available.

현존 기술들로, 데이터는 통상적으로 LSM 트리(Log-Structured Merge-Tree)에 저장된다. LSM 트리에서, 데이터는 시스템의 메모리 및 저장 디스크에서 다수의 레벨들로 일반적으로 분할된다. 데이터가 (예컨대, 사용자 동작으로 인해) 업데이트되면, 그 데이터는 시스템의 메모리 내에 쓰여진다. 그러나, 메모리에서의 데이터는 휘발성이다. 따라서, 시스템은 메모리의 업데이트된 데이터를 병합 프로세스를 통해 디스크 파일에 쓴다. 이 병합 프로세스는 데이터 액세스(즉, 데이터 판독)와는 보통 병렬로 수행된다. 병합 프로세스는 일괄 순차 디스크 쓰기들이다. 그러나, 이러한 병합 프로세스는 대량의 입출력(I/O) 리소스들을 통상적으로 소비하고, 저장 시스템의 정상적인 동작들(예컨대, 온라인 서비스들)의 스루풋 및 응답 시간에 직접적으로 영향을 미친다. 온라인 서비스가 시스템이 운영을 유지하는 서비스이다. 예를 들어, 사용자의 구매 레코드들의 가용성 및 접근성이다.With existing technologies, data is typically stored in a Log-Structured Merge-Tree. In the LSM tree, data is typically partitioned into multiple levels at the system ' s memory and storage disk. If the data is updated (e.g., due to user behavior), the data is written into the memory of the system. However, the data in the memory is volatile. Thus, the system writes the updated data in memory to the disk file through the merge process. This merging process is usually performed in parallel with data access (i.e., data reading). The merge process is batch sequential disk writes. However, this merging process typically consumes a large amount of input / output (I / O) resources and directly affects the throughput and response time of normal operations of the storage system (e.g., online services). Online service is a service that the system maintains operation. For example, the availability and accessibility of the user's purchase records.

이 문제를 해결하기 위해, 본 발명의 실시예들은 데이터 액세스 및 업데이트 동작들을 분리하고, 현재 업데이트되고 있는 저장 서버들로부터의 데이터 액세스 트래픽을 자동으로 우회함으로써 동적 부하 기반 병합 프로세스를 위한 시스템을 제공한다. 시스템은 데이터를 두 개의 세트들의 데이터, 즉 각각 데이터 업데이트(예컨대, 쓰기 동작들) 및 데이터 액세스(예컨대, 읽기 동작들)를 위한 기준 데이터 및 증분 데이터로 분할한다. 증분 데이터는 업데이트 서버의 메모리에 상주하고, 업데이트 동작들은 증분 데이터에 대해 수행된다. 한편, 기준 데이터는 저장 서버들의 디스크들에 저장된다. 기준 데이터는 높은 가용성을 용이하게 하는 다수의 저장 서버들에서의 다수의 사본을 일반적으로 갖는다. 업데이트 서버의 메모리 내에 쓰여진 데이터의 양이 임계값에 도달할 때, 병합 프로세스는 트리거된다. 그 메모리에서의 증분 데이터는 대응하는 저장 서버의 디스크 상의 기준 데이터에 병합된다.To solve this problem, embodiments of the present invention provide a system for a dynamic load-based merge process by separating data access and update operations and automatically bypassing data access traffic from currently being updated storage servers . The system divides the data into two sets of data, i.e., reference data for each data update (e.g., write operations) and data access (e.g., read operations) and incremental data. The incremental data resides in the memory of the update server, and the update operations are performed on the incremental data. On the other hand, the reference data is stored in the disks of the storage servers. The reference data typically has multiple copies at multiple storage servers to facilitate high availability. When the amount of data written into the memory of the update server reaches the threshold, the merge process is triggered. The incremental data in the memory is merged into the reference data on the disk of the corresponding storage server.

더욱이, 병합 프로세스로부터의 데이터 액세스의 분리를 보장하기 위해, 시스템은, 각각의 세트가 전체 기준 데이터를 유지하는, 저장 서버들의 적어도 두 개의 서버 그룹들을 유지한다. 병합 프로세스가 제1 그룹에 대해 수행될 때, 데이터 액세스 요청들은 제2 그룹에서 서빙된다. 제1 그룹에 대한 병합 프로세스의 완료 시, 데이터 액세스 요청들은 제1 그룹으로 우회되고 병합 프로세스는 제2 그룹에 대해 수행된다. 그 결과, 병합 프로세스 동안, 저장 서버들로부터의 데이터 액세스의 성능은 저해되지 않는다. 일부 환경들에서, 데이터 액세스 트래픽 또는 타임아웃 이벤트의 높은 볼륨으로 인해, 일부 데이터 액세스 요청들은 현재 병합되고 있는 그룹에서 서빙될 수 있다. 이러한 상황들하에서, 병합 프로세스의 영향을 줄이기 위해, 시스템은 저장 서버들의 부하를 모니터링하고, 병합 프로세스가 부하가 낮을 때에만 계속하는 것을 허용한다. 그렇지 않으면, 시스템은 과부하 방지 모드를 개시하고 병합 프로세스를 일시중지하여 병합 프로세스에 할당된 리소스들(예컨대, 네트워크, 프로세싱, 및 I/O 리소스들)을 복원한다.Moreover, to ensure separation of data access from the merge process, the system maintains at least two groups of servers of storage servers, each set holding the entire reference data. When the merge process is performed for the first group, the data access requests are served in the second group. Upon completion of the merge process for the first group, the data access requests are bypassed to the first group and the merge process is performed for the second group. As a result, during the merge process, the performance of data access from storage servers is not impaired. In some circumstances, due to the high volume of data access traffic or timeout events, some data access requests may be served in a group that is currently being merged. Under these circumstances, to reduce the impact of the merge process, the system monitors the load of the storage servers and allows the merge process to continue only when the load is low. Otherwise, the system initiates an overload protection mode and pauses the merge process to restore the resources (e.g., network, processing, and I / O resources) allocated to the merge process.

도 1a는 본 출원의 일 실시예에 따른, 증분 및 기준 데이터에 기초한 예시적인 데이터 관리를 도시한다. 이 예에서, 동적 부하 기반 데이터 병합을 위한 데이터 관리 시스템(100)이 데이터 액세스 및 업데이트 동작들의 분리를 용이하게 하도록 전개된다. 데이터는 업데이트 서버(102)의 메모리(112)에 상주하는 증분 데이터(122)를 포함한다고 가정한다. 일부 실시예들에서, 증분 데이터(122)는 B-트리로 편성될 수 있다. 한편, 기준 데이터(124)는 저장 서버들(104 및 106)의 디스크들(114 및 116)에 각각 상주한다. 기준 데이터는 디스크들 상에 저장되는 지속형 데이터이고 증분 데이터는 기준 데이터에 대한 업데이트(예컨대, 수정, 추가, 삭제 등)이다. 저장 서버들(104 및 106)은 각각 기준 데이터(124)의 비-중복 기준 데이터 블록들(126 및 128)을 호스팅할 수 있다. 데이터 블록들(126 및 128)은 함께 기준 데이터(124) 전체를 나타낸다.FIG. 1A illustrates exemplary data management based on incremental and reference data, in accordance with an embodiment of the present application. In this example, the data management system 100 for dynamic load-based data merge is deployed to facilitate separation of data access and update operations. It is assumed that the data includes incremental data 122 residing in memory 112 of update server 102. In some embodiments, the incremental data 122 may be organized into a B-tree. On the other hand, the reference data 124 resides on the disks 114 and 116 of the storage servers 104 and 106, respectively. The reference data is persistent data stored on the disks and the incremental data is an update (e.g., modification, addition, deletion, etc.) to the reference data. Storage servers 104 and 106 may host non-redundant reference data blocks 126 and 128 of reference data 124, respectively. The data blocks 126 and 128 together represent the entire reference data 124.

시스템(100)은 증분 데이터(122)를 생성하기 위해 메모리(112) 상의 기준 데이터(124)에 대한 업데이트들(예컨대, 쓰기 동작들)을 수행한다. 그 결과, 업데이트 프로세스 동안, 쓰기 동작들은 저장 서버들(104 및 106)에 직접적으로 적용되지 않는다. 따라서, 저장 서버들(104 및 106)은 클라이언트 디바이스에 대한 데이터 액세스를 용이하게 하면서 데이터 업데이트와 연관된 쓰기 동작들의 영향을 줄일 수 있다. 업데이트 서버(102)의 메모리(112) 내에 쓰여진 데이터의 양이 임계값에 도달할 때, 시스템(100)은 병합 프로세스를 트리거한다. 병합 프로세스는 디스크들(114 및/또는 116)에 대한 일괄 순차 디스크 쓰기들이다. 따라서, 병합 프로세스는 메모리(112)에서의 업데이트된 데이터를 저장 서버들(104 및/또는 106)의 디스크들(114 및/또는 116)에서의 기준 데이터 블록들(126 및/또는 128)에 각각 병합한다. 병합 프로세스 후, 증분 데이터(122)에서의 업데이트들은 기준 데이터(124)의 일부가 된다. 시스템(100)은 메모리(122) 상에서 임의의 후속하는 업데이트들을 수행한다.The system 100 performs updates (e.g., write operations) to the reference data 124 on the memory 112 to generate the incremental data 122. As a result, during the update process, write operations are not applied directly to the storage servers 104 and 106. Thus, storage servers 104 and 106 can reduce the impact of write operations associated with data updates while facilitating data access to client devices. When the amount of data written into the memory 112 of the update server 102 reaches a threshold value, the system 100 triggers the merge process. The merge process is batch sequential disk writes to disks 114 and / or 116. Thus, the merging process may be performed on the reference data blocks 126 and / or 128 in the disks 114 and / or 116 of the storage servers 104 and / or 106, respectively, And merges. After the merge process, updates in incremental data 122 become part of reference data 124. The system 100 performs any subsequent updates on the memory 122.

일부 실시예들에서, 병합 프로세스로부터 데이터 액세스의 분리를 보장하기 위해, 시스템(100)은 저장 서버들의 적어도 두 개의 그룹들을 유지하는데, 각각의 그룹은 기준 데이터(124) 전부를 유지한다. 도 1b는 본 출원의 일 실시예에 따른, 업데이트 및 저장 서버들에 기초한 예시적인 데이터 관리 시스템을 도시한다. 시스템(100)은 저장 서버들(104 및 106)을 서버 그룹(142)으로 그룹화할 수 있다. 시스템(100)은 저장 서버들(134 및 136)을 포함하는 다른 서버 그룹(144)을 유지할 수 있다. 그룹들(142 및 144) 둘 다는 기준 데이터(124) 전부를 호스팅한다. 이는 그룹들 간의 부하 균형을 허용하고 병합 프로세스로부터 데이터 액세스를 분리시킨다. 일부 실시예들에서, 그룹들(142 및 144)은 네트워크(150)(예컨대, 국부 또는 광역 네트워크)에 의해 분리되는, 별개의 로케이션들에 있을 수 있다. 업데이트 서버(102)는 네트워크(150)를 통해 그룹들(142 및 144)에 커플링될 수 있다.In some embodiments, to ensure separation of data access from the merge process, the system 100 maintains at least two groups of storage servers, each group holding all of the reference data 124. 1B illustrates an exemplary data management system based on update and storage servers, in accordance with one embodiment of the present application. The system 100 may group the storage servers 104 and 106 into a server group 142. The system 100 may maintain another server group 144 that includes storage servers 134 and 136. [ Both groups 142 and 144 host all of the reference data 124. This allows for load balancing between groups and separates data access from the merge process. In some embodiments, groups 142 and 144 may be in separate locations separated by network 150 (e.g., local or wide area networks). The update server 102 may be coupled to the groups 142 and 144 via the network 150.

시스템(100)은 그룹들(142 및 144) 간의 데이터 액세스의 분리와 병합 프로세스를 보장한다. 시스템(100)은 그룹들(142 및 144)을 병합 프로세스에 대한 제어 유닛들로서 사용하고 상이한 시간에 병합 프로세스를 수행한다. 병합 프로세스의 준비 스테이지에서, 시스템(100)은 병합 프로세스를 위한 그룹을 선택하고, 데이터 액세스 트래픽(예컨대, 데이터 액세스 요청들 및/또는 대응하는 데이터)을 다른 그룹들로 마이그레이션한다. 이런 식으로, 병합 프로세스와 온라인 서비스들은 서로로부터 분리된다. 시스템(100)이 그룹(142)에 대한 병합 프로세스를 수행할 때, 시스템(100)은 데이터 액세스 트래픽을 그룹(144)으로 우회시킨다. 예를 들어, 클라이언트 디바이스(160)가 데이터 액세스 요청(예컨대, 고객 레코드에 대한 요청)을 전송하면, 그 데이터 액세스 요청은 그룹(144)에서 서빙된다(예컨대, 대응하는 저장 서버는 요청된 데이터를 제공한다). 시스템(100)이 그룹(142)에 대한 병합 프로세스를 완료한 후, 시스템(100)은 데이터 액세스 트래픽을 그룹(142)으로 마이그레이션하고 그룹(144)에 대한 병합 프로세스를 개시한다. 클라이언트 디바이스(160)로부터의 데이터 액세스에 대한 후속 요청이 그룹(142)에서 서빙된다. 이 병합 프로세스는 오프-피크 병합 프로세스라고 지칭될 수 있다. 오프-피크 병합 프로세스는 온라인 서비스들의 성능에 대한 증분 데이터의 병합의 영향(예컨대, 저장 서버가 데이터 액세스 요청을 서빙하는데 걸린 시간)을 감소시킨다.System 100 ensures separation and merging processes of data access between groups 142 and 144. The system 100 uses the groups 142 and 144 as control units for the merge process and performs the merge process at different times. In the preparation stage of the merge process, the system 100 selects a group for the merge process and migrates data access traffic (e.g., data access requests and / or corresponding data) to other groups. In this way, the merge process and online services are separate from each other. When the system 100 performs the merge process for the group 142, the system 100 diverts the data access traffic to the group 144. For example, if client device 160 sends a data access request (e.g., a request for a customer record), the data access request is served in group 144 (e.g., to provide). After the system 100 completes the merge process for the group 142, the system 100 migrates the data access traffic to the group 142 and initiates the merge process for the group 144. Subsequent requests for data access from client device 160 are served in group 142. This merging process may be referred to as an off-peak merging process. The off-peak merge process reduces the impact of the merge of incremental data on the performance of online services (e. G., The time it took the serving server to serve the data access request).

일부 실시예들에서, 시스템(100)은 그룹들(142 및 144) 간의 데이터 액세스 트래픽 비율을 포함하는 트래픽 제어 테이블에 기초하여 그룹들(142 및 144) 간을 스위칭한다. 클라이언트 디바이스들(예컨대, 클라이언트 디바이스(160))로부터의 데이터 액세스에 대한 요청들은 비율에 기초하여 그룹들(142 및 144)에 분배된다. 시스템(100)은 하나의 그룹으로부터의 데이터 액세스 트래픽을 다른 그룹으로 점차적으로 마이그레이션한다. 이런 식으로, 트래픽 비율은 계속해서 하나의 그룹에 대해 증가하고 다른 그룹에서 감소한다. 예를 들어, 하나의 주어진 시간에, 비율이 50:50이면, 시스템(100)은 데이터 액세스 요청의 50%를 그룹(142)에게 그리고 다른 50%를 그룹(144)에게 포워딩한다. 병합 프로세스가 필요하다면, 시스템(100)은 시퀀스(예컨대, 그룹(142)이 첫 번째, 그룹(144)이 두 번째)에 기초하여 데이터 액세스 트래픽을 하나의 그룹으로부터 다른 그룹으로 마이그레이션하는 것을 시작한다. 그 결과, 그룹들(142 및 144) 간의 트래픽 비율은 계속 변화한다. 그룹에 대해 트래픽 비율이 영이 될 때, 그 그룹은 병합 프로세스를 위해 준비가 된다. 예를 들어, 그룹(142)에 대한 트래픽 비율이 영이 될 때, 시스템(100)은 각각의 데이터 액세스 요청을 그룹(144)으로 포워딩하고 있다. 따라서, 그룹(142)은 병합 프로세스를 위해 준비가 된다.In some embodiments, system 100 switches between groups 142 and 144 based on a traffic control table that includes data access traffic ratios between groups 142 and 144. Requests for data access from client devices (e.g., client device 160) are distributed to groups 142 and 144 based on a ratio. System 100 migrates data access traffic from one group to another group gradually. In this way, traffic ratios continue to increase for one group and decrease for the other group. For example, at a given time, if the ratio is 50: 50, the system 100 forwards 50% of the data access requests to the group 142 and another 50% to the group 144. [ If a merge process is required, the system 100 begins to migrate data access traffic from one group to another based on the sequence (e.g., group 142 first, group 144 second) . As a result, the traffic ratio between groups 142 and 144 continues to change. When the traffic rate for a group becomes zero, the group is ready for the merge process. For example, when the traffic rate for the group 142 is zero, the system 100 is forwarding each data access request to the group 144. Thus, the group 142 is ready for the merge process.

동일한 방식으로, 시스템(100)이 그룹(142)에 대한 병합 프로세스를 완료할 때, 시스템(100)은 그룹(144)으로부터의 데이터 액세스 트래픽을 그룹(144)으로 점차적으로 마이그레이션한다. 그 결과, 그룹들(142 및 144) 간의 트래픽 비율은 반대 방향으로 변화하기 시작한다. 그룹(144)에 대한 트래픽 비율이 영이 될 때, 시스템(100)은 각각의 데이터 액세스 요청을 그룹(142)으로 포워딩하고 있다. 따라서, 그룹(144)은 병합 프로세스를 위해 준비가 된다. 일부 실시예들에서, 업데이트 서버(102)는 증분 데이터(122)가 각각의 그룹(이 예에서의 그룹들(142 및 144))에서의 기준 데이터(124)에 병합되었는지의 여부를 결정한다. 증분 데이터(122)가 그룹들(142 및 144) 중 하나 이상의 그룹에서의 기준 데이터(124)에 병합되지 않았다면, 시스템(100)은 병합을 현재 필요로 하는 그룹을 선택한다. 병합 프로세스는 그룹(142)에 대해 완료되었고 그룹(144)에 대해 완료되지 않았다고 가정한다. 시스템(100)은 그러면 병합을 위해 그룹(144)을 선택한다. 증분 데이터(122)가 그룹들(142 및 144) 둘 다에서 기준 데이터(124)에 병합될 때, 시스템(100)은 업데이트 서버(102)의 메모리(112)로부터 증분 데이터(122)를 제거할 수 있다.In the same manner, when the system 100 completes the merge process for the group 142, the system 100 gradually migrates the data access traffic from the group 144 to the group 144. As a result, the traffic ratio between the groups 142 and 144 begins to change in the opposite direction. When the traffic rate for the group 144 is zero, the system 100 is forwarding each data access request to the group 142. Thus, the group 144 is ready for the merge process. In some embodiments, update server 102 determines whether incremental data 122 has been merged into reference data 124 in each group (groups 142 and 144 in this example). If the incremental data 122 is not merged into the reference data 124 in one or more of the groups 142 and 144, the system 100 selects the group that currently needs the merge. It is assumed that the merge process has been completed for group 142 and not for group 144. [ The system 100 then selects the group 144 for merging. The system 100 removes the incremental data 122 from the memory 112 of the update server 102 when the incremental data 122 is merged into the reference data 124 at both of the groups 142 and 144 .

일부 시나리오들에서, 오프-피크 병합 프로세스는 적용 가능할 수 없다. 하나의 이러한 시나리오에서, 타임 아웃 이벤트가 그룹에 대한 병합 프로세스에 대해 발생할 수 있다. 예를 들어, 그룹(142)에 대한 병합 프로세스에 대해 할당된 시간은 병합 프로세스의 완료 없이 지나갈 수 있다. 그 결과, 시스템(100)은 그룹(144)으로부터의 트래픽 그룹(142)으로 우회하는 것을 시작할 수 있다. 다른 이러한 시나리오에서, 그룹(142)에 대한 병합 프로세스 동안, 그룹(144)은 모든 데이터 액세스 요청들을 서빙하지 못할 수 있다. 따라서, 시스템(100)은 온라인 서비스들의 최대 가용성(예컨대, 데이터의 접근성)을 보장하기 위해, 심지어 병합 프로세스 동안, 일부 데이터 액세스 요청들을 그룹(142)으로 포워딩할 수 있다.In some scenarios, the off-peak merge process may not be applicable. In one such scenario, a timeout event may occur for the merge process for the group. For example, the time allocated for the merge process for group 142 may pass without completion of the merge process. As a result, the system 100 may begin to bypass the traffic group 142 from the group 144. In other such scenarios, during the merge process for group 142, group 144 may not be able to serve all data access requests. Thus, the system 100 may forward some data access requests to the group 142, even during the merge process, to ensure maximum availability of online services (e.g., data accessibility).

이들 두 개의 시나리오들에서, 데이터 액세스 및 병합 프로세스는 그룹들(142 및 144) 간에 분리되지 않을 수 있다. 일부 실시예들에서, 시스템(100)은, 데이터 액세스에 대한 병합 프로세스의 영향을 효과적으로 감소시키기 위해, 각각의 그룹의 저장 서버들의 부하를 모니터링한다. 그 부하가 임계값에 도달하면, 시스템은 과부하 방지 모드를 개시한다. 이 모드에서, 시스템(100)은 병합 프로세스를 일시중지하고, 병합 프로세스를 위해 할당된 리소스들을 해제시킨다. 예를 들어, 병합 프로세스가 병합 스레드에 의해 실행된다면, 시스템(100)은 스레드의 동작들을 일시중지시키고, 그 스레드에 할당된 리소스들, 이를테면 네트워크, 프로세싱, 및 I/O 리소스들을 해제시킨다. 시스템(100)이 그 부하가 낮은 것으로 검출할 때, 시스템(100)은 병합 프로세스를 재개할 수 있다. 이런 식으로, 시스템(100)은 온라인 서비스들을 병합 동작들보다 더 높은 우선순위로 제공함으로써, 클라이언트 디바이스들의 데이터 액세스 요청들에 대해 서비스 품질(quality of service)(QoS)을 보장한다.In these two scenarios, the data access and merging process may not be separate between the groups 142 and 144. In some embodiments, the system 100 monitors the load of the storage servers in each group to effectively reduce the impact of the merge process on data access. When the load reaches the threshold, the system initiates an overload protection mode. In this mode, the system 100 suspends the merge process and releases the resources allocated for the merge process. For example, if the merge process is executed by a merge thread, the system 100 suspends the operations of the thread and releases the resources allocated to that thread, such as network, processing, and I / O resources. When the system 100 detects that the load is low, the system 100 may resume the merge process. In this way, the system 100 ensures quality of service (QoS) for data access requests of client devices by providing online services at a higher priority than the merge operations.

도 2는 본 출원의 일 실시예에 따른, 기준 데이터의 예시적인 태블릿들을 도시한다. 이 예에서, 기준 데이터(124)는 복수의 비-중복 데이터 세그먼트들로 분할된다. 그런 데이터 세그먼트는 태블릿이라고 지칭될 수 있다. 저장 서버에서의 데이터 블록이 하나 이상의 태블릿들을 포함할 수 있다. 예를 들어, 기준 데이터(124)의 태블릿들(202, 206, 및 208)이 저장 서버(104)에서 호스팅되는 데이터 블록(126)에 있고, 기준 데이터(124)의 태블릿들(204, 210, 및 212)이 저장 서버(106)에서 호스팅되는 데이터 블록(128)에 있다.Figure 2 illustrates exemplary tablets of reference data, according to one embodiment of the present application. In this example, the reference data 124 is divided into a plurality of non-overlapping data segments. Such a data segment may be referred to as a tablet. A block of data at the storage server may include one or more tablets. For example, if the tablets 202, 206, and 208 of the reference data 124 are in a data block 126 hosted on the storage server 104 and the tablets 204, 210, And 212 are in the data block 128 hosted on the storage server 106.

병합 프로세스의 높은 가용성 및 분리를 보장하기 위해, 이들 태블릿들은 그룹(144)에서 또한 호스팅된다. 태블릿들(202 및 210)은 저장 서버(134)에서 호스팅되는 데이터 블록(222)에 있고, 태블릿들(204, 206, 208, 및 212)은 저장 서버(136)에서 호스팅되는 데이터 블록(224)에 있다. 다르게 말하면, 기준 데이터(124)는, 전체적으로, 비-중복 태블릿들(202, 204, 206, 208, 210, 및 212)로 분할되고, 그 태블릿들의 각각은 상이한 그룹들에서의 복수의 저장 서버들에 저장된다. 비록 각각의 그룹이 기준 데이터(124)의 각각의 태블릿을 포함하지만, 그룹은 태블릿의 하나의 사본을 호스팅할 수 있다는 것에 주의해야 한다. 그 결과, 그룹이 모든 태블릿들의 모든 사본들의 세트의 하나의 서브세트를 포함할 수 있다.To ensure high availability and isolation of the merge process, these tablets are also hosted in group 144. Tablets 202 and 210 are in data block 222 hosted at storage server 134 and tablets 204,206, 208 and 212 are in data block 224 hosted at storage server 136. Tablets 202, . In other words, the reference data 124 is entirely divided into non-redundant tablets 202, 204, 206, 208, 210, and 212, each of which has a plurality of storage servers / RTI > It should be noted that although each group includes each tablet of reference data 124, the group may host one copy of the tablet. As a result, the group may contain a single subset of the set of all copies of all the tablets.

일부 실시예들에서, 시스템(100)은 경합 상태(race condition)를 피하기 위해 업데이트된 데이터(즉, 쓰기 동작들)의 구획화(compartmentalization)를 사용한다. 업데이트 서버(102)의 메모리(112)에 쓰여진 데이터의 양이 임계값에 도달할 때, 시스템(100)은 병합 프로세스를 위한 데이터량을 임의의 후속하는 업데이트들로부터 분리한다. 이런 식으로, 병합 프로세스 동안, 시스템(100)은 동일한 업데이트 세트가 각각의 그룹에서의 기준 데이터(124)에 병합되는 것을 보장한다. 시스템(100)은 그룹들 간의 경합 상태를 피하기 위해 분산된 커미트(distributed commit)를 또한 사용할 수 있다. 병합 프로세스가 완료될 때, 시스템(100)은 대응하는 저장 서버로부터 그 서버에 대한 병합 프로세스가 완료되었다는 확인을 수신한다. 그룹들(142 및 144) 둘 다에서 각각의 저장 서버로부터 확인들을 수신할 시, 시스템(100)은 업데이트들을 각각의 저장 서버에게 커미팅한다. 그렇지 않으면, 시스템(100)은 각각의 저장 서버에서 이전의 커미팅된 기준 데이터로 복귀(roll back)할 수 있다. 이는 성공하지 못한 병합 프로세스로 인한 저장 서버들과 그룹들 간의 데이터 불일치를 방지한다.In some embodiments, the system 100 uses compartmentalization of updated data (i.e., write operations) to avoid a race condition. When the amount of data written to the memory 112 of the update server 102 reaches a threshold value, the system 100 separates the amount of data for the merge process from any subsequent updates. In this way, during the merge process, the system 100 ensures that the same set of updates is merged into the reference data 124 in each group. The system 100 may also use distributed commits to avoid contention between groups. When the merge process is completed, the system 100 receives confirmation from the corresponding storage server that the merge process for that server has been completed. Upon receiving acknowledgments from each storage server in both groups 142 and 144, system 100 commits updates to each storage server. Otherwise, the system 100 may roll back to the previously comitted reference data at each storage server. This prevents data inconsistency between storage servers and groups due to the unsuccessful merging process.

도 3a는 본 출원의 일 실시예에 따른, 병합 프로세스를 개시하게 하는 데이터 관리 시스템을 도시하는 흐름도를 나타낸다. 동작 동안, 시스템은 업데이트 서버에서 증분 데이터를 모니터링한다(동작 S301). 시스템은 업데이트 서버의 메모리에 쓰여진 증분 데이터가 임계값 이상인지(또는 임계값을 초과하는지)를 체크한다(동작 S302). 증분 데이터의 양은 메모리에 쓰여진 바이트들의 수에 기초할 수 있다. 증분 데이터가 임계값보다 크거나 같지 않으면, 시스템 증분 데이터를 계속 모니터링한다(동작 S301). 증분 데이터가 임계값보다 크거나 같으면, 증분 데이터는 병합 프로세스를 위해 준비가 된다. 시스템은 그러면 오프-피크 병합 프로세스가 허용되는지의 여부를 체크한다(동작 S303).FIGURE 3A illustrates a flow diagram illustrating a data management system for initiating a merge process, in accordance with one embodiment of the present application. During operation, the system monitors the incremental data at the update server (operation S301). The system checks whether the incremental data written to the memory of the update server is greater than or equal to the threshold value (operation S302). The amount of incremental data may be based on the number of bytes written to the memory. If the incremental data is not greater than or equal to the threshold, system increment data is continuously monitored (operation S301). If the incremental data is greater than or equal to the threshold, the incremental data is ready for the merge process. The system then checks whether the off-peak merge process is allowed (operation S303).

시스템은 오프-피크 병합 프로세스가 허용되는지의 여부를 결정하기 위해 이전의 병합 동작들의 타임아웃 이벤트들 및 각각의 그룹의 저장 서버들에 대한 부하를 체크한다. 오프-피크 병합 프로세스가 허용된다면, 시스템은 업데이트 서버로부터 대응하는 저장 서버들로의 오프-피크 병합 프로세스를 개시한다(동작 S304). 그렇지 않으면, 시스템은 업데이트 서버로부터 대응하는 저장 서버들로의 동적-제어식 병합 프로세스를 개시한다(동작 S305). 도 3a가 병합 프로세스의 단지 하나의 반복만을 예시하더라도, 시스템은 병합 프로세스의 완료 후 업데이트 서버에서 증분 데이터를 모니터링하는 것(동작 S301)을 계속한다는 것에 주의해야 한다. 이는 메모리에 쓰여진 데이터의 양이 임계값에 도달할 때마다, 시스템은 병합 프로세스를 개시하는 것을 보장한다.The system checks the timeout events of the previous merge operations and the load on the storage servers of each group to determine whether the off-peak merge process is allowed. If the off-peak merge process is allowed, the system initiates an off-peak merge process from the update server to the corresponding storage servers (act S304). Otherwise, the system initiates a dynamic-controlled merge process from the update server to the corresponding storage servers (act S305). It should be noted that although Fig. 3a only illustrates only one iteration of the merge process, the system continues to monitor incremental data at the update server after completion of the merge process (act S301). This ensures that whenever the amount of data written to the memory reaches a threshold, the system initiates the merge process.

도 3b는 본 출원의 일 실시예에 따른, 데이터 관리 시스템의 오프-피크 병합 프로세스를 도시하는 흐름도를 나타낸다. 동작 동안, 시스템은 저장 서버 그룹들에 대한 병합 시퀀스(또는 병합 순서)를 결정한다(동작 S331). 도 1b의 예에서, 병합 시퀀스는 그룹(142)이 첫 번째이고 그룹(144)이 두 번째일 수 있거나, 또는 그룹(144)이 첫 번째이고 그룹(142)이 두 번째일 수 있다. 시스템은 그 다음에 그 시퀀스로부터 그룹을 순차적으로 선택한다(동작 S332). 예를 들어, 시퀀스가 그룹(142)이 첫 번째라고 나타낸다면, 시스템(100)은 그룹(142)을 선택한다. 시스템은 데이터 액세스 트래픽을 다른 그룹(들)으로 (예컨대, 그룹(144)으로) 점차적으로 마이그레이션한다(동작 S333).Figure 3B shows a flow diagram illustrating an off-peak merging process of a data management system, in accordance with one embodiment of the present application. During operation, the system determines a merge sequence (or merge order) for the storage server groups (operation S331). In the example of FIG. 1B, the merge sequence may be that the group 142 is the first and the group 144 is the second, or the group 144 may be the first and the group 142 may be the second. The system then selects the group sequentially from that sequence (act S332). For example, if the sequence indicates that the group 142 is the first, the system 100 selects the group 142. The system gradually migrates the data access traffic to another group (s) (e.g., to group 144) (act S333).

시스템은 선택된 그룹이 병합을 위해 준비가 되어 있는지를 체크한다(동작 S334). 일부 실시예들에서, 시스템은 각각의 그룹의 데이터 액세스 트래픽 비율을 포함하는 트래픽 제어 테이블을 유지한다. 선택된 그룹에 대한 트래픽 비율이 영이 되면, 시스템은 선택된 그룹이 병합 프로세스를 위해 준비가 된 것으로 간주한다. 선택된 그룹이 병합을 위해 준비가 되지 않으면, 시스템은 계속해서 데이터 액세스 트래픽을 다른 그룹(들)으로 점차적으로 마이그레이션한다(동작 S333). 선택된 그룹이 병합을 위해 준비가 되어 있다면, 시스템은 선택된 그룹에서 저장 서버들을 식별한다(동작 S335). 시스템은 증분 데이터 식별된 저장 서버들에서의 대응하는 태블릿들에 병합한다(동작 S336). 예를 들어, 증분 데이터(122)의 일부가 태블릿(202)에서의 기준 데이터 세그먼트에 대한 업데이트들을 포함한다면, 시스템(100)은 증분 데이터(122)의 해당 일부와 저장 서버(104)에서의 태블릿(202)을 병합한다.The system checks if the selected group is ready for merging (operation S334). In some embodiments, the system maintains a traffic control table that includes the data access traffic ratios of each group. If the traffic rate for the selected group becomes zero, the system considers the selected group to be ready for the merge process. If the selected group is not ready for merging, the system will continue to migrate the data access traffic to another group (s) gradually (act S333). If the selected group is ready for merging, the system identifies storage servers in the selected group (operation S335). The system merges into corresponding tablets at the incremental data identified storage servers (act S336). For example, if a portion of the incremental data 122 includes updates to the reference data segment at the tablet 202, then the system 100 may determine that the corresponding portion of the incremental data 122, (202).

시스템은 병합 프로세스가 선택된 그룹에 대해 완료되었는지를 체크한다(동작 S337). 예를 들어, 증분 데이터(122)의 일부가 태블릿들(202, 204, 210, 및 212)에서의 기준 데이터 세그먼트들에 대한 업데이트들을 포함한다면, 시스템(100)이 증분 데이터(122)와 그룹(142)(또는 그룹(144))에서 호스팅되는 태블릿들(202, 204, 210, 및 212)을 병합하는 것을 완료할 때, 병합 프로세스는 그룹(142)에 대해 완료된다. 병합 프로세스가 완료되지 않으면, 시스템은 계속해서 현재 증분 데이터 세트를 식별된 저장 서버들에서의 대응하는 태블릿들에 병합한다(동작 S336). 이는 병합 프로세스 동안 증분 데이터의 구획화를 허용한다. 임의의 후속하는 증분 데이터가 다음의 병합 프로세스에 병합된다. 병합 프로세스가 완료되면, 시스템은 선택된 그룹에 대한 데이터 액세스 트래픽을 점차적으로 복원한다(동작 S338). 시스템은 그 다음에 모든 그룹들이 병합되었는지의 여부를 체크한다(동작 S339). 아니라면, 시스템은 시퀀스에서부터 다음 그룹을 순차적으로 선택한다(동작 S332).The system checks whether the merge process has been completed for the selected group (operation S337). For example, if a portion of the incremental data 122 includes updates to the reference data segments at the tablets 202, 204, 210, and 212, The merge process is completed for the group 142 when it finishes merging the tablets 202, 204, 210, and 212 hosted in the group 142 (or group 144). If the merge process is not complete, the system continues to merge the current incremental data set into the corresponding tablets at the identified storage servers (act S336). This allows compartmentalization of incremental data during the merge process. Any subsequent incremental data is merged into the next merge process. When the merge process is complete, the system gradually restores data access traffic for the selected group (operation S338). The system then checks whether all the groups have been merged (operation S339). If not, the system sequentially selects the next group from the sequence (operation S332).

도 3c는 본 출원의 일 실시예에 따른, 데이터 관리 시스템의 동적-제어식 병합 프로세스를 도시하는 흐름도를 나타낸다. 동작 동안, 시스템은 선택된 그룹의 저장 서버들을 식별한다(동작 S351). 시스템은 현재 트래픽 부하 또는 이용 가능한 리소스들에 기초하여 그룹을 선택할 수 있다. 시스템은 저장 서버들의 리소스 소비를 체크하고(동작 S352) 리소스 소비가 병합 프로세스의 개시 조건을 충족시키는지의 여부를 체크한다(동작 S353). 개시 조건은 리소스 소비가 임계값을 충족시키는지의 여부일 수 있다. 이러한 리소스들의 예들은, 네트워크 리소스들, 프로세싱 리소스들(예컨대, 중앙 프로세싱 유닛(CPU) 사이클들), 및 I/O 리소스들을 비제한적으로 포함한다.3C depicts a flow diagram illustrating a dynamic-controlled merging process of a data management system, in accordance with one embodiment of the present application. During operation, the system identifies the storage servers of the selected group (operation S351). The system may select a group based on the current traffic load or available resources. The system checks the resource consumption of the storage servers (operation S352) and checks whether the resource consumption satisfies the start condition of the merge process (operation S353). The start condition may be whether or not resource consumption meets a threshold value. Examples of such resources include, but are not limited to, network resources, processing resources (e.g., central processing unit (CPU) cycles), and I / O resources.

리소스 소비가 개시 조건을 충족시키지 않는다면, 시스템은 계속해서 저장 서버들의 리소스 소비를 체크한다(동작 S352). 리소스 소비가 개시 조건을 충족시킨다면, 시스템은 병합될 현재 증분 데이터 세트를 식별한다(동작 S354). 병합 프로세스가 현재 증분 데이터 세트에 대해서만 행해지므로, 병합 프로세스에 대한 리소스 할당은 해당 현재 세트에 대해 행해진다. 예를 들어, 병합 프로세스가 병합 스레드를 사용하여 실행되면, 병합 스레드는 현재 증분 데이터 세트에 대해서만 발행되고, 시스템은 해당 세트에 대해서만 리소스들을 할당한다. 시스템은 다음의 증분 데이터 세트에 대해 다음의 병합 스레드를 발행하고, 따라서, 해당 다음 스레드에 대해 리소스들을 할당한다. 이 "하나씩(one-by-one)" 접근법은 저장 서버들 상의 부하가 낮아야만 다음의 병합 스레드가 발행하는 것을 보장한다.If the resource consumption does not satisfy the start condition, the system continues to check the resource consumption of the storage servers (act S352). If resource consumption meets the start condition, the system identifies the current incremental data set to be merged (operation S354). Since the merge process is currently done only for the incremental data set, the resource allocation for the merge process is done for that current set. For example, if the merge process is run using a merge thread, the merge thread is only issued for the current incremental data set, and the system allocates resources only for that set. The system issues the next merge thread for the next incremental data set and thus allocates resources for the next thread. This " one-by-one " approach ensures that the next merge thread issues only when the load on the storage servers is low.

병합될 현재 증분 데이터 세트를 식별할 시, 시스템은 그 다음에 식별된 저장 서버들에 대한 현재 증분 데이터 세트의 병합 프로세스를 개시한다(동작 S355). 시스템은 온라인 서비스들의 성능에 관한 데이터를 수집한다(동작 S356). 이러한 데이터의 예들은, 요청 스루풋, 응답 레이턴시, 및 요청 큐잉을 비제한적으로 포함한다. 시스템은 온라인 서비스들의 성능 레벨이 대응하는 임계 레벨 미만인지를 체크한다(동작 S357). 예를 들어, 시스템은 응답 레이턴시가 임계 시간을 초과하는지 그리고/또는 요청 큐의 길이가 임계 길이를 초과하는지를 체크할 수 있다.Upon identifying the current incremental data set to be merged, the system then initiates the merging process of the current incremental data set for the identified storage servers (act S355). The system collects data regarding performance of online services (operation S356). Examples of such data include, but are not limited to, request throughput, response latency, and request queuing. The system checks whether the performance level of the online services is less than the corresponding threshold level (operation S357). For example, the system may check whether the response latency exceeds the threshold time and / or the length of the request queue exceeds the critical length.

성능 레벨이 임계 레벨 미만이면, 시스템은 과부하 방지 모드를 개시하고 병합 프로세스를 일시중지하고(동작 S358) 계속해서 온라인 서비스들의 성능에 관한 데이터를 수집한다(동작 S356). 일부 실시예들에서, 시스템은 과부하 방지 모드에서의 병합 프로세스를 종료한다. 성능 레벨이 임계 레벨 미만이 아니면, 병합 프로세스는 온라인 서비스들의 성능 레벨을 심각하게 저해하지 않는다. 시스템은 그 다음에 현재 증분 데이터 세트에 대한 병합 프로세스를 완료(예컨대, 재개)한다(동작 S359). 그러나, 시스템이 과부하 방지 모드에서 병합 프로세스를 완료하였다면, 시스템은 온라인 서비스들의 성능 레벨이 더 이상 임계 레벨 미만이 아닐 때 병합 프로세스를 재시작할 수 있다.If the performance level is below the threshold level, the system initiates an overload protection mode, suspends the merge process (operation S358), and continues to collect data on the performance of online services (operation S356). In some embodiments, the system terminates the merge process in the overload protection mode. If the performance level is not below the threshold level, the merge process does not seriously hinder the performance level of the online services. The system then completes (e. G., Resumes) the merge process for the current incremental data set (operation S359). However, if the system has completed the merge process in the overload protection mode, the system can restart the merge process when the performance level of the online services is no longer below the threshold level.

도 4는 본 출원의 일 실시예에 따른, 예시적인 데이터 관리 시스템의 개략적인 구조도이다. 데이터 관리 시스템(400)이 프로세서(402), 메모리(404), 및 저장 디바이스(420)를 포함할 수 있다. 저장 디바이스(420)는 통상적으로, 위에서 설명된 방법들을 수행하기 위해 메모리(404) 내로 로딩되고 프로세서(402)에 의해 실행될 수 있는 명령들을 저장한다. 하나의 실시예에서, 저장소(420)에서의 명령들은 선택 모듈(422), 마이그레이션 모듈(424), 병합 모듈(426), 및 제어 모듈(428)을 구현할 수 있는데 그 모듈들의 모두는 다양한 수단들을 통해 서로 통신할 수 있다.4 is a schematic structural diagram of an exemplary data management system, in accordance with one embodiment of the present application. The data management system 400 may include a processor 402, a memory 404, and a storage device 420. Storage device 420 typically stores instructions that may be loaded into memory 404 and executed by processor 402 to perform the methods described above. In one embodiment, the instructions in the repository 420 may implement a selection module 422, a migration module 424, a merge module 426, and a control module 428, all of which may be implemented by various means Can communicate with each other.

일부 실시예들에서, 모듈들(422, 424, 426, 및 428)은 하드웨어에서 부분적으로 또는 전체적으로 구현될 수 있고 프로세서(402)의 일부일 수 있다. 게다가, 일부 실시예들에서, 시스템은 별도의 프로세서와 메모리를 포함하지 않을 수 있다. 대신, 그것들의 특정 태스크들을 수행하는 것 외에도, 모듈들(422, 424, 426, 및 428)은, 따로따로 또는 협력하여, 특수 목적 컴퓨테이션 엔진들의 일부일 수 있다.In some embodiments, modules 422, 424, 426, and 428 may be implemented partially or entirely in hardware and may be part of processor 402. In addition, in some embodiments, the system may not include a separate processor and memory. Instead, in addition to performing their specific tasks, modules 422, 424, 426, and 428, either separately or in cooperation, may be part of special purpose computation engines.

저장소(420)는 프로세서(402)에 의해 실행될 프로그램들을 저장한다. 구체적으로는, 저장소(420)는 동적 부하 기반 병합을 사용한 효율적인 데이터 관리를 위한 시스템(애플리케이션)을 구현하는 프로그램을 저장한다. 동작 동안, 애플리케이션 프로그램은 저장소(420)로부터 메모리(404) 속에 로딩되고 프로세서(402)에 의해 실행될 수 있다. 그 결과, 시스템(400)은 위에서 설명된 기능들을 수행할 수 있다. 시스템(400)은 옵션적인 디스플레이(412), 키보드(414), 및 포인팅 디바이스(416)에 추가로 커플링될 수 있고, 하나 이상의 네트워크 인터페이스들을 통해 네트워크(410)에 커플링될 수 있다.The storage 420 stores programs to be executed by the processor 402. Specifically, the repository 420 stores a program that implements a system (application) for efficient data management using dynamic load-based merging. During operation, an application program may be loaded into memory 404 from storage 420 and executed by processor 402. [ As a result, the system 400 may perform the functions described above. The system 400 may be further coupled to the optional display 412, the keyboard 414, and the pointing device 416 and coupled to the network 410 via one or more network interfaces.

동작 동안, 선택 모듈(422)은 그룹들의 시퀀스를 유지하고, 그 시퀀스로부터 그룹을 선택한다. 선택 모듈(422)은 병합 프로세스를 필요로 하는 저장 서버를 선택한다. 선택 모듈(422)은 병합 프로세스가 그룹에 대해 수행되었는지를 또한 결정한다. 마이그레이션 모듈(424)은 선택된 그룹으로부터의 데이터 액세스 트래픽을 다른 그룹들로 마이그레이션한다. 일부 실시예들에서, 마이그레이션 모듈(424)은 그룹들에 대한 트래픽 제어 테이블을 유지한다. 그룹에 대한 트래픽 비율이 영이 될 때, 마이그레이션 모듈(424)은 그 그룹이 마이그레이션 프로세스를 위해 준비가 되어 있다고 결정한다. 병합 프로세스의 완료 시, 마이그레이션 모듈(424)은 그룹에 대해 다시 데이터 액세스 트래픽을 복원한다.During operation, selection module 422 maintains a sequence of groups and selects a group from the sequence. Selection module 422 selects a storage server that requires a merge process. Selection module 422 also determines if the merge process was performed for the group. Migration module 424 migrates data access traffic from selected groups to other groups. In some embodiments, the migration module 424 maintains a traffic control table for the groups. When the traffic rate for the group becomes zero, the migration module 424 determines that the group is ready for the migration process. Upon completion of the merge process, migration module 424 recovers data access traffic back to the group.

병합 모듈(426)은, 데이터 액세스 트래픽이 선택된 그룹에서 마이그레이션된 후, 업데이팅 서버로부터의 증분 데이터를 저장 서버에서의 기준 데이터의 하나 이상의 태블릿들에 병합한다. 제어 모듈(428)은, 병합 프로세스 동안, 임의의 데이터 액세스 트래픽이 현재 병합되고 있는 그룹에 의해 프로세싱되어야 하는지의 여부를 결정한다. 제어 모듈(428)은, 리소스 소비 상태가 개시 조건을 충족시킨다면, 도 3c와 연계하여 설명된 바와 같이, 당해 그룹들에 대해 동적-제어식 병합 프로세스를 개시할 수 있다. 예를 들어, 제어 모듈(424)은 병합 프로세스를 일시중지(또는 종료)하고, 필요하다면, 재개(또는 재시작)할 수 있다.Merge module 426 merges the incremental data from the updating server into one or more tablets of reference data at the storage server after the data access traffic is migrated from the selected group. The control module 428 determines, during the merge process, whether any data access traffic should be processed by the group that is currently merged. Control module 428 may initiate a dynamic-controlled merge process for the groups, as described in conjunction with Figure 3c, if the resource consumption state satisfies the start condition. For example, control module 424 may suspend (or terminate) the merge process and, if necessary, resume (or restart).

본원의 상세한 설명에서 설명되는 데이터 구조들 및 컴퓨터 명령들은, 컴퓨터 시스템에 의한 사용을 위한 코드 및/또는 데이터를 저장할 수 있는 임의의 디바이스 또는 매체일 수 있는 컴퓨터 판독가능 저장 매체 상에 통상 저장된다. 컴퓨터 판독가능 저장 매체는, 휘발성 메모리, 비휘발성 메모리, 디스크 드라이브들, 자기 테이프, CD들(compact discs), DVD들(digital versatile discs 또는 digital video discs)과 같은 자기적 및 광학적 저장 디바이스들, 또는 지금 알려진 또는 나중에 개발되는 컴퓨터 판독가능 매체들을 저장할 수 있는 다른 매체들을 비제한적으로 포함한다.The data structures and computer instructions described in the present description are typically stored on a computer readable storage medium, which may be any device or medium capable of storing code and / or data for use by a computer system. Computer readable storage media include magnetic and optical storage devices such as volatile memory, non-volatile memory, disk drives, magnetic tape, compact discs, digital versatile discs or digital video discs, And other media that can store computer readable media now known or later developed.

상세한 설명 구역에서 설명되는 방법들 및 프로세스들은, 위에서 설명된 바와 같은 컴퓨터 판독가능 저장 매체에 저장될 수 있는 코드 및/또는 데이터로서 구체화될 수 있다. 컴퓨터 시스템이 컴퓨터 판독가능 저장 매체 상에 저장된 코드 및/또는 데이터를 읽고 실행할 때, 컴퓨터 시스템은 데이터 구조들 및 코드로서 구체화된 그리고 컴퓨터 판독가능 저장 매체 내에 저장된 방법들 및 프로세스들을 수행한다.The methods and processes described in the Detailed Description section may be embodied as code and / or data that may be stored in a computer-readable storage medium as described above. When a computer system reads and executes code and / or data stored on a computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored in a computer-readable storage medium.

더욱이, 본 명세서에서 설명되는 방법들 및 프로세스들은 하드웨어 모듈들 또는 장치 내에 포함될 수 있다. 이들 모듈들 또는 장치는, 주문형 집적회로(application-specific integrated circuit)(ASIC) 칩, 필드-프로그램가능 게이트 어레이(field-programmable gate array)(FPGA), 특정 소프트웨어 모듈 또는 한 조각의 코드를 특정 시간에 실행하는 전용 또는 공유된 프로세서, 및/또는 지금 알려진 또는 나중에 개발되는 다른 프로그램가능 로직 디바이스들을 비제한적으로 포함할 수 있다. 하드웨어 모듈들 또는 장치가 활성화될 때, 그것들은 그것들 내에 포함된 방법들 및 프로세스들을 수행한다.Moreover, the methods and processes described herein may be embodied in hardware modules or devices. These modules or devices may be implemented as application specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), specific software modules, , And / or other programmable logic devices that are now known or later developed. When hardware modules or devices are activated, they perform the methods and processes contained within them.

위의 설명은 본 기술분야의 임의의 통상의 기술자가 실시예들을 만들고 사용하는 것을 가능하게 하기 위해 제시되고, 특정 응용 및 그것의 요건들의 맥락에서 제공된다. 본 실시예들에 대한 다양한 변형예들은 본 기술분야의 통상의 기술자들에게 쉽사리 명확하게 될 것이고, 본원에서 정의된 일반 원리들은 본 개시내용의 정신 또는 범위로부터 벗어남이 없이 다른 실시예들 및 응용들에 적용될 수 있다. 따라서, 본 발명은 도시된 실시예들로 제한되지 않고, 본원에서 개시된 원리들 및 특징들과 일치하는 가장 넓은 범위가 부여되는 것이다.The foregoing description is presented to enable any person skilled in the art to make and use embodiments and is provided in the context of a particular application and its requirements. Various modifications to these embodiments will be readily apparent to those of ordinary skill in the art, and the generic principles defined herein may be resorted to by those skilled in the art without departing from the spirit or scope of the disclosure, Lt; / RTI > Accordingly, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.

Claims (21)

동적 부하 기반 병합(dynamic load-based merging)을 용이하게 하는 컴퓨터 구현 방법으로서,
복수의 서버 그룹 내의 각각의 저장 디바이스에 기준 데이터를 저장하는 단계;
증분 데이터(incremental data)의 양이 임계값에 다다를 때까지 제1 컴퓨팅 디바이스의 메모리 디바이스에 상기 증분 데이터를 저장하는 단계 - 상기 증분 데이터는 상기 복수의 서버 그룹 중 제1 서버 그룹의 제2 컴퓨팅 디바이스의 저장 디바이스에서의 기준 데이터와 관련된 업데이트된 데이터를 포함함 - ;
상기 증분 데이터의 양이 상기 임계값을 초과하는지를 결정하는 단계;
상기 증분 데이터의 양이 상기 임계값을 초과하는 것에 응답하여, 상기 복수의 서버 그룹으로부터 상기 증분 데이터를 병합하기 위해 상기 제1 서버 그룹을 선택하는 단계;
상기 제1 서버 그룹으로부터의 상기 기준 데이터에 대한 데이터 액세스 요청들을 상기 복수의 서버 그룹 중 제2 서버 그룹으로 마이그레이션하는(migrating) 단계; 및
상기 제1 컴퓨팅 디바이스의 상기 메모리 디바이스로부터의 상기 증분 데이터를 상기 제2 컴퓨팅 디바이스의 상기 저장 디바이스와 병합하는 단계
를 포함하는, 방법.
A computer implemented method that facilitates dynamic load-based merging,
Storing reference data in each storage device in a plurality of server groups;
Storing the incremental data in a memory device of a first computing device until the amount of incremental data reaches a threshold value, the incremental data being stored in a second computing device of a first one of the plurality of server groups The updated data associated with the reference data in the storage device of the storage device;
Determining if the amount of incremental data exceeds the threshold;
Selecting the first server group to merge the incremental data from the plurality of server groups in response to the amount of incremental data exceeding the threshold;
Migrating data access requests for the reference data from the first server group to a second one of the plurality of server groups; And
Merging the incremental data from the memory device of the first computing device with the storage device of the second computing device
/ RTI >
제1항에 있어서, 상기 기준 데이터는 복수의 태블릿들로 분할되며, 태블릿이 상기 기준 데이터의 비-중복 세그먼트(non-overlapping segment)인, 방법.2. The method of claim 1, wherein the reference data is divided into a plurality of tablets, wherein the tablet is a non-overlapping segment of the reference data. 제2항에 있어서, 상기 복수의 서버 그룹들 중 각각의 서버 그룹은 상기 기준 데이터의 각각의 태블릿의 사본을 포함하는, 방법.3. The method of claim 2, wherein each server group of the plurality of server groups includes a copy of each tablet of the reference data. 제1항에 있어서, 상기 복수의 서버 그룹들로부터 상기 제1 서버 그룹을 선택하는 단계는, 서버 그룹들의 시퀀스로부터 상기 제1 서버 그룹을 식별하는 단계를 포함하는, 방법.2. The method of claim 1, wherein selecting the first server group from the plurality of server groups comprises identifying the first server group from a sequence of server groups. 제4항에 있어서,
상기 증분 데이터의 병합이 각각의 서버 그룹에 대해 수행되었는지를 결정하는 단계; 및
상기 증분 데이터의 병합이 수행되지 않은 서버 그룹을 선택하는 단계를 더 포함하는, 방법.
5. The method of claim 4,
Determining whether merging of the incremental data has been performed for each server group; And
Further comprising selecting a server group in which the merging of the incremental data has not been performed.
제1항에 있어서,
상기 복수의 서버 그룹들 중 각각의 서버 그룹의 데이터 액세스 요청 트래픽 비율을 포함하는 트래픽 제어 테이블을 유지하는 단계;
상기 제1 서버 그룹에 대한 상기 트래픽 비율이 상기 트래픽 제어 테이블에서의 임계값에 도달하였는지를 결정하는 단계; 및
상기 결정에 응답하여, 상기 제1 서버 그룹이 상기 병합을 위해 준비가 되어 있는지를 결정하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Maintaining a traffic control table including a ratio of data access request traffic of each server group among the plurality of server groups;
Determining if the traffic rate for the first server group has reached a threshold in the traffic control table; And
And in response to the determination, determining whether the first server group is ready for the merge.
제1항에 있어서,
상기 병합이 상기 제1 서버 그룹에 대해 완료되었는지를 결정하는 단계; 및
상기 결정에 응답하여, 상기 제2 서버 그룹들로부터 다시 상기 제1 서버 그룹으로 데이터 액세스 요청들을 복원하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Determining if the merge has been completed for the first server group; And
And in response to the determination, restoring data access requests from the second server groups back to the first server group.
제1항에 있어서,
상기 제1 서버 그룹이 상기 증분 데이터의 병합 동안 데이터 액세스 요청들을 서빙하는 것이 필요한지를 결정하는 단계; 및
상기 제1 서버 그룹에서의 컴퓨팅 디바이스들에 의한 리소스 소비가 조건을 충족하는지를 결정하는 단계를 더 포함하는, 방법.
The method according to claim 1,
Determining whether the first server group needs to serve data access requests during the merge of the incremental data; And
Further comprising determining whether resource consumption by computing devices in the first server group meets a condition.
제8항에 있어서,
상기 제1 서버 그룹으로부터 서빙되는 상기 데이터 액세스 요청들과 연관된 성능 레벨을 결정하는 단계; 및
상기 성능 레벨이 임계값 미만인 것에 응답하여, 상기 증분 데이터의 상기 병합을 일시중지시키는 단계를 더 포함하는, 방법.
9. The method of claim 8,
Determining a performance level associated with the data access requests served from the first server group; And
Responsive to the performance level being below a threshold, suspending the merge of the incremental data.
제9항에 있어서, 상기 데이터 액세스 요청들을 서빙하기 위해 상기 증분 데이터의 상기 병합에 의해 점유되는 리소스들을 해제시키는 단계를 더 포함하는, 방법.10. The method of claim 9, further comprising: releasing resources occupied by the merge of the incremental data to serve the data access requests. 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 동적 부하 기반 병합을 용이하게 하는 방법을 수행하게 하는 명령들을 저장하는 비일시적 저장 매체로서, 상기 방법은,
복수의 서버 그룹 내의 각각의 저장 디바이스에 기준 데이터를 저장하는 단계;
증분 데이터(incremental data)의 양이 임계값에 다다를 때까지 제1 컴퓨팅 디바이스의 메모리 디바이스에 상기 증분 데이터를 저장하는 단계 - 상기 증분 데이터는 상기 복수의 서버 그룹 중 제1 서버 그룹의 제2 컴퓨팅 디바이스의 저장 디바이스에서의 기준 데이터와 관련된 업데이트된 데이터를 포함함 - ;
상기 증분 데이터의 양이 상기 임계값을 초과하는지를 결정하는 단계;
상기 증분 데이터의 양이 상기 임계값을 초과하는 것에 응답하여, 상기 복수의 서버 그룹으로부터 상기 증분 데이터를 병합하기 위해 상기 제1 서버 그룹을 선택하는 단계;
상기 제1 서버 그룹으로부터의 상기 기준 데이터에 대한 데이터 액세스 요청들을 상기 복수의 서버 그룹 중 제2 서버 그룹으로 마이그레이션하는 단계; 및
상기 제1 컴퓨팅 디바이스의 상기 메모리 디바이스로부터의 상기 증분 데이터를 상기 제2 컴퓨팅 디바이스의 상기 저장 디바이스와 병합하는 단계
를 포함하는, 비일시적 저장 매체.
18. A non-volatile storage medium storing instructions that, when executed by a processor, cause the processor to perform a method that facilitates dynamic load-based merge,
Storing reference data in each storage device in a plurality of server groups;
Storing the incremental data in a memory device of a first computing device until the amount of incremental data reaches a threshold value, the incremental data being stored in a second computing device of a first one of the plurality of server groups The updated data associated with the reference data in the storage device of the storage device;
Determining if the amount of incremental data exceeds the threshold;
Selecting the first server group to merge the incremental data from the plurality of server groups in response to the amount of incremental data exceeding the threshold;
Migrating data access requests for the reference data from the first server group to a second one of the plurality of server groups; And
Merging the incremental data from the memory device of the first computing device with the storage device of the second computing device
And a non-volatile storage medium.
제11항에 있어서, 상기 기준 데이터는 복수의 태블릿들로 분할되며, 태블릿이 상기 기준 데이터의 비-중복 세그먼트인, 비일시적 저장 매체.12. The non-transitory storage medium of claim 11, wherein the reference data is partitioned into a plurality of tablets, wherein the tablet is a non-overlapping segment of the reference data. 제12항에 있어서, 상기 복수의 서버 그룹들 중 각각의 서버 그룹은 상기 기준 데이터의 각각의 태블릿의 사본을 포함하는, 비일시적 저장 매체.13. The non-transitory storage medium of claim 12, wherein each server group of the plurality of server groups includes a copy of each tablet of the reference data. 제11항에 있어서, 상기 복수의 서버 그룹들로부터 상기 제1 서버 그룹을 선택하는 단계는, 서버 그룹들의 시퀀스로부터 상기 제1 서버 그룹을 식별하는 단계를 포함하는, 비일시적 저장 매체.12. The non-transitory storage medium of claim 11, wherein selecting the first server group from the plurality of server groups comprises identifying the first server group from a sequence of server groups. 제14항에 있어서, 상기 방법은,
상기 증분 데이터의 병합이 각각의 서버 그룹에 대해 수행되었는지를 결정하는 단계; 및
상기 증분 데이터의 병합이 수행되지 않은 서버 그룹을 선택하는 단계를 더 포함하는, 비일시적 저장 매체.
15. The method of claim 14,
Determining whether merging of the incremental data has been performed for each server group; And
Further comprising selecting a server group in which the merge of the incremental data has not been performed.
제11항에 있어서, 상기 방법은,
상기 복수의 서버 그룹들 중 각각의 서버 그룹의 데이터 액세스 요청 트래픽 비율을 포함하는 트래픽 제어 테이블을 유지하는 단계;
상기 제1 서버 그룹에 대한 상기 트래픽 비율이 상기 트래픽 제어 테이블에서의 임계값에 도달하였는지를 결정하는 단계; 및
상기 결정에 응답하여, 상기 제1 서버 그룹이 상기 병합을 위해 준비가 되어 있는지를 결정하는 단계를 더 포함하는, 비일시적 저장 매체.
12. The method of claim 11,
Maintaining a traffic control table including a ratio of data access request traffic of each server group among the plurality of server groups;
Determining if the traffic rate for the first server group has reached a threshold in the traffic control table; And
And in response to the determination, determining whether the first group of servers is ready for the merge.
제11항에 있어서, 상기 방법은,
상기 병합이 상기 제1 서버 그룹에 대해 완료되었는지를 결정하는 단계; 및
상기 결정에 응답하여, 상기 제2 서버 그룹들로부터 다시 상기 제1 서버 그룹으로 데이터 액세스 요청들을 복원하는 단계를 더 포함하는, 비일시적 저장 매체.
12. The method of claim 11,
Determining if the merge has been completed for the first server group; And
And in response to the determination, restoring data access requests from the second server groups back to the first server group.
제11항에 있어서, 상기 방법은,
상기 제1 서버 그룹이 상기 증분 데이터의 병합 동안 데이터 액세스 요청들을 서빙하는 것이 필요한지를 결정하는 단계; 및
상기 제1 서버 그룹에서의 컴퓨팅 디바이스들에 의한 리소스 소비가 조건을 충족하는지를 결정하는 단계를 더 포함하는, 비일시적 저장 매체.
12. The method of claim 11,
Determining whether the first server group needs to serve data access requests during the merge of the incremental data; And
Further comprising determining whether resource consumption by computing devices in the first server group meets a condition.
제18항에 있어서, 상기 방법은,
상기 제1 서버 그룹으로부터 서빙되는 상기 데이터 액세스 요청들과 연관된 성능 레벨을 결정하는 단계; 및
상기 성능 레벨이 임계값 미만인 것에 응답하여, 상기 증분 데이터의 상기 병합을 일시중지시키는 단계를 더 포함하는, 비일시적 저장 매체.
19. The method of claim 18,
Determining a performance level associated with the data access requests served from the first server group; And
Responsive to the performance level being below a threshold, suspending the merge of the incremental data.
제19항에 있어서, 상기 방법은 상기 데이터 액세스 요청들을 서빙하기 위해 상기 증분 데이터의 상기 병합에 의해 점유되는 리소스들을 해제시키는 단계를 더 포함하는, 비일시적 저장 매체.20. The non-transitory storage medium of claim 19, wherein the method further comprises: releasing resources occupied by the merge of the incremental data to serve the data access requests. 동적 부하 기반 병합을 용이하게 하는 컴퓨팅 시스템으로서,
프로세서; 및
상기 프로세서에 커플링되어, 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금 방법을 수행하게 하는 명령들을 저장하는 메모리
를 포함하고, 상기 방법은,
복수의 서버 그룹 내의 각각의 저장 디바이스에 기준 데이터를 저장하는 단계;
증분 데이터(incremental data)의 양이 임계값에 다다를 때까지 제1 컴퓨팅 디바이스의 메모리 디바이스에 상기 증분 데이터를 저장하는 단계 - 상기 증분 데이터는 상기 복수의 서버 그룹 중 제1 서버 그룹의 제2 컴퓨팅 디바이스의 저장 디바이스에서의 기준 데이터와 관련된 업데이트된 데이터를 포함함 - ;
상기 증분 데이터의 양이 상기 임계값을 초과하는지를 결정하는 단계;
상기 증분 데이터의 양이 상기 임계값을 초과하는 것에 응답하여, 상기 복수의 서버 그룹으로부터 상기 증분 데이터를 병합하기 위해 상기 제1 서버 그룹을 선택하는 단계;
상기 제1 서버 그룹으로부터의 상기 기준 데이터에 대한 데이터 액세스 요청들을 상기 복수의 서버 그룹 중 제2 서버 그룹으로 마이그레이션하는(migrating) 단계; 및
상기 제1 컴퓨팅 디바이스의 상기 메모리 디바이스로부터의 상기 증분 데이터를 상기 제2 컴퓨팅 디바이스의 상기 저장 디바이스와 병합하는 단계
를 포함하는, 컴퓨팅 시스템.
1. A computing system that facilitates dynamic load-based merge,
A processor; And
A memory coupled to the processor for storing instructions that when executed by the processor cause the processor to perform a method,
The method comprising:
Storing reference data in each storage device in a plurality of server groups;
Storing the incremental data in a memory device of a first computing device until the amount of incremental data reaches a threshold value, the incremental data being stored in a second computing device of a first one of the plurality of server groups The updated data associated with the reference data in the storage device of the storage device;
Determining if the amount of incremental data exceeds the threshold;
Selecting the first server group to merge the incremental data from the plurality of server groups in response to the amount of incremental data exceeding the threshold;
Migrating data access requests for the reference data from the first server group to a second one of the plurality of server groups; And
Merging the incremental data from the memory device of the first computing device with the storage device of the second computing device
The computing system.
KR1020177005030A 2014-08-27 2015-08-18 Dynamic load-based merging KR101938501B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201410429616.0A CN105446653B (en) 2014-08-27 2014-08-27 A kind of data merging method and equipment
CN201410429616.0 2014-08-27
US14/829,132 2015-08-18
PCT/US2015/045747 WO2016032803A1 (en) 2014-08-27 2015-08-18 Dynamic load-based merging
US14/829,132 US10523743B2 (en) 2014-08-27 2015-08-18 Dynamic load-based merging

Publications (2)

Publication Number Publication Date
KR20170042298A KR20170042298A (en) 2017-04-18
KR101938501B1 true KR101938501B1 (en) 2019-04-11

Family

ID=55403945

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177005030A KR101938501B1 (en) 2014-08-27 2015-08-18 Dynamic load-based merging

Country Status (8)

Country Link
US (1) US10523743B2 (en)
EP (1) EP3186760B8 (en)
JP (1) JP6412244B2 (en)
KR (1) KR101938501B1 (en)
CN (1) CN105446653B (en)
ES (1) ES2845654T3 (en)
PL (1) PL3186760T3 (en)
SG (1) SG11201700190WA (en)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180349095A1 (en) * 2017-06-06 2018-12-06 ScaleFlux, Inc. Log-structured merge tree based data storage architecture
US10542078B1 (en) * 2017-06-13 2020-01-21 Parallels International Gmbh System and method of load balancing traffic bursts in non-real time networks
CN107295080B (en) * 2017-06-19 2020-12-18 北京百度网讯科技有限公司 Data storage method applied to distributed server cluster and server
AU2019244116B2 (en) 2018-03-27 2021-10-07 Netflix, Inc. Techniques for scheduled anti-entropy repair design
CN109039898B (en) * 2018-08-08 2021-12-07 网宿科技股份有限公司 Management method and device of drainage information
US11514014B2 (en) * 2018-09-14 2022-11-29 Google Llc Staggered merging in log-structured merge forests
US11520742B2 (en) * 2018-12-24 2022-12-06 Cloudbrink, Inc. Data mesh parallel file system caching
CN112235332B (en) * 2019-07-15 2024-01-16 北京京东尚科信息技术有限公司 Method and device for switching reading and writing of clusters
CN112463048B (en) * 2020-11-26 2022-08-30 新华三技术有限公司成都分公司 Compact processing speed adjusting method and device, electronic equipment and medium
CN113590040B (en) * 2021-07-29 2024-03-19 郑州阿帕斯数云信息科技有限公司 Data processing method, device, equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022209A (en) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd Distributed server system
US20130159251A1 (en) * 2009-06-19 2013-06-20 Rich Skrenta Dedicating Disks to Reading or Writing

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775932A (en) 1984-07-31 1988-10-04 Texas Instruments Incorporated Computer memory system with parallel garbage collection independent from an associated user processor
DE69434311D1 (en) * 1993-02-01 2005-04-28 Sun Microsystems Inc ARCHIVING FILES SYSTEM FOR DATA PROVIDERS IN A DISTRIBUTED NETWORK ENVIRONMENT
US6226650B1 (en) 1998-09-17 2001-05-01 Synchrologic, Inc. Database synchronization and organization system and method
WO2001040903A2 (en) * 1999-12-06 2001-06-07 Warp Solutions, Inc. System and method for enhancing operation of a web server cluster
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US7228441B2 (en) 2000-09-27 2007-06-05 Huron Ip Llc Multi-server and multi-CPU power management system and method
US20020161890A1 (en) * 2000-12-22 2002-10-31 Kailai Chen System and method for intelligently distributing content over a communicatons network
US8005966B2 (en) 2002-06-11 2011-08-23 Pandya Ashish A Data processing system using internet protocols
US7051306B2 (en) 2003-05-07 2006-05-23 Mosaid Technologies Corporation Managing power on integrated circuits using power islands
US20050038954A1 (en) 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
US7051215B2 (en) 2003-06-13 2006-05-23 Intel Corporation Power management for clustered computing platforms
US7565454B2 (en) 2003-07-18 2009-07-21 Microsoft Corporation State migration in multiple NIC RDMA enabled devices
JP4371739B2 (en) 2003-09-02 2009-11-25 株式会社東芝 Electronic device having serial ATA interface and power saving method of serial ATA bus
US7490239B2 (en) 2005-01-07 2009-02-10 First Data Corporation Facilitating digital signature based on ephemeral private key
US7389379B1 (en) * 2005-04-25 2008-06-17 Network Appliance, Inc. Selective disk offlining
US7480766B2 (en) 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US8260924B2 (en) * 2006-05-03 2012-09-04 Bluetie, Inc. User load balancing systems and methods thereof
WO2008007273A2 (en) 2006-06-27 2008-01-17 Koninklijke Philips Electronics N.V. A device and a method for managing power consumption of a plurality of data processing units
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
US8359430B1 (en) * 2007-08-30 2013-01-22 Network Appliance, Inc. Techniques for efficient mass storage layout optimization
JP5343399B2 (en) * 2008-05-22 2013-11-13 富士通株式会社 Management program, management method, and management apparatus
US9547589B2 (en) 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US8954654B2 (en) 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
JP5834303B2 (en) 2008-12-30 2015-12-16 ラウンド ロック リサーチ リミテッド ライアビリティー カンパニー Non-volatile memory with extended operating temperature range
US8838976B2 (en) 2009-02-10 2014-09-16 Uniloc Luxembourg S.A. Web content access using a client device identifier
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US9390035B2 (en) 2009-12-21 2016-07-12 Sanmina-Sci Corporation Method and apparatus for supporting storage modules in standard memory and/or hybrid memory bus architectures
JP5585116B2 (en) * 2010-02-19 2014-09-10 日本電気株式会社 Storage system
JP5598017B2 (en) * 2010-02-24 2014-10-01 富士通株式会社 Judgment program, method and apparatus
JP2011198133A (en) 2010-03-19 2011-10-06 Toshiba Corp Memory system and controller
US8688897B2 (en) 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
JP4886877B2 (en) 2010-05-31 2012-02-29 株式会社東芝 Recording medium control apparatus and method
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
US8516284B2 (en) 2010-11-04 2013-08-20 International Business Machines Corporation Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9805108B2 (en) * 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US8452819B1 (en) * 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
KR101717081B1 (en) 2011-03-23 2017-03-28 삼성전자주식회사 Storage device comprising a buffer memory by using a nonvolatile-ram and volatile-ram
JP5583069B2 (en) * 2011-04-18 2014-09-03 三菱電機株式会社 Database system
KR20130031046A (en) 2011-09-20 2013-03-28 삼성전자주식회사 Flash memory device and data manage method thererof
US8843451B2 (en) * 2011-09-23 2014-09-23 International Business Machines Corporation Block level backup and restore
CN102497353B (en) * 2011-10-28 2015-08-26 深圳第七大道网络技术有限公司 Multi-server distributed data processing method, server and system
US9213645B2 (en) 2011-12-29 2015-12-15 Sandisk Technologies Inc. Command aware partial page programming
US9645917B2 (en) 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9092223B1 (en) 2012-05-31 2015-07-28 Google Inc. Systems and methods to save power in data-center networks
US9405621B2 (en) 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9432755B2 (en) 2013-02-15 2016-08-30 Futurewei Technologies, Inc. Downstream burst transmission in passive optical networks
US8984171B2 (en) 2013-03-01 2015-03-17 Silicon Motion, Inc. Data storage device and flash memory control method
US9298752B2 (en) * 2013-08-26 2016-03-29 Dropbox, Inc. Facilitating data migration between database clusters while the database continues operating
US9652297B2 (en) 2013-09-19 2017-05-16 Intel Corporation Techniques for distributed processing task portion assignment
US20160232103A1 (en) 2013-09-26 2016-08-11 Mark A. Schmisseur Block storage apertures to persistent memory
US9251154B2 (en) 2013-11-15 2016-02-02 International Business Machines Corporation Priority based reliability mechanism for archived data
US9240722B2 (en) 2014-06-19 2016-01-19 Dell Products Lp Methods and systems for improving light load efficiency for power stages of multi-phase voltage regulator circuits
US9626286B2 (en) 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9710330B2 (en) 2014-10-15 2017-07-18 Empire Technology Development Llc Partial cloud data storage
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9734051B2 (en) 2015-02-16 2017-08-15 Quantum Corporation Garbage collection and defragmentation for solid state drives (SSD) and shingled magnetic recording (SMR) drives
US9911487B2 (en) 2015-05-19 2018-03-06 EMC IP Holding Company LLC Method and system for storing and recovering data from flash memory
US20160350002A1 (en) 2015-05-29 2016-12-01 Intel Corporation Memory device specific self refresh entry and exit
US9965441B2 (en) 2015-12-10 2018-05-08 Cisco Technology, Inc. Adaptive coalescing of remote direct memory access acknowledgements based on I/O characteristics
US10389839B2 (en) 2016-06-01 2019-08-20 Intel Corporation Method and apparatus for generating data prefetches specifying various sizes to prefetch data from a remote computing node
US10514862B2 (en) 2016-07-21 2019-12-24 Micron Technology, Inc. Memory device including concurrent suspend states for different operations
JP6274589B1 (en) 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション Semiconductor memory device and continuous reading method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022209A (en) * 2001-07-05 2003-01-24 Nri & Ncc Co Ltd Distributed server system
US20130159251A1 (en) * 2009-06-19 2013-06-20 Rich Skrenta Dedicating Disks to Reading or Writing

Also Published As

Publication number Publication date
ES2845654T3 (en) 2021-07-27
EP3186760B1 (en) 2020-10-14
EP3186760B8 (en) 2021-03-10
JP2017528794A (en) 2017-09-28
US20160065663A1 (en) 2016-03-03
PL3186760T3 (en) 2021-09-27
SG11201700190WA (en) 2017-02-27
EP3186760A1 (en) 2017-07-05
US10523743B2 (en) 2019-12-31
CN105446653B (en) 2018-12-14
KR20170042298A (en) 2017-04-18
EP3186760A4 (en) 2018-04-25
JP6412244B2 (en) 2018-10-24
CN105446653A (en) 2016-03-30

Similar Documents

Publication Publication Date Title
KR101938501B1 (en) Dynamic load-based merging
US11620313B2 (en) Multi-cluster warehouse
JP7138126B2 (en) Timeliness resource migration to optimize resource placement
KR102441299B1 (en) Batch data collection into database system
US10356150B1 (en) Automated repartitioning of streaming data
US9798584B1 (en) Methods and apparatus for IO sizing based task throttling
CN107153643B (en) Data table connection method and device
CN112988066B (en) Data processing method and device
US10592165B1 (en) Method, apparatus and computer program product for queueing I/O requests on mapped RAID
US8683099B1 (en) Load balancing of read/write accesses on a single host device
US20200285510A1 (en) High precision load distribution among processors
JP2007328711A (en) Method of changing configuration of unshared database system, management server and unshared database system
WO2016032803A1 (en) Dynamic load-based merging
US10824640B1 (en) Framework for scheduling concurrent replication cycles
US9619153B2 (en) Increase memory scalability using table-specific memory cleanup
KR101754713B1 (en) Asymmetric distributed file system, apparatus and method for distribution of computation
CN118567546A (en) Method, device and computer readable storage medium for data storage

Legal Events

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