KR101465447B1 - 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 - Google Patents
외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 Download PDFInfo
- Publication number
- KR101465447B1 KR101465447B1 KR20140037376A KR20140037376A KR101465447B1 KR 101465447 B1 KR101465447 B1 KR 101465447B1 KR 20140037376 A KR20140037376 A KR 20140037376A KR 20140037376 A KR20140037376 A KR 20140037376A KR 101465447 B1 KR101465447 B1 KR 101465447B1
- Authority
- KR
- South Korea
- Prior art keywords
- merge
- storage device
- data
- sorting
- runs
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/36—Combined merging and sorting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
도 2는 외부 병합 정렬이 수행되는 다른 과정을 예시한 블록도이다.
도 3은 외부 병합 정렬이 수행되는 또 다른 과정을 예시한 블록도이다.
도 4는 외부 병합 정렬 방법에 대한 순서도의 예이다.
도 5는 외부 병합 정렬 방법에 대한 순서도의 다른 예이다.
도 6은 외부 병합 정렬 시스템의 구성을 도시한 블록도의 예이다.
도 7은 외부 병합 정렬을 위한 분산 처리 시스템의 구성을 도시한 블록도의 예이다.
도 8은 외부 병합 정렬을 위한 분산 처리 시스템의 구성을 도시한 블록도의 다른 예이다.
100 : 외부 병합 정렬 시스템 110 : 호스트 장치
111 : 프로세서 112 : 메모리
113 : 통신 모듈 114 : 입력 인터페이스
120 : 저장 장치 121 : 제어부
122 : 버퍼부 123 : 주 저장부
200 : 외부 병합 정렬을 위한 분산 처리 시스템
210 : 제1 병합 정렬 장치 220 : 제2 병합 정렬 장치
230 : 호스트 장치
300 : 외부 병합 정렬을 위한 분산 처리 시스템
310 : 제1 병합 정렬 장치 320 : 제2 병합 정렬 장치
321 : 호스트 장치 322 : 제2 저장 장치
Claims (20)
- 컴퓨터 장치의 외부 병합 정렬 방법에 있어서,
상기 컴퓨터 장치가 소스 데이터를 메모리에서 처리 가능한 크기로 나누어 각각 내부 정렬한 복수의 런(run)들을 저장 장치에 저장하는 단계;
상기 저장 장치가 임베디드 소프트웨어를 이용하여 상기 저장된 런들을 상기 저장 장치 내부에서 병합 정렬하는 단계; 및
상기 컴퓨터 장치가 상기 병합 정렬된 데이터에 접근하는 단계를 포함하는 외부 병합 정렬 방법. - 제1항에 있어서,
상기 병합 정렬하는 단계 전에
상기 컴퓨터 장치가 상기 런들 각각에 대한 저장 위치 및 파일 크기를 포함하는 런 정보를 상기 저장 장치에 전달하는 단계를 더 포함하는 외부 병합 정렬 방법. - 제2항에 있어서,
상기 런 정보는 상기 런에 포함된 데이터의 레코드 크기, 키 값의 위치, 키 값의 길이 또는 레코드의 타입 중 적어도 하나의 정보를 더 포함하는 외부 병합 정렬 방법. - 제1항에 있어서,
상기 병합 정렬하는 단계에서
상기 저장 장치는 상기 런들에 포함된 레코들을 각 레코드의 키 값 및 정렬 기준에 따라 순차적으로 상기 저장 장치의 버퍼에 저장하거나, 상기 저장 장치의 주 저장 매체에 저장하는 외부 병합 정렬 방법. - 제1항에 있어서,
상기 병합 정렬하는 단계는
상기 저장 장치가 상기 컴퓨터 장치로부터 상기 소스 데이터에 대한 읽기 명령을 전달받는 경우, 상기 저장 장치가 상기 컴퓨터 장치로부터 병합 명령을 전달받는 경우 또는 상기 저장 장치가 상기 병합 정렬을 수행할 수 있는 유휴(遊休) 상태에서 수행되는 외부 병합 정렬 방법. - 제1항에 있어서,
상기 병합 정렬하는 단계에서 상기 저장 장치는 상기 저장 장치의 버퍼에 정렬되는 데이터를 상기 버퍼의 크기 단위로 저장하고,
상기 접근하는 단계에서 상기 컴퓨터 장치는 상기 버퍼에 저장되는 데이터를 상기 크기 단위로 전달받는 외부 병합 정렬 방법. - 제1항에 있어서,
상기 병합 정렬하는 단계에서 상기 저장 장치는 상기 저장 장치의 주 저장 매체에 정렬되는 데이터를 모두 저장하고,
상기 접근하는 단계에서 상기 컴퓨터 장치는 상기 주 저장 매체에 저장된 데이터를 읽는 외부 병합 정렬 방법. - 제1항에 있어서,
상기 저장 장치는 비휘발성 메모리 또는 플래시 메모리로 구성되는 저장 매체인 외부 병합 정렬 방법. - 외부 병합 정렬 시스템에 있어서,
소스 데이터를 메모리에서 처리 가능한 크기인 기준 세그먼트 크기 단위로 내부 정렬을 수행한 복수의 런(RUN)들을 저장 장치에 저장하고, 상기 복수의 런들에 대한 병합 정렬 명령을 상기 저장 장치에 전달하는 호스트 장치; 및
상기 병합 정렬 명령을 수신하고, 상기 복수의 런들에 대한 병합 정렬을 수행하여 정렬된 데이터를 상기 호스트 장치에 전달하는 저장 장치를 포함하는 외부 병합 정렬 시스템. - 제9항에 있어서,
상기 호스트 장치는
상기 저장 장치, 별도의 저장 장치 또는 네트워크로 연결된 저장 장치로부터 상기 소스 데이터를 전달받는 외부 병합 정렬 시스템. - 제9항에 있어서,
상기 호스트 장치는 상기 런들 각각에 대한 저장 위치, 파일 크기, 상기 런에 포함된 데이터의 레코드 크기, 키 값의 위치, 키 값의 길이 또는 레코드의 타입 중 적어도 하나의 정보를 포함하는 런 정보를 상기 저장 장치에 전달하고,
상기 저장 장치는 상기 런 정보를 이용하여 상기 병합 정렬을 수행하는 외부 병합 정렬 시스템. - 제9항에 있어서,
상기 저장 장치는
상기 런들이 저장되는 주 저장부;
상기 정렬된 데이터를 저장하는 버퍼부;
상기 버퍼부에 저장되는 정렬된 데이터를 상기 호스트 장치에 전달하는 인터페이스부; 및
상기 런들에 포함된 레코드들을 각 레코드의 키 값 및 정렬 기준에 따라 순차적으로 상기 버퍼부에 저장하고, 상기 버퍼부에 저장된 데이터를 상기 호스트 장치에 전달하도록 상기 인터페이스부를 제어하는 제어부를 포함하는 외부 병합 정렬 시스템. - 제9항에 있어서,
상기 호스트 장치는 상기 저장 장치에 저장된 소스 데이터에 대한 접근이 필요한 경우 또는 상기 호스트 장치 내지 상기 저장 장치가 유휴(遊休) 상태에 있는 경우 상기 병합 정렬 명령을 상기 저장 장치에 전달하는 외부 병합 정렬 시스템. - 제9항에 있어서,
상기 저장 장치는
상기 병합 정렬을 수행하면서 정렬된 데이터를 버퍼에 저장하고, 상기 버퍼에 저장된 데이터를 상기 호스트 장치에 전달하거나,
상기 병합 정렬을 수행하면서 정렬된 데이터를 상기 저장 장치의 주 저장 매체에 저장한 후 상기 호스트 장치의 요청이 있으면 상기 주 저장 매체에 저장된 데이터를 상기 호스트 장치에 전달하는 외부 병합 정렬 시스템. - 각 제1 병합 정렬 장치에서 소스 데이터가 제1 분할되어 전달되면 상기 제1 분할된 소스 데이터를 상기 각 제1 병합 정렬 장치의 메모리에서 처리 가능한 크기 단위로 내부 정렬하고, 상기 크기 단위의 정렬된 런(RUN)들을 상기 각 제1 병합 정렬 장치의 제1 저장 장치에 저장하고, 상기 런들에 대한 제1 병합 정렬을 수행하여 정렬된 데이터를 제2 병합 정렬 장치에 전달하는 복수 개의 제1 병합 정렬 장치; 및
상기 복수 개의 제1 병합 정렬 장치 각각에서 제1 병합 정렬된 데이터를 전달받고, 상기 각각의 제1 병합 정렬된 데이터에 대한 제2 병합 정렬을 수행하여 제2 병합 정렬 장치의 제2 저장 장치에 저장하는 제2 병합 정렬 장치를 포함하는 외부 병합 정렬을 위한 분산 처리 시스템. - 제15항에 있어서,
상기 제1 병합 정렬 장치는 상기 런들에 대한 제1 병합 정렬을 수행하면서 정렬된 결과를 상기 제1 병합 정렬 장치의 버퍼에 저장하고, 상기 버퍼에 저장된 데이터를 상기 제2 병합 정렬 장치에 전달하거나,
상기 런들에 대한 제1 병합 정렬을 수행한 결과를 제1 저장 장치에 모두 저장하고, 정렬이 완료되면 상기 제2 병합 정렬 장치에 정렬된 데이터를 전달하는 외부 병합 정렬을 위한 분산 처리 시스템. - 제15항에 있어서,
상기 소스 데이터의 제1 분할, 상기 제1 병합 정렬, 상기 런들의 전달 또는 상기 제2 병합 정렬 중 적어도 하나를 제어하는 호스트 장치를 더 포함하는 외부 병합 정렬을 위한 분산 처리 시스템. - 제17항에 있어서,
상기 호스트 장치는 상기 런들 각각에 대한 저장 위치, 파일 크기, 상기 런에 포함된 데이터의 레코드 크기, 키 값의 위치, 키 값의 길이 또는 레코드의 타입 중 적어도 하나의 정보를 포함하는 런 정보를 상기 제1 병합 정렬 장치에 전달하고,
상기 제1 병합 정렬 장치는 상기 런 정보를 이용하여 상기 제1 병합 정렬을 독립적으로 수행하는 외부 병합 정렬을 위한 분산 처리 시스템. - 제15항에 있어서,
상기 제2 병합 정렬 장치는 호스트 장치이고, 상기 호스트 장치가 상기 제1 병합 정렬된 데이터를 상기 제2 저장 장치에 저장하고, 상기 제2 저장 장치에 저장된 상기 제1 병합 정렬된 데이터를 이용하여 상기 제2 병합 정렬을 수행하는 외부 병합 정렬을 위한 분산 처리 시스템. - 제15항에 있어서,
상기 제1 저장 장치 또는 상기 제2 저장 장치 중 적어도 하나는 비휘발성 메모리 또는 플래시 메모리로 구성되는 저장 매체인 외부 병합 정렬을 위한 분산 처리 시스템.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20140037376A KR101465447B1 (ko) | 2014-03-31 | 2014-03-31 | 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 |
| US14/570,210 US20150278299A1 (en) | 2014-03-31 | 2014-12-15 | External merge sort method and device, and distributed processing device for external merge sort |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR20140037376A KR101465447B1 (ko) | 2014-03-31 | 2014-03-31 | 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR101465447B1 true KR101465447B1 (ko) | 2014-12-10 |
Family
ID=52676830
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR20140037376A Expired - Fee Related KR101465447B1 (ko) | 2014-03-31 | 2014-03-31 | 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20150278299A1 (ko) |
| KR (1) | KR101465447B1 (ko) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101772955B1 (ko) | 2016-07-12 | 2017-08-31 | 성균관대학교산학협력단 | 맵리듀스 기반의 분산 처리 시스템에서 인덱스를 이용하여 레코드를 처리하는 방법 |
| KR101827395B1 (ko) | 2017-02-20 | 2018-02-08 | 성균관대학교 산학협력단 | 확장성 있는 gpu기반의 대용량 obj 파일 처리 방법 및 장치 |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10824554B2 (en) * | 2016-12-14 | 2020-11-03 | Via Technologies, Inc. | Method and apparatus for efficiently sorting iteration with small sorting set |
| CN114780151B (zh) * | 2022-05-20 | 2025-08-26 | 合肥工业大学 | 一种基于归并排序算法实现可变规模数量的数据排序系统 |
| US11803509B1 (en) * | 2022-05-23 | 2023-10-31 | Apple Inc. | Parallel merge sorter circuit |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08221254A (ja) * | 1995-02-16 | 1996-08-30 | Fujitsu Ltd | マージソート方法及びマージソート装置 |
| JP2007133576A (ja) * | 2005-11-09 | 2007-05-31 | Hitachi Information & Communication Engineering Ltd | ソート処理方法及びプログラム |
| KR20090007926A (ko) * | 2007-07-16 | 2009-01-21 | 한양대학교 산학협력단 | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 |
| KR20090099390A (ko) * | 2008-03-17 | 2009-09-22 | 한양대학교 산학협력단 | 단계적 인덱싱을 위한 파일 시스템, 메인 기억장치 및플래시 기억장치 그리고 상기 단계적 인덱싱을 통한 데이터관리 방법 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3774324B2 (ja) * | 1998-08-03 | 2006-05-10 | 株式会社日立製作所 | ソート処理システムおよびソート処理の方法 |
| JP2005190047A (ja) * | 2003-12-25 | 2005-07-14 | Hitachi Ltd | データソート機能を持つストレージシステム |
| US7454420B2 (en) * | 2004-11-08 | 2008-11-18 | Sas Institute Inc. | Data sorting method and system |
| US20100191717A1 (en) * | 2009-01-28 | 2010-07-29 | Goetz Graefe | Optimization of query processing with top operations |
-
2014
- 2014-03-31 KR KR20140037376A patent/KR101465447B1/ko not_active Expired - Fee Related
- 2014-12-15 US US14/570,210 patent/US20150278299A1/en not_active Abandoned
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08221254A (ja) * | 1995-02-16 | 1996-08-30 | Fujitsu Ltd | マージソート方法及びマージソート装置 |
| JP2007133576A (ja) * | 2005-11-09 | 2007-05-31 | Hitachi Information & Communication Engineering Ltd | ソート処理方法及びプログラム |
| KR20090007926A (ko) * | 2007-07-16 | 2009-01-21 | 한양대학교 산학협력단 | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 |
| KR20090099390A (ko) * | 2008-03-17 | 2009-09-22 | 한양대학교 산학협력단 | 단계적 인덱싱을 위한 파일 시스템, 메인 기억장치 및플래시 기억장치 그리고 상기 단계적 인덱싱을 통한 데이터관리 방법 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101772955B1 (ko) | 2016-07-12 | 2017-08-31 | 성균관대학교산학협력단 | 맵리듀스 기반의 분산 처리 시스템에서 인덱스를 이용하여 레코드를 처리하는 방법 |
| KR101827395B1 (ko) | 2017-02-20 | 2018-02-08 | 성균관대학교 산학협력단 | 확장성 있는 gpu기반의 대용량 obj 파일 처리 방법 및 장치 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20150278299A1 (en) | 2015-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12236135B2 (en) | Switch device for interfacing multiple hosts to a solid state drive | |
| US11029853B2 (en) | Dynamic segment allocation for write requests by a storage system | |
| US11487666B2 (en) | Timed data transfer between a host system and a memory sub-system | |
| US9021178B2 (en) | High performance path for command processing | |
| US11630766B2 (en) | Memory system and operating method thereof | |
| KR101624007B1 (ko) | 비휘발성 메모리를 갖는 시스템에 대한 효율적인 버퍼링 | |
| US20240419345A1 (en) | Gradually Reclaim Storage Space Occupied by a Proof of Space Plot in a Solid State Drive | |
| TWI473116B (zh) | 多通道記憶體儲存裝置及其控制方法 | |
| US20160124847A1 (en) | Scheduled garbage collection for solid state storage devices | |
| KR101465447B1 (ko) | 외부 병합 정렬 방법, 외부 병합 정렬 시스템 및 외부 병합 정렬을 위한 분산 처리 시스템 | |
| US11157212B2 (en) | Virtual controller memory buffer | |
| CN105068953A (zh) | 用于对等高速外围组件互联存储传输的系统和方法 | |
| CN105190567A (zh) | 用于管理存储系统快照的系统和方法 | |
| US20170075614A1 (en) | Memory system and host apparatus | |
| US20260016975A1 (en) | External data processing for network-ready storage products having computational storage processors | |
| US20200364145A1 (en) | Information processing apparatus and method for controlling storage device | |
| US11775188B2 (en) | Communications to reclaim storage space occupied by proof of space plots in solid state drives | |
| US11853819B1 (en) | Message queues in network-ready storage products having computational storage processors | |
| CN104866428A (zh) | 数据存取方法和数据存取装置 | |
| US9558124B2 (en) | Data storage system with passive partitioning in a secondary memory | |
| KR20220079676A (ko) | 메모리 서브시스템에 대한 용량 확장 | |
| US20170017427A1 (en) | Optical cold storage | |
| CN105868121B (zh) | 一种信息处理方法及电子设备 | |
| KR102747748B1 (ko) | 메모리 디바이스들 사이의 직접 통신을 위한 메모리 시스템 및 메모리 디바이스 | |
| KR20220137120A (ko) | 메모리 서브시스템의 큐를 관리하기 위한 방법, 시스템 및 판독 가능 저장 매체 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PA0302 | Request for accelerated examination |
St.27 status event code: A-1-2-D10-D16-exm-PA0302 St.27 status event code: A-1-2-D10-D17-exm-PA0302 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
Fee payment year number: 1 St.27 status event code: A-2-2-U10-U11-oth-PR1002 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| FPAY | Annual fee payment |
Payment date: 20171027 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 4 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| FPAY | Annual fee payment |
Payment date: 20180917 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 5 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| PC1903 | Unpaid annual fee |
Not in force date: 20191121 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code: A-4-4-U10-U13-oth-PC1903 |
|
| PC1903 | Unpaid annual fee |
Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20191121 St.27 status event code: N-4-6-H10-H13-oth-PC1903 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R11-asn-PN2301 St.27 status event code: A-5-5-R10-R13-asn-PN2301 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |