KR20020041337A - 트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의세그먼테이션 및 처리 - Google Patents

트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의세그먼테이션 및 처리 Download PDF

Info

Publication number
KR20020041337A
KR20020041337A KR1020017016276A KR20017016276A KR20020041337A KR 20020041337 A KR20020041337 A KR 20020041337A KR 1020017016276 A KR1020017016276 A KR 1020017016276A KR 20017016276 A KR20017016276 A KR 20017016276A KR 20020041337 A KR20020041337 A KR 20020041337A
Authority
KR
South Korea
Prior art keywords
data
processing
data stream
segment
continuous data
Prior art date
Application number
KR1020017016276A
Other languages
English (en)
Inventor
로렌스 에이. 북맨
데이비드 앨버트 블레어
스티븐 엠. 로센텔
로버트 루이스 크라위트즈
마이클 제이. 백컬리
제리 리 콜린
앨린 라즈도우
사이암 알. 무담비
Original Assignee
토런트 시스템즈, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 토런트 시스템즈, 인크. filed Critical 토런트 시스템즈, 인크.
Publication of KR20020041337A publication Critical patent/KR20020041337A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/149Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

트랜잭션과 관련된 데이터 연속 소스에 있어서, 데이터가, 선택적으로는 병렬적으로, 데이터 플로우 할당에서 세그먼트되고 처리될 수 있고, 데이터가 중간 데이터베이스에서 데이터를 저장하지 않고 처리될 수 있다. 다중 소스로부터의 데이터는 병렬로 처리될 수 있다. 또한, 세그먼테이션은, 집합적인 출력이 제공될 수 있고 체크포인트가 설정될 수 있는 포인트를 규정할 수 있다.

Description

트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의 세그먼테이션 및 처리{SEGMENTATION AND PROCESSING OF CONTINUOUS DATA STREAMS USING TRANSACTIONAL SEMANTICS}
<관련 출원>
본 출원은, 로렌스 에이. 북맨(Lawrence A. Bookman) 등이 그 발명의 명칭을 "트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의 세그먼테이션 및 처리(SEGMENTATION AND PROCESSING OF CONTINUOUS DATA STREAMS USING TRANSACTIONAL SEMANTICS)"로 하여 1999년 6월 18일자로 미국 특허 가출원 번호 제60/140,005호로서 가출원하여 계속 중인 출원에 대한 미국 특허법 35 U.S.C §119(e) 하의 권리를 주장하는 것으로서, 상기 출원 발명의 내용을 참조로서 인용한다. 또한, 본 출원은 로렌스 에이. 북맨 등이 그 발명의 명칭을 "트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의 세그먼테이션 및 처리"로 하여 2000년 2월 29일자로 미국 특허 가출원 번호 제60/185,665호로서 가출원하여 계속 중인 출원에 대한 미국 특허법 35 U.S.C §119(e) 하의 권리를 주장하는 것으로서, 상기 출원 발명의 내용을 참조로서 인용한다.
컴퓨터 기반의 트랜잭션(transaction) 시스템은 그 시스템을 이용하여 수행된 트랜잭션에 관련된 데이터를 생성한다. 이러한 트랜잭션 관련 데이터는 트랜잭션의 특성을 식별하기 위해 분석된다. 이러한 특성으로부터, 트랜잭션에 대한 변경 및/또는 관련 마케팅이 제안되거나, 또 다른 비즈니스 결정이 이루질 수 있다.
트랜잭션 관련 데이터를 분석하기 위한 컴퓨터 시스템은 통상적으로 데이터베이스에 저장된 데이터를 액세스한다. 데이터가 소정의 기간동안 수집된 후, 수집된 데이터는 단일 트랜잭션에서 데이터베이스에 부가된다. 상술된 바와 같이 데이터베이스에 저장된 데이터가 분석되고, 결과가 생성된다. 분석에 의해 얻게 된 결과는 통상적으로 데이터베이스에 저장된 데이터의 집합으로 나타난다. 그리하여, 이러한 결과는 예컨대 각종 비즈니스 결정을 위한 기초로서 사용되고, 또한 종종 데이터베이스에 저장되기도 한다.
어떤 경우에는, 가공되지 않은 트랜잭션 관련 데이터가 소정의 처리 후에도 데이터베이스에 저장되지 않기도 한다. 이러한 트랜잭션 관련 데이터 처리는 통상적으로 일괄 처리(batch processing)의 형태를 갖는다. 일괄 처리에서는, 모든 데이터가 처리될 때까지는 결과가 출력되지 않는다. 예를 들어, 일괄 처리와 관련된 레코드 각각이 개개의 트랜잭션마다 데이터베이스에 저장된다면, 데이터베이스와 연동하는 데이터베이스 관리 시스템은 오버헤드를 심각한 양으로 발생시킬 것이다. 유사하게, 데이터를 분석하기 위해서 단일 트랜잭션에서 데이터베이스로부터 판독되는 데이터의 양도 상당하게 된다. 많은 경우, 트랜잭션의 발생과 그 트랜잭션에 관한 데이터를 이용한 결과의 생성간의 시간은 수일 또는 수주일일 수 있다.
도 1은 본 발명의 일 실시예에 따라 연속 데이터를 처리하는 시스템을 도시하는 데이터 흐름도.
도 2는 데이터가 연속 데이터 소스로부터 병렬 어플리케이션 프레임워크로 이동되는 방법의 동작을 설명하는 흐름도.
도 3은 복수 개의 데이터 스트림을 처리하는 시스템을 도시하는 제2 데이터 흐름도.
도 4는 데이터가 다중 파이프라인 시스템에 의해 처리되는 방법을 설명하는 흐름도.
도 5는 본 발명의 다양한 실시예를 구현하는 데 적절한 클라이언트-서버 시스템의 블럭도.
도 6은 데이터를 처리하는 데 사용되는 처리 아키텍쳐(processing architecture)의 블럭도.
도 7은 병렬 방식으로 통신하는 오퍼레이터를 구비한 2-노드 시스템의 블럭도.
트랜잭션 관련 데이터가 트랜잭션 시스템에 의해서 연속적으로 생성되거나,분석 결과를 수신하기 위한 희망 시간 프레임이 일괄 처리를 수행하는 데 요구되는 시간보다 더 짧으면, 이러한 일괄 처리 기술은 사용될 수 없다. 트랜잭션에 대한 사용자의 행위가 자주 변경될 수 있는 경우에 분석 결과를 얻는 데 걸리는 지연은 종종 바람직하지 않게 된다. 예를 들면, 빈번하게 변경되는 실시간의 시스템 액세스 정보를 트랙킹(tracking)하기 위한 데이터베이스 시스템에서는, 보안 또는 성능 등의 이유로 액세스 분석의 주기적인 이용 가능성을 갖는 것이 허용될 수 없을 수 있다.
트랜잭션에 관련된 연속 데이터 소스에 있어서, 트랜잭션 데이터는 데이터 플로우 내에서, 선택적으로는 병렬적으로 세그멘팅되고 처리될 수 있고, 이 데이터는 중간 데이터베이스에 저장되지 않고 처리될 수 있다. 데이터가 세그멘팅되어 개별적으로 처리되므로, 복수의 소스로부터의 데이터가 병렬 처리될 수 있다. 또한, 집합적인 출력이 제공될 수 있는 시점과, 체크포인트(checkpoint)가 설정될 수 있는 경우에 세그먼테이션(segmentation)이 규정될 수 있다. 데이터를 세그먼트로 분할하고, 이러한 세그먼테이션에 기초하여 체크포인트를 규정함으로써, 규정된 체크포인트 각각에서 처리가 다시 개시될 수 있다. 이러한 방식에 의하면, 데이터의 처리가 특정 세그먼트에 대해서는 실패하더라도 다른 세그먼트의 처리에는 영향을 미치지 않을 수 있다. 따라서, 특정 세그먼트의 데이터 처리가 실패하면, 그 세그먼트에 대응하는 작업은 무효가 되지만, 다른 세그먼트들에 대해 수행된 작업은 무효가 아니다. 이러한 체크포인팅은 예컨대 관계형 데이터베이스 시스템으로 구현될 수 있다. 체크포인팅에 의하면 다시 개시할 수 있는 질의를 관계형 데이터베이스로 구현할 수 있으며, 따라서 데이터베이스의 성능은 증대된다. 이는, 성공의 여부가 자신의 시스템의 성능에 따라 좌우되는 데이터베이스 벤더(vendor)와 사용자에게 유익한 것이다. 일반화하자면, 데이터 스트림이 분할될 수 있는 경우에 체크포인트 처리 및 복구가 수행될 수 있다.
상기 및 기타 장점들은 후술되는 바와 같이 제공된다.
일 특성에 따르면, 연속 데이터 스트림을 처리하는 방법이 제공된다. 상기 방법은 트랜잭션 시맨틱스(transactional semantics)의 지시를 수신하는 단계; 연속 데이터 스트림의 세그먼트를 식별하도록 트랜잭션 시맨틱스를 연속 데이터 스트림에 적용하는 단계; 해당 세그먼트에 대한 결과를 생성하도록 연속 데이터 스트림의 각 세그먼트의 데이터를 처리하는 단계; 및 연속 데이터 스트림의 각 세그먼트의 데이터가 처리된 후, 해당 세그먼트에 대해 생성된 결과를 제공하는 단계를 포함한다.
일 실시예에 따르면, 데이터는 복수 개의 레코드를 포함하고, 각각의 레코드는 복수 개의 필드를 포함하며, 트랜잭션 시맨틱스는 하나 이상의 데이터의 하나 이상의 필드의 함수로 정의된다. 다른 실시예에 따르면, 상기 방법은 식별된 세그먼트에 따라서 연속 스트림 데이터를 분할하는 단계를 더 포함한다. 또 다른 실시예에 따르면, 상기 분할 단계는 2개의 세그먼트 사이의 경계를 가리키도록 연속 데이터 스트림 내에 레코드를 삽입하는 단계를 포함한다. 또 다른 실시예에 따르면, 상기 레코드는 경계만을 나타내는 마커 레코드(marker record)이다. 또 다른 실시예에 따르면, 상기 레코드는 트랜잭션 시맨틱스에 관련된 정보를 포함하는 시맨틱레코드(semantic record)이다.
또 다른 실시예에 따르면, 연속 데이터 스트림은 서버에 발행된 요청(request)에 대한 정보의 로그(log)이고, 상기 적용 단계는 로그로부터 요청에 관련된 정보를 판독하는 단계; 및 판독된 정보에 트랜잭션 시맨틱스를 적용하는 단계를 포함한다. 또 다른 실시예에 따르면, 각각의 요청에 관련된 정보는 복수 개의 필드를 포함하고, 트랜잭션 시맨틱스는 하나 이상의 요청에 관련된 정보의 하나 이상의 필드의 함수에 의해 정의된다. 또 다른 실시예에 따르면, 정보는 요청이 서버로 발행된 시간을 포함하고, 트랜잭션 시맨틱스는 기간을 정의한다. 또 다른 실시예에 따르면, 상기 방법은 하나 이상의 요청에 관련된 정보를 제거하도록 로그를 필터링하는 단계를 더 포함한다. 또 다른 실시예에 따르면, 상기 필터링 단계는 트랜잭션 시맨틱스를 적용하는 단계보다 이전에 수행된다. 또 다른 실시예에 따르면, 상기 필터링 단계는 스파이더(spider)와 연관된 요청에 관한 정보를 제거하는 단계를 포함한다. 또 다른 실시예에 따르면, 상기 방법은 연속 데이터 스트림으로부터 데이터를 제거하도록 연속 데이터 스트림을 필터링하는 단계를 더 포함한다.
또 다른 실시예에 따르면, 상기 방법은 해당 세그먼트의 결과를 생성하도록 연속 데이터 스트림의 각 세그먼트 내의 데이터를 처리하는 추가의 단계; 및 상기 추가의 처리 단계 동안 연속 데이터 스트림의 각 세그먼트의 데이터가 처리된 후, 해당 세그먼트에 대해 생성된 결과를 제공하는 단계를 더 포함한다. 또 다른 실시예에 따르면, 상기 처리 단계는 각 세그먼트 내의 데이터를 복수 개의 세그멘터로분할하는 단계; 및 각 세그멘터에 대한 중간 결과를 제공하도록 상기 세그멘터 각각을 병렬 처리하는 단계를 포함한다. 또 다른 실시예에 따르면, 상기 방법은 해당 세그먼트에 대한 결과를 생성하도록 상기 각 세그멘터의 중간 결과들을 결합하는 단계를 더 포함한다. 또 다른 실시예에 따르면, 연속 데이터 스트림의 데이터는 시퀀스(sequence)를 갖고, 연속 데이터 스트림의 복수 개의 소스가 존재하며, 상기 방법은 연속 데이터 스트림 내의 데이터가 시퀀스에 존재하는 지의 여부를 판정하는 단계; 및 데이터가 시퀀스에 존재하지 않는다고 판정된 경우에는 상기 처리 단계를 중단하고, 트랜잭션 시맨틱스에 따라서 상기 데이터를 세그먼트에 삽입하여 상기 세그먼트를 재처리하고, 상기 처리 단계를 계속하는 단계를 더 포함한다. 또 다른 실시예에 따르면, 상기 방법은 데이터가 처리되고 있는 세그먼트의 영구 지시(persistent indication)를 저장하는 단계; 상기 처리 단계에서의 실패가 검출되는 경우, 선택된 세그먼트에 대한 처리 단계에 의해 생성된 결과를 폐기하고, 저장된 영구 지시에 대응하여 선택된 세그먼트를 재처리하는 단계; 및 처리 단계가 실패없이 완료된 경우, 생성된 결과를 출력으로서 제공하고, 다음 세그먼트를 선택하는 단계를 더 포함한다.
다른 특성에 따르면, 컴퓨터 시스템의 처리 엘리먼트(processing element)를 사용하여 연속 데이터 스트림에 대해 체크포인팅 동작을 수행하는 처리가 제공된다. 상기 처리는 트랜잭션 시맨틱스의 지시를 수신하는 단계; 처리 엘리먼트에 의한 처리를 위해 연속 데이터 스트림을 세그먼트들로 분할하도록 트랜잭션 시맨틱스를 데이터에 적용하는 단계; 세그먼트들 중 한 세그먼트를 선택하는 단계; 선택된세그먼트의 영구 지시를 저장하는 단계; 결과를 생성하도록 처리 엘리먼트를 사용하여 상기 선택된 세그먼트를 처리하는 단계; 처리 엘리먼트의 실패가 검출되는 경우, 선택된 세그먼트에 대하여 처리 엘리먼트에 의해 생성된 결과들을 폐기하고, 저장된 영구 지시에 대응하여 선택된 세그먼트를 재처리하는 단계; 및 처리 엘리먼트에 의한 처리가 실패없이 완료된 경우, 처리 엘리먼트에 의해 생성된 결과들을 출력으로서 제공하고, 처리 엘리먼트에 의해 처리될 다음 세그먼트를 선택하는 단계를 포함한다. 다른 실시예에 있어서, 상기 적용 단계는 데이터의 세그먼트들 간의 경계를 나타내도록 연속 데이터 스트림 내에 데이터를 삽입하는 단계를 포함한다.
또 다른 특성에 따르면, 컴퓨터 시스템에서 연속 데이터 스트림에 대해 체크포인팅 동작을 수행하는 컴퓨터 시스템이 제공된다. 상기 컴퓨터 시스템은 트랜잭션 시맨틱스의 지시를 수신하기 위한 수단; 데이터를 세그먼트들로 분할하도록 트랜잭션 시맨틱스를 연속 데이터 스트림에 적용하기 위한 수단; 세그먼트들 중 한 세그먼트를 선택하기 위한 수단; 선택된 세그먼트의 영구 지시를 저장하기 위한 수단; 결과를 생성하도록 상기 선택된 세그먼트를 처리하기 위한 처리 엘리먼트; 처리 엘리먼트의 실패가 검출된 후, 선택된 세그먼트에 대하여 처리 엘리먼트에 의해 생성된 결과들을 폐기하도록 동작하는 수단과 저장된 영구 지시에 대응하여 선택된 세그먼트를 재처리하도록 처리 엘리먼트에게 지시하기 위한 수단; 및 처리 엘리먼트에 의한 처리가 실패없이 완료된 후, 처리 엘리먼트에 의해 생성된 결과를 제공하고, 처리 엘리먼트에 의해 처리될 다음 세그먼트를 선택하도록 동작하는 수단을포함한다. 다른 실시예에 따르면, 상기 적용 수단은 데이터의 세그먼트들 간의 경계를 나타내도록 연속 데이터 스트림 내에 데이터를 삽입하는 것을 포함한다.
또 다른 특성에 따르면, 연속 데이터 스트림을 처리하는 방법이 제공된다. 상기 방법은 트랜잭션 시맨틱스의 지시를 수신하는 단계; 연속 데이터 스트림의 세그먼트들을 식별하도록 트랜잭션 시맨틱스를 연속 데이터 스트림에 적용하는 단계; 및 연속 데이터 스트림의 식별된 세그먼트들 간의 경계들을 나타내도록 연속 데이터 스트림 내에 데이터를 삽입하는 단계를 포함한다.
본 발명의 다양한 실시예의 구성 및 작용뿐만 아니라 본 발명의 다른 특성 및 장점들은 첨부된 도면을 참조하여 이하 상술된다. 도면에 있어서, 유사 참조 번호는 동종이거나 기능적으로 유사한 구성을 가리킨다. 또한, 참조 번호의 가장 좌측의 하나 또는 두 개의 숫자는 그 참조 번호가 처음 나타난 도면을 나타낸다.
이하의 설명은, 유사 참조 번호는 유사 구성을 가리키는 첨부 도면을 참조하여 이해되어야 한다. 본 명세서에서 언급된 모든 참조 문헌들은 명백히 참조로서 인용되었다.
이제 도 1을 참조하면, 연속 데이터 소스(101)는 소정의 트랜잭션 시맨틱스(103)에 따라 결과(108)를 제공하는 데이터 처리 어플리케이션(107)에 의해 처리되는 연속 데이터 스트림(102)을 제공한다. 이 트랜잭션 시맨틱스(103)는 스트림(102)이 세그멘팅된 방법을 판정하는 정보일 수 있다. 예를 들면, 시맨틱스(103)는 스트림(102)에 대한 동작에 있어서 시스템의 소정의 요구 사항들에 따르거나, 데이터를 분석하기 위한 비즈니스 요건에 따를 수 있다. 데이터 처리 어플리케이션(107)에 있어서, 데이터는 트랜잭션 시맨틱스(103)에 따라 세그멘터(segmenter; 104)에 의해 세그멘팅되어, 세그멘팅된 데이터(105)가 제공된다. 데이터 처리 오퍼레이터(106)는 세그멘팅된 데이터(105)의 각각 세그먼트 내의 데이터를 처리하여, 각각 세그먼트에 대한 결과(108)를 제공한다. 이러한 처리는 예컨대 연속 데이터 스트림(102) 내의 하나 이상의 데이터 일부를 판독하거나 갱신하는 것일 수 있다.
연속 데이터 소스(101)는 일반적으로 트랜잭션 시스템으로부터의 트랜잭션에 관한 데이터를 제공한다. 일반적으로 트랜잭션 시스템은 사용자가 트랜잭션을 행하는 것을 허용하는 시간 동안에 동작하기 때문에, 이 소스는 연속적이다. 예를 들면, 연속 데이터 소스는, 서버 자신에게 발행된 요청에 대한 정보의 로그를 출력하는 웹 서버일 수 있다. 이 요청은 웹 서버에 의해 로그 레코드(log record)로서 서버 로그에 저장될 수 있다. 연속 데이터 스트림의 소스의 다른 예로는, 예약 시스템, 판매 시점(point-of-sale) 시스템, 자동 금전 출납기, 뱅킹 시스템, 신용 카드 시스템, 검색 엔진, 비디오/오디오 배포 시스템, 또는 연속 데이터 스트림을 생성하는 기타 다른 유형의 시스템들을 포함한다. 또한, 하나 이상의 연속 데이터 스트림을 제공하는 하나 이상의 연속 데이터 소스가 존재할 수 있고, 이러한 스트림을 동작시키도록 어플리케이션(107)이 구성될 수 있다.
트랜잭션과 관련된 데이터는 트랜잭션을 기술하는 하나 이상의 정보 필드를 포함하는, 각각의 트랜잭션에 대한 레코드를 일반적으로 포함한다. 이 레코드는 여러 다른 포맷들 중 임의의 하나일 수 있다. 예컨대 가변 또는 고정 길이를 갖는 트랜잭션과 관련된 데이터는 태그되거나 태그되지 않고, 또는 비제한 또는 비제한되지 않게 된다. 트랜잭션과 관련된 데이터는 예컨대 SGML, HTML, XML 또는 다른 마크업(markup) 언어와 같은 마크업 언어 포맷에 있을 수 있다. 연속적인 데이터 소스((101)에서 데이터 처리 어플리케이션(107)으로 데이터를 통신하기 위한 예시적인 아키텍쳐는 문자 스트링, 어레이 또는 파일에 저장된 다른 아키텍쳐, 데이터베이스 레코드, 명명된 파이프, 네트워크 패킷, 프레임, 셀 또는 다른 포맷을 포함한다. 본 발명의 일면에 따르면, 연속 데이터 스트림(101)은 서버 로그이며, 트랜잭션과 연관된 예시적인 데이터는 사용자 식별자, 클라이언트 프로그램 및/또는 시스템 식별자, 시간 스탬프, 페이지 또는 광고 식별자, 페이지 또는 광고가 액세스되는 방법의 지시기, 레코드 타입, 및/또는 트랜잭션에 관한 다른 정보를 포함한다.
트랜잭션 시맨틱스(103)는 데이터(102)의 연속적인 스트림의 하나 이상의 레코드의 하나 이상의 필드의 기능을 정의한다. 예컨대, 트랜잭션 시맨틱스(103)는 예컨대 시간과 같은 시간 주기를 정의하여, 한 시간 주기 내의 모든 데이터가 하나의 세그먼트에 위치되게 한다. 트랜잭션 시맨틱스(103)는 시간과 같은 단일 레코드의 기능보다는 예컨대 전체 판매량과 같은 여러 레코드의 집합적인 기능을 또한 정의한다. 이런 트랜잭션 시맨틱스(103)는 데이터의 분석으로부터 얻어지는 정보를 나타내는 사업 규칙으로부터 유도될 수 있다. 트랜잭션 시맨틱스(103)는 몇몇 시스템 요건에 또한 달려있다. 이런 분석은 예컨대 사업 결정을 가능하게 하기 위해 프리-세그먼트(pre-segment) 기준으로 수행될 수 있다.
트랜잭션 시맨틱스(103)는 데이터(102)의 연속적인 스트림에서 세그먼트를 식별하기 위하여 세그먼터(104)에 의해 데이터(102)의 연속적인 스트림에 적용된다. 데이터(102)의 연속적인 스트림은 이들 식별된 세그먼트에 따라 여러 방식으로 분할된다. 예컨대, 레코드는 데이터의 스트림에서 2개의 세그먼트들간의 경계를 가리키는 데이터(102)의 연속적인 스트림에 삽입된다. 레코드는 경계만을 가리키는 마커 레코드이다. 예컨대, 태그는 마커 레코드가 태그에 대한 하나의 값을 가지며 데이터 레코드가 태드에 대한 다른 값을 갖도록 모든 레코드에 놓일 수 있다. 선택적으로, 레코드는 트랜잭션 시맨틱스 자신과 같은 트랜잭션 시맨틱스와 관련된 정보, 또는 시간 주기의 사양과 같은 트랜잭션 세그먼트의 데이터로의 적용에 의해 유도되는 몇몇 정보를 포함하는 시맨틱 레코드일 수 있다. 더욱이, 어플리케이션(107)은 다수의 데이터 처리 오퍼레이터(106)가 데이터에 저장된 트랜잭션 시맨틱스에 따라 데이터 세그먼트를 액세스하게 한다. 임의의 타입의 정보는 데이터(102)의 스트림에서 분할을 가리키는데 사용된다.
다중 세그먼트(104)는 다른 처리가 수행될 수 있는 데이터(105)의 다르게 세그먼트된 연속적인 스트림을 생성하기 위하여 또한 사용될 수 있다. 선택적으로, 다중 데이터 처리 오퍼레이터(106)는 데이터(105)의 세그먼트된 연속적인 스트림에 대한 다른 분석을 수행하기 위하여 병렬로 사용될 수 있다.
데이터 처리 오퍼레이터(106)에 의해 수행되는 많은 종류의 동작들이 있다. 예컨대, 레코드의 카운트, 레코드내의 변수들의 합산, 및 여러 데이터 필드의 평균, 최대 및 최소와 같은 통계값은 각각의 데이터 세그먼트에 대해 계산된다. 연속 데이터 스트림이 서버 로그에 해당하는 어플리케이션에서는 예컨대 정보의 각각의 아이템이 각각의 세그먼트 또는 세그먼트의 조합에서 서버에 의해 제공되는 사용자의 유일 수를 계산하는 것이 가능하다. 다양한 데이터 처리 오퍼레이터(106)는 다른 결과(108)의 변종을 제공하기 위하여 데이터 처리 어플리케이션(107)으로부터 가산 또는 삭제된다.
데이터 처리 어플리케이션(107)은 토렌트(Torrent) 시스템[1996.3.25일자 미국특허출원 제08/627,801호, "Apparatus and Method for Programmable Parallel Computer", by Michael J.Beckerle et al.; 1997.2.24일자 미국특허출원 제08/807,040호, "Apparatus and Methods for Monitoring Performance of Parallel Computing", by Allen M.Razdow, et al.; 1998.6.24일자 미국특허출원 제09/104,288호, "Computer System and Process for Checkpointing Operations on Data in a Computer System by Partitioning the Data", by Michael J.Becherle; 및 1999.6.1일자 미국특허 제5,909,681호, "A Computer System and Computerized Method for Partitioning Data for Parallel Processing", by Anthony Passera, et al.에 개시됨]으로부터 오케스트라 병렬 프레임워크를 사용하여 구현된다.
이런 시스템에서, 병렬 데이터 소스는 다중 프로세서상의 데이터 플로우 배열에서 처리된다. 특히, 세그먼테이션 또는 데이터 분석과 같은 도 1에서 수행될 각각의 동작은 오케스트라 병렬 처리 프레임워크에서 오퍼레이터로서 구현될 수 있다. 병렬 어플리케이션 프레임워크를 사용하여, 데이터 처리 오퍼레이터에 의해 처리된 데이터는 복수의 병렬 분할로 분할된다. 이런 병렬 분할들 각각은 이에 대한 중간 결과를 각각 제공하는 데이터 처리 오퍼레이터의 다른 예에 의해 병렬로 처리된다. 이들 중간 결과는 전체 기능을 수행하는 오퍼레이터에 의한 세그먼트에 대한 전체 결과를 제공하기 위해 조합될 수 있다.
더욱이, 오케스트라 병렬 데이터 스트림은 오케스트라 병렬 처리 프레임워크를 사용하며, 다양한 오퍼레이터는 이들 병렬 데이터 스트림을 처리하도록 구성되며, 다중 입력 오퍼레이터는 단일스트림을 형성하기 위하여 2개의 데이터 스트림을 조합하는데 사용된다. 단일 데이터스트림은 여러 오퍼레이터에 의해 동작될 수 있으며, 저장, 전송 또는 다른 동작은 데이터스트림상에서 수행될 수 있다.
데이터 처리 오퍼레이터(106)는 여러 방식으로 구현될 수 있다. 특히 데이터 처리 오퍼레이터(106)는 일반적으로 배치 모드 또는 연속 모드중 어느 하나에서 데이터를 처리한다. 데이터 처리 오퍼레이터(106)가 배치 처리를 수행한다면, 배치 엔트리와 연관된 모든 데이터가 처리될 때까지 데이터를 출력할 수 없다. 오퍼레이터(106)는 데이터를 세그먼트당 기준으로 오퍼레이터에 제공하는 연속 루프를 실행하는 프로그램에 의해 제어된다. 이 프로그램은 데이터의 끝에 각각의 세그먼트 경계가 도달하는 오퍼레이터를 식별하여, 오퍼레이터(106)가 세그먼트에 대한 결과를 출력하게 한다. 선택적으로, 연속적인 오퍼레이터는 이것이 각각의 세그먼트 경계에 결과를 출력하게 하는 단계를 포함하여 사용된다.
여러 형태중 임의의 하나인 데이터(105)의 세그멘팅된 연속적인 스트림은 오케스트라 병렬 프레임워크에서의 병렬 데이터 세트로서 또한 저장된다. 병렬 데이터 세트는 일반적으로 이름, 데이터가 실제적으로 영구성의 형태로 저장되는 포인터, 스키마(schema), 및 구성, 하드웨어의 정보, 디스크, 중앙 처리 유닛 등과 같은 정보를 정의하는 메타데이터(데이터에 관한 데이터)를 포함하며, 데이터가 저장되는 장소를 가리킨다. 하나의 데이터 세트는 다중 세그먼트를 나타내는데 사용되며, 분리된 데이터 세트는 각각의 세그먼트에 대해 사용된다.
오케스트라 병렬 어플리케이션 프레임워크와 같은 시스템이 데이터 처리 어플리케이션에 대해 사용된다면, 데이터(102)의 연속적인 스트림은 저장 형태로부터 어플리케이션 프레임워크의 데이터 세트로 분배되며, 연속적인 데이터 소스(101)는 데이터(102)의 연속적인 스트림을 생성한다. 일예로서, 연속적인 데이터 소스(101)는 HTTPD에 의해 수신된 요청에 관한 데이터를 생성하는 HTTPD 서버일 수 있으며, 이 서버는 이 데이터를 로그로 저장한다. 보통 로그 관리자로 불리는 분리된 어플리케이션은 HTTPD 서버가 데이터를 기록하는 새로운 로그 파일을 주기적으로 생성한다.
예컨대, 새로운 로그 파일은 날마다 생성될 수 있다. 로그 관리자가 로그 파일을 생성하는 방법에 관한 정보는 오케스트라 어플리케이션 프리임워크의 데이터 세트로의 연속 데이터 스트림으로서 로그 파일의 세트를 판독하는 임포트(import) 오퍼레이터와 같은 데이터 처리 오퍼레이터에 제공된다. 로그 파일에서 병렬로 동작하는 하나 이상의 임포트 오퍼레이터 또는 병렬로 처리하는 동일 오퍼레이터의 하나 이상의 예가 있을 수 있다. 또한, 임포트 오퍼레이터의 다수의 예에 의해 병렬로 처리되는 복수의 로그 파일의 소스들이 있을 수 있다. 예컨대, 다수의 HTTPD 서버는 동일한 로그 파일을 병렬로 기록한다. 즉, 다수의 HTTPD는 하나 이상의 임포트 동작들에 의해 처리되는 데이터의 병렬 스트림을 발생시킨다. 다수의 입력 오퍼레이터는 부가의 오퍼레이터가 동작할 때 이들 데이터 스트림을 단일 데이터 스트림에 조합하는데 사용될 수 있다.
데이터 처리 어플리케이션에 의해 수행되는 정보 프로세스(200)의 동작을 기술한 플로우챠트는 도 2를 참조하여 설명된다. 정보 프로세스(200)는 단계 201에서 수신된 소스 식별 정보에 의존한다. 이런 식별 정보는 데이터 파일에 대한 네이밍 컨벤션, 명명된 파이프, 또는 데이터(102)의 연속적인 소스에 의해 사용되는 다른 아키텍쳐를 식별한다. 명명된 아키텍쳐는 수신된 소스 식별 정보에 따라 단계 202에서 선택된다. 임의의 다음 데이터 레코드는 단계 203에서 명명된 아키텍쳐로부터 판독된다. 검증 단계는 또한 명명된 아키텍쳐가 식별 정보를 포함하는 경우 정확히 명명된 아키텍쳐가 액세스되는지를 검증하는데 사용된다. 단계 203에서 수행된 판독 동작이 단계 204에서 결정된 바와 같이 데이터를 복귀시킨다면, 데이터는 단계 208에서 다음 오퍼레이터에 제공된다. 다음 오퍼레이터는 필터링 동작, 데이터 레코드를 세그먼테이션 및 처리에 더욱 적합한 또 다른 포맷으로 변환하는 동작일 수 있거나, 또는 세그먼터일 수 있다. 처리는 계속되어 단계 203에서 데이터를 더 판독한다. 이런 방식으로, 임포터는 연속적인 데이터 소스와 데이터 처리 어플리케이션간의 버퍼링을 제공하는한 특정 연속 데이터 소스로부터 연속적으로 데이터를 판독한다.
단계 204에서 결정된 바와 같이, 판독 동작이 수행될 때 데이터가 이용가능하지 않다면, 서버가 단계 205에서 동작하는지를 먼저 결정한다. 서버가 단계 205에서 동작하지 않는다면, 시스템은 단계 209에서 대기하며 대기후 단계 203에서 다시 데이터의 판독을 시도한다. 대기 주기는 예컨대 랜덤, 미리결정된 수 또는 그 조합일 수 있다. 단계 206에서 결정된 바와 같이, 서버가 동작중이고 파일의 끝에 도달하지 않은 경우, 트랜잭션 시스템은 통상적으로 동작하는 것을 미리 가정되며트랜잭션에 관한 데이터를 생성하는데 사용될 수 없다. 단계 206후에, 임포터 프로세스(200)는 시간 주기를 대기하며 그리고/또는 단계 203에서 데이터를 다시 판독하고자 하기 전에 단계 210에서 지시된 바와 같이 다음 오퍼레이터에 더미 레코드를 발행한다. 단계 206에서 결정된 바와 같이 파일의 끝에 도달한 경우, 다음 파일(또는 다른 명명된 아키텍쳐)은 처리가 단계 203으로 복귀한 후 소스 식별 정보에 따라 단계 207에서 선택된다. 이런 프로세스(200)는 데이터를 데이터 처리 어플리케이션(107)에 연속적으로 제공하기 위하여 중단없이 동작하도록 설계된다.
데이터(102)의 연속적인 스트림의 세그먼테이션은 또한 동작의 체크포인팅이 수행되는 설비를 통해 제공된다. 특히, 처리될 세그먼트의 영구 지시는 오퍼레이터(106)에 의해 저장된다. 오퍼레이터(106)에 의해 수행된 처리 동안의 실패가 검출될 때, 선택된 세그먼트에 대한 오퍼레이터(106)에 의해 생성된 임의의 결과는 폐기된다. 세그먼트는 처리될 세그먼트의 저장된 영구 지시를 사용하여 재처리된다. 오퍼레이터(106)가 실패없이 처리를 완료한다면, 오퍼레이터(106)에 의해 생성된 출력은 다음 세그먼트가 처리되기 전에 출력될 수 있다. 동작을 체크포인트하기 위해 세그먼트의 이런 사용은 연속 데이터 스트림을 세그먼트로 분할하는 트랜잭션 시맨틱스를 사용하여 연속 데이터 스트림에 대한 동작들을 체크포인팅하게 한다. 세그먼테이션은 ["Loding Databases Using Dataflow Parallelism", Sigmond Record, Vol.23,No.4,Pages 72-83, December 1994, and in U.S.Patent Application Serial No.09/104,288, filed June 24,1998 and entitled "Computer System and Process for Checkpointing Operations on Data in a Computer System byPartitioning the Data,"by Michael J.Beckerle]에 개시된 방식으로 수행될 수 있는 체크포인팅을 위한 분할을 정의하는데 사용될 수 있다. 체크포인팅은 또한 트랜잭션 시맨틱스를 기초로 한 세그먼테이션과는 다른 분할을 사용하여 수행될 수 있다.
오케스트라 어플리케이션 프리임워크에서, 도 2를 참조로 상술된 정보 동작 및 세그먼터는 연속 데이터 스트림의 정보에서 결과의 출력까지의 전체 데이터 처리 어플리케이션의 체크포인팅을 가능하게 하기 위하여 복합 오퍼레이터로서 구현될 수 있다. 임포트 프로세스의 체크포인팅은 트랜잭션 시맨틱스에 따라 수행될 수 있다. 예컨대, 시간 필드가 사용된다면, 전체 단계는 한 시간, 30분 등의 주기적인 기준으로 체크포인트될 수 있다.
몇몇 어플리케이션에서, 연속 데이터 스트림은 예컨대 실패에 기인한 예 또는 다른 이유로 중단되며, 예상된 시퀀스로부터 데이터를 제공한다. 몇몇 어플리케이션에서, 아웃-어브-시퀀스 데이터는 폐기된다. 그러나 몇몇 분석에서, 아웃-어브-시퀀스 데이터는 식별되어 적절한 세그먼트로 삽입되며, 그 세그먼트는 재처리된다. 아웃-어브-시퀀스 데이터는 예컨대 데이터(101)의 연속적인 소스의 상태를 모니터링함에 의해 삭제될 수 있다. 데이터(101)의 소스가 이전에는 이용가능하지 않은 후에 이용가능할 때, 다른 세그먼트의 처리는 중단되며, 새로이 이용가능한 소스로부터의 아웃-어브-시퀀스 데이터는 처리된다. 이런 데이터의 연속적인 소스로부터의 데이터는 이에 속하는 데이터 세트의 끝에 첨부된다. 완료시, 시스템의 연속적인 동작은 재개시된다. 세그먼트로부터 데이터의 이런 중단 및 재처리는 체크포인팅과 유사한 방식으로 수행될 수 있다.
상술한 바와 같이, 데이터 처리 어플리케이션(107)은 병렬 방식으로 다수의 연속적인 데이터 스트림(102)을 처리하도록 구성될 수 있다. 도 3은 데이터 처리 어플리케이션(107)과 기능에 있어 유사하며 많은 다른 데이터 소스(302-304)로부터 병렬 연속적인 데이터 스트림(305-307)을 수신하는 데이터 처리 어플리케이션(308)을 도시한다. 데이터 처리 어플리케이션(308)은 이들 개별 스트림(305-307)을 동작하며 하나 이상의 결과(310)를 제공하도록 구성된다. 특히, 결과(310)는 예컨대 입력 스트림(305-307)의 기능으로서 데이터의 결합된 스트림일 수 있다. 특히, 결과(310)는 데이터베이스에 저장된 레코드의 실시간 스트림을 수 있다. 일 실시예에 따르면, 데이터베이스는 관계 데이터베이스이며, 관계 데이터베이스는 데이터베이스에서 레코드에 대한 병렬 액세스를 실행할 수 있다.
도 3에 도시된 시스템(301)은 다중 병렬 데이터 소스를 처리하는 예시적인 시스템이다. 특히, 이들 소스는 로그 파일 데이터의 스트림을 생성하는 HTTPD 서버일 수 있다. 이러한 아키텍쳐(301)가 없으면, 다중 소스로부터 로그 파일 정보가 통합되고 나서 시리얼 방식으로 처리되어야 하거나, 또는 다중 프로세스가 각각 개별 데이터 스트림을 처리해야 한다. 전자의 경우에는, 연속하는 병목 현상이 유도되기 때문에 처리율이 감소한다. 후자의 경우에는, 프로그래머가 각각의 스트림을 처리하는 개별 병렬 프로세스를 명확하게 관리하고 각각의 스트림 데이터를 병합한다.
시스템(301)은 다중 병렬처리를 지원할 것이다. 특히, 시스템(301)은 데이터 스트림의 분할에서 병렬로 동작할 것이다. 더욱이, 시스템(301)은 병렬 파이프라인을 사용하는 하나 이상의 데이터 스트림에서 동작할 것이다. 특히, 도 1에 도시된 바와 같이, 세그멘터(104)는 하나 이상의 연속 데이터 스트림(102)을 수용하고, 이들에 대하여 병렬로 동작하고, 이산 데이터 스트림에 대하여 동작하는 복수의 데이터 처리 오퍼레이터(24)가 있을 것이다.
도 4는 다중 연속 데이터 소스가 각각 다중 연속 데이터 스트림을 생성하는 데이터플로우를 도시한다. 단계 401에서, 처리 400이 시작된다. 단계 402-404에서, 시스템(301)은 복수의 로그 파일을 임포트할 것이다. 이들 임포트 처리는 병렬로 발생할 것이고, 이들 임포트 처리의 결과는 단계 405-407에서 로그 파일들에 대하여 처리를 수행하는 하나 이상의 데이터 처리 오퍼레이터(106)로 넘어갈 것이다. 3개의 데이터 스트림이 도시되었지만, 시스템(301)은 임의의 수의 병렬 데이터 스트림을 처리할 수 있고, 임의의 수의 병렬 파이프라인을 포함할 수 있다. 이들 임포트 처리의 결과는 데이터 스트림을 재분할하고 데이터 스트림의 서로 다른 부분을 서로 다른 데이터 처리 오퍼레이터(106)에 재할당할 것이다.
단계 405-407에서, 이들 로그 파일은 병렬 방식으로, 전형적으로는 시스템(301) 프로세서 실행의 서로 다른 스레드에 의해서 처리된다. 수행될 처리는 입력 데이터 스트림에 대한 소트 연산(sort operation) 또는 머지 연산(merge operation)이다. 이들 소트 및 머지 프로세스는 시맨틱스(103) 또는 소정의 규칙에 따라서 데이터 등을 관련 시키거나, 아니면 데이터를 재구성한다. 단계 408-410에서, 각 스트림은 각각 예를 들어 데이터 처리 오퍼레이터(106)에 의해 처리된다. 이들 데이터 오퍼레이터는 데이터 검출, 소거 및 확대를 포함하는 기능을 수행한다. 입력 데이터 스트림이 불량 데이터를 포함할 수 있기 때문에, 시스템(301)은 이러한 데이터의 검출 및 거절을 할 수 있다. 이러한 검출은 데이터 스트램 내의 유효 레코드의 시작을 나타내는 특정 바이트 패턴, 또는 당업계에 공지된 다른 에러 검출 및 정정 기술에 기초할 것이다. HTTPD 프로세스를 경험한 모든 인터넷 트래픽 중 1/3 정도가 스파이더에 의해 생성되기 때문에, 임포트 데이터 스트림의 하나 이상의 부분이 소거될 수 있다. 특히, 데이터 스트림의 레코드를 필터링 및 변조하는 범용 컴포넌트들이 존재할 것이다. 이들 컴포넌트들은 예를 들어 이하 도 5를 참조하여 논의되는 관리 시스템(505)을 통해 사용자가 셋업하는 소정의 규칙에 따라서 동작할 것이다.
또한, 데이터 스트림내의 아이템은 기타 정보에 의해 확대될 수 있다. 예를 들어, 웹 사이트 액티비티는 1 대 1 마케팅 어플리케이션을 구성하는 영업 부문, 판매 및 고객 지원 등의 기타 트랜잭션 소스들로부터의 데이터로 실시간 머지될 수 있다. 따라서, 시스템(301)은 예를 들어 내장 메모리 테이블 룩업 및 데이터베이스 룩업에 기초하여 데이터 스트림을 확대할 수 있다. 예를 들어, 주어진 광고에 관련된 모든 광고주들로 데이터 스트림을 확대하는 것은 사용자가 광고마다 광고 수익의 상세한 분석을 수행할 수 있게 한다.
단계 411-413에서, 다중 스트림용 데이터가 집합될 수 있다. 특히, 시스템(301)은 다중 스트림으로부터의 데이터를 분석 및 병합하는 여러 그룹핑 오퍼레이터들을 제공할 수 있다. 이는 예를 들어, 여러 독립 디멘젼을 통해 데이터를 효과적으로 그룹핑하고 분석함으로써 웹 액티비티를 분석하는 능력을 제공한다. 보다 구체적으로, 정확한 데이터의 평가를 제공하기 위해 필요한 정보는 다중 소스로부터의 데이터 분석을 요구한다. 단계 414-416에서, 집합적인 스트림 데이터는 하나 이상의 위치에 저장된다. 특히, 데이터는 관련 데이터베이스에서 집합될 수 있고 저장될 수 있다. 실시예에 따르면, 시스템(301)은 정보를 관련 데이터베이스에 병렬 방식으로 저장할 수 있다.
시스템(301)은 예를 들어 하나 이상의 컴퓨터 시스템에서 실행하는 프로그램으로 구현될 수 있다. 이들 컴퓨터 시스템은 예를 들어 당업계에 공지된 범용 컴퓨터 시스템일 수 있다. 보다 구체적으로, 범용 컴퓨터는 당업계에 공지된 바와 같은 프로세서, 메모리, 스토리지 디바이스 및 입/출력 디바이스를 포함한다. 범용 컴퓨터 시스템은 컴퓨터 프로그램 랭귀지를 사용하여 하나 이상의 시스템이 설계될 수 있는 운영 시스템을 실행할 수 있다. 예시적인 운영 시스템은 마이크로소프트, 솔라리스, HPUX, 리눅스에서 사용가능한 윈도우 95, 98 또는 윈도우 NT, 또는 선 마이크로시스템, 휴렛-팩커드, Red Hat Computing 및 여러 공급업자들 각각으로부터 사용가능한 Unix 기반 운영 시스템, 또는 현재나 미래의 기타 운영 시스템을 포함한다.
도 5는 클라이언트(501) 및 서버(503)로 기능하는 복수의 범용 컴퓨터를 도시한다. 실시예에서, 데이터 처리 어플리케이션(107)은 서버(503)에서 실행하는 하나 이상의 프로세스로서 기능한다. 특히, 연속 데이터 스트림(102)에 대하여 하나 이상의 연산을 수행하는 서버 프로그램(510)이 있을 것이다. 실시예에서,서버(503)는 서버 프로그램(510)의 처리를 제어하기 위해 프로그래머가 사용하는 어플리케이션 프로그래밍 인터페이스로서 기능하는 오브젝트 프레임워크(509)를 포함한다. 클라이언트(501)는 관리 어플리케이션(505)을 포함할 수 있고, 이를 통해 사용자는 서버 프로그램(510)의 관리 기능을 수행하는 입/출력(502)을 수행한다. 관리 어플리케이션(505)은 서버 프로그램(510)이 동작하는 방법을 결정하는 구성 데이터를 표시 및 수용하도록 구성된 그래픽 사용자 인터페이스(506)를 포함한다. 관리 어플리케이션(505)은또한 사용자 정보를 관리하고 사용자 정보를 서버 프로그램(510)에 제공하는 하위 클라이언트 프로그램(507)을 포함할 것이다. 클라이언트(501)와 서버(503)간의 통신은 네트워크(504)를 통한 클라이언트 통신(508) 및 서버 통신(511)을 통해 수행될 것이다. 클라이언트 및 서버 통신(508, 511)은 예를 들어, TCP/IP 등의 네트워킹 프로토콜을 포함할 것이고, 네트워크(504)는 시스템간 정보를 통신하기 위해 사용되는 Ethernet, ISDN, ADSL 또는 다른 타임의 네트워크일 수 있다. 클라이언트-서버 및 네트워크 통신은 컴퓨터 및 네트워킹 분야에 잘 알려져 있다.
서버(503)는 예를 들어 결과(108)를 서버(503)에 관련되는 하나 이상의 데이터베이스(512)에 저장한다. 실시예에서, 데이터베이스(512)는 병렬 관련 데이터베이스이다. 서버(503)는 또한 서버 프로그램(510)이 동작하는 방법을 기술하는 복수의 사용자 구성 파일(513)을 저장할 것이다.
논의된 바와 같이, 데이터 처리 어플리케이션(107)은 클라이언트-서버 기반 아키텍쳐일 수 있다. 이러한 아키텍쳐는 JAVA, C++ 및 기타 프로그래밍 랭귀지를포함하는 하나 이상의 프로그래밍 랭귀지로 설계될 수 있다. 실시예에 따르면, 데이터 처리 어플리케이션(107)이 C++로 프로그래밍되고, 데이터 스트림의 데이터를 처리하기 위한 컴포넌트 또는 오브젝트를 포함하는 C++ 프레임워크가 정의된다. 이들 오브젝트는 오브젝트 프레임워크(509)의 일부일 수 있다. 예를 들어, 데이터의 분할, 머지, 합병, 필터링 및 복사용 컴포넌트가 있을 수 있다. 서버 프로그램(510)은 사용자 구성 파일(513)에 따라 데이터 처리 어플리케이션(107)의 실행을 관리한다. 이러한 구성 파일(513)은 처리 노드의 네트워크 이름 등의 하위 컴퓨터 시스템 리소스 및 디스크 스페이스 및 메모리 등 컴퓨터 시스템 리소스를 기술한다. 데이터베이스(512)는 데이터 레이아웃 및 임의의 사용자 정의 컴포턴트를 기술하는 스키마 및 프로그램을 포함하는 메타데이터 등의 관련 어플리케이션 정보를 저장한다.
도 6은 데이터 처리 어플리케이션(107)이 구현될 수 있는 프레임워크의 아키텍쳐(601)를 도시한다. 예를 들어, 아키텍쳐(601)를 포함하는 다중 레이어가 있을 수 있다. 예를 들어, 아키텍쳐(601)는 단일 프로그램 동작을 생성할 책임이 있는 컨덕터 프로세스(conductor process; 602)를 포함할 수 있다. 특히, 프로세스(602)는 데이터 처리 어플리케이션(107)의 인스턴스를 수립한다. 컨덕터 프로세스(602)는 또한 섹션 리더 프로세스(603 및 604)를 초래하기도 한다. 실시예에서, 컨덕터 프로세스(602)는 원격 명령을 실행하는 공지된 Unix 명령어 "rsh"를 사용하여 서로 다른 시스템의 섹션 리터 프로세스(603 및 604)를 동시에 초래한다. 실시예에서, 섹션 리더 프로세스는 물리적인 컴퓨터 시스템마다 하나씩 초래된다. 각각의 섹션 리더 프로세스(603-604)는 공지된 "fork()" 명령을 통해 데이터플로우의 각 데이터 처리 오퍼레이터(106)마다 하나씩 플레이어 프로세스를 초래한다. 예를 들어, 컨덕터는 섹션 리더 및/또는 플레이어 프로세스(605-610)와 동일한 또는 다른 컴퓨터 상에서 실행될 수 있다.
컨덕터 프로세스(602)는 접속(611, 612)을 따라 각각 제어 정보를 송신하고 스테이터스 메시지를 수신함으로써 섹션 리더 프로세스(603-604)와 통신한다. 이러한 섹션 리더 프로세스(603-604)는 제어 정보를 발행하고 스테이터스 및 에러 메시지를 수신함으로써 플레이어 프로세스(605-610)와 통신한다. 일반적으로, 컨덕터 프로세스(602)는 메시지 트래픽을 병합하고, 원활한 프로그램 동작을 보장한다. 플레이어 프로세스(605-610) 실패의 경우, 섹션 리더 프로세서(603-604)는 프로그램 동작, 이들의 제어된 플레이어 프로세스 종료 및 동일한 것을 수행하는 다른 섹션 리더 통지를 돕는다.
데이터 처리 어플리케이션(107)은 프레임워크 전반의 데이터 관리용 I/O 관리자와 관련이 있을 것이다. I/O 관리자는 예를 들어 컨덕터 프로세스(또는 오퍼레이터)와 통신하여 아키텍쳐 전반의 데이터 플로우를 조작하고, 결과 데이터 저장에 책임이 있는 데이터 관리자에게 정보를 통신할 것이다.
I/O 관리자는 이하의 기능을 하나 이상 제공할 것이다.
. 프레임워크 전반의 데이터 이동에 대한 블럭-버퍼링 전송 제공
. 데이터 관리자에게 블럭 I/O 서비스를 제공, 즉 I/O 관리자가 데이터 관리자에게 블럭을 핸드 오프함
. 예를 들어, 데이터 관리자에 의해 특정된 파일의 블럭을 저장함으로써 프레임워크용 영구 스토리지 서비스 제공.
. 데드락 회피(deadlock avoidance)를 위한 버퍼링 및 플로우 제어 제공
실시예에서, I/O 관리자는 데이터 관리자로의 포트 인터페이스를 제공할 것이다. 포트는 논리적 접속을 나타내는 것이다. 포트는 예를 들어 입력 포트("inport"라고도 함) 및 출력 포트("outport"라고도 함)일 것이고, 가상적 또는 실제적인 엔티티이다. 출력 포트는 단일의 아웃바운드 스트림을 나타내고 영구 데이터세트의 각 출력 부분에 대해 생성된다. 가상 포트에 대해서, 프로세스 관리자(컨덕터)는 플레이어 프로세스간 접속을 생성한다. 실시예에 따르면, 특정 플레이어 프로세스의 임의의 가상 출력 포트는 다운스트림 플레이어 프로세스로의 단일 접속을 구비할 수 있다. 유사한 형태로, 입력 포트는 단일의 인바운드 스트림을 나타내고, 하나의 입력 포트가 각각의 인바운드 데이터 스트림에 대해서 생성될 수 있다. 입력 가상 포트용 인바운드 데이터 스트림은 결정론적 방법이 아닌 방법에 의해 단일의 데이터 블럭 스트림으로 머지될 수 있다. 데이터 블럭의 순서화는 주어진 분할에서 보존되지만, 분할들 사이에 암시되는 순서는 없을 것이다. 분할들 사이에 암시된 순서가 없기 때문에, 데드락 상황이 회피될 수 있을 것이다.
도 7은 각각 오퍼레이터 A 및 B의 개별 인스턴스를 구비하는 2개의 노드 1 및 2간에 수립되는 논리적 접속을 도시한다. 특히, 노드 1은 플레이어 오퍼레이터(또는 프로세스) A(701) 및 플레이어 오퍼레이터 B (702)를 포함하는데, 오퍼레이터 A는 처리를 위해 오퍼레이터 B에 시리얼 방식으로 데이터를 제공한다.또한, 노드 2의 오퍼레이터 A(703)는 또한 노드 1의 플레이어 오퍼레이터 B(702)에 시리얼 방식으로 정보를 제공할 것이다. 유사한 방식으로, 플레이어 오퍼레이터 A(701)는 노드 2의 플레이어 오퍼레이터 B(704)에 의한 처리용 데이터를 제공할 것이다. 오퍼레이터(701-704)간 하나 이상의 논리적 접속 셋업이 이러한 전송을 촉진할 것이다. 이러한 방식으로, 병렬 파이프라인된 프로세스간 통신이 일어날 것이다.
몇몇 실시예들을 설명하였지만, 당업자들에게는 지금까지의 설명이 실시예로 표현된 예시적인 것일 뿐 제한적인 것은 아니라는 것이 명백할 것이다. 다양한 변경 및 기타 실시예를 당업자들을 실행할 수 있다.
예를 들어, 연속 데이터 스트림(102)의 세그먼테이션 이전에, 지원하지 않는 레코드 또는 데이터 분석을 어긋나게 하거나 기타 영향을 주는 레코드를 소거하기 위해 데이터가 필터링될 수도 있다. 예를 들어, 연속 데이터 스트림이 서버에게 발행된 요청에 관한 정보를 제거하는 정보의 로그이면, 하나 이상의 요청에 대하여 로그가 필터링될 수 있다. 제거될 정보의 종류는 소위 "spiders", "crawlers" 또는 "robots"인 컴퓨터 프로그램을 포함하는 다양한 엔티티에 관련되는 요청에 관한 정보를 포함한다. 이러한 프로그램은 컴퓨터 네트워크 상의 파일 서버를 액세스하기 위해 검색 엔진에 의해 실행되어 이들로부터 목차를 얻는다. "spiders", "crawlers" 또는 "robots"에 의해 발행된 요청은 다른 요청들과 동일한 방식으로 서버에 로그된다. 이들 프로그램은 알려져 있을 호스트 이름 및 에이전트 이름을 가질 것이다. 필터링 동작은 "spiders", "crawlers" 또는 "robots"로 알려진 이름을 갖는 사용자로부터의 요청을 필터링할 것이다. 서버는 또한 "spiders", "crawlers" 또는 "robots"에 의해 서버상에서 액세스들 파일을 특정하는 소정의 이름을 갖는 파일을 구비할 것이다. 이들 파일에 대한 액세스는 "spiders", "crawlers" 또는 "robots"의 이름인 호스트나 에이전트를 식별하기 위해 사용되고, 이들 엔티티로부터 다른 액세스를 필터링하기 위해 사용될 것이다. 이러한 "spiders", "crawlers" 또는 "robots"을 검출하기 위한 프로그램은 이미 사용가능하다. 또한, 복제 데이터 레코드의 제거 또는 다른 데이터 소거 동작이 적절할 수 있다. 이러한 필터링은 일반적으로 연속 데이터 스트림을 세그멘팅하기 위해 트랜잭션 시맨틱스를 적용하기 이전에 수행되지만, 데이터가 세그멘팅된 이후에 수행되기도 한다. 이들 및 다른 변형들이 본 발명의 범위에 드는 것으로 고려된다.

Claims (23)

  1. 연속 데이터 스트림을 처리하는 방법에 있어서,
    트랜잭션 시맨틱스의 지시를 수신하는 단계;
    연속 데이터 스트림의 세그먼트들을 식별하기 위하여, 상기 트랜잭션 시맨틱스를 상기 연속 데이터 스트림에 적용하는 단계;
    상기 세그먼트에 대한 결과를 생산하기 위해 상기 연속 데이터 스트림의 각 세그먼트에서 상기 데이터를 처리하는 단계; 및
    상기 연속 데이터 스트림의 각 세그먼트의 상기 데이터가 처리된 후에, 생산된 상기 결과를 상기 세그먼트에게 제공하는 단계
    를 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  2. 제1항에 있어서,
    상기 데이터는 각각의 레코드가 복수의 필드들을 포함하는 복수의 상기 레코드들을 포함하고,
    상기 트랜잭션 시맨틱스가 상기 데이터의 하나 또는 그 이상의 레코드의 하나 또는 그 이상의 필드들의 기능으로써 규정되는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  3. 제1항에 있어서,
    상기 식별된 세그먼트들에 따라 상기 연속 데이터 스트림을 분할하는 단계를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  4. 제3항에 있어서,
    상기 분할하는 단계가 상기 연속 데이터 스트림에 두 세그먼트들간의 경계를 표시하는 레코드를 삽입하는 단계를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  5. 제4항에 있어서,
    상기 레코드가 단지 경계만을 표시하는 마커 레코드인 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  6. 제4항에 있어서,
    상기 레코드가 상기 트랜잭션 시맨틱스와 관련된 정보를 포함하는 시맨틱 레코드인 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  7. 제1항에 있어서,
    상기 연속 데이터 스트림이 서버로 발행되는 요구와 관련된 정보의 로그(log)이고,
    상기 적용하는 단계가,
    상기 로그로부터 요구와 관련된 정보를 판독하는 단계, 및
    상기 트랜잭션 시맨틱스를 상기 판독 정보에 적용하는 단계
    를 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  8. 제7항에 있어서,
    각 요구에 관련된 상기 정보는 복수의 필드를 포함하며,
    상기 트랜잭션 시맨틱스는 하나 또는 그 이상의 요구에 관련된 정보의 하나 또는 그 이상의 필드의 기능으로써 규정되는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  9. 제8항에 있어서,
    상기 정보는, 상기 요구가 서버로 발행된 시간을 포함하고, 상기 트랜잭션 시맨틱스가 시간 주기를 규정하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  10. 제7항에 있어서,
    하나 또는 그 이상의 요구들에 관련되는 정보를 제거하기 위해 상기 로그를 필터링하는 단계를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  11. 제10항에 있어서,
    상기 트랜잭션 시맨틱스를 적용하는 단계에 앞서서 상기 필터링하는 단계가 실행되는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  12. 제10항에 있어서,
    상기 필터링하는 단계가 스파이더들과 관련된 요구에 관련하는 정보를 제거하는 단계를 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  13. 제1항에 있어서,
    상기 연속 데이터 스트림으로부터 데이터를 제거하기 위해 상기 연속 데이터 스트림을 필터링하는 단계를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  14. 제1항에 있어서,
    상기 세그먼트에 대한 결과를 생산하기 위해 상기 연속 데이터 스트림의 각 세그먼트에서 상기 데이터를 처리하는 부가적인 단계, 및
    상기 처리의 부가적인 단계동안에 상기 데이터의 연속 스트림의 각 세그먼트의 데이터가 처리된 후에, 상기 세그먼트에게 상기 생성된 결과를 제공하는 단계
    를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  15. 제1항에 있어서,
    상기 처리하는 단계는,
    각 세그먼트에서 복수의 병렬 분할들로 데이터를 분할하는 단계; 및
    각 분할에 중간 결과를 제공하기 위해서 병렬로 상기 분할의 각각을 처리하는 단계
    를 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  16. 제15항에 있어서,
    상기 세그먼트에 대한 상기 결과를 생산하기 위해서 각 분할의 중간 결과들을 결합시키는 단계를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  17. 제1항에 있어서,
    상기 연속 데이터 스트림에서의 상기 데이터가 시퀀스를 가지고,
    연속 데이터 스트림의 다중 소스가 있으며,
    상기 연속 데이터 스트림에서의 데이터가 시퀀스인지 아닌지를 결정하고, 만약 상기 데이터가 시퀀스가 아닌 것으로 결정된다면, 상기 처리하는 단계를 중단시키고, 상기 트랜잭션 시맨틱스에 따라 세그먼트에 상기 데이터를 삽입하고, 상기 세그먼트를 재처리하며 상기 처리하는 단계를 계속 실행하는 단계
    를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  18. 제1항에 있어서,
    데이터가 처리되고 있는 동안 상기 세그먼트의 영구 지시를 저장하는 단계;
    처리하는 단계에서 실패가 검출될 때, 상기 선택된 세그먼트를 위해 상기 처리하는 단계에 의해 생산된 임의의 결과를 버리고, 상기 저장된 영구 지시에 대응하는 상기 선택된 세그먼트를 재처리하는 단계; 및
    상기 처리하는 단계가 실패없이 달성될 때, 하나의 출력으로서 생산된 상기 출력들을 제공하고 그 다음 세그먼트를 선택하는 단계;
    를 더 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
  19. 트랜잭션 시맨틱스를 수신하는 단계;
    처리 엘리먼트에 의해 처리되는 동안 상기 연속 데이터 스트림을 세그먼트로 분할하기 위해, 상기 트랜잭션 시맨틱스를 상기 데이터에 적용하는 단계;
    상기 세그먼트들 중 하나를 선택하는 단계;
    결과를 생산하기 위해 상기 처리 엘리먼트로써 상기 선택된 세그먼트를 처리하는 단계;
    처리 엘리먼트의 실패가 검출될 때, 상기 선택된 세그먼트를 위해 상기 처리 엘리먼트에 의해 생성되는 임의의 결과들을 버리고, 상기 저장된 영구 지시에 대응하는 상기 선택된 세그먼트를 재처리하는 단계; 및
    상기 처리 엘리먼트에 의한 처리가 실패없이 달성될 때, 하나의 출력으로서상기 처리 엘리먼트에 의해 생산된 상기 출력들을 제공하고, 상기 처리 엘리먼트에 의해 처리될 그 다음의 세그먼트를 선택하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 처리 엘리먼트에 의해 연속 데이터 스트림에 대한 동작을 체크포인팅하는 프로세스.
  20. 제19항에 있어서,
    상기 적용하는 단계는 상기 데이터의 연속하는 스트림에 상기 데이터의 세그먼트들간의 경계를 표시하는 데이터를 삽입하는 것을 포함하는 것을 특징으로 하는 프로세스.
  21. 트랜잭션 시맨틱스의 지시를 수신하는 수단;
    상기 데이터를 세그먼트들로 분할하기 위해, 상기 트랙잭션 시맨틱스를 상시 연속 데이터 스트림에 적용하는 수단;
    상기 세그먼트들 중에서 하나를 선택하는 수단;
    상기 선택된 세그먼트의 영구 지시를 저장하는 수단;
    결과를 생산하기 위해 상기 선택된 세그먼트를 처리하는 처리 엘리먼트;
    상기 처리 엘리먼트의 실패가 검출된 후, 상기 선택된 세그먼트에 대한 상기 처리 엘리먼트에 의해 생성된 임의의 출력을 제거하는 수단 및 상기 저장된 영구 지시에 대응하는 상기 선택된 세그먼트를 재처리하기 위해 상기 처리 엘리먼트를 지시하는 수단; 및
    상기 처리 엘리먼트에 의한 처리가 실패없이 달성된 후, 상기 처리 엘리먼트에 의해 생산된 상기 결과들을 제공하고, 상기 처리 엘리먼트에 의해 처리될 그 다음의 세그먼트를 선택하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 시스템에서 연속 데이터 스트림에 대한 동작을 체크포인팅하는 컴퓨터 시스템.
  22. 제21항에서,
    적용하는 상기 수단은 상기 연속 데이터 스트림에 상기 데이터의 세그먼트들간의 경계를 표시하는 데이터를 삽입하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  23. 트랜잭션 시맨틱스의 지시를 수신하는 단계;
    상기 연속 데이터 스트림의 세그먼트를 식별하기 위해, 상기 트랜잭션 시맨틱스를 상기 데이터 연속 스트임에 적용하는 단계; 및
    상기 연속 데이터 스트림에 상기 연속 데이터 스트림의 상기 식별된 세그먼트들간의 경계를 표시하는 데이터를 삽입하는 단계
    를 포함하는 것을 특징으로 하는 연속 데이터 스트림을 처리하는 방법.
KR1020017016276A 1999-06-18 2000-06-19 트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의세그먼테이션 및 처리 KR20020041337A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14000599P 1999-06-18 1999-06-18
US60/140,005 1999-06-18
US18566500P 2000-02-29 2000-02-29
US60/185,665 2000-02-29
PCT/US2000/016839 WO2000079415A2 (en) 1999-06-18 2000-06-19 Segmentation and processing of continuous data streams using transactional semantics

Publications (1)

Publication Number Publication Date
KR20020041337A true KR20020041337A (ko) 2002-06-01

Family

ID=26837781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017016276A KR20020041337A (ko) 1999-06-18 2000-06-19 트랜잭션 시맨틱스를 이용한 연속 데이터 스트림의세그먼테이션 및 처리

Country Status (6)

Country Link
EP (1) EP1314100A2 (ko)
JP (1) JP4600847B2 (ko)
KR (1) KR20020041337A (ko)
CN (1) CN100375088C (ko)
AU (1) AU5624700A (ko)
WO (1) WO2000079415A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136912B2 (en) 2001-02-08 2006-11-14 Solid Information Technology Oy Method and system for data management
ATE515746T1 (de) 2003-09-15 2011-07-15 Ab Initio Technology Llc Datenprofilierung
US20050097565A1 (en) * 2003-10-31 2005-05-05 Udo Klein Gathering message information
US7571153B2 (en) * 2005-03-28 2009-08-04 Microsoft Corporation Systems and methods for performing streaming checks on data format for UDTs
US7400271B2 (en) * 2005-06-21 2008-07-15 International Characters, Inc. Method and apparatus for processing character streams
US7937344B2 (en) 2005-07-25 2011-05-03 Splunk Inc. Machine data web
CN102831214B (zh) 2006-10-05 2017-05-10 斯普兰克公司 时间序列搜索引擎
US8688622B2 (en) * 2008-06-02 2014-04-01 The Boeing Company Methods and systems for loading data into a temporal data warehouse
CN102004631A (zh) * 2010-10-19 2011-04-06 北京红旗中文贰仟软件技术有限公司 信息文档的处理方法及装置
CN103348598B (zh) 2011-01-28 2017-07-14 起元科技有限公司 生成数据模式信息
CN102306200B (zh) * 2011-09-22 2013-03-27 用友软件股份有限公司 增量数据操作语句的并发应用装置和方法
CN102388385B (zh) * 2011-09-28 2013-08-28 华为技术有限公司 数据处理的方法和装置
US9323748B2 (en) 2012-10-22 2016-04-26 Ab Initio Technology Llc Profiling data with location information
US9892026B2 (en) 2013-02-01 2018-02-13 Ab Initio Technology Llc Data records selection
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
EP3114578A1 (en) 2014-03-07 2017-01-11 AB Initio Technology LLC Managing data profiling operations related to data type
US9660930B2 (en) 2014-03-17 2017-05-23 Splunk Inc. Dynamic data server nodes
US9838346B2 (en) 2014-03-17 2017-12-05 Splunk Inc. Alerting on dual-queue systems
US9753818B2 (en) 2014-09-19 2017-09-05 Splunk Inc. Data forwarding using multiple data pipelines
US9922037B2 (en) 2015-01-30 2018-03-20 Splunk Inc. Index time, delimiter based extractions and previewing for use in indexing
WO2017118474A1 (en) * 2016-01-05 2017-07-13 Huawei Technologies Co., Ltd. A data processing apparatus and method and a data container structure
CN106126658B (zh) * 2016-06-28 2019-03-19 电子科技大学 一种基于虚拟存储器快照的数据库检查点构建方法
US11947978B2 (en) 2017-02-23 2024-04-02 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US10831509B2 (en) 2017-02-23 2020-11-10 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
CN109918391B (zh) * 2019-03-12 2020-09-22 威讯柏睿数据科技(北京)有限公司 一种流式事务处理方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3426428B2 (ja) * 1995-10-27 2003-07-14 富士通株式会社 トランザクションのトレース装置
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
US5909681A (en) * 1996-03-25 1999-06-01 Torrent Systems, Inc. Computer system and computerized method for partitioning data for parallel processing
EP0840517A3 (en) * 1996-10-31 2003-09-10 Matsushita Electric Industrial Co., Ltd. Video data stream decoding method and apparatus
KR100198805B1 (ko) * 1996-11-22 1999-06-15 정선종 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법

Also Published As

Publication number Publication date
CN100375088C (zh) 2008-03-12
WO2000079415A3 (en) 2003-02-27
CN1575464A (zh) 2005-02-02
JP2004500620A (ja) 2004-01-08
JP4600847B2 (ja) 2010-12-22
WO2000079415A2 (en) 2000-12-28
WO2000079415A8 (en) 2001-04-05
EP1314100A2 (en) 2003-05-28
WO2000079415A9 (en) 2002-06-13
AU5624700A (en) 2001-01-09

Similar Documents

Publication Publication Date Title
US7752299B2 (en) Segmentation and processing of continuous data streams using transactional semantics
US6801938B1 (en) Segmentation and processing of continuous data streams using transactional semantics
JP4600847B2 (ja) トランザクションの意味規則を用いた連続データストリームのセグメント化および処理
US11544623B2 (en) Consistent filtering of machine learning data
US20200228392A1 (en) Method and system for clustering event messages and manage event-message clusters
US10810103B2 (en) Method and system for identifying event-message transactions
US11100420B2 (en) Input processing for machine learning
US11182691B1 (en) Category-based sampling of machine learning data
US10205627B2 (en) Method and system for clustering event messages
US10339465B2 (en) Optimized decision tree based models
US7313575B2 (en) Data services handler
US10963810B2 (en) Efficient duplicate detection for machine learning data sets
CA2953817C (en) Feature processing tradeoff management
US10452992B2 (en) Interactive interfaces for machine learning model evaluations
CN109034993A (zh) 对账方法、设备、系统及计算机可读存储介质
US11256668B2 (en) Virtual log file that aggregates multiple physical log files
US20150370799A1 (en) Method and system for clustering and prioritizing event messages
US20220179991A1 (en) Automated log/event-message masking in a distributed log-analytics system
Affetti et al. Defining the execution semantics of stream processing engines
MXPA05005535A (es) Anti-virus para un almacenamiento de articulo.
US7668093B1 (en) Architecture for balancing workload
Xu et al. A flexible architecture for statistical learning and data mining from system log streams
US11755430B2 (en) Methods and systems for storing and querying log messages using log message bifurcation
US20240111608A1 (en) Event-message collection, processing, and storage systems that are configurable to facilitate scaling, load-balancing, and selection of a centralization/decentralization level
US20240354213A1 (en) Graph-based impact analysis of misconfigured or compromised cloud resources

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid