KR20150045073A - Data Operating Method And System supporting the same - Google Patents

Data Operating Method And System supporting the same Download PDF

Info

Publication number
KR20150045073A
KR20150045073A KR20130124295A KR20130124295A KR20150045073A KR 20150045073 A KR20150045073 A KR 20150045073A KR 20130124295 A KR20130124295 A KR 20130124295A KR 20130124295 A KR20130124295 A KR 20130124295A KR 20150045073 A KR20150045073 A KR 20150045073A
Authority
KR
South Korea
Prior art keywords
hash table
data
cookie
entry
key
Prior art date
Application number
KR20130124295A
Other languages
Korean (ko)
Inventor
조유근
장준혁
정진만
김봉재
Original Assignee
㈜윈웨이시스템
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ㈜윈웨이시스템 filed Critical ㈜윈웨이시스템
Priority to KR20130124295A priority Critical patent/KR20150045073A/en
Priority to JP2013224134A priority patent/JP2015079473A/en
Publication of KR20150045073A publication Critical patent/KR20150045073A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • G06F15/025Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators adapted to a specific application
    • G06F15/0283Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators adapted to a specific application for data storage and retrieval

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a data operating method. The present invention provides a hybrid data operating method collecting the advantages of cuckoo hashing and chained hashing, and to a system supporting the same. In the present invention, disclosed are a key-value store system which includes a storage device which stores a cuckoo hash table and a chained hash table and a control device which previously inspects the entry of the cuckoo hash table in a data operating process and applies the chained hash table when the cuckoo hash table is not applied or an overhead is generated in an application process; and a data operating method thereof.

Description

데이터 운용 방법 및 이를 지원하는 시스템{Data Operating Method And System supporting the same}DATA OPERATING METHOD AND SYSTEM SUPPORTING THE SAME

본 발명은 데이터 저장에 관한 것으로, 더욱 상세하게는 쿠쿠 해싱과 체인드 해싱의 장점을 취합한 하이브리드 형태의 데이터 운용 방법 및 이를 지원하는 시스템에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to data storage, and more particularly, to a hybrid data management method that combines the advantages of cache and hashing.

컴퓨팅 작업은 많은 데이터를 수집하고, 저장하는 작업을 기본으로 한다. 그리고 컴퓨팅 작업은 특정 데이터 검색 요청이 발생하는 경우, 저장된 데이터를 검출하여 제공하는 작업을 포함한다. 이 과정에서 광대한 데이터를 저장하고, 저장된 데이터를 읽어야 하는 상황이 반복적으로 그리고 매우 빈번하게 발생할 수 있다. 이에 따라, 컴퓨팅 작업에서 데이터를 효율적으로 저장하고 읽는 작업은 매우 중요한 작업이다. 이러한 데이터 운용을 위하여 종래에는 다양한 데이터 저장 방법이 제안되고 있다.Computing tasks are based on collecting and storing a lot of data. The computing operation includes an operation of detecting and providing stored data when a specific data retrieval request occurs. In this process, it is possible to repeatedly and frequently occur situations in which a large amount of data is stored and a stored data is read. Accordingly, the task of efficiently storing and reading data in a computing task is an important task. Various data storage methods have conventionally been proposed for such data operation.

예컨대, 종래에는 체인드 해시 테이블(chained hash table 또는 chaining, separate chaining) 기반의 데이터 운용 방법이 사용되고 있었다. 체인드 해시 테이블은 NoSQL 데이터베이스 기반 분산 메모리의 키 관리를 위해 주로 사용되는 자료 구조로서, linked list를 사용하여 충돌이 발생한 키들을 연결하는 특징이 있다. 이러한 체인드 해시 테이블은 리스트 헤드를 추가하기만 하면 되므로 키를 삽입하는 작업의 속도가 빠른 특징이 있다. 그러나 체인드 해시 테이블은 키를 찾기 위해 리스트 전체를 스캔해야 하기 때문에 읽기 속도는 떨어지는 단점이 있다. 이러한 체인드 해시 테이블은 이론적으로 최악의 경우(worst case) 처리 시간을 보장할 수 없는 단점이 있다.For example, conventionally, a data operation method based on a chained hash table or chaining or separate chaining has been used. Chained Hashtable is a data structure that is mainly used for key management of distributed memory based on NoSQL database. It has a feature of linking collided keys by using linked list. Such a chained hash table has a feature that the insertion speed of a key is fast because it only adds the list head. However, the chained hash table has a drawback in that the read speed is lowered because the entire list must be scanned to find the key. This chain hash table has the disadvantage that it can not guarantee the worst case processing time theoretically.

상술한 체인드 해시 테이블의 단점을 보완하고자 머큐리(Mercury) 방식이 제안된 바 있다. 머큐리 방식은 오픈 소스인 Memcached를 수정하여 구현한 것으로, 기존 Memcached는 global lock을 사용하여 다수 쓰레드가 해시 테이블을 접근할 때 race condition 발생하는 문제가 있다. 머큐리는 멀티 쓰레드 환경에서 성능을 높이기 위해 fine-grained lock을 사용하고 있다. 즉 머큐리 방식은 테이블 버킷(엔트리)마다 각각의 락을 사용하도록 하고 있다. 그러나 이러한 머큐리 방식은 멀티 쓰레드 환경에서 체인드 해시 테이블의 처리 성능을 높였으나, 리스트 스캔이 필요하다는 체인드 해시 테이블 본래의 단점은 극복하지 못한 상태이다.To overcome the drawbacks of the above-described chain hash table, a Mercury method has been proposed. Mercurial is an open source implementation of Memcached, and existing Memcached uses a global lock to issue a race condition when multiple threads access a hash table. Mercury uses fine-grained locks to increase performance in multithreaded environments. In other words, the Mercury method uses each lock for each table bucket (entry). However, this Mercury method improves the performance of the chain hash table in a multithreaded environment, but it does not overcome the inherent drawbacks of the chain hash table that list scans are needed.

따라서 본 발명의 목적은 종래 다양한 자료 구조에서의 데이터 운용의 단점을 보완하고 보다 개선된 데이터 운용이 가능한 데이터 운용 방법 및 이를 지원하는 시스템을 제공함에 있다.Accordingly, it is an object of the present invention to provide a data management method and a system for supporting the same, which can overcome the disadvantages of data management in various data structures.

상기와 같은 과제를 해결하기 위한 본 발명은 쿠쿠 해시 테이블 및 체인드 해시 테이블을 저장하는 저장 장치, 데이터 운용 시 쿠쿠 해시 테이블의 엔트리 검사를 선행하고, 쿠쿠 해시 테이블 적용 불가 또는 적용 과정에서 오버헤드 발생 시 상기 체인드 해시 테이블 적용을 수행하는 제어 장치를 포함하는 key-value store 시스템의 구성을 개시한다.According to an aspect of the present invention, there is provided a storage apparatus for storing a cookie hash table and a chain hash table, an entry check of a cookie hash table at the time of data operation, A key-value store system including a control apparatus for performing application of the above-described chain hash table is disclosed.

상기 제어 장치는 데이터 삽입 요청 시, 상기 쿠쿠 해시 테이블의 엔트리 검사를 수행하여 비어있지 않은 경우, 해당 데이터를 상기 체인드 해시 테이블의 리스트에 추가하도록 제어할 수 있다.The control device may perform an entry check of the cookie hash table when requesting data insertion, and to control the entry to add the corresponding data to the list of the hashed hash tables when the data is not empty.

상기 제어 장치는 상기 시스템이 설정된 조건에 진입하는지 확인하고, 상기 체인드 해시 테이블 리스트에 추가한 데이터를 상기 쿠쿠 해시 테이블로 이동시키도록 제어할 수 있다.The control device can check whether the system enters a set condition and control to move data added to the chain hash table list to the cook hash table.

상기 제어 장치는 상기 쿠쿠 해시 테이블에 적용되는 두 개의 해시 함수를 동일한 함수로 적용하도록 제어할 수 있다.The control device can control to apply the two hash functions applied to the cookie hash table as the same function.

상기 제어 장치는 상기 데이터를 상기 쿠쿠 해시 테이블의 엔트리에 기입 시 쿠쿠 해시 테이블의 엔트리에 인덱스를 저장하는 필드를 추가할 수 있다.The control device may add a field for storing an index to an entry of the cookie hash table when writing the data to the entry of the cookie hash table.

상기 제어 장치는 데이터 검색 요청 시, 상기 쿠쿠 해시 테이블을 선행하여 검색하고, 실패 시 상기 체인드 해시 테이블 검색을 수행하도록 제어할 수 있다.The control unit can control the cache hash table to be searched in advance and the failed hash table search to be performed in case of a failure.

상기 제어 장치는 상기 체인드 해시 테이블에 있는 데이터가 참조되면 해당 데이터의 엔트리를 리스트의 헤드로 이동시키고, 상기 리스트 헤드로 이동된 데이터가 추가 참조되면 해당 데이터를 상기 쿠쿠 해시 테이블로 이동시키도록 제어할 수 있다.The control unit moves the entry of the corresponding data to the head of the list when the data in the chain hash table is referenced and controls to move the corresponding data to the cook hash table when the data moved to the list head is additionally referenced can do.

본 발명은 또한, 데이터 삽입 요청을 수신하는 과정, 쿠쿠 해시 테이블의 엔트리 검사를 수행하는 과정, 상기 쿠쿠 해시 테이블의 엔트리가 채워져 있는 경우 체인드 해시 테이블의 리스트에 상기 데이터를 삽입하는 과정을 포함하는 데이터 운용 방법의 구성을 개시한다.The present invention also includes a process of receiving a data insertion request, performing an entry check of a cookie hash table, and inserting the data into a list of a chain hash table when the entry of the cookie hash table is filled A configuration of a data operation method is disclosed.

상기 방법은 시스템이 사전 설정된 조건에 진입하는 진입 과정, 상기 진입에 따라 상기 체인드 해시 테이블 리스트에 추가한 데이터를 상기 쿠쿠 해시 테이블로 이동시키는 과정을 더 포함할 수 있다.The method may further include a step of entering the system into a predetermined condition, and a step of moving data added to the chain hash table list according to the entry into the cookie hash table.

상기 방법은 상기 데이터를 상기 쿠쿠 해시 테이블의 엔트리에 기입 시 쿠쿠 해시 테이블의 엔트리에 인덱스를 저장하는 필드를 추가하는 과정을 더 포함할 수 있다.The method may further include adding a field for storing an index to an entry of the cookie hash table upon writing the data into the entry of the cookie hash table.

상기 진입 과정은 상기 시스템이 Idle 상태로 진입하는 과정일 수 있다.The entry process may be a process in which the system enters an idle state.

본 발명은 또한, 데이터 검색 요청을 수신하는 과정, 상기 데이터에 대한 쿠쿠 해시 테이블의 엔트리 검색을 선행하고, 엔트리 검색 실패 시 체인드 해시 테이블의 리스트를 검색하는 과정을 포함하는 데이터 운용 방법의 구성을 개시한다.The present invention also provides a data operation method comprising the steps of receiving a data retrieval request, preceding an entry in a cookie hash table for the data, and retrieving a list of chained hash tables in case of an entry retrieval failure .

상기 방법은 상기 쿠쿠 해시 테이블 검색 과정에서 해시 함수를 동일한 함수로 운용하는 과정을 더 포함할 수 있다.The method may further include the step of operating the hash function as a function in the searching of the cookie hash table.

상기 방법은 상기 체인드 해시 테이블에 있는 데이터가 참조되면 해당 데이터의 엔트리를 리스트의 헤드로 이동시키는 과정을 더 포함할 수 있다.The method may further include moving an entry of the data to the head of the list when the data in the hash table is referenced.

상기 방법은 상기 리스트 헤드로 이동된 데이터가 추가 참조되면 해당 데이터를 상기 쿠쿠 해시 테이블로 이동시키는 과정을 더 포함할 수 있다.The method may further include moving the corresponding data to the cookie hash table if data moved to the list head is further referenced.

전술한 바와 같은 내용들은 당해 분야 통상의 지식을 가진 자가 후술되는 본 개시의 다양한 실시예의 구체적인 설명으로부터 보다 잘 이해할 수 있도록 하기 위하여 다양한 실시예들의 특징들 및 기술적인 장점들을 다소 넓게 약술한 것이다. 이러한 특징들 및 장점들 이외에도 본 개시의 청구범위의 주제를 형성하는 다양한 실시예들의 추가적인 특징들 및 장점들이 후술되는 구체적인 설명으로부터 잘 이해될 것이다.The foregoing is a somewhat broad description of features and technical advantages of various embodiments in order to enable those of ordinary skill in the art to better understand the various embodiments of the present disclosure described below. Additional features and advantages of various embodiments that form the subject matter of the claims of this disclosure, in addition to those features and advantages, will be better understood from the following detailed description.

상술한 바와 같이 본 발명의 다양한 실시예들에서 제안하는 데이터 운용 방법 및 이를 지원하는 시스템에 따르면, 본 발명은 보다 개선된 데이터 운용을 통하여 데이터의 읽기 및 쓰기 속도를 개선하고, 보다 효율적인 메모리 관리를 지원할 수 있다. As described above, according to the data operation method proposed by various embodiments of the present invention and the system supporting the same, the present invention improves data reading and writing speed through improved data operation, .

도 1은 본 발명의 실시예에 따른 하이브리드 해싱 운용이 적용되는 시스템 외관을 개략적으로 나타낸 도면이다.
도 2는 본 발명의 시스템 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 시스템의 제어 장치 구성을 보다 상세히 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 하이브리드 해싱에 의한 데이터 삽입 방법을 설명하기 위한 순서도이다.
도 5는 하이브리드 해싱에 의한 데이터 삽입을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 하이브리드 해싱에 의한 데이터 검색 방법을 설명하기 위한 순서도이다.
도 7은 하이브리드 해싱에 의한 데이터 검색을 설명하기 위한 도면이다.
도 8은 체인드 해시 테이블과 본 발명의 하이브리드 해시 테이블 사용에 따른 작업 시간 측정 결과 중 10만~100만 건에 대한 성공적인 검색 결과를 나타낸 도면이다.
도 9는 체인드 해시 테이블과 본 발명의 하이브리드 해시 테이블 사용에 따른 작업 시간 측정 결과 중 10만~100만 건에 대한 실패 검색 결과를 나타낸 도면이다.
도 10은 체인드 해시 테이블과 본 발명의 하이브리드 해시 테이블 사용에 따른 작업 시간 측정 결과 중 10만~100만 건에 대한 10% 참조 지역성이 있는 검색 결과를 나타낸 도면이다.
FIG. 1 is a schematic view of a system to which a hybrid hashing operation according to an embodiment of the present invention is applied.
2 is a block diagram showing a system configuration of the present invention.
FIG. 3 is a detailed block diagram of a control apparatus of a system according to an embodiment of the present invention.
4 is a flowchart illustrating a method of inserting data by hybrid hashing according to an embodiment of the present invention.
5 is a diagram for explaining data insertion by hybrid hashing.
FIG. 6 is a flowchart illustrating a method of searching for data by hybrid hashing according to an embodiment of the present invention.
7 is a diagram for explaining data retrieval by hybrid hashing.
FIG. 8 is a diagram showing a successful search result of 100,000 to 1 million of the results of measurement of work time according to the use of the hybrid hash table and the hybrid hash table of the present invention.
FIG. 9 is a diagram illustrating a result of failure detection for 100 to 1 million of the results of the operation time measurement according to the use of the hybrid hash table and the hybrid hash table of the present invention.
FIG. 10 is a diagram showing search results having a 10% reference locality of 100,000 to 1 million of the results of measurement of work time according to the use of the hybrid hash table and the hybrid hash table of the present invention.

이하, 첨부된 도면들을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면들에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음에 유의해야 한다. 또한 본 개시의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 즉, 하기의 설명에서는 본 개시의 실시예에 따른 동작을 이해하는데 필요한 부분만이 설명되며, 그 이외 부분의 설명은 본 개시의 요지를 흩트리지 않는 범위에서 생략될 것이라는 것을 유의하여야 한다.Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Note that, in the drawings, the same components are denoted by the same reference symbols as possible. Further, the detailed description of known functions and configurations that may obscure the gist of the present disclosure will be omitted. In other words, it should be noted that only the parts necessary for understanding the operation according to the embodiment of the present disclosure will be described in the following description, and the description of the other parts will be omitted to the extent that the spirit of the present disclosure is not disturbed.

도 1은 본 발명의 실시예에 따른 하이브리드 해싱 운용이 적용되는 시스템 외관을 개략적으로 나타낸 도면이며, 도 2는 본 발명의 시스템 구성을 나타낸 블록도이다.FIG. 1 is a schematic view showing the appearance of a system to which hybrid hashing operation according to an embodiment of the present invention is applied, and FIG. 2 is a block diagram showing a system configuration of the present invention.

도 1 및 도 2를 참조하면, 본 발명의 하이브리드 해싱을 적용하는 시스템 예컨대 key-value store 시스템(10)은 적어도 하나의 저장 장치(150) 및 제어 장치(160)의 구성을 포함할 수 있다. 1 and 2, a system, for example, a key-value store system 10, to which the hybrid hashing of the present invention is applied, may include at least one storage device 150 and a controller 160.

상술한 구성을 가지는 본 발명의 key-value store 시스템(10)은 저장 장치(150)의 메모리 영역에 데이터를 저장하거나 읽는 과정에서 쿠쿠 해싱 방식 및 체인드 해싱 방식을 운용하는 하이브리드 해싱 방식에 따라 데이터 운용을 지원할 수 있다. 즉 key-value store 시스템(10)은 쿠쿠 해시 테이블(cuckoo hash table) 기반의 쿠쿠 해싱을 기준으로 데이터 처리를 수행하되 보조적으로 체인드 해시 테이블(chained hash table) 기반의 체인드 해싱(chained hashing)을 기반으로 데이터 처리를 수행하도록 지원한다. 이러한 key-value store 시스템(10)은 쿠쿠 해싱을 통하여 데이터 검색 효율을 높이는 한편, 체인드 해싱을 통하여 데이터 삽입 속도를 높일 수 있도록 지원한다. 이에 따라, 본 발명의 key-value store 시스템(10)은 보다 신속한 검색 시간을 지원하면서도 양호한 데이터 삽입 속도를 보장할 수 있다.The key-value store system 10 according to the present invention having the above-described configuration can store data in the memory area of the storage device 150 or store data in the memory area of the storage device 150 in accordance with a hybrid hashing method of operating a cookie- It can support operation. That is, the key-value store system 10 performs data processing based on a cuckoo hash table-based cuckoo hashing, but additionally performs chained hashing based on a chained hash table, To perform data processing on the basis of the data. The key-value store system 10 enhances data retrieval efficiency through cache hashing and supports data insertion speed through chain hashing. Accordingly, the key-value store system 10 of the present invention can ensure a fast data insertion speed while supporting a faster search time.

