WO2013122338A1 - 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 - Google Patents

검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 Download PDF

Info

Publication number
WO2013122338A1
WO2013122338A1 PCT/KR2013/000604 KR2013000604W WO2013122338A1 WO 2013122338 A1 WO2013122338 A1 WO 2013122338A1 KR 2013000604 W KR2013000604 W KR 2013000604W WO 2013122338 A1 WO2013122338 A1 WO 2013122338A1
Authority
WO
WIPO (PCT)
Prior art keywords
index
storage space
data
nodes
service
Prior art date
Application number
PCT/KR2013/000604
Other languages
English (en)
French (fr)
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 주식회사 케이티
Publication of WO2013122338A1 publication Critical patent/WO2013122338A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Definitions

  • the present invention relates to a method of processing time series data in a search system.
  • the present invention relates to distributed indexing of index information in a search system in order to efficiently analyze large time series data such as detailed call history information such as a call detail record (CDR).
  • CDR call detail record
  • the present invention relates to a search system for improving search performance.
  • time series data can be indexed by date and distributed and stored evenly in each node. have.
  • the index (Index A, B, C in FIG. 1) is a problem that the imbalance situation occurs.
  • the index of a specific date is concentrated in a specific node, and the search of the index of the date is performed using only the resource of a specific node. Therefore, it is impossible to use the resources of distributed nodes efficiently, resulting in poor search performance.
  • an object of the present invention is to solve the above-described problem, and an object of the present invention is to provide a time-based search system for efficiently analyzing large time series data such as detailed call history information such as a call detail record (CDR). Improves query performance by subdividing the index into four levels (eg Hot, Warm, Cold, Frozen) and improves the query performance.
  • the present invention provides a retrieval system that efficiently utilizes resources of each index by node by redistributing and managing data in a shortest path so that data of a specific index can be distributed and stored uniformly without being concentrated.
  • a system for retrieving time series data according to an aspect of the present invention for achieving the above object of the present invention, to distribute and store the data to a plurality of nodes according to a predetermined rule Router to control the risk; And the plurality of nodes storing data received from the router in a storage space and providing results in response to a search command, wherein each of the plurality of nodes stores data for each index divided by periods in a predetermined size.
  • Each index is stored in a space, and index equalization is performed to equally allocate an index to be serviced to the search command to a plurality of storage spaces so that specific index data is distributed and stored.
  • the data received from the router may be data in which the period is divided by a time for receiving the data or a time based on time information included in the data.
  • the data received from the router may be time series data including a call detail record (CDR) in a mobile communication service.
  • the period may be divided by a call end time included in the CDR.
  • CDR call detail record
  • each of the index equalization service module for allocating the storage spaces that serve their own storage for a plurality of indexes and storage spaces for storing a copy of the storage spaces serviced by one or more other nodes distributed the data for each index It includes.
  • the index equalization service module performs the index equalization at the time of failure recovery or node addition of any one of the plurality of nodes, so that each node of the service storage space and the copy storage space according to a predetermined number of the plurality of indexes.
  • the total number is matched, and the total number of indexes of the service storage space and the copy storage space is matched according to a predetermined number of the plurality of nodes.
  • one or more of the operating nodes, for each index controls to serve on behalf of the failed node with a copy of the storage space served by the failed node.
  • the index equalization service module according to a predetermined number for a plurality of indexes matching the total number of nodes of the service storage space and the copy storage space for each node, to a plurality of nodes except the failure node Match the total number of indexes of service storage and copy storage according to a predetermined number.
  • the plurality of nodes includes an index step service module for controlling each memory to allocate a predetermined amount of storage space to each memory for storing index-specific data divided into respective periods in a main memory and a sub memory.
  • the main memory classifies the data received from the router into a hot index and accumulates the data in the allocated storage space. The data is classified into an index and stored in the allocated storage space of the sub memory.
  • the sub memory changes the warm index to a cold index after a certain period of time, and then to a frozen index after a certain period of time.
  • Each of the plurality of nodes allocates storage spaces for storing a copy of storage spaces serviced by other nodes and storage spaces serviced by other nodes to the sub-memories, and distributes data for each index.
  • a service module wherein the index equalization service module stores the copy with respect to storage space of the warm index, the cold index, or the frozen index.
  • the index equalization service module may be configured to match the total number of nodes of the service storage space and the copy storage space with respect to the storage spaces of the cold index and the frozen index according to a predetermined number of a plurality of indexes.
  • the data of the service storage space and the copy storage space is moved so that the total number of indexes of the service storage space and the copy storage space coincides with the predetermined number of the plurality of nodes.
  • the search service for the search command is provided for data stored in the hot index, the warm index, or the cold index storage space, and is provided in the storage space of the frozen index.
  • the search service is excluded from the stored data.
  • the time-based index is divided into four stages (for example, hot, warm, cold, frozen) to manage each node in real time without a long batch.
  • Data can be managed by index and the access range of distributed indexed nodes and indexes can be adjusted to improve query performance.
  • 1 is a view for explaining the concept of indexing and search in the existing distributed search platform.
  • FIG. 2 is a view for explaining the concept of indexing and search in a search system according to an embodiment of the present invention.
  • FIG. 3 is a block diagram illustrating a search system according to an embodiment of the present invention.
  • FIG. 4 is a diagram for describing four indexes according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating an indexing method according to an embodiment of the present invention.
  • FIG. 6 is a view for explaining the concept of index equalization according to an embodiment of the present invention.
  • FIG. 7 is a flowchart illustrating an index equalization method according to an embodiment of the present invention.
  • FIG. 2 is a view for explaining the concept of indexing and search in a search system according to an embodiment of the present invention.
  • each of a plurality of nodes stores data for each index (eg, Index A, B, and C) separated by a period of a predetermined size.
  • Each of the storage spaces 21, which are stored in the space, but serve as a search command by performing index equalization, are allocated to one or more indexes (eg, Index A, B, and C) by each index.
  • the data is distributed and stored.
  • Each of a plurality of nodes e.g., Node A, B, C
  • Storage spaces 22 storing copies of the spaces may be allocated to distribute and store data for each index.
  • index equalization may be performed through data redistribution upon failure of any one or more of a plurality of nodes (eg, Nodes A, B, and C) or upon failure recovery (or adding a new node). Accordingly, the total number of nodes (eg, five in FIG. 2) of the service storage space 21 and the copy storage space 22 is matched according to a predetermined number of the plurality of indexes, and the pre-rearization of the plurality of nodes is performed in advance. By matching the total number of indexes of the service storage space with the copy storage space (for example, 5 in FIG.
  • the time-based index for the data stored in each node is searched in four steps (for example, Hot, Warm, Cold, and Frozen). (Refer to Figure 4) to improve the search performance by excluding search service for data stored in the storage space of outdated indexes, and redistribute data in the event of failure / recovery as above.
  • index equalization is performed on data of cold index and frozen index to make the allocation space of data indexed by node uniform, while data of specific index is not concentrated by node.
  • the above time-based indexes may be divided into time for receiving data, or time information included in the received data (eg, file type). It may also be divided into time based on. For example, Index A could be today's period, Index B could be yesterday's period, Index C could be the current period, and so on.
  • Data received by the retrieval system of the present invention is detailed call history information (calling number, called number, call call type, billing type) in a mobile communication service such as, for example, a call detail record (CDR) received in real time every day. Etc.), and the indexes (eg, Index A, B, C) included in each CDR, which are included in each CDR received in real time, for example, by determining the end time of the call, are divided into each period. Can be determined.
  • FIG. 3 is a block diagram illustrating a search system 100 according to an embodiment of the present invention.
  • the search system 100 includes a router 110 that receives real time time series data and controls distributed storage of data to a plurality of nodes according to a preset rule. And a plurality of nodes storing data received from the router 110 in a storage space and providing a result in response to a search command.
  • Each node 120 constituting the plurality of nodes includes an indexer 121, a searcher 122, a main memory 123, a sub memory 124, an index level service module 125, and an index equalization service module 126. ) May be included.
  • the router 110 and the node 120 may be implemented in hardware, software, or a combination thereof that operates organically to efficiently analyze time series data.
  • the main memory 123 may be main memory having a storage space for fast access from a processor (CPU), such as a random access memory (RAM) of a computer, and the sub memory 124 may read and write like a hard disk of a computer.
  • the access for the memory may be a memory having a large storage space slower than RAM.
  • the router 110 calculates a predetermined hash function for the information (eg, the call termination time of the CDR) included in the time series data received in real time and delivers the data to the determined node among the plurality of nodes. Control the data to be distributed evenly among the nodes.
  • the router 110 may pass data to the nodes, divided into periods (eg, days, such as today, yesterday, yesterday, etc.) (eg, by the call end time of the CDR), and if the period division is different (eg, date). Change)
  • the main memory 123 and the sub memory 124 may be controlled to allocate and store a new space for storing corresponding data.
  • each node 120 When each node 120 receives data from the router 110, each node 120 stores the data by index (eg, by date) separated by a period (eg, by the call end time of the CDR) in a storage space of a predetermined size.
  • index e.g, by date
  • period e.g, by the call end time of the CDR
  • a storage space (service storage space) serving a search command may be allocated to a plurality of indexes to distribute and store data for each index.
  • the indexer 121 is responsible for the overall control in the node 120 associated with the index divided by a period of time (eg, daily) for the received data.
  • Index equalization service module 126 is basically a storage space for storing a copy of the storage service that is served (see hatched in Figure 6) and the storage spaces serviced by other nodes for a plurality of index (e.g. date index) Can be allocated to the sub-memory 124 to control distributed storage of index-specific data, and indexes when a failure or failover node (or node addition) is detected as described below. Index equalization may be performed.
  • the indexer 121 for example, in the event of a failure of any one of the plurality of nodes, at least one of the nodes operating except it is serviced by the failed node for each index (eg, a date index).
  • a copy of the storage space of the sub memory 124 may be controlled to serve on behalf of the failed node.
  • the searcher 122 excludes a frozen index of the sub memory 124 in response to a search command according to a search word input using a predetermined terminal of the user (eg, a corresponding date or period for searching for data of an input date or period). Searches the hot index of the main memory 123 and the warm and cold indexes of the sub-memory 124 and searches data of the corresponding index (eg, date or period) according to the search result. It may be provided as (see Fig. 4).
  • the searcher 122 of each node may exchange data with each other through communication, and the searcher 122 of the node receiving the search command transmits the search command to the searcher 122 of other nodes, and accordingly, The searcher 122 may provide the user terminal with data according to the above search results.
  • indexes eg, divided into call termination times of CDRs
  • periods eg, This section describes how to store data by date in a storage space of a certain size, and manage them by separating them into a hot index, a warm index, a cold index, and a frozen index.
  • the router 110 receives the time series data in real time (S10), calculates a predetermined hash function for information (eg, a call termination time of a CDR) included in the time series data, and is determined among the plurality of nodes. By transmitting the corresponding data to all nodes to control the data is distributed and stored evenly (S11).
  • a predetermined hash function for information eg, a call termination time of a CDR
  • the indexer 121 of each node 120 receiving the time series data from the router 110 notifies the index step service module 125 of this (S12). Accordingly, the index stage service module 125 may provide the main memory 123 and the sub memory with index-specific data (refer to FIG. 6) divided into respective periods (eg, dates) for the time series data received from the router 110.
  • the control unit allocates a storage space having a predetermined size (for example, tens or hundreds of megabytes / gigabyte) to each memory (S20).
  • the main memory 123 classifies the data received from the router 110 as a hot index, accumulates it in the corresponding allocated storage space, and schedules the data. When the size becomes large, the accumulated data of the corresponding storage space may be classified into a warm index and moved to the allocated storage space of the sub memory 124 to store the data.
  • the sub memory 124 changes the warm index to a cold index after a certain period of time, and then to a frozen index after a certain period of time. Can be changed (S21).
  • the index may be changed by the index, and then the index may be changed by the frozen index for the data in the corresponding storage space over 60 days from today's date.
  • Data stored in the storage space of the frozen index may be moved to another backup device after a predetermined date (for example, more than three months), stored, deleted, or discarded.
  • the main memory 123 and the sub memory 124 allocate and store a new space in which the main memory 123 and the sub memory 124 store the data when the reference period is changed (eg, a date is changed).
  • the indexer 121 may notify the indexer 121, and the indexer 121 may notify the index stage service module 125 of this. Accordingly, the index stage service module 125 stores a new storage space for storing the time series data of which the division period is changed in the main memory 123 and the sub memory 124 with respect to the time series data of which the division period is changed from the router 110.
  • the control is performed to allocate the storage space of the hot index of the main memory 123 and the storage space of the warm index of the sub memory 124. Accordingly, the main memory 123 and the sub memory 124 are allocated. May store data for the changed period in the newly allocated storage space. For example, the main memory 123 accumulates time series data of a new date in a storage space of a new hot index for a new date, and when the size reaches a certain size, newly allocated worm data is stored as described above. The data may be classified into a warm index and moved to the allocated storage space of the sub memory 124 to be stored.
  • the indexer 121 for example, in the event of a failure of any one of the plurality of nodes, at least one of the nodes operating except it, for each index (e.g., date index), failed node It can be controlled to serve on behalf of the failed node to a copy of the storage space of the sub-memory 124 that was serviced.
  • the index equalization service module 126 basically stores a copy of the storage spaces it serves (see the shaded portion in FIG. 6) and the storage spaces serviced by other nodes for a plurality of indexes (eg, date indexes). Storage spaces (refer to the non-hatched portion in FIG.
  • index equalization service module 126 may be allocated to the sub memory 124 to control distributed storage of index-specific data, and index equalization may be performed when a failure or failover node is detected as described below. Equalize) can be performed.
  • the index equalization service module 126 reads a copy of the storage spaces serviced by other nodes with respect to the storage space of the warm index, the cold index, or the frozen index of the sub memory 124. You can save a copy.
  • node 1 stores data in service storage S0 and other nodes (eg, node 2, 3) A copy of the storage spaces serviced can be read and stored in the storage spaces S1 and S2.
  • nodes 2 and 3 can perform a service for a search command of searcher 122 in their service storage spaces S1 and S2, respectively.
  • the service storage space of the node 1 is S0
  • the service storage space of the node 2 is S1
  • the service storage space of the node 3 is described as S2.
  • the service storage space may be allocated to any one of the storage spaces S0, S1, and S2.
  • the index equalization service module 126 performs index equalization when a failure or failure of a node is detected and node addition is detected, so that the index equalization service module 126 services the storage space serving the search command (see hatched in FIG. 6).
  • the index-specific data may be distributed and stored in a plurality of indexes (eg, in FIG. 6, 20111120, 20111121, 20111122, .. 20111123).
  • the indexer 121 excludes it.
  • One or more of the operating nodes e.g., Nodes 2 and 3
  • each index e.g., date index
  • the index equalization service module 126 basically stores a copy of the storage spaces it serves (see the shaded portion in FIG. 6) and the storage spaces serviced by other nodes for a plurality of indexes (eg, date indexes).
  • Storage spaces may be allocated to the sub memory 124 to control distributed storage of index-specific data, and a plurality of nodes (eg, Nodes 2 and 3 in FIG. 6) operating at this time may be controlled.
  • Index equalization may be performed on the storage spaces of the cold index and the frozen index of (S31).
  • a plurality of indices (eg, 20111120, 20111121, 20111122, etc.) of each node may be stored in the storage space (refer to the hatched portion in FIG. 6) serving a search command. 20111123), but store the service storage space and copies equal to a predetermined number (e.g., 18) for a plurality of indexes (e.g., in FIG. 6, 20111120, 20111121, 20111122, .. 20111123).
  • the index equalization service module 126 may operate on a plurality of nodes (eg, Node 1 in FIG. 6) that operate similarly to the above failure. Index equalization may be performed on the storage spaces of the cold index and the frozen index of (2,3) (S40).
  • a plurality of indexes (eg, in FIG. 6, 20111120, 20111121, 20111122) of storage nodes serving the search command (see hatched portions in FIG. 6) may be used. ... 20111123), and at least one service storage space equal to a predetermined number (eg, 12) for a plurality of indexes (eg, in FIG. 6, 20111120, 20111121, 20111122, .. 20111123).
  • an imbalance situation of time series (Index A, B, and C in FIG. 1) occurs, and an index of a specific date is driven to a specific node, so that only a resource of a specific node is searched for the index of the corresponding date. Because of this, the resources of the distributed nodes could not be used efficiently.
  • the index equalization (Index Equalize) of the present invention as described above, while uniformly allocating space of the data (data in the service storage space) indexed for each node, the data of a specific index for each node is not uniformly distributed and stored. Since the system load can be reduced, resource utilization of each index for each node can be efficiently performed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 CDR(Call Detail Record)과 같은 상세 통화 내역 정보 등의 대용량 시계열 데이터를 효율적으로 분석하기 위해 검색 시스템에서 색인 정보의 분산 인덱싱과 이를 바탕으로 한 검색 성능의 향상을 위한 검색 시스템에 관한 것이다.

Description

검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
본 발명은 검색 시스템에서의 시계열 데이터의 처리 방법에 관한 것으로서, 특히, CDR(Call Detail Record)과 같은 상세 통화 내역 정보 등의 대용량 시계열 데이터를 효율적으로 분석하기 위해 검색 시스템에서 색인 정보의 분산 인덱싱과 이를 바탕으로 한 검색 성능의 향상을 위한 검색 시스템에 관한 것이다.
일자별로 색인되어 다수의 노드에 데이터를 저장하는 기존의 분산 검색 플랫폼에서, 각 노드가 고장 등의 장애 없이 정상적으로 동작하는 경우에는, 시계열 데이터를 일자별로 인덱싱하여 각 노드에 고르게 분산 저장하고 관리할 수 있다. 이와 같은 분산 환경에서 처리량 및 처리 성능을 올리기 위해서 노드 수를 증가 시키는 것이 일반적이다.
이와 같은 분산 환경에서 노드 수의 증가로 시스템이 방대해지는 경우에 필연적으로 여러 가지 장애(예, 시스템 다운, 네트워크 단절 등)가 발생할 수 있다. 어떤 한 노드의 장애 발생시 다른 노드가 장애 발생 노드의 데이터에 대한 복사본을 이용하여 그 노드를 대신해 서비스하고, 해당 노드의 장애 복구 후에는 도 1과 같이 노드별로 색인 수, 즉, 색인된 데이터의 할당 공간을 균일하게 리밸런싱(rebalancing)하게 된다.
그러나, 기존의 분산 검색 플랫폼에서는, CDR과 같은 시계열 구조의 색인저장 구조를 고려하지 않고 장애 발생과 장애 복구에 대한 운용을 하고 있으므로, 도 1과 같이 노드별로 색인된 데이터의 할당 공간은 균일하지만 시계열의 색인(도 1에서 Index A, B, C) 불균형 상황이 발생하는 문제점이 있다. 즉, 특정 노드에 특정일자의 색인이 몰려, 해당 일자의 색인에 대하여는 특정 노드의 리소스만 이용한 검색이 이루어지므로 분산된 노드들의 리소스를 효율적으로 사용할 수 없어 예상된 성능보다 저조한 검색 성능을 나타내는 결과를 초래한다.
따라서, 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은, CDR(Call Detail Record)과 같은 상세 통화 내역 정보 등의 대용량 시계열 데이터를 효율적으로 분석하기 위해 검색 시스템에서, 시간 기반의 색인을 4 단계(예, Hot, Warm, Cold, Frozen)로 세분하여 관리함으로써 조회 성능을 향상시키며, 장애 발생/복구 시의 데이터 재분배에 있어서 노드별로 색인된 데이터의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써 노드별 각 색인의 리소스 활용이 효율적으로 균등하게 이루어질 수 있도록 하는 검색 시스템을 제공하는 데 있다.
먼저, 본 발명의 특징을 요약하면, 상기와 같은 본 발명의 목적을 달성하기 위한 본 발명의 일면에 따른, 시계열 데이터의 검색 시스템은, 미리 설정한 규칙에 따라 복수의 노드로 데이터를 분산 저장하기 위해 제어기능을 하는 라우터; 및 상기 라우터로부터 수신한 데이터를 저장공간에 저장하고 검색 명령에 응답하여 결과를 제공하는 상기 복수의 노드를 포함하고, 상기 복수의 노드는 각각이, 기간으로 구분된 색인별 데이터를 일정 크기로 저장 공간에 각각 저장하되, 색인 균등화를 수행하여 상기 검색 명령에 대하여 서비스할 색인을 복수의 저장공간에 균등하게 할당하여 특정 색인 데이터를 분산 저장한다.
상기 라우터로부터 수신하는 데이터는 상기 데이터를 수신하는 시간 또는 상기 데이터에 포함된 시간 정보에 기초한 시간으로 상기 기간이 구분되는 데이터일 수 있다. 또는 상기 라우터로부터 수신하는 데이터는 이동 통신 서비스에서의 CDR(Call Detail Record)을 포함한 시계열 데이터일 수 있다. 상기 CDR에 포함된 통화 종료 시간으로 상기 기간이 구분될 수 있다.
상기 복수의 노드는 각각이, 복수의 색인에 대하여 자신이 서비스하는 저장공간과 하나 이상의 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈을 포함한다.
상기 인덱스 균등화 서비스 모듈은, 상기 복수의 노드 중 어느 한 노드의 장애 복구나 노드 추가 시에 상기 색인 균등화를 수행하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다.
상기 복수의 노드 중 어느 한 노드의 장애 발생 시에, 동작하는 노드들 중 하나 이상이, 각 색인에 대하여, 장애 발생 노드가 서비스하였던 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어하는 색인기를 포함하고, 상기 제어에 따라 상기 인덱스 균등화 서비스 모듈은, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 상기 장애 발생 노드를 제외한 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다.
상기 복수의 노드는 각각이, 각 기간으로 구분된 색인별 데이터를 주메모리와 서브 메모리에 저장하기 위해 각 메모리에 일정 크기의 저장 공간을 할당하도록 제어하는 인덱스 단계 서비스 모듈을 포함하고, 상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 주메모리는 상기 라우터로부터 수신하는 데이터를 핫(Hot) 인덱스로 분류하여 할당된 상기 저장 공간에 누적하고 일정 크기가 되면 누적된 상기 저장 공간의 데이터를 웜(Warm) 인덱스로 분류하여 상기 서브 메모리의 할당된 상기 저장 공간으로 이동시켜 저장한다.
상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 서브 메모리는 상기 웜(Warm) 인덱스를 일정 기간 경과 후에 콜드(Cold) 인덱스로 변경하고, 다시 일정 기간 경과 후에 프로즌(Frozen) 인덱스로 변경시킨다.
상기 복수의 노드는 각각이, 복수의 색인에 대하여 자신이 서비스하는 저장공간과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 상기 서브 메모리에 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈을 포함하고, 상기 인덱스 균등화 서비스 모듈은 상기 웜(Warm) 인덱스, 상기 콜드(Cold) 인덱스, 또는 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여 상기 복사본을 저장한다.
상기 인덱스 균등화 서비스 모듈은, 상기 콜드(Cold) 인덱스와 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수가 일치하고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수가 일치하도록, 서비스 저장공간과 복사본 저장공간의 데이터를 이동시킨다.
상기 핫(Hot) 인덱스, 상기 웜(Warm) 인덱스, 또는 상기 콜드(Cold) 인덱스의 저장공간에 저장된 데이터에 대하여는 상기 검색 명령에 대한 검색 서비스를 제공하고, 상기 프로즌(Frozen) 인덱스의 저장공간에 저장된 데이터에 대하여는 검색 서비스를 제외시킨다.
본 발명에 따른 시계열 데이터를 처리하는 검색 시스템에 따르면, 시간 기반의 색인을 4 단계(예, Hot, Warm, Cold, Frozen)로 세분하여 관리함으로써 장시간의 배치(batch) 작업없이 실시간으로 각 노드의 색인별 데이터 관리가 가능하고 분산 색인된 노드와 색인의 접근 범위의 조절이 가능하여 조회 성능을 향상시킬 수 있다.
또한, 장애 발생/복구 시의 데이터 재분배에 있어서 노드별로 색인된 데이터의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써 특정 시스템의 부하가 감소하고 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있다.
또한, 성능 향상을 위해 노드를 추가해 나가던 기존 방식을 보완하여 색인을 효율적으로 활용하여 성능 향상을 꾀함으로써 노드의 추가를 늦추어 비용 절감 효과를 갖는다.
도 1은 기존의 분산 검색 플랫폼에서의 인덱싱 및 검색의 개념을 설명하기 위한 도면이다.
도 2는 본 발명의 일실시예에 따른 검색 시스템에서의 인덱싱 및 검색의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 검색 시스템을 설명하기 위한 블록도이다.
도 4는 본 발명의 일실시예에 따른 4가지 색인을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 인덱싱 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일실시예에 따른 인덱스 균등화의 개념을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 인덱스 균등화 방법을 설명하기 위한 흐름도이다.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다.
도 2는 본 발명의 일실시예에 따른 검색 시스템에서의 인덱싱 및 검색의 개념을 설명하기 위한 도면이다.
본 발명의 일실시예에 따른 검색 시스템에서는, 복수의 노드(예, Node A, B, C) 각각이, 기간으로 구분된 색인별(예, Index A, B, C) 데이터를 일정 크기의 저장 공간에 각각 저장하되, 색인 균등화(Index Equalize)를 수행하여 검색 명령에 대하여 서비스하는 저장공간(21)을 복수의 색인(예, Index A, B, C)에 하나 이상씩 할당하여 각각에 색인별 데이터를 분산 저장하도록 하였다. 복수의 노드(예, Node A, B, C) 각각에서는 기본적으로 복수의 색인(예, Index A, B, C)에 대하여 자신이 서비스하는 저장공간(21)과 하나 이상의 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(22)을 할당하여 색인별 데이터를 분산 저장할 수 있다.
본 발명에서 이와 같은 색인 균등화(Index Equalize)는 복수의 노드(예, Node A, B, C) 중 어느 하나 이상의 장애 발생 시에 또는 장애 복구(또는 새로운 노드 추가) 시에 데이터 재분배를 통하여 이루어질 수 있으며, 이에 따라 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간(21)과 복사본 저장공간(22)의 노드별 총수(예, 도 2에서 5개)를 일치시키고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수(예, 도 2에서 5개)를 일치시킴으로써, 즉, 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써, 시스템 부하감소가 가능하고 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있도록 하였다.
이외에도 본 발명의 일실시예에 따른 검색 시스템에서는, 각 노드에 저장되는 데이터에 대한 시간 기반의 색인을 4 단계(예, 핫(Hot), 웜(Warm), 콜드(Cold), 프로즌(Frozen))(도 4 참조)로 세분하여 관리하여 시간이 오래된 프로즌(Frozen) 인덱스의 저장공간에 저장된 데이터에 대하여는 검색 서비스를 제외시키는 방법으로 조회 성능을 향상시키며, 위와 같은 장애 발생/복구 시의 데이터 재분배에 있어서 콜드(Cold) 인덱스와 프로즌(Frozen) 인덱스의 데이터를 대상으로 색인 균등화(Index Equalize)를 수행하여 노드별로 색인된 데이터의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리함으로써 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있도록 하였다.
본 발명의 검색 시스템에서 위와 같은 시간 기반의 색인(예, Index A, B, C)은 데이터를 수신하는 시간으로 구분되어 이루어질 수 있으며, 또는 수신하는 데이터(예, 파일 형태)에 포함된 시간 정보에 기초한 시간으로 구분되어 이루어질 수도 있다. 예를 들어, Index A는 오늘의 기간, Index B는 어제의 기간, Index C는 그제의 기간 등일 수 있다. 본 발명의 검색 시스템에서 수신하는 데이터는 예를 들어, 매일 실시간으로 수신되는 CDR(Call Detail Record)과 같은 이동 통신 서비스에서의 상세 통화 내역 정보(발신번호, 착신번호, 통화통화호 유형, 과금 유형 등 포함) 등의 대용량 시계열 데이터일 수 있으며, 실시간으로 수신되는 각각의 CDR 에 포함된, 예를 들어, 통화 종료 시간을 판단하여 각 기간으로 구분된 색인(예, Index A, B, C)이 결정될 수 있다.
이하 도 3내지 도 7의 도면을 참조하여 대용량 시계열 데이터를 효율적으로 분석하기 위한 본 발명의 일실시예에 따른 검색 시스템의 동작을 좀더 자세히 설명한다.
도 3은 본 발명의 일실시예에 따른 검색 시스템(100)을 설명하기 위한 블록도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 검색 시스템(100)은, 실시간 시계열 데이터를 수신하여 미리 설정한 규칙에 따라 복수의 노드로의 데이터의 분산 저장을 제어하는 라우터(110), 및 라우터(110)로부터 수신한 데이터를 저장공간에 저장하고 검색 명령에 응답하여 결과를 제공하는 복수의 노드를 포함한다. 복수의 노드를 구성하는 각각의 노드(120)는 색인기(121), 검색기(122), 주 메모리(123), 서브 메모리(124), 인덱스 단계 서비스 모듈(125), 및 인덱스 균등화 서비스 모듈(126)을 포함할 수 있다. 이와 같은 라우터(110)와 노드(120)는 시계열 데이터를 효율적으로 분석하기 위해 유기적으로 동작하는 하드웨어, 소프트웨어 또는 이들 조합으로 구현될 수 있다. 주 메모리(123)는 컴퓨터의 RAM(Random Access Memory)과 같이 프로세서(CPU)에서의 빠른 억세스를 위한 저장 공간을 갖는 메인 메모리일 수 있으며, 서브 메모리(124)는 컴퓨터의 하드 디스크와 같이 읽고 쓰기 위한 억세스가 RAM 보다는 느린 대용량 저장 공간을 갖는 메모리일 수 있다.
라우터(110)는 실시간으로 수신되는 시계열 데이터에 포함된 정보(예, CDR의 통화 종료 시간)에 대한 소정의 해쉬(hash) 함수를 계산하여 복수의 노드 중 판단된 노드로 해당 데이터를 전달하여 모든 노드들에 데이터가 골고루 분산되어 저장되도록 제어한다. 라우터(110)는 기간(예, 오늘, 어제, 그제 등과 같은 일 단위)으로 구분되는(예, CDR의 통화 종료 시간으로 구분) 데이터를 노드들에 전달할 수 있으며, 기간 구분이 달라지면(예, 날짜 변경) 주 메모리(123)와 서브 메모리(124)가 해당 데이터를 저장할 새로운 공간을 할당하여 저장하도록 제어할 수 있다.
각각의 노드(120)는 라우터(110)로부터 데이터를 수신하면, 기간으로 구분된(예, CDR의 통화 종료 시간으로 구분) 색인별(예, 날짜별) 데이터를 일정 크기의 저장 공간에 각각 저장하되, 하기하는 바와 같은 색인 균등화(index equalize)를 수행하여 검색 명령에 대하여 서비스하는 저장공간(서비스 저장공간)을 복수의 색인에 할당하여 색인별 데이터를 분산 저장할 수 있다.
색인기(121)는 수신되는 데이터에 대한 기간(예, 일 단위)으로 구분되는 색인과 관련된 노드(120) 내의 전반적인 제어를 담당한다.
인덱스 균등화 서비스 모듈(126)은 기본적으로 복수의 색인(예, 날짜 색인)에 대하여 자신이 서비스하는 저장공간(도 6에서 빗금부분 참조)과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(도 6에서 빗금없는 부분 참조)을 서브 메모리(124)에 할당하여 색인별 데이터를 분산 저장하도록 제어할 수 있으며, 하기하는 바와 같이 장애 발생 또는 장애 복구 노드(또는 노드 추가)가 감지되면 색인 균등화(Index Equalize)를 수행할 수 있다.
색인기(121)는, 예를 들어, 복수의 노드 중 어느 한 노드의 장애 발생 시에, 그것을 제외한 동작하는 노드들 중 하나 이상이, 각 색인(예, 날짜 색인)에 대하여, 장애 발생 노드가 서비스하였던 서브 메모리(124)의 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어할 수 있다.
검색기(122)는 사용자의 소정 단말을 이용한 검색어 입력(예, 입력 날짜나 기간의 데이터 검색을 위한 해당 날짜 또는 기간)에 따른 검색 명령에 응답하여 서브 메모리(124)의 프로즌(Frozen) 인덱스를 제외한 주 메모리(123)의 핫(Hot) 인덱스와 서브 메모리(124)의 웜(Warm)과 콜드(Cold) 인덱스를 검색하여 해당 검색된 결과에 따른 해당 인덱스(예, 날짜 또는 기간)의 데이터를 사용자 단말로 제공할 수 있다(도 4 참조). 각 노드의 검색기(122) 간에는 통신으로 서로 필요한 데이터를 주고받을 수 있으며, 검색 명령을 받은 해당 노드의 검색기(122)는 다른 노드들의 검색기(122)로 해당 검색 명령을 전달하고 이에 따라 각 노드의 검색기(122)가 전달하는 위와 같은 검색 결과에 따른 데이터를 포함해 사용자 단말로 제공할 수 있다.
이하 도 5를 참조하여 각각의 노드(120)에서 라우터(110)로부터 수신하는 데이터를 수신하면, 도 4와 같이, 기간으로 구분된(예, CDR의 통화 종료 시간으로 구분) 색인별(예, 날짜별) 데이터를 일정 크기의 저장 공간에 각각 저장하되, 핫(Hot) 인덱스, 웜(Warm) 인덱스, 콜드(Cold) 인덱스, 프로즌(Frozen) 인덱스로 구분하여 관리하는 방법을 설명한다.
라우터(110)가 실시간으로 시계열 데이터를 수신하고(S10), 시계열 데이터에 포함된 정보(예, CDR의 통화 종료 시간)에 대한 소정의 해쉬(hash) 함수를 계산하여 복수의 노드 중 판단된 노드로 해당 데이터를 전달하여 모든 노드들에 데이터가 골고루 분산되어 저장되도록 제어한다(S11).
라우터(110)로부터 시계열 데이터를 수신하는 각 노드(120)의 색인기(121)는, 이를 인덱스 단계 서비스 모듈(125)로 통보한다(S12). 이에 따라, 인덱스 단계 서비스 모듈(125)은 라우터(110)로부터 수신된 시계열 데이터에 대하여, 각 기간(예, 일자)으로 구분된 색인별 데이터(도 6 참조)를 주메모리(123)와 서브 메모리(124)에 저장하기 위해 각 메모리에 일정 크기(예, 수십 또는 수백 메가/기가 바이트)의 저장 공간을 할당하도록 제어한다(S20).
예를 들어, 인덱스 단계 서비스 모듈(125)의 제어에 따라, 먼저, 주메모리(123)는 라우터(110)로부터 수신하는 데이터를 핫(Hot) 인덱스로 분류하고 할당된 해당 저장 공간에 누적하고 일정 크기가 되면 누적된 해당 저장 공간의 데이터를 웜(Warm) 인덱스로 분류하여 서브 메모리(124)의 할당된 해당 저장 공간으로 이동시켜 저장할 수 있다. 또한, 인덱스 단계 서비스 모듈(125)의 제어에 따라, 서브 메모리(124)는 웜(Warm) 인덱스를 일정 기간 경과 후에 콜드(Cold) 인덱스로 변경하고, 다시 일정 기간 경과 후에 프로즌(Frozen) 인덱스로 변경할 수 있다(S21). 예를 들어, 웜(Warm) 인덱스의 저장 공간에 오늘 날짜로 색인된 모든 데이터를 저장할 수 있으며, 예를 들어, 오늘 날짜 기준으로 1일 내지 60일 지난 해당 저장 공간의 데이터에 대하여는 콜드(Cold) 인덱스로 색인이 변경될 수 있으며, 이후 오늘 날짜 기준으로 60일이 초과된 해당 저장 공간의 데이터에 대하여는 프로즌(Frozen) 인덱스로 색인이 변경될 수 있다. 프로즌(Frozen) 인덱스의 저장 공간에 저장된 데이터는 소정 날짜 이후(예, 3개월 초과)에 다른 백업 장치로 이동되어 보관되거나 삭제되어 폐기될 수 있다.
한편, 라우터(110)는 실시간으로 시계열 데이터를 수신하는 동안, 기준 기간의 변경(예, 날짜 변경) 시에 주 메모리(123)와 서브 메모리(124)가 해당 데이터를 저장할 새로운 공간을 할당하여 저장하도록 색인기(121)에 통보할 수 있고, 색인기(121)는, 이를 인덱스 단계 서비스 모듈(125)로 통보할 수 있다. 이에 따라, 인덱스 단계 서비스 모듈(125)은 라우터(110)로부터 수신된 구분 기간이 변경된 시계열 데이터에 대하여, 주메모리(123)와 서브 메모리(124)에 구분 기간이 변경된 시계열 데이터를 저장할 새로운 저장공간, 즉, 주메모리(123)의 핫(Hot) 인덱스의 저장공간과 서브 메모리(124)의 웜(Warm) 인덱스 저장 공간을 할당하도록 제어하고, 이에 따라 주메모리(123)와 서브 메모리(124)가 새로이 할당된 저장 공간에 해당 변경된 기간에 대한 데이터가 저장되도록 할 수 있다. 예를 들어, 주메모리(123)는 새로운 날짜에 대한 새로운 핫(Hot) 인덱스의 저장공간에 새로운 날짜의 시계열 데이터를 누적하고 일정 크기가 되면 누적된 해당 저장 공간의 데이터를 위와 같이 새로이 할당된 웜(Warm) 인덱스로 분류하여 서브 메모리(124)의 할당된 해당 저장 공간으로 이동시켜 저장할 수 있다.
또한, 색인기(121)는, 예를 들어, 복수의 노드 중 어느 한 노드의 장애 발생 시에, 그것을 제외한 동작하는 노드들 중 하나 이상이, 각 색인(예, 날짜 색인)에 대하여, 장애 발생 노드가 서비스하였던 서브 메모리(124)의 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어할 수 있다. 이를 위하여 인덱스 균등화 서비스 모듈(126)은 기본적으로 복수의 색인(예, 날짜 색인)에 대하여 자신이 서비스하는 저장공간(도 6에서 빗금부분 참조)과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(도 6에서 빗금없는 부분 참조)을 서브 메모리(124)에 할당하여 색인별 데이터를 분산 저장하도록 제어할 수 있으며, 하기하는 바와 같이 장애 발생 또는 장애 복구 노드가 감지되면 색인 균등화(Index Equalize)를 수행할 수 있다. 이때 서브 메모리(124)의 웜(Warm) 인덱스, 콜드(Cold) 인덱스, 또는 프로즌(Frozen) 인덱스의 저장공간에 대하여 인덱스 균등화 서비스 모듈(126)은 다른 노드들이 서비스하는 저장공간들의 복사본을 읽어와 복사본을 저장할 수 있다.
예를 들어, 도 6과 같이 노드가 3개인 경우에, 각 색인(예, 날짜 색인)에 대하여, 노드 1은 자신이 서비스 저장공간 S0에 데이터를 저장하며, 다른 노드들(예, 노드 2, 3)이 서비스하는 저장공간들의 복사본을 읽어와 저장공간들 S1, S2에 저장할 수 있다. 노드 2와 3은 각각 자신의 서비스 저장공간 S1, S2에서 각각 검색기(122)의 검색 명령에 대한 서비스를 수행할 수 있는 것으로 가정하였다. 여기서, 노드 1의 서비스 저장 공간이 S0, 노드 2의 서비스 저장 공간이 S1, 노드 3의 서비스 저장 공간이 S2인 것으로, 설명하지만, 이는 설명의 편의상의 구분이며, 노드 1, 2, 3 각각의 서비스 저장 공간이 S0, S1, S2 중 어느 하나씩의 저장 공간으로 각각 할당될 수 있다.
이하 도 7을 참조하여 각각의 노드(120)에서 색인 균등화(Index Equalize)의 수행으로 복수의 노드(예, 도 6의 Node 1,2,3) 중 어느 하나 이상의 장애 발생 시에 또는 장애 복구 시에 데이터 재분배를 통하여, 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있도록 최단 경로로 재분배하여 저장 관리하는 방법을 설명한다.
즉, 인덱스 균등화 서비스 모듈(126)은 노드의 장애 발생 또는 장애 복구 및 노드 추가가 감지되면 색인 균등화(Index Equalize)를 수행하여, 검색 명령에 대하여 서비스하는 저장공간(도 6에서 빗금부분 참조)을 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 할당하여 각각에 색인별 데이터를 분산 저장시킬 수 있다.
예를 들어, 도 6에서 Node 1에 장애 발생(예, 시스템다운, 네트워크 단절 등)으로 Node 1이 동작하지 않는 경우에(S30), 도 5에서도 설명한 바와 같이, 색인기(121)는, 그것을 제외한 동작하는 노드들 중 하나 이상(예, Node 2,3)이, 각 색인(예, 날짜 색인)에 대하여, 장애 발생 노드가 서비스하였던 서브 메모리(124)의 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어할 수 있다. 이를 위하여 인덱스 균등화 서비스 모듈(126)은 기본적으로 복수의 색인(예, 날짜 색인)에 대하여 자신이 서비스하는 저장공간(도 6에서 빗금부분 참조)과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들(도 6에서 빗금없는 부분 참조)을 서브 메모리(124)에 할당하여 색인별 데이터를 분산 저장하도록 제어할 수 있으며, 이때 동작하는 복수의 노드(예, 도 6에서 Node 2,3)의 콜드(Cold) 인덱스와 프로즌(Frozen) 인덱스의 저장공간에 대하여 색인 균등화(Index Equalize)를 수행할 수 있다(S31).
예를 들어, 색인 균등화(Index Equalize)에 따라, 검색 명령에 대하여 서비스하는 저장공간(도 6에서 빗금부분 참조)을 각 노드의 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 각각 하나 이상씩 할당하되, 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 대한 미리 결정된 수(예, 18개)와 같게 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 동작하는 복수의 노드(예, 도 6에서 Node 2,3)에 대한 미리 결정된 수(예, 9개)와 같게 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다.
이에 따라 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있으므로, 시스템 부하감소가 가능하고 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있다.
마찬가지로, 장애 발생 노드(예, Node 1)가 복구되거나 새로운 노드가 추가되면, 인덱스 균등화 서비스 모듈(126)은, 위와 같은 장애 발생 시와 유사하게 동작하는 복수의 노드(예, 도 6에서 Node 1,2,3)의 콜드(Cold) 인덱스와 프로즌(Frozen) 인덱스의 저장공간에 대하여 색인 균등화(Index Equalize)를 수행할 수 있다(S40).
예를 들어, 이때에도 색인 균등화(Index Equalize)에 따라, 검색 명령에 대하여 서비스하는 저장공간(도 6에서 빗금부분 참조)을 각 노드의 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 각각 하나 이상씩 할당하되, 복수의 색인(예, 도 6에서, 20111120, 20111121, 20111122,.. 20111123)에 대한 미리 결정된 수(예, 12개)와 같게 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 동작하는 복수의 노드(예, 도 6에서 Node 1,2,3)에 대한 미리 결정된 수(예, 9개)와 같게 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시킨다(S41).
종래에는 도 1과 같이, 시계열의 색인(도 1에서 Index A, B, C) 불균형 상황이 발생하여, 특정 노드에 특정일자의 색인이 몰림으로써 해당 일자의 색인에 대하여는 특정 노드의 리소스만 이용한 검색이 이루어지므로 분산된 노드들의 리소스를 효율적으로 사용할 수 없었다. 반면, 위와 같은 본 발명의 색인 균등화(Index Equalize)에 따라 노드별로 색인된 데이터(서비스 저장공간의 데이터)의 할당 공간을 균일하게 하면서도 노드별로 특정 색인의 데이터가 집중되지 않고 균일하게 분산되어 저장될 수 있으므로, 시스템 부하감소가 가능하여 노드별 각 색인의 리소스 활용이 효율적으로 이루어질 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (12)

  1. 미리 설정한 규칙에 따라 복수의 노드로의 데이터의 분산 저장을 제어하는 라우터; 및 상기 라우터로부터 수신한 데이터를 저장공간에 저장하고 검색 명령에 응답하여 결과를 제공하는 상기 복수의 노드를 포함하고,
    상기 복수의 노드는 각각이, 기간으로 구분된 색인별 데이터를 일정 크기의 저장 공간에 각각 저장하되, 색인 균등화를 수행하여 상기 검색 명령에 대하여 서비스할 색인들을 저장공간에 할당하여 색인 데이터를 분산 저장하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  2. 제1항에 있어서,
    상기 라우터로부터 수신하는 데이터는 상기 데이터를 수신하는 시간 또는 상기 데이터에 포함된 시간 정보에 기초한 시간으로 상기 기간이 구분되는 데이터인 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  3. 제1항에 있어서,
    상기 라우터로부터 수신하는 데이터는 이동 통신 서비스에서의 CDR(Call Detail Record)을 포함한 시계열 데이터인 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  4. 제3항에 있어서,
    상기 CDR에 포함된 통화 종료 시간으로 상기 기간이 구분되는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  5. 제1항에 있어서,
    상기 복수의 노드는 각각이,
    복수의 색인에 대하여 자신이 서비스하는 저장공간과 하나 이상의 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈
    을 포함하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  6. 제5항에 있어서,
    상기 인덱스 균등화 서비스 모듈은, 상기 복수의 노드 중 어느 한 노드의 장애 복구나 노드 추가 시에 상기 색인 균등화를 수행하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  7. 제5항에 있어서,
    상기 복수의 노드 중 어느 한 노드의 장애 발생 시에, 동작하는 노드들 중 하나 이상이, 각 색인에 대하여, 장애 발생 노드가 서비스하였던 저장공간의 복사본으로 상기 장애 발생 노드를 대신해 서비스하도록 제어하는 색인기를 포함하고,
    상기 제어에 따라 상기 인덱스 균등화 서비스 모듈은, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수를 일치시키고, 상기 장애 발생 노드를 제외한 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수를 일치시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  8. 제1항에 있어서,
    상기 복수의 노드는 각각이,
    각 기간으로 구분된 색인별 데이터를 주메모리와 서브 메모리에 저장하기 위해 각 메모리에 일정 크기의 저장 공간을 할당하도록 제어하는 인덱스 단계 서비스 모듈을 포함하고,
    상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 주메모리는 상기 라우터로부터 수신하는 데이터를 핫(Hot) 인덱스로 분류하여 할당된 상기 저장 공간에 누적하고 일정 크기가 되면 누적된 상기 저장 공간의 데이터를 웜(Warm) 인덱스로 분류하여 상기 서브 메모리의 할당된 상기 저장 공간으로 이동시켜 저장하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  9. 제8항에 있어서,
    상기 인덱스 단계 서비스 모듈의 제어에 따라, 상기 서브 메모리는 상기 웜(Warm) 인덱스를 일정 기간 경과 후에 콜드(Cold) 인덱스로 변경하고, 다시 일정 기간 경과 후에 프로즌(Frozen) 인덱스로 변경하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  10. 제9항에 있어서,
    상기 복수의 노드는 각각이, 복수의 색인에 대하여 자신이 서비스하는 저장공간과 다른 노드들이 서비스하는 저장공간들의 복사본을 저장하는 저장공간들을 상기 서브 메모리에 할당하여 색인별 데이터를 분산 저장하는 인덱스 균등화 서비스 모듈을 포함하고,
    상기 인덱스 균등화 서비스 모듈은 상기 웜(Warm) 인덱스, 상기 콜드(Cold) 인덱스, 또는 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여 상기 복사본을 저장하는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  11. 제10항에 있어서,
    상기 인덱스 균등화 서비스 모듈은,
    상기 콜드(Cold) 인덱스와 상기 프로즌(Frozen) 인덱스의 저장공간에 대하여, 복수의 색인에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 노드별 총수가 일치하고, 복수의 노드에 대한 미리 결정된 수에 따라 서비스 저장공간과 복사본 저장공간의 색인별 총수가 일치하도록, 서비스 저장공간과 복사본 저장공간의 데이터를 이동시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
  12. 제9항에 있어서,
    상기 핫(Hot) 인덱스, 상기 웜(Warm) 인덱스, 또는 상기 콜드(Cold) 인덱스의 저장공간에 저장된 데이터에 대하여는 상기 검색 명령에 대한 검색 서비스를 제공하고, 상기 프로즌(Frozen) 인덱스의 저장공간에 저장된 데이터에 대하여는 검색 서비스를 제외시키는 것을 특징으로 하는 시계열 데이터의 검색 시스템.
PCT/KR2013/000604 2012-02-14 2013-01-25 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법 WO2013122338A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120014585A KR101426673B1 (ko) 2012-02-14 2012-02-14 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
KR10-2012-0014585 2012-02-14

Publications (1)

Publication Number Publication Date
WO2013122338A1 true WO2013122338A1 (ko) 2013-08-22

Family

ID=48984418

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/000604 WO2013122338A1 (ko) 2012-02-14 2013-01-25 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법

Country Status (2)

Country Link
KR (1) KR101426673B1 (ko)
WO (1) WO2013122338A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150248446A1 (en) * 2006-03-14 2015-09-03 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
WO2019147968A1 (en) * 2018-01-26 2019-08-01 Ge Inspection Technologies, Lp Real time multi variate time series search
US20210124620A1 (en) * 2019-04-12 2021-04-29 Elasticsearch B.V. Frozen Indices

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102075386B1 (ko) * 2013-11-28 2020-02-11 한국전자통신연구원 대용량 순차 수집 데이터 처리를 위한 프레임워크 제공장치 및 이의 데이터 처리방법
KR101589038B1 (ko) 2014-03-14 2016-01-27 국방과학연구소 시계열 데이터베이스의 프라이버시 보호에서 상관 관계 보존을 위한 노이즈 생성 방법 및 장치
KR102516669B1 (ko) 2019-12-11 2023-04-03 김현식 데클엣지를 갖는 한지 사진 제작 방법 및 그 장치
KR102515932B1 (ko) 2020-05-25 2023-03-30 인핸스비 주식회사 글로벌 b2b를 위한 언네임드 제품 거래 시스템 및 그 방법
KR102217990B1 (ko) 2020-07-29 2021-02-19 주식회사 순수교육 외국어 수면 학습 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161710A (ja) * 1997-12-01 1999-06-18 Real World Computing Partnership 時系列データの格納方法及び記録媒体
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
KR20090080065A (ko) * 2006-10-05 2009-07-23 스플렁크 인코퍼레이티드 시계열 검색 엔진
JP2010277289A (ja) * 2009-05-28 2010-12-09 Fujitsu Ltd 管理プログラム、管理装置および管理方法
KR20110070225A (ko) * 2009-12-18 2011-06-24 주식회사 케이티 장애처리정보 관련 자료구조 생성방법과 이를 이용한 장애관리정보 제공방법 및 제공장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100694227B1 (ko) 2005-12-27 2007-03-14 삼성전자주식회사 멀티캐스팅 제어 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161710A (ja) * 1997-12-01 1999-06-18 Real World Computing Partnership 時系列データの格納方法及び記録媒体
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
KR20090080065A (ko) * 2006-10-05 2009-07-23 스플렁크 인코퍼레이티드 시계열 검색 엔진
JP2010277289A (ja) * 2009-05-28 2010-12-09 Fujitsu Ltd 管理プログラム、管理装置および管理方法
KR20110070225A (ko) * 2009-12-18 2011-06-24 주식회사 케이티 장애처리정보 관련 자료구조 생성방법과 이를 이용한 장애관리정보 제공방법 및 제공장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150248446A1 (en) * 2006-03-14 2015-09-03 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
US9990385B2 (en) * 2006-03-14 2018-06-05 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
WO2019147968A1 (en) * 2018-01-26 2019-08-01 Ge Inspection Technologies, Lp Real time multi variate time series search
US20210124620A1 (en) * 2019-04-12 2021-04-29 Elasticsearch B.V. Frozen Indices
US11556388B2 (en) * 2019-04-12 2023-01-17 Elasticsearch B.V. Frozen indices

Also Published As

Publication number Publication date
KR101426673B1 (ko) 2014-08-05
KR20130093202A (ko) 2013-08-22

Similar Documents

Publication Publication Date Title
WO2013122338A1 (ko) 검색 시스템에서 시계열 데이터의 효율적 분석을 위한 분산 인덱싱 및 검색 방법
US10795905B2 (en) Data stream ingestion and persistence techniques
US9794135B2 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US9276959B2 (en) Client-configurable security options for data streams
EP3069228B1 (en) Partition-based data stream processing framework
US20170357703A1 (en) Dynamic partitioning techniques for data streams
CN100527090C (zh) 用于动态分配计算机资源的方法
US10158579B2 (en) Resource silos at network-accessible services
US10356150B1 (en) Automated repartitioning of streaming data
WO2015070232A1 (en) Data stream ingestion and persistence techniques
US10616134B1 (en) Prioritizing resource hosts for resource placement
US10764165B1 (en) Event-driven framework for filtering and processing network flows
US20160065663A1 (en) Dynamic load-based merging
US11777991B2 (en) Forecast-based permissions recommendations
CN110175070A (zh) 分布式数据库的管理方法、装置、系统、介质及电子设备
EP3648423B1 (en) Resource allocation method and system
CN113918644B (zh) 一种管理应用程序的数据的方法及相关装置
US10459637B2 (en) Storage device and information processor
CN118069413A (zh) 灾备数据的存储方法、装置、存储介质以及电子设备
Sediqi Side-effect Analysis of MapReduce Optimization in the Data-center

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13748808

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 23/01/2015)

122 Ep: pct application non-entry in european phase

Ref document number: 13748808

Country of ref document: EP

Kind code of ref document: A1