KR101938501B1 - Dynamic load-based merging - Google Patents
Dynamic load-based merging Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3433—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06314—Calendaring for a resource
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication 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.
Description
관련 출원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
시스템(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
일부 실시예들에서, 병합 프로세스로부터 데이터 액세스의 분리를 보장하기 위해, 시스템(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
시스템(100)은 그룹들(142 및 144) 간의 데이터 액세스의 분리와 병합 프로세스를 보장한다. 시스템(100)은 그룹들(142 및 144)을 병합 프로세스에 대한 제어 유닛들로서 사용하고 상이한 시간에 병합 프로세스를 수행한다. 병합 프로세스의 준비 스테이지에서, 시스템(100)은 병합 프로세스를 위한 그룹을 선택하고, 데이터 액세스 트래픽(예컨대, 데이터 액세스 요청들 및/또는 대응하는 데이터)을 다른 그룹들로 마이그레이션한다. 이런 식으로, 병합 프로세스와 온라인 서비스들은 서로로부터 분리된다. 시스템(100)이 그룹(142)에 대한 병합 프로세스를 수행할 때, 시스템(100)은 데이터 액세스 트래픽을 그룹(144)으로 우회시킨다. 예를 들어, 클라이언트 디바이스(160)가 데이터 액세스 요청(예컨대, 고객 레코드에 대한 요청)을 전송하면, 그 데이터 액세스 요청은 그룹(144)에서 서빙된다(예컨대, 대응하는 저장 서버는 요청된 데이터를 제공한다). 시스템(100)이 그룹(142)에 대한 병합 프로세스를 완료한 후, 시스템(100)은 데이터 액세스 트래픽을 그룹(142)으로 마이그레이션하고 그룹(144)에 대한 병합 프로세스를 개시한다. 클라이언트 디바이스(160)로부터의 데이터 액세스에 대한 후속 요청이 그룹(142)에서 서빙된다. 이 병합 프로세스는 오프-피크 병합 프로세스라고 지칭될 수 있다. 오프-피크 병합 프로세스는 온라인 서비스들의 성능에 대한 증분 데이터의 병합의 영향(예컨대, 저장 서버가 데이터 액세스 요청을 서빙하는데 걸린 시간)을 감소시킨다.
일부 실시예들에서, 시스템(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,
동일한 방식으로, 시스템(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
일부 시나리오들에서, 오프-피크 병합 프로세스는 적용 가능할 수 없다. 하나의 이러한 시나리오에서, 타임 아웃 이벤트가 그룹에 대한 병합 프로세스에 대해 발생할 수 있다. 예를 들어, 그룹(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
이들 두 개의 시나리오들에서, 데이터 액세스 및 병합 프로세스는 그룹들(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
도 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
병합 프로세스의 높은 가용성 및 분리를 보장하기 위해, 이들 태블릿들은 그룹(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.
일부 실시예들에서, 시스템(100)은 경합 상태(race condition)를 피하기 위해 업데이트된 데이터(즉, 쓰기 동작들)의 구획화(compartmentalization)를 사용한다. 업데이트 서버(102)의 메모리(112)에 쓰여진 데이터의 양이 임계값에 도달할 때, 시스템(100)은 병합 프로세스를 위한 데이터량을 임의의 후속하는 업데이트들로부터 분리한다. 이런 식으로, 병합 프로세스 동안, 시스템(100)은 동일한 업데이트 세트가 각각의 그룹에서의 기준 데이터(124)에 병합되는 것을 보장한다. 시스템(100)은 그룹들 간의 경합 상태를 피하기 위해 분산된 커미트(distributed commit)를 또한 사용할 수 있다. 병합 프로세스가 완료될 때, 시스템(100)은 대응하는 저장 서버로부터 그 서버에 대한 병합 프로세스가 완료되었다는 확인을 수신한다. 그룹들(142 및 144) 둘 다에서 각각의 저장 서버로부터 확인들을 수신할 시, 시스템(100)은 업데이트들을 각각의 저장 서버에게 커미팅한다. 그렇지 않으면, 시스템(100)은 각각의 저장 서버에서 이전의 커미팅된 기준 데이터로 복귀(roll back)할 수 있다. 이는 성공하지 못한 병합 프로세스로 인한 저장 서버들과 그룹들 간의 데이터 불일치를 방지한다.In some embodiments, the
도 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
시스템은 선택된 그룹이 병합을 위해 준비가 되어 있는지를 체크한다(동작 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
시스템은 병합 프로세스가 선택된 그룹에 대해 완료되었는지를 체크한다(동작 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
도 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
일부 실시예들에서, 모듈들(422, 424, 426, 및 428)은 하드웨어에서 부분적으로 또는 전체적으로 구현될 수 있고 프로세서(402)의 일부일 수 있다. 게다가, 일부 실시예들에서, 시스템은 별도의 프로세서와 메모리를 포함하지 않을 수 있다. 대신, 그것들의 특정 태스크들을 수행하는 것 외에도, 모듈들(422, 424, 426, 및 428)은, 따로따로 또는 협력하여, 특수 목적 컴퓨테이션 엔진들의 일부일 수 있다.In some embodiments,
저장소(420)는 프로세서(402)에 의해 실행될 프로그램들을 저장한다. 구체적으로는, 저장소(420)는 동적 부하 기반 병합을 사용한 효율적인 데이터 관리를 위한 시스템(애플리케이션)을 구현하는 프로그램을 저장한다. 동작 동안, 애플리케이션 프로그램은 저장소(420)로부터 메모리(404) 속에 로딩되고 프로세서(402)에 의해 실행될 수 있다. 그 결과, 시스템(400)은 위에서 설명된 기능들을 수행할 수 있다. 시스템(400)은 옵션적인 디스플레이(412), 키보드(414), 및 포인팅 디바이스(416)에 추가로 커플링될 수 있고, 하나 이상의 네트워크 인터페이스들을 통해 네트워크(410)에 커플링될 수 있다.The
동작 동안, 선택 모듈(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)은 병합 프로세스를 일시중지(또는 종료)하고, 필요하다면, 재개(또는 재시작)할 수 있다.
본원의 상세한 설명에서 설명되는 데이터 구조들 및 컴퓨터 명령들은, 컴퓨터 시스템에 의한 사용을 위한 코드 및/또는 데이터를 저장할 수 있는 임의의 디바이스 또는 매체일 수 있는 컴퓨터 판독가능 저장 매체 상에 통상 저장된다. 컴퓨터 판독가능 저장 매체는, 휘발성 메모리, 비휘발성 메모리, 디스크 드라이브들, 자기 테이프, 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)
복수의 서버 그룹 내의 각각의 저장 디바이스에 기준 데이터를 저장하는 단계;
증분 데이터(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 >
상기 증분 데이터의 병합이 각각의 서버 그룹에 대해 수행되었는지를 결정하는 단계; 및
상기 증분 데이터의 병합이 수행되지 않은 서버 그룹을 선택하는 단계를 더 포함하는, 방법.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 서버 그룹이 상기 병합을 위해 준비가 되어 있는지를 결정하는 단계를 더 포함하는, 방법.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 서버 그룹에 대해 완료되었는지를 결정하는 단계; 및
상기 결정에 응답하여, 상기 제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 서버 그룹에서의 컴퓨팅 디바이스들에 의한 리소스 소비가 조건을 충족하는지를 결정하는 단계를 더 포함하는, 방법.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.
상기 제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.
복수의 서버 그룹 내의 각각의 저장 디바이스에 기준 데이터를 저장하는 단계;
증분 데이터(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.
상기 증분 데이터의 병합이 각각의 서버 그룹에 대해 수행되었는지를 결정하는 단계; 및
상기 증분 데이터의 병합이 수행되지 않은 서버 그룹을 선택하는 단계를 더 포함하는, 비일시적 저장 매체.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.
상기 복수의 서버 그룹들 중 각각의 서버 그룹의 데이터 액세스 요청 트래픽 비율을 포함하는 트래픽 제어 테이블을 유지하는 단계;
상기 제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.
상기 병합이 상기 제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.
상기 제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.
상기 제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.
프로세서; 및
상기 프로세서에 커플링되어, 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금 방법을 수행하게 하는 명령들을 저장하는 메모리
를 포함하고, 상기 방법은,
복수의 서버 그룹 내의 각각의 저장 디바이스에 기준 데이터를 저장하는 단계;
증분 데이터(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.
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)
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)
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)
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 |
-
2014
- 2014-08-27 CN CN201410429616.0A patent/CN105446653B/en active Active
-
2015
- 2015-08-18 US US14/829,132 patent/US10523743B2/en active Active
- 2015-08-18 EP EP15836188.1A patent/EP3186760B8/en active Active
- 2015-08-18 SG SG11201700190WA patent/SG11201700190WA/en unknown
- 2015-08-18 PL PL15836188T patent/PL3186760T3/en unknown
- 2015-08-18 JP JP2017502114A patent/JP6412244B2/en active Active
- 2015-08-18 ES ES15836188T patent/ES2845654T3/en active Active
- 2015-08-18 KR KR1020177005030A patent/KR101938501B1/en active IP Right Grant
Patent Citations (2)
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 |