저장 장치(150)는 제어 장치(160)의 처리 데이터를 저장할 수 있다. 저장 장치(150)는 해당 key-value store 시스템(10)이 지원하는 서비스 형태에 따라 또는 운용하는 운용자의 데이터 수집 형태에 따라 다양한 데이터들을 저장할 수 있다. 예컨대 저장 장치(150)는 데이터들(예컨대, 전화번호, 메시지, 오디오, 미디어 컨텐츠(예컨대, 음악 파일, 동영상 파일), 어플리케이션 등) 등을 임시 저장할 수 있다. 또한 저장 장치(150)는 다양한 빅 데이터를 저장할 수도 있다. 예컨대, 저장 장치(150)는 적어도 하나의 이동통신 장치들의 사용자 위치 데이터, 사용자의 웹 이용 데이터, 사용자의 통화 데이터, 사용자의 구매 데이터 등 다양한 데이터를 저장할 수 있다. 상술한 바와 같이 본 발명의 실시예에 따른 key-value store 시스템(10)은 저장 장치(150)에 저장되는 데이터의 종류나 특성에 한정되는 것은 아니다.The storage device 150 may store processing data of the control device 160. [ The storage device 150 may store various data according to the type of service supported by the corresponding key-value store system 10 or according to the data collection type of the operator. For example, the storage device 150 may temporarily store data (e.g., telephone numbers, messages, audio, media content (e.g., music files, video files), applications, etc.). The storage device 150 may also store various types of big data. For example, the storage device 150 may store various data such as user location data of at least one mobile communication device, user's web use data, user's call data, user's purchase data, and the like. As described above, the key-value store system 10 according to the embodiment of the present invention is not limited to the types and characteristics of data stored in the storage device 150. [

이러한 저장 장치(150)는 데이터를 저장하는 쿠쿠 해시 테이블 및 체인드 해시 테이블을 포함할 수 있다. 쿠쿠 해시 테이블은 쿠쿠 해싱 방식에 의하여 데이터가 삽입 및 검색되는 자료 구조일 수 있다. 체인드 해시 테이블은 체인 방식에 따라 데이터가 리스트의 일정 영역에 삽입 및 검색되는 자료 구조일 수 있다. 특히 본 발명의 저장 장치(150)는 데이터를 저장하는 과정에서 쿠쿠 해시 테이블을 기본으로 제공하되 체인드 해시 테이블이 보조적으로 이용될 수 있도록 제공할 수 있다. Such a storage device 150 may include a cookie hash table and a chain hash table for storing data. The cookie hash table can be a data structure in which data is inserted and retrieved by the cookie hashing method. A chain hash table can be a data structure in which data is inserted and retrieved in a certain area of the list according to a chain method. Particularly, the storage device 150 of the present invention can provide a cookie hash table as a basis in a process of storing data, but can provide a chain hash table as an auxiliary use.

상술한 저장 장치(150)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 마이크로 타입(micro type), 및 카드 타입(예컨대, SD 카드(Secure Digital Card) 또는 XD 카드(eXtream Digital Card)) 등의 메모리와, 램(RAM, Random Access Memory), SRAM(Static RAM), 롬(ROM, Read-Only Memory), PROM(Programmable ROM), EEPROM(Electrically Erasable PROM), 자기 메모리(MRAM, Magnetic RAM), 자기 디스크(magnetic disk), 및 광디스크(optical disk) 타입의 메모리 중 적어도 하나의 타입의 기록 매체(storage medium)를 포함할 수 있다. key-value store 시스템(10)은 인터넷 상에서 상기 저장 장치(150)의 저장 기능을 수행하는 웹 스토리지(web storage)와 관련되어 동작할 수도 있다.The storage device 150 may be a flash memory type, a hard disk type, a micro type, and a card type (e.g., an SD card (Secure Digital Card) or an XD card eXtream Digital Card), a random access memory (RAM), a static random access memory (SRAM), a read only memory (ROM), a programmable ROM (PROM), an electrically erasable programmable read- A storage medium of at least one type of magnetic random access memory (MRAM), magnetic random access memory (Magnetic RAM), magnetic disk, and optical disk type memory. The key-value store system 10 may operate in association with a web storage that performs storage functions of the storage device 150 over the Internet.

제어 장치(160)는 key-value store 시스템(10) 제어와 관련한 다양한 신호의 처리와 전달 및 데이터의 전달과 처리를 수행할 수 있다. 예컨대, 제어 장치(160)는 데이터 수집과 저장 장치(150)로의 데이터 삽입, 저장 장치(150)에 저장된 데이터의 검색, 저장 장치(150)에 저장된 데이터의 삭제나 갱신 등의 제어를 수행할 수 있다. 본 발명의 제어 장치(160)는 데이터를 삽입 및 검색하는 과정에서 저장 장치(150)에 저장된 데이터들에 대하여 쿠쿠 해싱 방식 및 체인드 해싱 방식을 운용할 수 있다. 일실시예에 따르면, 제어 장치(160)는 쿠쿠 해싱 방식을 기반으로 특정 데이터의 삽입을 수행할 수 있다. 그리고 제어 장치(160)는 데이터 삽입 시 삽입 오버헤드가 발생할 경우 체인드 해싱 방식을 적용하도록 제어할 수 있다. key-value store 시스템(10)이 설정된 조건 예컨대 "Idle" 상태인 경우 제어 장치(160)는 체인드 해싱 방식으로 적용된 데이터를 쿠쿠 해싱 방식에 따라 데이터 위치 전환할 수 있다. 이러한 제어 장치(160)는 도 3에 도시된 바와 같은 구성을 포함할 수 있다.The controller 160 may perform processing and transfer of various signals related to the control of the key-value store system 10 and transmission and processing of data. For example, the control device 160 can perform control such as data collection and insertion of data into the storage device 150, retrieval of data stored in the storage device 150, deletion or update of data stored in the storage device 150 have. The control device 160 of the present invention can operate the cookie hashing method and the chained hashing method on the data stored in the storage device 150 in the process of inserting and retrieving data. According to one embodiment, the control device 160 can perform insertion of specific data based on the cookie hashing method. In addition, the controller 160 may control the chain hashing method to be applied when insertion overhead occurs when data is inserted. When the key-value store system 10 is in a set condition, for example, in the "Idle" state, the controller 160 can switch the data applied in the chain-hashing method according to the KuKo hashing method. Such a control device 160 may include a configuration as shown in FIG.

한편, 상술한 바와 같은 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기록 매체에 기록되는 프로그램 명령은 본 발명의 다양한 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The embodiments of the present invention as described above may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable recording medium. The computer-readable recording medium may include a program command, a data file, a data structure, and the like, alone or in combination. The program instructions recorded on the recording medium may be those specially designed and constructed for various embodiments of the present invention or may be available to those skilled in the art of computer software.

추가로, key-value store 시스템(10)에서 제어 장치(160)는 해당 시스템의 이용 목적에 따라 보다 다양한 구성들 예컨대, 통신부, 입력부, 표시부 등과 연결되고, 해당 구성들의 기능 예컨대 통신 기능, 입력 기능, 표시 기능 등의 기능 제어를 수행할 수 있다. 또한 key-value store 시스템(10)에서 제어 장치(160)는 카메라나 센서 모듈 등과 더 연결될 수 있으며, 해당 구성들이 제공하는 이미지 정보나 센서 정보를 바탕으로 사전 정의된 프로그램 루틴에 따른 다양한 사용자 기능을 지원할 수 있다. In addition, in the key-value store system 10, the controller 160 is connected to various configurations such as a communication unit, an input unit, and a display unit according to the purpose of use of the corresponding system, , A display function, and the like. In addition, the control device 160 in the key-value store system 10 can be further connected to a camera or a sensor module, and various user functions according to predefined program routines based on image information or sensor information provided by the corresponding configurations .

이상에서 설명한 본 발명의 key-value store 시스템(10)은 제어 장치(160)를 서버로 하고, 저장 장치(150)를 클라이언트로 하는 서버-클라이언트 시스템으로 구현될 수 있다. 또한 본 발명의 key-value store 시스템(10)은 제어 장치(160)가 직접적으로 접근할 수 있는 복수개의 저장 장치(150)들이 하나로 구현된 통합 서버 장치로 구현될 수 있다. 또는 본 발명의 key-value store 시스템(10)은 제어 장치(160)와 저장 장치(150)가 물리적으로 일정 공간 내에 위치하는 하나이 컴퓨팅 장치로 구현될 수도 있다. 예컨대, 본 발명의 key-value store 시스템(10)은 중앙 처리 장치와 메모리 장치가 보드 상에 집적된 형태의 컴퓨팅 장치로 구현될 수도 있다.The key-value store system 10 of the present invention described above can be implemented as a server-client system using the control device 160 as a server and the storage device 150 as a client. Also, the key-value store system 10 of the present invention can be implemented as an integrated server device in which a plurality of storage devices 150 directly accessible by the control device 160 are integrated. Alternatively, the key-value store system 10 of the present invention may be implemented as one computing device in which the controller 160 and the storage device 150 are physically located within a certain space. For example, the key-value store system 10 of the present invention may be implemented as a computing device in which a central processing unit and a memory device are integrated on a board.

도 3은 본 발명의 실시예에 따른 시스템의 제어 장치 구성을 보다 상세히 나타낸 도면이다.FIG. 3 is a detailed block diagram of a control apparatus of a system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 제어 장치(160)는 쿠쿠 해싱 처리기(161) 및 체인드 해싱 처리기(163)를 포함하고, 이를 기반으로 데이터에 대한 하이브리드 해싱 처리를 수행할 수 있다. Referring to FIG. 3, the controller 160 of the present invention includes a cookie hashing processor 161 and a chain hashing processor 163, and can perform a hybrid hashing process on data based on the cookie hashing processor 161 and the chain hashing processor 163.

쿠쿠 해싱 처리기(161)는 쿠쿠 해싱 처리를 수행할 수 있다. 쿠쿠 해싱(Cuckoo hashing)은 2개의 해시 테이블과 각 테이블을 위한 2개의 해시 함수를 사용할 수 있다. 하나의 키는 2개의 해시 함수를 사용해 각 테이블마다 하나의 엔트리를 가진다. 키가 해시 테이블 내에 존재한다면 해당 키는 반드시 두 개의 엔트리 중 하나에 위치한다. 이러한 쿠쿠 해싱 처리는 키의 검색을 위해 두 개 위치만 확인하면 되므로, 검색 시간이 가변적인 separate chaining이나 linear probing 등의 기법과 달리 빠르고 안정적인 검색, 삭제, 갱신 작업을 제공할 수 있다.The cookie hashing processor 161 can perform the cookie hashing process. Cuckoo hashing can use two hash tables and two hash functions for each table. A key has one entry for each table using two hash functions. If the key exists in a hash table, the key must be in one of the two entries. Such a cache hashing process can provide fast and reliable retrieval, deletion, and update operations, unlike techniques such as separate chaining or linear probing, in which the retrieval time is variable, since only two locations need to be checked for key retrieval.

본 발명의 쿠쿠 해싱 처리기(161)는 쿠쿠 해시 테이블에 데이터를 삽입할 때, 해시 함수를 통해 찾은 두 엔트리 중 빈 곳이 있다면 비어 있는 엔트리에 삽입한다. 두 엔트리 모두 다른 키가 저장되어 있다면, 쿠쿠 해싱 처리기(161)는 체인드 해싱 처리기(163)를 호출할 수 있다. 그리고 쿠쿠 해싱 처리기(161)는 키 저장을 체인드 해싱 처리기(163)에 전달할 수 있다. When inserting data into the cookie hash table, the cookie hash processor 161 of the present invention inserts an empty entry in two entries found through the hash function. If both entries are stored with different keys, the cookie hash processor 161 may call the chain hash processor 163. And the cookie hash processor 161 may forward the key store to the chain hash processor 163.

한편, 쿠쿠 해싱 처리기(161)는 key-value store 시스템(10)이 "Idle" 상태인 경우 체인드 해싱 처리기(163)에 전달한 키를 다시 전달받을 수 있다. 쿠쿠 해싱 처리기(161)는 전달 받은 키를 쿠쿠 해싱 방식에 따라 저장 처리할 수 있다. 쿠쿠 해싱 처리기(161)는 엔트리 모두 다른 키가 저장되어 있는 상황에서 쿠쿠 해시 테이블에 데이터를 삽입할 때, 두 엔트리 중 하나를 택해 기존의 키를 다른 곳으로 이동시킨 후, 이동에 의해 생성된 빈 자리에 키를 삽입한다. 각 키는 두 개의 엔트리 중 하나에 위치하므로, 이동된 키는 다른 테이블에 있는 자신의 엔트리로 이동되며, 쿠쿠 해싱 처리기(161)는 상술한 키 삽입 과정을 빈 엔트리를 찾을 때까지 반복할 수 있다.On the other hand, the cookie hashing processor 161 can receive the key transmitted to the chain hash processor 163 again when the key-value store system 10 is in the "Idle" state. The cookie hashing processor 161 can store the received key according to the cookie hashing method. When inserting data into a cookie hash table in a state where all other keys are stored, the cookie hashing processor 161 selects one of the two entries to move the existing key to another place, Insert the key in place. Since each key is located in one of the two entries, the moved key is moved to its own entry in the other table, and the cookie hashing processor 161 can repeat the above-described key insertion process until it finds an empty entry .

체인드 해싱 처리기(163)는 체인드 해시 테이블 관리를 수행할 수 있다. 체인드 해싱 처리기(163)는 쿠쿠 해싱 처리기(161)로부터 키 저장을 전달 받는 경우, 해당 키의 저장을 위한 리스트 처리를 수행할 수 있다. 그리고 체인드 해싱 처리기(163)는 key-value store 시스템(10)이 "Idle" 상태인 경우, 리스트에 추가된 키를 쿠쿠 해싱 처리기(161)에 전달할 수 있다.The chain dehashing processor 163 may perform chain hash table management. When the key store is received from the cookie hashing processor 161, the chain dehashing processor 163 may perform list processing for storing the key. And the chain de-hashing processor 163 may pass the key added to the list to the cookie hash processor 161 if the key-value store system 10 is in the "Idle" state.

도 4는 본 발명의 실시예에 따른 하이브리드 해싱에 의한 데이터 삽입 방법을 설명하기 위한 순서도이며, 도 5는 하이브리드 해싱에 의한 데이터 삽입을 설명하기 위한 도면이다.FIG. 4 is a flowchart illustrating a method of inserting data by hybrid hashing according to an embodiment of the present invention, and FIG. 5 is a view for explaining inserting data by hybrid hashing.

도 4 및 도 5를 참조하면, 하이브리드 해싱에 의해 키 K를 삽입하는 과정은 먼저, S101 단계에서 제어 장치(160)가 쿠쿠 해싱 방식에 따라 해시 함수를 사용하여 엔트리를 산출할 수 있다. 이때, 제어 장치(160)는 하나의 키에 두 개의 해시 함수를 사용하여 두 개의 엔트리 예컨대, h1(k), h2(k)를 산출할 수 있다. 엔트리가 산출되면, 제어 장치(160)는 S103 단계에서 산출된 엔트리가 비어있는지 확인할 수 있다. 한편 S101 단계 이전에 제어 장치(160)는 Bloom filter를 적용하여 해시 조인에 대한 불필요한 로드 발생을 저감시킬 수 있다.Referring to FIGS. 4 and 5, in the process of inserting the key K by the hybrid hashing, the control device 160 may calculate an entry using the hash function according to the cookie hashing method in step S101. At this time, the control device 160 can calculate two entries h1 (k) and h2 (k) using two hash functions in one key. When the entry is calculated, the controller 160 can check whether the entry calculated in step S103 is empty. On the other hand, before the step S101, the control device 160 may reduce the unnecessary load on the hash join by applying a Bloom filter.

S103 단계에서 h1(k) 또는 h2(k)가 비어 있으면 제어 장치(160)는 S105 단계에서 키 K를 비어 있는 슬롯에 삽입할 수 있다. 한편 S103 단계에서 h1(k)과 h2(k)가 비어 있지 않은 경우, 제어 장치(160)는 S107 단계에서 해당 키 K를 체인드 해시 테이블의 h(K) 리스트에 추가한다. If h1 (k) or h2 (k) is empty in step S103, the control device 160 can insert the key K into the empty slot in step S105. On the other hand, if h1 (k) and h2 (k) are not empty in step S103, the control device 160 adds the key K to the h (K) list of the chain hash table in step S107.

이후, 제어 장치(160)는 S109 단계에서 key-value store 시스템(10)이 특정 설정 조건 상태인지 확인할 수 있다. 예컨대, 제어 장치(160)는 key-value store 시스템(10)이 "Idle" 상태인지 확인할 수 있다. 여기서 제어 장치(160)는 "Idle" 상태가 아닌 경우, S111 단계를 스킵할 수 있다. 이후 제어 장치(160)는 일정 주기 또는 실시간으로 key-value store 시스템(10)이 Idle 상태인지에 대한 확인을 수행하는 S109 과정을 수행하고, 그에 따라 S111 단계 수행을 제어할 수 있다.Thereafter, the controller 160 can check whether the key-value store system 10 is in a specific setting condition in step S109. For example, the control device 160 can check if the key-value store system 10 is in the "Idle" state. Here, if the control device 160 is not in the "Idle" state, the control device 160 may skip step S111. Thereafter, the control device 160 performs step S109 of checking whether the key-value store system 10 is in the idle state in a predetermined period or in real time, and thereby controlling the execution of step S111.

한편, 제어 장치(160)는 S109 단계에서 key-value store 시스템(10)이 설정된 조건 상태인 경우, S107 단계에서 체인드 해시 테이블에 삽입한 키를 S111 단계에서 쿠쿠 해시 테이블로 이동시키도록 제어할 수 있다. 쿠쿠 해시 테이블의 키 이동 과정은 쿠쿠 해싱 고유 방식에 따라 처리될 수 있다. 이 과정에서 체인드 해시 테이블 내의 키는 별개의 쓰레드(Transfer thread)에 의해 천천히 이동된다. 이 과정을 통해 제어 장치(160)는 쿠쿠 해싱 삽입 작업에서 큰 오버헤드를 만드는"밀어내는" 과정을 지연시키고 클라이언트에게 빠르게 응답을 줄 수 있도록 처리할 수 있다.On the other hand, if the key-value store system 10 is in the set condition in step S109, the controller 160 controls the key inserted in the hashed chain table in step S107 to move the key to the cookie hash table in step S111 . The key movement process of the cookie hash table can be handled according to the cookie hashing inherent method. In this process, the keys in the chained hash table are slowly moved by a separate thread. Through this process, the control device 160 can delay the "pushing out " process, which creates a large overhead in the cookie hashing insert operation, and process the response so that the client can respond quickly.

상술한 과정을 통하여, 본 발명의 key-value store 시스템(10)은 키 삽입 과정에서 충돌 발생에 따른 특정 시점에서의 쿠쿠 해시 테이블의 삽입 비용을 체인드 해시 테이블을 이용하여 최소화하여, 지연 쓰기 정책을 통한 시스템 응답 특성을 개선시킬 수 있다.Through the above-described process, the key-value store system 10 of the present invention minimizes the insertion cost of the cookie hash table at a specific time according to the occurrence of a collision in the key insertion process using a chain hash table, Thereby improving the system response characteristics.

도 6은 본 발명의 실시예에 따른 하이브리드 해싱에 의한 데이터 검색 방법을 설명하기 위한 순서도이며, 도 7은 하이브리드 해싱에 의한 데이터 검색을 설명하기 위한 도면이다.FIG. 6 is a flowchart for explaining a method of searching for data by hybrid hashing according to an embodiment of the present invention, and FIG. 7 is a view for explaining data searching by hybrid hashing.

도 6 및 도 7을 참조하면, 본 발명의 하이브리드 해싱에 의한 데이터 검색 방법은 먼저, S201 단계에서 키 k 검색이 요청되면, 제어 장치(160)가 S203 단계에서 쿠쿠 해싱 방식을 적용하여 해당 키 k에 대한 해시 함수 적용에 따라 h1(K)과 h2(K)를 사용하여 쿠쿠 해시 테이블 검색을 수행한다. 한편 S201 단계 또는 단계 이전에 제어 장치(160)는 Bloom filter를 적용하여 해시 조인에 대한 불필요한 로드 발생을 저감시킬 수 있다.Referring to FIGS. 6 and 7, in the method of searching for data by hybrid hashing according to the present invention, when the key k search is requested in step S201, the controller 160 applies a cookie hashing method in step S203, (K) and h2 (K) according to the application of the hash function to the hash function. On the other hand, before step S201 or step S206, the controller 160 may reduce the unnecessary load on the hash join by applying a Bloom filter.

제어 장치(160)는 S205 단계에서 엔트리가 비어 있는지 여부를 확인한다. S205 단계에서 제어 장치(160)는 엔트리가 비어 있으면 검색 실패로 처리하고, 리턴 한다. 데이터 삽입 과정에서 쿠쿠 해시 테이블을 우선적으로 사용하므로 엔트리가 비어 있으면 체인드 해시 테이블의 h(K) 역시 비어 있음이 보장된다. 단, 이를 위해 키 삭제 시 체인드 해시 테이블의 h(k) 삭제 작업을 수행할 수 있다.The control device 160 checks whether or not the entry is empty in step S205. In step S205, if the entry is empty, the control device 160 performs a search failure process and returns. Since the cache hash table is used first in the data insertion process, if the entry is empty, h (K) of the chained hash table is also guaranteed to be empty. However, in order to do this, it is possible to perform the deletion operation of the h (k) of the chained hash table when the key is deleted.

엔트리에 데이터가 기록되어 있으면 제어 장치(160)는 S207 단계에서 검색하는 키에 해당하는 데이터인지 확인할 수 있다. S207 단계에서 해당 키에 대한 데이터 검색이 성공하면 리턴 한다.If data is recorded in the entry, the control device 160 can confirm whether the data corresponds to the key to be searched in step S207. If the data retrieval for the corresponding key is successful in step S207, the process returns.

한편, 엔트리에 데이터가 기록되어 있지만 해당 키에 대한 데이터가 아니면, 제어 장치(160)는 S209 단계에서 추가적으로 체인드 해시 테이블의 h(K)에서 리스트를 검색한다. 이후 제어 장치(160)는 체인드 해시 테이블에서 키 검색이 성공하면 리턴 한다. 여기서, 제어 장치(160)는 자주 참조되는 키의 검색 속도를 높이기 위해, 체인드 해시 테이블에 있는 키가 참조되면 해당 키의 엔트리를 리스트의 헤드로 이동시킨다. 그리고 제어 장치(160)는 리스트 헤드로 이동된 키가 다시 한 번 참조되면 이후 해당 키는 쿠쿠 해시 테이블로 이동시킨다. On the other hand, if data is recorded in the entry but is not data for the corresponding key, the controller 160 additionally searches the list in the h (K) of the chain hash table in step S209. The control device 160 then returns if the key retrieval is successful in the chain hash table. Here, when the key in the chain hash table is referred to, the controller 160 moves the entry of the key to the head of the list in order to increase the retrieval speed of the frequently referenced key. Then, when the key moved to the list head is once again referred to, the controller 160 moves the key to the cookie hash table.

본 발명의 하이브리드 해싱 운용에 따른 데이터 갱신과 삭제 과정은 기본적으로 검색 과정과 동일할 수 있다. 예컨대, 제어 장치(160)는 갱신하고자 하는 key-value를 해당 키를 이용하여 위치 검색을 수행할 수 있다. 이때, 제어 장치(160)는 앞서 설명한 바와 같이 쿠쿠 해시 테이블을 우선적으로 검색하여, 해당 키의 위치 확인을 수행한 후, 해당 키에 대한 value를 갱신할 수 있다. 여기서 쿠쿠 해시 테이블에 해당 키가 존재하지 않으면 제어 장치(160)는 체인드 해시 테이블을 검색할 수 있다. 삭제 과정에서도, 제어 장치(160)는 쿠쿠 해시 테이블을 우선 검색하고, 필요에 따라 체인드 해시 테이블을 검색하도록 제어할 수 있다.The data update and deletion process according to the hybrid hashing operation of the present invention may basically be the same as the search process. For example, the control device 160 may perform a location search using a corresponding key-value to be updated. At this time, the control device 160 may preferentially search for the cookie hash table as described above, perform location verification of the key, and update the value of the key. Here, if the corresponding key does not exist in the cookie hash table, the controller 160 can search for the chained hash table. Even in the deletion process, the control device 160 can first search the cookie hash table, and control to retrieve the chained hash table as needed.

이상에서 설명한 바와 같이 본 발명의 실시예에 따른 key-value store 시스템(10)은 쿠쿠 해시 테이블에 키가 존재하는 경우 최대 2번의 참조만으로 성공이 보장되므로 최악의 경우를 보장할 수 없는 separate chaining에 비해 안정적이다. As described above, in the key-value store system 10 according to the embodiment of the present invention, when there is a key in the cookie hash table, since success is guaranteed only by a maximum of two references, separate chaining can not guarantee the worst case It is more stable.

한편, 본 발명의 key-value store 시스템(10)은 해시 함수의 반복적 계산 개선 및 검색 실패 시 응답 지연 보강을 위하여 추가적인 방법을 적용할 수 있다. 이를 보다 상세히 설명하면, 제어 장치(160)는 h1(K)과 h(K)에 같은 해시 함수를 사용한다. 제어 장치(160)는 h1(K)을 계산한 후 mod 연산만을 통해 체인드 해시 테이블의 인덱스를 얻을 수 있다. 또한, 제어 장치(160)는 쿠쿠 해시 테이블에서 h1(K)이 비어 있고 h2(K)가 사용되는 경우가 없도록 보장함으로써, h1(K)이 비어 있는 경우 h2(K)를 찾지 않고 즉시 리턴할 수 있다. 또한 본 발명의 key-value store 시스템은 쿠쿠 해시 테이블의 엔트리에 인덱스를 저장하는 필드를 추가하여 해시 함수 계산을 줄였다. 이 필드는 키가 h1(K)의 위치에 저장되면 h2(K)의 인덱스를, h2(K)의 위치에 저장되면 h1(K)의 인덱스를 저장한다. 구현 상 union{}을 사용하여 체인드 해시 테이블의 리스트 다음 엔트리를 가리키는 next 포인터와 같은 공간을 사용하므로, 이로 인한 추가적인 메모리 사용은 제거할 수 있다.Meanwhile, the key-value store system 10 of the present invention can apply an additional method to improve the iterative calculation of the hash function and to enhance the response delay in the case of a search failure. To explain this in more detail, the control device 160 uses the same hash function for h1 (K) and h (K). The controller 160 may calculate an index of the chain hash table by calculating modulo h1 (K) only through mod operation. In addition, the control device 160 ensures that h1 (K) is empty and h2 (K) is not used in the cookie hash table, so that h2 (K) is immediately returned without finding h2 . In addition, the key-value store system of the present invention reduces the hash function calculation by adding a field for storing an index to the entry of the cookie hash table. This field stores the index of h2 (K) when the key is stored in the position of h1 (K), and the index of h1 (K) when it is stored in the position of h2 (K). Implementations use the same space as the next pointer to the next entry in the list of chained hash tables, using union {}, thus eliminating additional memory usage.

도 8 내지 도 10은 체인드 해시 테이블과 본 발명의 하이브리드 해시 테이블 사용에 따른 작업 시간 측정 결과를 나타낸 도면이다. 특히 체인드 해시 테이블과 하이브리드 해시 테이블을 사용하여, 테이블 엔트리의 40% 사용된 상태에서 검색(lookup) 작업에 걸린 시간을 측정한 것이며, 각각 10만~100만 건에 대하여 도 8은 성공적인 검색, 도 9는 실패한 검색, 도 10은 10% 참조 지역성이 있는 검색 결과를 나타낸다.FIGS. 8 to 10 are diagrams showing the results of measurement of work time according to the use of the hybrid hash table and the hybrid hash table of the present invention. In particular, we use the chain hash table and the hybrid hash table to measure the time taken to perform a lookup operation with 40% of the table entries being used. For 100,000 to 1 million cases, Figure 9 shows a failed search, and Figure 10 shows a search result with 10% reference locality.

실험 결과 약 90%의 키가 쿠쿠 해시 테이블에 저장됨을 확인하였다. 하이브리드 해싱 방식은 체인드 해싱 방식에 비해 성공적인 검색의 경우 평균 7.4%, 최대 15%, 10%의 지역성이 있는 경우 평균 13%, 최대 24% 적은 시간이 소요되었다. 반면 실패한 검색의 경우 평균 4.6%, 최대 12% 느린 속도를 보였는데, 검색에 실패할 경우 쿠쿠 해시 테이블과 체인드 해시 테이블의 엔트리(리스트)를 모두 검색해야하기 때문이다. 하지만 검색이 실패하는 경우에도 제안 기법에서는 표 1에 나타낸 바와 같이 체인드 해시 테이블의 리스트가 대부분 1개의 키 만을 저장하고 있다. Experimental results show that about 90% of Kigaku hash tables are stored. Hybrid hashing methods have an average of 7.4%, 15% and 13%, respectively, for successful search and 13% and 24%, respectively, compared to the chain hashing method. On the other hand, unsuccessful searches have an average slow rate of 4.6% and up to 12%, because if they fail, they will have to search both the cookie hash table and the chained hash table entries. However, even if the retrieval fails, the proposed method stores only one key in the list of chained hash tables as shown in Table 1.

hashinghashing successful lookupsuccessful lookup unsuccessful lookupunsuccessful lookup averageaverage worstworst averageaverage worstworst ChainingChaining 1.171.17 77 1.261.26 77 HybridHybrid 1.131.13 22 1.371.37 33

1회 검색 시간이 매우 짧기 때문에 최악의 경우 검색 시간을 정확히 측정할 수는 없었으나, 표 1의 결과로 예상하면 최악의 경우 검색 시간은 hybrid hash table이 더 짧음을 예상할 수 있다.In the worst case, the retrieval time can not be measured accurately because the retrieval time is very short. However, it is expected that the worst case retrieval time is shorter than the hybrid hash table.

본 발명에서는 key-value store 시스템(10)에서 단일 노드의 검색성능을 개선하기 위한 기술을 제안한다. 이러한 본 발명은 빠르고 안정적인 쿠쿠 해싱을 사용면서도 쿠쿠 해싱의 느린 삽입 속도를 보완할 수 있도록 체인드 해시 테이블을 함께 사용하여 지연 쓰기를 적용한다. 본 발명의 검색 속도는 참조 지역성이 존재하는 경우 최대 24% 빠른 속도를 보였다.In the present invention, a technique for improving the search performance of a single node in the key-value store system 10 is proposed. The present invention applies delayed writing using a chain hash table together to compensate for the slow insertion speed of the cookie hashing while using fast and stable cookie hashing. The search speed of the present invention is up to 24% faster when there is reference locality.

한편, 상술한 설명에서는 본 발명의 하이브리드 해싱 방식을 하나의 시스템에서 구현하는 형태로 설명하였지만 본 발명이 이에 한정되는 것은 아니다. 즉, 본 발명에서 설명한 하이브리드 해싱 방식은 앞서 언급한 바와 같이 기본적으로 key-value store 방식에 적용될 수 있다. key-value store 방식은 키를 여러 대의 서버에 분배하고, 메모리 상에서 빠른 read/write를 통한 스토리지 서비스를 제공할 수 있을 것이다. 결과적으로 본 발명의 하이브리드 해싱 방식은 복수의 시스템들이 노드에 해당하는 서버 장치에도 동일한 형태로 적용 가능할 것이다. 특히 본 발명의 하이브리드 해싱 방식 적용에 의해 구현된 서버 장치는 쿠쿠 해싱을 기반으로 하는 효율적인 메모리 사용과 구현상의 이점 및 최악의 경우에도 상수 시간의 작업 보장을 지원하면서도 체인드 해싱 방식을 보조적으로 운용함으로써 보다 개선된 삽입 및 검색 속도의 개선을 지원할 수 있다.In the above description, the hybrid hashing method of the present invention is described as being implemented in one system, but the present invention is not limited thereto. That is, the hybrid hashing scheme described in the present invention can be basically applied to a key-value store scheme as described above. The key-value store approach would be to distribute keys across multiple servers and provide storage services through fast read / write in memory. As a result, the hybrid hashing method of the present invention can be applied to a server apparatus corresponding to a plurality of systems in the same form. In particular, the server apparatus implemented by applying the hybrid hashing scheme of the present invention assists efficient use of memory based on the cache hashing, advantage of implementation, guarantee of constant time work even in the worst case, And can support improved insertion and retrieval speed improvements.

그리고 본 명세서와 도면에 개시된 본 개시의 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 따라서 본 개시의 범위는 여기에 개시된 실시예들 이외에도 본 개시의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.And the embodiments of the present disclosure disclosed in this specification and drawings are merely illustrative of specific examples for the purpose of facilitating the understanding of the disclosure of the present disclosure and are not intended to limit the scope of the present disclosure. Accordingly, the scope of the present disclosure should be construed as being included in the scope of the present disclosure in addition to the embodiments disclosed herein, all changes or modifications derived from the technical idea of the present disclosure.

10 : key-value store 시스템
150 : 저장 장치
160 : 제어 장치
161 : 쿠쿠 해싱 처리기
163 : 체인드 해싱 처리기
10: key-value store system
150: Storage device
160: Control device
161: Cucumis hashing processor
163: Chained hashing handler

Claims (15)

쿠쿠 해시 테이블 및 체인드 해시 테이블을 저장하는 저장 장치;
데이터 운용 시 쿠쿠 해시 테이블의 엔트리 검사를 선행하고, 쿠쿠 해시 테이블 적용 불가 또는 적용 과정에서 오버헤드 발생 시 상기 체인드 해시 테이블 적용을 수행하는 제어 장치;
를 포함하는 key-value store 시스템.
A storage device for storing the cookie hash table and the chained hash table;
A control device for performing an entry check of a cookie hash table at the time of data operation and performing the application of the chain hash table when an overhead occurs in a case where the cookie hash table can not be applied or applied;
A key-value store system,
제1항에 있어서,
상기 제어 장치는
데이터 삽입 요청 시, 상기 쿠쿠 해시 테이블의 엔트리 검사를 수행하여 비어있지 않은 경우, 해당 데이터를 상기 체인드 해시 테이블의 리스트에 추가하도록 제어하는 key-value store 시스템.
The method according to claim 1,
The control device
The key-value store system according to claim 1, wherein the key-value storage system is configured to check an entry of the cookie hash table when the data is inserted, and to add the data to the list of the chain hash table if the data is not empty.
제2항에 있어서,
상기 제어 장치는
상기 시스템이 설정된 조건에 진입하는지 확인하고, 상기 체인드 해시 테이블 리스트에 추가한 데이터를 상기 쿠쿠 해시 테이블로 이동시키도록 제어하는 key-value store 시스템.
3. The method of claim 2,
The control device
A key-value store system which checks whether the system enters a set condition, and controls to move data added to the chain hash table list to the cookie hash table.
제1항에 있어서,
상기 제어 장치는
상기 쿠쿠 해시 테이블에 적용되는 두 개의 해시 함수를 동일한 함수로 적용하도록 제어하는 key-value store 시스템.
The method according to claim 1,
The control device
A key-value store system that controls to apply two hash functions applied to the cookie hash table to the same function.
제1항에 있어서,
상기 제어 장치는
상기 데이터를 상기 쿠쿠 해시 테이블의 엔트리에 기입 시 쿠쿠 해시 테이블의 엔트리에 인덱스를 저장하는 필드를 추가하는 key-value store 시스템.
The method according to claim 1,
The control device
A key-value store system for adding a field for storing an index to an entry of a cookie hash table upon writing the data to an entry of the cookie hash table.
제1항에 있어서,
상기 제어 장치는
데이터 검색 요청 시, 상기 쿠쿠 해시 테이블을 선행하여 검색하고, 실패 시 상기 체인드 해시 테이블 검색을 수행하도록 제어하는 key-value store 시스템.
The method according to claim 1,
The control device
A key-value store system for searching for a cache hash table in advance when searching for data, and performing a search for the hash table in case of failure.
제6항에 있어서,
상기 제어 장치는
상기 체인드 해시 테이블에 있는 데이터가 참조되면 해당 데이터의 엔트리를 리스트의 헤드로 이동시키고, 상기 리스트 헤드로 이동된 데이터가 추가 참조되면 해당 데이터를 상기 쿠쿠 해시 테이블로 이동시키도록 제어하는 key-value store 시스템.
The method according to claim 6,
The control device
If the data in the chain hash table is referred to, moves the entry of the corresponding data to the head of the list, and if the data moved to the list head is further referenced, controls key-value store system.
데이터 삽입 요청을 수신하는 과정;
쿠쿠 해시 테이블의 엔트리 검사를 수행하는 과정;
상기 쿠쿠 해시 테이블의 엔트리가 채워져 있는 경우 체인드 해시 테이블의 리스트에 상기 데이터를 삽입하는 과정;
을 포함하는 데이터 운용 방법.
Receiving a data insertion request;
Performing an entry check of a cookie hash table;
Inserting the data into the list of the chain hash table when the entry of the cookie hash table is filled;
Lt; / RTI >
제8항에 있어서,
시스템이 사전 설정된 조건에 진입하는 진입 과정;
상기 진입에 따라 상기 체인드 해시 테이블 리스트에 추가한 데이터를 상기 쿠쿠 해시 테이블로 이동시키는 과정;
을 더 포함하는 데이터 운용 방법.
9. The method of claim 8,
An entry process in which the system enters a predetermined condition;
Moving the data added to the chain hash table list to the cookie hash table according to the entry;
≪ / RTI >
제8항에 있어서,
상기 데이터를 상기 쿠쿠 해시 테이블의 엔트리에 기입 시 쿠쿠 해시 테이블의 엔트리에 인덱스를 저장하는 필드를 추가하는 과정;
을 더 포함하는 데이터 운용 방법.
9. The method of claim 8,
Adding a field for storing an index to an entry of a cookie hash table upon writing the data into an entry of the cookie hash table;
≪ / RTI >
제10항에 있어서,
상기 진입 과정은
상기 시스템이 Idle 상태로 진입하는 과정인 데이터 운용 방법.
11. The method of claim 10,
The entry process
And the system enters an idle state.
데이터 검색 요청을 수신하는 과정;
상기 데이터에 대한 쿠쿠 해시 테이블의 엔트리 검색을 선행하고, 엔트리 검색 실패 시 체인드 해시 테이블의 리스트를 검색하는 과정;
을 포함하는 데이터 운용 방법.
Receiving a data retrieval request;
A step of preceding an entry search of the cookie hash table with respect to the data and retrieving a list of the chained hash table in case of an entry search failure;
Lt; / RTI >
제12항에 있어서,
상기 쿠쿠 해시 테이블 검색 과정에서 해시 함수를 동일한 함수로 운용하는 과정;
을 더 포함하는 데이터 운용 방법.
13. The method of claim 12,
Operating the hash function as the same function in the retrieval process of the cookie hash table;
≪ / RTI >
제12항에 있어서,
상기 체인드 해시 테이블에 있는 데이터가 참조되면 해당 데이터의 엔트리를 리스트의 헤드로 이동시키는 과정;
을 더 포함하는 데이터 운용 방법.
13. The method of claim 12,
Moving the entry of the data to the head of the list if the data in the chain hash table is referenced;
≪ / RTI >
제12항에 있어서,
상기 리스트 헤드로 이동된 데이터가 추가 참조되면 해당 데이터를 상기 쿠쿠 해시 테이블로 이동시키는 과정;
을 더 포함하는 데이터 운용 방법.
13. The method of claim 12,
If the data moved to the list head is further referenced, moving the corresponding data to the cookie hash table;
≪ / RTI >
KR20130124295A 2013-10-18 2013-10-18 Data Operating Method And System supporting the same KR20150045073A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR20130124295A KR20150045073A (en) 2013-10-18 2013-10-18 Data Operating Method And System supporting the same
JP2013224134A JP2015079473A (en) 2013-10-18 2013-10-29 Data management method, and system supporting the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130124295A KR20150045073A (en) 2013-10-18 2013-10-18 Data Operating Method And System supporting the same

Publications (1)

Publication Number Publication Date
KR20150045073A true KR20150045073A (en) 2015-04-28

Family

ID=53010820

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130124295A KR20150045073A (en) 2013-10-18 2013-10-18 Data Operating Method And System supporting the same

Country Status (2)

Country Link
JP (1) JP2015079473A (en)
KR (1) KR20150045073A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190057977A (en) * 2017-11-21 2019-05-29 주식회사 한화 Apparatus and method for hashing processing using multi core cache
KR20190065558A (en) * 2017-12-04 2019-06-12 재단법인대구경북과학기술원 Hash chain traversal algorithm and electronic device thereof
KR101993555B1 (en) * 2018-03-05 2019-09-27 인하대학교 산학협력단 Lrfu based cache replacement method and system using rcc and cuckoo hash table
US10437738B2 (en) 2017-01-25 2019-10-08 Samsung Electronics Co., Ltd. Storage device performing hashing-based translation between logical address and physical address
KR102085132B1 (en) * 2018-11-13 2020-04-20 인하대학교 산학협력단 Efficient cuckoo hashing using hash function categorization in inside of bucket

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764801A (en) * 1993-08-31 1995-03-10 Nec Software Ltd User word retrieval system
JPH08278894A (en) * 1995-04-06 1996-10-22 Hitachi Ltd Information processing method and information processor by hash method
JP3056704B2 (en) * 1997-08-25 2000-06-26 三菱電機株式会社 Data management device
JP4183400B2 (en) * 2001-06-27 2008-11-19 株式会社日立製作所 Database system, database management method and program
US7657500B2 (en) * 2007-03-12 2010-02-02 Sun Microsystems, Inc. Concurrent extensible cuckoo hashing
US8305271B2 (en) * 2010-03-17 2012-11-06 Microsoft Corporation Cuckoo hashing to store beacon reference data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437738B2 (en) 2017-01-25 2019-10-08 Samsung Electronics Co., Ltd. Storage device performing hashing-based translation between logical address and physical address
KR20190057977A (en) * 2017-11-21 2019-05-29 주식회사 한화 Apparatus and method for hashing processing using multi core cache
KR20190065558A (en) * 2017-12-04 2019-06-12 재단법인대구경북과학기술원 Hash chain traversal algorithm and electronic device thereof
KR101993555B1 (en) * 2018-03-05 2019-09-27 인하대학교 산학협력단 Lrfu based cache replacement method and system using rcc and cuckoo hash table
KR102085132B1 (en) * 2018-11-13 2020-04-20 인하대학교 산학협력단 Efficient cuckoo hashing using hash function categorization in inside of bucket

Also Published As

Publication number Publication date
JP2015079473A (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP6419319B2 (en) Synchronize shared folders and files
US8751763B1 (en) Low-overhead deduplication within a block-based data storage
CN107491523B (en) Method and device for storing data object
WO2015078370A1 (en) Method, device, node and system for managing file in distributed data warehouse
KR20150045073A (en) Data Operating Method And System supporting the same
CN109284066B (en) Data processing method, device, equipment and system
CN109460406B (en) Data processing method and device
US11650967B2 (en) Managing a deduplicated data index
CN111241040B (en) Information acquisition method and device, electronic equipment and computer storage medium
CN101576854A (en) File access method, device and system
US20170083537A1 (en) Mapping logical identifiers using multiple identifier spaces
CN108132759B (en) Method and device for managing data in file system
CN111831691A (en) Data reading and writing method and device, electronic equipment and storage medium
US10241927B2 (en) Linked-list-based method and device for application caching management
CN101459599B (en) Method and system for implementing concurrent execution of cache data access and loading
US11520818B2 (en) Method, apparatus and computer program product for managing metadata of storage object
CN112579591B (en) Data verification method, device, electronic equipment and computer readable storage medium
WO2019228009A1 (en) Lsm tree optimization method and device and computer equipment
JP2018526740A (en) Data storage method and apparatus for mobile terminal
US10235293B2 (en) Tracking access pattern of inodes and pre-fetching inodes
KR20190123819A (en) Method for managing of memory address mapping table for data storage device
CN104537023A (en) Storage method and device for reverse index records
CN113127415B (en) Real-time stream file processing method, device, medium and electronic equipment
CN104375781B (en) Data access method and device
CN104487937A (en) Replacing virtual file system data structures deleted by a forced unmount

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal