KR102225815B1 - 데이터 피드 관리 - Google Patents

데이터 피드 관리 Download PDF

Info

Publication number
KR102225815B1
KR102225815B1 KR1020167005848A KR20167005848A KR102225815B1 KR 102225815 B1 KR102225815 B1 KR 102225815B1 KR 1020167005848 A KR1020167005848 A KR 1020167005848A KR 20167005848 A KR20167005848 A KR 20167005848A KR 102225815 B1 KR102225815 B1 KR 102225815B1
Authority
KR
South Korea
Prior art keywords
data
node
feed
data unit
unit
Prior art date
Application number
KR1020167005848A
Other languages
English (en)
Other versions
KR20160042933A (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 아브 이니티오 테크놀로지 엘엘시
Publication of KR20160042933A publication Critical patent/KR20160042933A/ko
Application granted granted Critical
Publication of KR102225815B1 publication Critical patent/KR102225815B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Retry When Errors Occur (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

데이터 피드(14)의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하는 것은: 네트워크(12)의 제1 노드에서, 복수의 데이터 유닛들을 포함하는 데이터 피드의 적어도 일부를 수신하는 단계; 상기 네트워크의 제2 노드에서, 상기 데이터 피드의 적어도 일부를 수신하는 단계; 상기 제1 노드에서 상기 데이터 피드의 수신의 중단을 식별하는 단계; 상기 중단에 앞서 상기 제1 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 제1 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는 데이터 라쿠나(data lacuna)(504)의 범위를 결정하는 단계; 및 상기 제2 노드에 의해 저장된 결과들(510)에 대해 상기 제1 노드로부터의 요청을 전송하는 단계(506) - 상기 제2 노드에 의해 저장된 결과들은 상기 데이터 라쿠나에 대응함 - 를 포함한다.

Description

데이터 피드 관리{MANAGING DATA FEEDS}
본 출원은 2013년 8월 7일에 출원된 “데이터 피드 관리”라는 명칭의 US 출원번호 61/863,062에 대해 우선권을 주장한다.
본 명세서는 데이터 피드 관리(managing data feeds)에 관련된 것이다.
데이터 피드는 잘 정의된 순서를 가지고 상당히 정기적으로 그 순서로 순차적으로 전송되는 데이터 유닛들의 세트를 제공한다. 상기 데이터 유닛들이 네트워크의 여러 노드들로 브로드캐스트되도록 상기 데이터 유닛들은 네트워크를 통해 전송될 수 있다. 특정 데이터 소스들은 정렬된 데이터 유닛들의 실시간 브로드캐스트 데이터 피드를 출력한다. 이러한 실-시간 브로드캐스트 데이터 피드의 예가 시계열이다. 이러한 데이터 피드는 예를 들어, 연속적인 시간에서 상품의 가격을 포함할 수 있다.
네트워크의 노드는 클라이언트가 데이터의 선택된 일부를 필요로 할 때, 상기 노드가 스토리지로부터 그것을 검색하고 클라이언트에게 그것을 제공할 수 있도록 데이터 피드를 캡처하고 저장할 수 있다. 캡처된 데이터를 관리할 때 상기 노드가 만족시켜야만 하는 특정 요구사항들이 있을 수 있다. 예를 들어, 요구사항들의 한 세트는 상기 데이터가 항상 이용할 수 있어야 하고, 어떤 데이터도 손실되지 말아야 하는 것이다.
발생하는 난점은 노드가 데이터 피드의 일부를 캡처하고 저장하는 데 실패할 수 있다는 것이다. 이는 실시간으로 데이터 피드를 브로드캐스트만 하도록 (즉, 재-전송 없이) 구성되는 데이터 소스로부터의 실시간 브로드캐스트 데이터 피드에 발생할 때, 누락된 데이터는 해당 노드와 그 클라이언트들에 대해 영원히 손실된다.
이러한 오류는 예를 들어, 노드가 일시적으로 그 네트워크 연결을 잃기 때문에, 또는 노드가 작동불능이 되거나 버퍼 용량이 부족하기 때문에 발생할 수 있다. 이런 경우, 노드는 데이터 피드의 데이터의 일부를 캡처하거나 저장하는데 실패할 수 있다. 따라서, 클라이언트가 데이터 피드의 특정 부분을 노드에 요청할 때, 그 부분이 노드가 데이터 피드로부터 데이터를 캡처하고 저장할 수 없었던 동안의 시간에 걸쳐 발생한다면, 노드는 요청을 수행할 수 없을 것이다.
본 발명의 목적은 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법, 소프트웨어 또는 시스템을 제공하기 위한 것이다.
일 측면에서, 일반적으로, 소스로부터 재전송을 요구하지 않고, 소스로부터 중단된 데이터 피드의 데이터 유닛들(예를 들어, 데이터 유닛들의 완전한 세트)를 수신하기 위한 방법이 제공된다. 상기 데이터 피드는 네트워크의 여러 노드들에 전송되고 있다. 각 노드는 상기 데이터 피드의 적어도 일부의 데이터 유닛을 수신하기 위한 네트워크 인터페이스, 그리고 그 노드에서 수신되는 데이터 유닛들에 대응하는 결과들을 저장하기 위한 데이터 스토어에 결합된 처리 모듈을 포함한다. 제1 노드는 하나 이상의 데이터 유닛들을 누락한 데이터 피드의 불완전한 복사본을 캡처하고, 두 개의 수신된 데이터 유닛들 사이의 갭(gap)을 식별한다. 상기 제1 노드는 상기 갭의 범위를 결정하고 상기 갭에 대응하는 데이터 유닛들에 대한 요청을 전송한다.
또 다른 측면에서, 일반적으로, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법이 제공된다. 상기 방법은: 네트워크의 제1 노드에서, 복수의 데이터 유닛들을 포함하는 데이터 피드의 적어도 일부를 수신하는 단계; 상기 네트워크의 제2 노드에서, 상기 데이터 피드의 적어도 일부를 수신하는 단계; 상기 제1 노드에서 상기 데이터 피드의 수신의 중단을 식별하는 단계; 상기 중단에 앞서 상기 제1 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 제1 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는 데이터 라쿠나(data lacuna)의 범위를 결정하는 단계; 그리고 상기 제2 노드에 의해 저장된 결과들에 대해 상기 제1 노드로부터 요청을 전송하는 단계 - 상기 제2 노드에 의해 저장된 결과들은 상기 데이터 라쿠나에 대응함 - 를 포함한다.
측면들은 다음 특징들 중 하나 이상을 포함할 수 있다.
상기 방법은 상기 중단을 식별하기에 앞서, 상기 제1 노드에서 상기 데이터 피드의 데이터 유닛들을 처리하여 상기 제1 노드에서 상기 데이터 유닛들에 대응하는 결과들을 저장하는 단계, 및 상기 제2 노드에서 상기 데이터 피드의 데이터 유닛들을 처리하여 상기 제2 노드에서 상기 데이터 유닛들에 대응하는 결과들을 저장하는 단계를 더 포함한다.
상기 데이터 유닛을 처리하여 상기 데이터 유닛에 대응하는 결과를 저장하는 단계는 상기 데이터 유닛의 표현을 내구성있게 저장하는 단계를 포함한다.
상기 제1 데이터 유닛의 표현은 상기 제1 데이터 유닛의 정확한 복사본이다.
상기 제1 데이터 유닛의 표현은 상기 제1 데이터 유닛의 압축된 표현이다.
상기 방법은 상기 제1 노드에서, 상기 데이터 라쿠나에 대응하는 상기 제2 노드에 의해 저장된 상기 결과들을 수신하는 단계, 및 상기 제1 노드에서 상기 결과들을 저장하는 단계를 더 포함한다.
상기 방법은: 상기 제1 노드에서, 상기 제1 노드의 상기 데이터 피드로부터 제1 데이터 유닛에 기초한 제1 결과를 저장하는 단계, 상기 제2 노드에서, 상기 제2 노드의 상기 데이터 피드로부터 데이터에 기초한 결과들을 저장하는 단계 - 상기 결과들은 상기 제1 결과, 제2 결과, 및 제3 결과를 포함하고, 상기 제2 결과는 제2 데이터 유닛에 기초한 것이며, 상기 제3 결과는 제3 데이터 유닛에 기초한 것이고, 여기서 상기 제2 데이터 유닛은 상기 제1 데이터 유닛 후 그리고 상기 제3 데이터 유닛 전에 수신됨 -를 더 포함한다. 데이터 라쿠나의 범위를 결정하는 단계는: 상기 제1 노드에서, 상기 중단 후에, 상기 제3 데이터 유닛을 수신하는 단계, 상기 제1 노드에서, 상기 제1 데이터 유닛이 상기 중단에 앞서 수신된 마지막 데이터 유닛인 것을 식별하는 단계, 그리고 상기 제1 노드에서, 상기 제1 데이터 유닛과 상기 제3 데이터 유닛 사이에 걸치는 데이터 라쿠나의 존재를 식별하는 단계를 포함한다.
상기 방법은 상기 제1 노드에서, 상기 데이터 라쿠나에 대응하는 상기 제2 노드에 의해 저장된 상기 결과들을 수신하는 단계, 및 상기 제1 노드에서, 상기 제2 결과를 포함하는, 상기 결과들을 저장하는 단계를 더 포함한다.
상기 방법은 상기 제1 노드로부터의 요청을 전송하기에 앞서, 복수의 노드들 - 전부가 상기 데이터 피드로 스트리밍되고 있음 - 중으로부터 상기 제2 노드를 선택하는 단계를 더 포함한다.
상기 방법은 상기 제1 노드와 통신하는 클라이언트로부터의 요청을 수신하는 단계를 더 포함한다.
상기 클라이언트로부터의 요청은 상기 요청과 관련된 하나 이상의 데이터 유닛들을 식별한다.
상기 방법은 상기 클라이언트로부터의 요청에 의해 식별되는 상기 데이터 유닛들 중 적어도 하나가 상기 데이터 라쿠나에 있다는 것을 결정하는 것에 응답하여 상기 제2 노드에 의해 저장된 결과들에 대해 상기 제1 노드로부터의 요청을 전송하는 단계를 더 포함한다.
상기 방법은 상기 제2 노드에 의해 저장된 상기 결과들을 수신한 후에, 상기 클라이언트로부터의 요청에 응답하는 단계를 더 포함한다.
상기 방법은 상기 요청을 상기 제2 노드로 리다이렉트(redirect)하기 위해 상기 클라이언트로부터의 요청에 응답하는 단계를 더 포함한다.
또다른 측면에서, 일반적으로, 소프트웨어는 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장된다. 상기 소프트웨어는: 네트워크의 제1 노드가 복수의 데이터 유닛들을 포함하는 데이터 피드의 적어도 일부를 수신하게 하고; 상기 네트워크의 제2 노드가 상기 데이터 피드를 수신하게 하고; 상기 제1 노드가 상기 데이터 피드의 수신의 중단을 식별하게 하고; 상기 제1 노드가 상기 중단에 앞서 상기 제1 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 제1 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는 데이터 라쿠나(data lacuna)의 범위를 결정하게 하고; 그리고 상기 제1 노드가 상기 데이터 피드의 적어도 일부를 또한 수신하는 상기 제2 노드로, 상기 제2 노드에 의해 저장된 결과들에 대한 요청을 전송 - 상기 제2 노드에 의해 저장된 결과들은 상기 데이터 라쿠나에 대응함 - 하게 하기 위한 명령들을 포함한다.
또다른 측면에서, 일반적으로, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 시스템은: 복수의 노드들을 포함한다. 적어도 제1 노드와 제2 노드 각각은 복수의 데이터 유닛들을 포함하는 데이터 피드의 적어도 일부를 수신하도록 구성된 네트워크 인터페이스, 및 상기 데이터 피드를 처리하도록 구성된 처리 회로를 포함한다. 상기 처리는: 상기 데이터 피드의 수신의 중단을 식별하는 것, 상기 중단에 앞서 상기 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는 데이터 라쿠나의 범위를 결정하는 것, 및 다른 노드에 의해 저장된 결과들 - 상기 결과들은 상기 데이터 라쿠나에 대응하여 상기 다른 노드에 의해 저장됨 - 에 대해 상기 다른 노드로 요청을 전송하는 것을 포함한다.
또다른 측면에서, 일반적으로, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 시스템은 복수의 노드들을 포함한다. 적어도 제1 노드와 제2 노드 각각은 복수의 데이터 유닛들을 포함하는 데이터 피드의 적어도 일부를 수신하기 위한 수단, 그리고 상기 데이터 피드를 처리하기 위한 수단을 포함하며, 상기 처리는: 상기 데이터 피드의 수신의 중단을 식별하는 것, 상기 중단에 앞서 상기 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는 데이터 라쿠나의 범위를 결정하는 것, 그리고 다른 노드에 의해 저장된 결과들 - 상기 결과들은 상기 데이터 라쿠나에 대응하여 상기 다른 노드에 의해 저장됨 - 에 대해 상기 다른 노드로 요청을 전송하는 것을 포함한다.
측면들은 다음 장점들 중 하나 이상을 포함할 수 있다.
데이터 피드로부터의 데이터를 복구 불가능하게 손실할 확률을 감소시키는 한 가지 방법은 여러 수신 노드들을 제공하는 것이며, 그것들 각각은 동시에 수신하고 모두가 계획대로 작동할 때, 데이터를 캡처한다. 데이터의 일부를 캡처하는 데 실패하여 클라이언트에게 데이터의 요청된 부분을 공급할 수 없는 노드는 또다른 노드로 클라이언트를 리다이렉트(redirect)할 수 있다. 물론, 그 노드가 또한 데이터의 요청된 부분을 제공할 수 없을 수 있으나, 데이터를 수신하기 위해 더 많은 노드가 있을수록, 데이터가 그것들 중 임의의 것에 의해 캡처될 수 없을 가능성이 더 적어진다. 결국에는, 각 노드는 결국 데이터 누락을 야기하는 일부 오류를 경험할 것이다. 따라서, 더 이상의 단계가 수행되지 않는다면, 결국 어떤 단일 노드도 현재 시간으로부터 일부 임의의 이전 시작 시간으로 죽 거슬러 오르는 데이터의 완전한 세트를 가질 수 없을 가능성이 있다. 본원에서 설명된 기술들을 사용한다면, 그래도 데이터가 누락될 때 즉시 감지하고, 누락 데이터를 정확하게 식별하는 것이 가능하다. 그런 다음 이 기능은 각각의 노드가 그 데이터 세트의 데이터 라쿠나(data lacuna)를 감지하고 다른 노드들로 누락된 데이터로 데이터 라쿠나를 채우기 위해 요구되는 데이터를 요청하는 노드들의 자가-치료 시스템(self-healing system)을 제공하기 위해 사용될 수 있다.
본 발명의 다른 특징들과 장점들은 다음 설명으로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1은 공통 실시간 브로드캐스트 데이터 피드를 동시에 수신하는 노드들의 세트의 네트워크 다이어그램이다.
도 2는 전송된 실시간 브로드캐스트 데이터 피드와 데이터 라쿠나(data lacuna)를 가지는 대응하는 저장된 데이터 피드의 타임 플롯을 도시한다.
도 3은 도 1에 도시된 노드들의 세트로부터의 전형적인 노드의 구조의 블록 다이어그램이다.
도 4는 도 1에 도시된 노드들의 세트에서 특정 노드에 의해 실행되는 방법에 대한 순서도이다.
도 5는 한 쌍의 노드들 사이의 통신을 보여주는 한 쌍의 타임라인들이다.
데이터의 관리를 위한 시스템은 네트워크(12)에 연결된 복수의 노드들(10A, 10B…10Z)을 포함한다. 정상 동작시, 상기 노드들(10A, 10B…10Z) 각각은 데이터 피드(14)가 사용가능한 네트워크(12)로의 각각의 대응하는 연결(14A, 14B…14Z)을 통해 데이터 피드(14)를 동시에 수신한다. 이 데이터 피드(14)는 도 2에서 도시된 바와 같이, 임의의 두 데이터 유닛들(18, 20)이 주어지면, 그것이 두 데이터 유닛들(18, 20) 사이의 데이터 라쿠나(data lacuna)(22)를 식별할 수 있는 속성을 가지는, 순차적으로 전송된 데이터 유닛들의 세트를 포함한다. 이러한 데이터 피드(14)의 맥락에서, “데이터 라쿠나”는 예를 들어, 데이터 유닛들에 대한 일련의 암시적 또는 명시적 식별자들의 갭(gap)에 기초하는 것 같은, 일부 공지 방법으로 식별할 수 있는 두 데이터 유닛들 사이의 라쿠나(lacuna)(즉, 채워지지 않은 공간 또는 구간)에 해당한다.
이러한 데이터 피드(14)의 예는 그것들 각각이 일련 번호 또는 타임 스탬프로 태그된, 데이터 유닛들의 피드일 것이다. 1씩 증가하는 정수 일련 번호의 경우에, 데이터 유닛 m 을 수신하고 그 다음 수신된 데이터 유닛이 데이터 유닛 m +  k이라면, k - 1 개의 누락된 데이터 유닛들이 있음이 틀림없을 뿐만 아니라, 그것들이 데이터 유닛 m + 1 내지 m + k -  1 이었음이 틀림없다고 판단할 수 있다. 다른 경우들은 일정 시간 간격으로 데이터 유닛들이 예상되는 것들을 포함하고, 그 경우에 두 데이터 유닛들과 그 관련된 시간들(예를 들어, 관련된 타임 스탬프로부터)이 주어지면, 노드가 데이터 유닛들이 예상되는 기지의 일정 시간 간격들에 기초하여 데이터 라쿠나(data lacuna) (22)의 범위를 계산할 수 있다.
노드들(10A, 10B…10Z) 같은, 네트워크의 노드의 예는 (아마도 다중 프로세서 코어들을 가지는) 중앙 처리 유닛들(CPUs), CPU의 프로세서 코어, 또는 FPGA 또는 다른 프로그래머블 또는 전용 로직일 수 있는, 처리 회로의 제어 하의, 서버 같은, 컴퓨팅 시스템이다. 처리 회로는 잠재적으로 중간 네트워크(예를 들어, 지역 네트워크(LAN) 및/또는 광역 네트워크(WAN))를 경유하여, 네트워크를 통해 통신하기 위한 네트워크 인터페이스를 포함한다. 이제 도 3을 참조하면, 이 예에서, 노드(10A)는 데이터 피드(14)로부터 전송된 데이터 유닛들의 세트가 저장된 데이터 유닛들(24)의 세트로 저장되는 데이터 스토리지(20)를 포함하거나, 그에 결합될 수 있다. 데이터 스토리지(20)가 내구성있게 데이터 유닛들을 저장하도록 구성되면, 예를 들어, 비 휘발성 저장 매체를 사용하는 데이터 스토리지(20)에 의해 제공되는 바와 같이, 그것은 노드(10A)의 동작의 중단(전력 손실 같은)이 있더라도 데이터 유닛들(24)이 나중에 검색될 수 있게 한다. 일부 경우에, 저장된 데이터 유닛들(24)의 세트는 데이터 피드(14)로부터 전송된 데이터 유닛들의 세트의 복사본이다. 그러나 다른 경우에, 저장된 데이터 유닛들(24)의 세트는 데이터 피드(14)로부터 전송된 데이터 유닛들의 처리된 버전들을 포함한다. 예를 들어, 저장된 데이터 유닛은 전송된 데이터 유닛의 압축된 버전일 수 있고, 또는 추출된 특정 관련 값들 및/또는 제거된 특정 오버헤드 정보를 가질 수 있다.
저장된 데이터 유닛들(24)의 세트는 전송된 데이터 유닛들의 세트와 일치하지 않을 수 있다. 이는 예를 들어, 노드(10A)가 예를 들어, 정전 때문에 작동을 중지하는 경우, 또는 네트워크 연결이 끊어지는 경우에 발생할 수 있다. 이는 저장된 데이터 유닛들(24)의 세트에서 하나 이상의 데이터 라쿠나들(data lacunas)(22)의 발생을 초래한다.
이러한 데이터 라쿠나들(data lacunas)(22)의 존재를 검출하기 위해, 라쿠나 검출기(lacuna detector)(26)는 저장된 데이터 유닛들(24)의 세트를 검사한다. 데이터 라쿠나들을 검출하기 위해, 데이터 전송의 특성들의 지식에 기초하여, 합리적으로 계산된 임의의 방식으로 그렇게 한다. 예를 들어, 그것은 정기적으로, 또는 중단 검출기(28)로부터의 중단 검출에 응답하여 저장된 데이터 유닛들의 세트를 검사할 수 있다.
다른 경우에서는, 도 1에 도시된, 클라이언트(30)는 특정 데이터를 요청할 수 있다. 클라이언트(30)는 네트워크(12)의 또다른 노드일 수 있거나, 클라이언트가 네트워크(12)에 정규 연결을 가지지 않는 경우라도 메시지를 통해 네트워크(12)의 노드 중 임의의 것과 통신할 수 있는 디바이스 또는 시스템(예를 들어, 사용자의 컴퓨터 시스템 또는 단말)일 수 있다. 클라이언트(30)는 예를 들어, 지리적 근접성 또는 전류 부하에 기초하여 데이터를 요청할 특정 노드(10A)를 선택할 수 있다. 요청된 데이터가 데이터 라쿠나(data lacuna)에 걸치는 것이 발생할 수 있다. 이러한 경우에, 요청된 데이터에 데이터 라쿠나(22)가 없다는 것을 확인하기 위해 클라이언트(30)에 의해 요청되는 데이터를 검사하기 위해 클라이언트의 요청이 라쿠나 검출기(26)를 트리거한다. 요청된 데이터에 적어도 하나의 데이터 라쿠나(22)가 있다면, 이하 더 상세히 설명된 바와 같이, 노드(10A)는 네트워크(12)의 두 번째 노드(10B)로부터 데이터 라쿠나(22)의 데이터 유닛들에 대응하는 저장된 결과들을 요청한다. 노드(10A)는 데이터 라쿠나(22)가 복구된 후에 클라이언트의 요청에 응답할 수 있거나, 노드(10A)에서 데이터 라쿠나(22)가 복구되고 있는 동안 네트워크(12)의 또다른 노드로 클라이언트의 요청을 리다이렉트(redirect)할 수 있다.
데이터 라쿠나(data lacuna)를 검출할 때, 라쿠나 검출기(26)는 노드간 통신기(32)로 제공되기 위한 요청(30)을 만들어낸다. 요청(30)은 임의의 검출된 데이터 라쿠나들(22)의 사양을 포함한다. 노드간 통신기(32)는 그런 다음 두 번째 노드(10B)로 요청을 전송한다. 그 두 번째 노드(10B)는 중단의 결과로서 빠졌던 데이터 유닛들을 포함하는 저장된 데이터 유닛들의 세트를 가질 수 있거나 가질 수 없다. 두 번째 노드(10B)가 요구되는 데이터를 가진다면, 두 번째 노드(10B)는 첫 번째 노드(10A)로 그것을 전송한다. 그렇지 않다면, 그것은 다시 요구되는 데이터를 가질 수 있거나 가질 수 없는, 세번째 노드(10C)로 요청을 재전송한다. 이러한 절차는 결국 노드가 요구되는 데이터를 가질 때까지 계속된다.
일부 경우에, 두 번째 노드(10B)는 요구되는 데이터 모두가 아닌 일부를 가질 수 있다. 그 경우에, 두 번째 노드(10B)는 첫번째 노드(10A)로 가지는 것을 보내고, 나머지가 세 번째 노드(10C)에서 사용가능하다면 첫 번째 노드(10A)로 나머지를 전송하기 위한 명령들과 함께, 나머지를 위해 세 번째 노드(10C)로의 메시지를 만들어 낸다. 이 절차는 결국 모든 누락된 데이터가 획득될 때까지 계속된다.
원칙적으로 누락된 데이터가 노드들(10A-10Z)의 전체 세트에서 발견될 수 없는 것이 가능하고, 그 경우에 노드(10A)는 클라이언트(30)에게 에러를 보고할 것이다. 그러나, 이는 아주 낮은 확률 사건이어야 한다.
도 4를 참조하면, 그것은 데이터 피드를 관리하기 위한 절차의 예의 순서도(40)를 도시한다. 정상 동작(42) 동안 노드(10A)는 데이터 피드를 수신하고 클라이언트 요청들에 응답한다. 데이터 피드의 수신의 중단을 식별하는 것(44)에 응답하여, 노드(10A)는 라쿠나 복구 절차를 수행한다. 라쿠나 검출기(26)는 데이터의 중단 전에 수신된 마지막 데이터 유닛 X m 을 식별함으로써 데이터 라쿠나(data lacuna)(22)의 범위를 결정한다(46). 그런 다음 그것은 데이터 획득의 재개 후 수신된 첫 번째 데이터 유닛 X m +k 을 식별한다. 라쿠나 검출기(26)는 그런 다음 데이터 유닛들 X m 내지 X m+k-1 을 식별하여 누락된 데이터에 대한 요청을 만들어 내고 그것을 두 번째 노드(10B)로 전송(48)하기 위해 노드간 통신기(32)로 요청을 제공한다. 일부 실시 예에서, 각각의 노드는 다른 노드들의 도움없이 데이터 피드의 수신의 중단을 식별할(44) 책임이 있다. 다른 실시 예에서, 데이터 피드의 수신의 중단을 식별하는 단계(44)는 네트워크의 다른 노드들에 의해 용이하게 될 수 있다. 예를 들어, 마스터 노드는 주기적으로 데이터 스토리지 디바이스들을 검사하도록 그리고 그것들의 저장된 데이터 유닛들의 각각의 세트들에서 데이터 라쿠나들을 검출할 수 있도록 구성될 수 있다. 마스터 노드는 그런 다음 중단의 식별 및/또는 데이터 라쿠나들(data lacunas)의 식별을 지원하기 위해 노드들과 통신할 수 있다. 노드들이 서버들이라면, 마스터 노드는 예를 들어, 서버들의 그룹에서 실행되는 분산 컨센서스 알고리즘(distributed consensus algorithm)에서 리더로 선출된 서버일 수 있다.
결국, 첫 번째 노드(10A)는 두 번째 노드(10B) 또는 또 다른 노드(10Z)(예를 들어, 두 번째 노드(10B)가 데이터 유닛들 중 임의의 것을 누락하고 있다면)로부터 누락된 데이터의 일부 또는 모두를 수신한다. 노드(10A)는 데이터 라쿠나(data lacuna) (22)를 복구(50)하기 위해 누락된 데이터를 사용한다. 누락된 데이터는 누락된 데이터를 데이터 라쿠나(22)에 기록하는 라쿠나 복구 유닛(36)에 제공되어서 데이터 라쿠나(22)의 범위를 감소시키거나 일부 경우에는, 제공되는 누락된 데이터의 범위에 따라, 데이터 라쿠나(22)를 전부 제거한다. 노드(10A)는 그런 다음 정상 동작(42)으로 복귀한다.
도 5는 데이터 라쿠나(data lacuna)가 식별되고 복구되는 예시 시나리오에서 노드(10A)와 노드(10B) 사이의 통신과 동작들의 타임라인들을 도시한다. 각각의 노드는 타임라인들의 상단에서 하단까지 시간이 증가함에 따라 데이터 피드를 수신한다. 노드(10A)는 데이터 유닛들의 수신이 재개된 후에 데이터 피드에서 중단을 식별한다(500). 노드(10A)는 데이터 라쿠나(504)의 범위를 결정한다(502). 노드(10A)는 요청을 전송하고(506), 잠시 후에 데이터 라쿠나(504)가 노드(10A)에 의해 수신된 데이터 유닛들에서 발생하지 않았다면 수신되고 처리되었을 데이터 유닛들(510)의 범위에 대응하는 저장된 결과들을 노드(10B)로부터 수신한다.
상기 데이터 피드 관리 접근법은 예를 들어, 적절한 소프트웨어 명령들을 실행하는 프로그래머블 컴퓨팅 시스템을 사용하여 구현될 수 있거나 필드-프로그래머블 게이트 어레이(FPGA)같은 적절한 하드웨어 또는 일부 하이브리드 형태로 구현될 수 있다. 예를 들어, 프로그램된 접근법에서 상기 소프트웨어는 하나 이상의 프로그램된 또는 프로그래머블 컴퓨팅 시스템(분산, 클라이언트/서버, 또는 그리드 같은 다양한 아키텍처가 될 수 있음)에서 실행되는 하나 이상의 컴퓨터 프로그램들의 절차를 포함할 수 있고 각각은 적어도 하나의 프로세서, 적어도 하나의 데이터 스토리지 시스템(휘발성 및/또는 비 휘발성 메모리 및/또는 저장 요소들을 포함), 적어도 하나의 사용자 인터페이스(적어도 하나의 입력 디바이스 또는 포트를 사용하여 입력을 수신하기 위한, 그리고 적어도 하나의 출력 디바이스 또는 포트를 사용하여 출력을 제공하기 위한)를 포함한다. 상기 소프트웨어는 예를 들어, 데이터플로우 그래프의 디자인, 구성, 및 실행과 관련된 서비스들을 제공하는 더 큰 프로그램의 하나 이상의 모듈들을 포함할 수 있다. 상기 프로그램의 모듈들(예를 들어, 데이터플로우 그래프의 요소들)은 데이터 저장소에 저장된 데이터 모델을 준수하는 데이터 구조들 또는 다른 조직화된 데이터로 구현될 수 있다.
상기 소프트웨어는 (예를 들어 범용 또는 특별 목적 컴퓨팅 시스템 또는 디바이스에 의해 판독 가능한) CD-ROM 또는 다른 컴퓨터 판독 가능 매체 같은 유형의, 비 일시적인 매체상에 제공될 수 있거나 또는 그것이 실행되는 컴퓨팅 시스템의 유형의, 비 일시적 매체에 네트워크 통신 매체를 통해 (예를 들어, 전파 신호에 인코딩되어) 전달될 수 있다. 상기 처리의 일부 또는 전부는 특별 목적 컴퓨터 상에서 또는 코프로세서(coprocessors) 또는 필드 프로그래머블 게이트 어레이(field-programmable gate array, FPGA), 또는 전용, 주문형 반도체(dedicated, application-specific integrated circuit, ASIC) 같은 특별 목적 하드웨어를 사용하여 수행될 수 있다. 상기 처리는 소프트웨어에 의해 명시된 계산의 다른 부분들이 다른 컴퓨팅 요소들에 의해 수행되는 분산 방식으로 실행될 수 있다. 각각의 이러한 컴퓨터 프로그램은 저장 장치 매체가 본원에서 기술된 처리를 수행하도록 컴퓨터에 의해 판독될 때 컴퓨터를 구성하고 작동하기 위해, 바람직하게는 범용 또는 특별 목적 프로그래머블 컴퓨터에 의해 액세스 가능한 저장 장치의 컴퓨터 판독 가능 저장 매체(예를 들어, 솔리드 스테이트 메모리(solid state memory) 또는 매체, 또는 자기 또는 광 매체)에 저장되거나 다운로드된다. 본 발명 시스템은 또한 컴퓨터 프로그램으로 구성되는, 유형의, 비 일시적 매체로서 실현될 수 있고, 그렇게 구성된 매체는 컴퓨터가 본원에서 기술된 처리 단계들 중 하나 이상을 수행하도록 구체적이고 미리 정의된 방식으로 동작하게 한다.
본 발명의 다수의 실시 예가 기술되었다. 그럼에도 불구하고, 전술한 설명은 예시를 위한 것이며 다음의 청구항들의 범위에 의해 정의되는 본 발명의 범위를 한정하는 것이 아닌 것으로 이해되어야 한다. 따라서 다른 실시 예들이 또한 다음 청구항들의 범위 내에 있다. 예를 들어, 다양한 변형이 본 발명의 범위를 벗어남 없이 만들어질 수 있다. 부가적으로, 전술된 단계들의 일부는 순서 독립적이므로 기술된 것과 다른 순서로 수행될 수 있다.

Claims (17)

  1. 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법에 있어서, 상기 방법은:
    네트워크의 제1 노드에서, 복수의 데이터 유닛들을 포함하는 상기 데이터 피드의 적어도 일부를 수신하고, 상기 제1 노드에서 상기 데이터 피드로부터 제1 데이터 유닛에 기초하여 제1 결과를 저장하는 단계;
    상기 네트워크의 제2 노드에서, 상기 데이터 피드의 적어도 일부를 수신하고, 상기 제2 노드에서 상기 데이터 피드로부터 데이터에 기초하여 결과들을 저장하는 단계 - 상기 결과들은 상기 제1 결과, 제2 결과, 및 제3 결과를 포함하고, 상기 제2 결과는 제2 데이터 유닛에 기초하며, 상기 제3 결과는 제3 데이터 유닛에 기초하고, 상기 제2 데이터 유닛은 상기 제1 데이터 유닛 이후 및 상기 제3 데이터 유닛 이전에 수신됨 -;
    상기 제1 노드에서 상기 데이터 피드의 수신의 중단을 식별하는 단계;
    상기 중단에 앞서 상기 제1 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 제1 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는, 상기 중단의 결과로 상기 제1 노드에 의해 수신되지 않은 생략된 데이터 유닛들에 해당하는, 데이터 라쿠나(data lacuna)의 범위를 결정하는 단계; 및
    상기 제2 노드에 의해 저장된 상기 결과들의 적어도 일부에 대해 상기 제1 노드로부터 요청을 전송하는 단계 - 상기 제2 노드에 의해 저장된 상기 결과들의 상기 적어도 일부는 상기 데이터 라쿠나에 대응함 - 를 포함하고,
    상기 데이터 라쿠나의 범위를 결정하는 단계는
    상기 제1 노드에서, 상기 중단 후에, 상기 제3 데이터 유닛을 수신하는 단계,
    상기 제1 노드에서, 상기 제1 데이터 유닛이 상기 중단에 앞서 수신된 마지막 데이터 유닛인 것을 식별하는 단계, 및
    상기 제1 노드에서, 상기 제1 데이터 유닛과 상기 제3 데이터 유닛 사이에 걸치는 데이터 라쿠나의 존재를 식별하고, 상기 제1 데이터 유닛 및 상기 제3 데이터 유닛과 관련된 각각의 일련 번호 또는 타임 스탬프에 기초하여 상기 데이터 라쿠나의 범위를 결정하는 단계를 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  2. 제1항에 있어서,
    상기 중단을 식별하기에 앞서, 상기 제1 노드에서 상기 데이터 피드의 데이터 유닛들을 처리하여 상기 제1 노드에서 상기 데이터 유닛들에 대응하는 결과들을 저장하는 단계, 및 상기 제2 노드에서 상기 데이터 피드의 상기 데이터 유닛들을 처리하여 상기 제2 노드에서 상기 데이터 유닛들에 대응하는 결과들을 저장하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  3. 제2항에 있어서,
    상기 데이터 유닛을 처리하여 상기 데이터 유닛에 대응하는 결과를 저장하는 단계는 상기 데이터 유닛의 표현을 내구성있게 저장하는 단계를 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  4. 제3항에 있어서,
    상기 제1 데이터 유닛의 표현은 상기 제1 데이터 유닛의 정확한 복사본인, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  5. 제3항에 있어서,
    상기 제1 데이터 유닛의 표현은 상기 제1 데이터 유닛의 압축된 표현인, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  6. 제1항에 있어서,
    상기 제1 노드에서, 상기 데이터 라쿠나에 대응하는 상기 제2 노드에 의해 저장된 상기 결과들을 수신하는 단계, 및 상기 제1 노드에서 상기 결과들을 저장하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  7. 삭제
  8. 제1항에 있어서,
    상기 제1 노드에서, 상기 데이터 라쿠나에 대응하는 상기 제2 노드에 의해 저장된 상기 결과들을 수신하는 단계, 및 상기 제1 노드에서, 상기 제2 결과를 포함하는, 상기 결과들을 저장하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  9. 제1항에 있어서,
    상기 제1 노드로부터의 요청을 전송하기에 앞서, 복수의 노드들 - 전부가 상기 데이터 피드로 스트리밍되고 있음 - 중으로부터 상기 제2 노드를 선택하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  10. 제1항에 있어서,
    상기 제1 노드와 통신하는 클라이언트로부터의 요청을 수신하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  11. 제10항에 있어서,
    상기 클라이언트로부터의 요청은 상기 요청과 관련된 적어도 하나의 데이터 유닛들을 식별하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  12. 제11항에 있어서,
    상기 클라이언트로부터의 요청에 의해 식별되는 상기 데이터 유닛들 중 적어도 하나가 상기 데이터 라쿠나에 있다는 것을 결정하는 것에 응답하여 상기 제2 노드에 의해 저장된 결과들에 대해 상기 제1 노드로부터의 요청을 전송하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  13. 제10항에 있어서,
    상기 제2 노드에 의해 저장된 상기 결과들을 수신한 후에, 상기 클라이언트로부터의 요청에 응답하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  14. 제10항에 있어서,
    상기 요청을 상기 제2 노드로 리다이렉트(redirect)하기 위해 상기 클라이언트로부터의 요청에 응답하는 단계를 더 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 방법.
  15. 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장된 소프트웨어에 있어서, 상기 소프트웨어는:
    네트워크의 제1 노드가 복수의 데이터 유닛들을 포함하는 상기 데이터 피드의 적어도 일부를 수신하고, 상기 제1 노드에서 상기 데이터 피드로부터 제1 데이터 유닛에 기초하여 제1 결과를 저장하게 하고;
    상기 네트워크의 제2 노드가 상기 데이터 피드를 수신하고, 상기 제2 노드에서 상기 데이터 피드로부터 데이터에 기초하여 결과들을 저장하게 하고 - 상기 결과들은 상기 제1 결과, 제2 결과, 및 제3 결과를 포함하고, 상기 제2 결과는 제2 데이터 유닛에 기초하며, 상기 제3 결과는 제3 데이터 유닛에 기초하고, 상기 제2 데이터 유닛은 상기 제1 데이터 유닛 이후 및 상기 제3 데이터 유닛 이전에 수신됨 -;
    상기 제1 노드가 상기 데이터 피드의 수신의 중단을 식별하게 하고;
    상기 제1 노드가 상기 중단에 앞서 상기 제1 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 제1 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는, 상기 중단의 결과로 상기 제1 노드에 의해 수신되지 않은 생략된 데이터 유닛들에 해당하는, 데이터 라쿠나(data lacuna)의 범위를 결정하게 하고; 그리고
    상기 제1 노드가 상기 데이터 피드의 적어도 일부를 또한 수신하는 상기 제2 노드로, 상기 제2 노드에 의해 저장된 상기 결과들의 적어도 일부에 대한 요청을 전송 - 상기 제2 노드에 의해 저장된 상기 결과들의 적어도 일부는 상기 데이터 라쿠나에 대응함 - 하게 하기 위한 명령들을 포함하고,
    상기 데이터 라쿠나의 범위를 결정하게 하는 것은 상기 제1 노드가:
    상기 중단 후에, 상기 제3 데이터 유닛을 수신하게 하고,
    상기 제1 데이터 유닛이 상기 중단에 앞서 수신된 마지막 데이터 유닛인 것을 식별하게 하고, 및
    상기 제1 데이터 유닛과 상기 제3 데이터 유닛 사이에 걸치는 데이터 라쿠나의 존재를 식별하고, 상기 제1 데이터 유닛 및 상기 제3 데이터 유닛과 관련된 각각의 일련 번호 또는 타임 스탬프에 기초하여 상기 데이터 라쿠나의 범위를 결정하게 하는 것을 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위해, 컴퓨터-판독가능 매체 상에 비-일시적 형태로 저장된 소프트웨어.
  16. 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 시스템에 있어서, 상기 시스템은:
    적어도 제1 노드와 제2 노드 - 복수의 데이터 유닛들을 포함하는 상기 데이터 피드의 적어도 일부를 수신하고, 상기 제1 노드에서 상기 데이터 피드로부터 제1 데이터 유닛에 기초하여 제1 결과를 저장하도록 구성되고, 상기 결과들은 상기 제1 결과, 제2 결과, 및 제3 결과를 포함하고, 상기 제2 결과는 제2 데이터 유닛에 기초하며, 상기 제3 결과는 제3 데이터 유닛에 기초하고, 상기 제2 데이터 유닛은 상기 제1 데이터 유닛 이후 및 상기 제3 데이터 유닛 이전에 수신되는, 네트워크 인터페이스, 및 상기 데이터 피드를 처리하도록 구성된 처리 회로를 각각 포함 - 와 함께, 복수의 노드들을 포함하고, 상기 처리는:
    상기 데이터 피드의 수신의 중단을 식별하는 것,
    상기 중단에 앞서 상기 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는, 상기 중단의 결과로 상기 제1 노드에 의해 수신되지 않은 생략된 데이터 유닛들에 해당하는, 데이터 라쿠나(data lacuna)의 범위를 결정하는 것, 및
    상기 제2 노드에 의해 저장된 결과들의 적어도 일부 - 상기 결과들의 상기 적어도 일부는 상기 데이터 라쿠나에 대응하여 상기 제2 노드에 의해 저장됨 - 에 대해 상기 제2 노드로 요청을 전송하는 것을 포함하고,
    상기 데이터 라쿠나의 범위를 결정하는 것은
    상기 제1 노드에서, 상기 중단 후에, 상기 제3 데이터 유닛을 수신하는 것,
    상기 제1 노드에서, 상기 제1 데이터 유닛이 상기 중단에 앞서 수신된 마지막 데이터 유닛인 것을 식별하는 것, 및
    상기 제1 노드에서, 상기 제1 데이터 유닛과 상기 제3 데이터 유닛 사이에 걸치는 데이터 라쿠나의 존재를 식별하고, 상기 제1 데이터 유닛 및 상기 제3 데이터 유닛과 관련된 각각의 일련 번호 또는 타임 스탬프에 기초하여 상기 데이터 라쿠나의 범위를 결정하는 것을 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 시스템.
  17. 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 시스템에 있어서, 상기 시스템은:
    적어도 제1 노드와 제2 노드 - 복수의 데이터 유닛들을 포함하는 상기 데이터 피드의 적어도 일부를 수신하기 위한 수단, 상기 제1 노드에서 상기 데이터 피드로부터 제1 데이터 유닛에 기초하여 제1 결과를 저장하기 위한 수단, 상기 제2 노드에서 상기 데이터 피드로부터 데이터에 기초하여 결과들을 저장하기 위한 수단, 및 상기 데이터 피드를 처리하기 위한 수단을 각각 포하고, 상기 결과들은 상기 제1 결과, 제2 결과, 및 제3 결과를 포함하고, 상기 제2 결과는 제2 데이터 유닛에 기초하며, 상기 제3 결과는 제3 데이터 유닛에 기초하고, 상기 제2 데이터 유닛은 상기 제1 데이터 유닛 이후 및 상기 제3 데이터 유닛 이전에 수신됨 - 와 함께, 복수의 노드들을 포함하고, 상기 처리는:
    상기 데이터 피드의 수신의 중단을 식별하는 것,
    상기 중단에 앞서 상기 노드에 의해 수신된 마지막 데이터 유닛과 상기 중단 후에 상기 노드에 의해 수신된 첫 번째 데이터 유닛 사이에 걸치는, 상기 중단의 결과로 상기 제1 노드에 의해 수신되지 않은 생략된 데이터 유닛들에 해당하는, 데이터 라쿠나(data lacuna)의 범위를 결정하는 것, 및
    상기 제2 노드에 의해 저장된 결과들의 적어도 일부 - 상기 결과들의 상기 적어도 일부는 상기 데이터 라쿠나에 대응하여 상기 제2 노드에 의해 저장됨 - 에 대해 상기 제2 노드로 요청을 전송하는 것을 포함하고,
    상기 데이터 라쿠나의 범위를 결정하는 것은
    상기 제1 노드에서, 상기 중단 후에, 상기 제3 데이터 유닛을 수신하는 것,
    상기 제1 노드에서, 상기 제1 데이터 유닛이 상기 중단에 앞서 수신된 마지막 데이터 유닛인 것을 식별하는 것, 및
    상기 제1 노드에서, 상기 제1 데이터 유닛과 상기 제3 데이터 유닛 사이에 걸치는 데이터 라쿠나의 존재를 식별하고, 상기 제1 데이터 유닛 및 상기 제3 데이터 유닛과 관련된 각각의 일련 번호 또는 타임 스탬프에 기초하여 상기 데이터 라쿠나의 범위를 결정하는 것을 포함하는, 데이터 피드의 소스에 의한 재전송을 요구하지 않고 상기 데이터 피드로부터 브로드캐스트된 데이터 유닛들을 관리하기 위한 시스템.
KR1020167005848A 2013-08-07 2014-08-07 데이터 피드 관리 KR102225815B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361863062P 2013-08-07 2013-08-07
US61/863,062 2013-08-07
PCT/US2014/050038 WO2015021220A1 (en) 2013-08-07 2014-08-07 Managing data feeds

Publications (2)

Publication Number Publication Date
KR20160042933A KR20160042933A (ko) 2016-04-20
KR102225815B1 true KR102225815B1 (ko) 2021-03-09

Family

ID=51493022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167005848A KR102225815B1 (ko) 2013-08-07 2014-08-07 데이터 피드 관리

Country Status (10)

Country Link
US (1) US9413542B2 (ko)
EP (1) EP3031172B1 (ko)
JP (1) JP6434021B2 (ko)
KR (1) KR102225815B1 (ko)
CN (1) CN105556898B (ko)
AU (1) AU2014305966B2 (ko)
CA (1) CA2920430C (ko)
HK (1) HK1224106A1 (ko)
SG (1) SG11201600888XA (ko)
WO (1) WO2015021220A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PT1075277E (pt) 1998-05-08 2009-05-08 Univ California Métodos para detectar e inibir a angiogénese
JP6021120B2 (ja) * 2014-09-29 2016-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データをストリーム処理する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
WO2016194235A1 (ja) * 2015-06-05 2016-12-08 富士通株式会社 観測システムおよび観測方法
CN111917864B (zh) * 2017-02-22 2023-08-22 创新先进技术有限公司 一种业务校验的方法及装置
JP6911546B2 (ja) 2017-06-06 2021-07-28 栗田工業株式会社 希薄薬液製造装置
JP6835126B2 (ja) 2019-03-28 2021-02-24 栗田工業株式会社 希薄薬液製造装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101158020B1 (ko) * 2010-12-29 2012-06-25 전자부품연구원 중계 전송 시스템 및 방법
JP2012151622A (ja) * 2011-01-18 2012-08-09 Sony Corp 受信端末、パケットデータ受信方法、送信端末、送受信システム、中継端末およびパケットデータの中継方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7764683B2 (en) * 2005-12-16 2010-07-27 Oracle America, Inc. Reliable multicast operating system (OS) provisioning
US20070300234A1 (en) 2006-06-27 2007-12-27 Eliezer Dekel Selecting application messages from an active feed adapter and a backup feed adapter for application-level data processing in a high speed, low latency data communications environment
CN1878074A (zh) * 2006-07-10 2006-12-13 武汉理工大学 一种基于广播中继的Ad hoc网络多播路由的建立方法
US7680063B2 (en) * 2006-11-10 2010-03-16 Motorola, Inc. Method and apparatus for synchronizing transmissions from multiple transmitters
CN103152650B (zh) * 2007-03-30 2016-12-28 汤姆森许可贸易公司 用于移动tv的鲁棒文件传播
US20080253369A1 (en) * 2007-04-16 2008-10-16 Cisco Technology, Inc. Monitoring and correcting upstream packet loss
US8320302B2 (en) * 2007-04-20 2012-11-27 Elster Electricity, Llc Over the air microcontroller flash memory updates
KR101420099B1 (ko) * 2007-09-21 2014-07-16 삼성전자주식회사 방송 컨텐트 재생 방법 및 장치와 방송 컨텐트 제공 방법및 장치
CN101539873B (zh) 2009-04-15 2011-02-09 成都市华为赛门铁克科技有限公司 数据恢复的方法、数据节点及分布式文件***
EP2309668A1 (en) 2009-10-09 2011-04-13 Thomson Licensing A digital receiver and corresponding digital transmission system server

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101158020B1 (ko) * 2010-12-29 2012-06-25 전자부품연구원 중계 전송 시스템 및 방법
JP2012151622A (ja) * 2011-01-18 2012-08-09 Sony Corp 受信端末、パケットデータ受信方法、送信端末、送受信システム、中継端末およびパケットデータの中継方法

Also Published As

Publication number Publication date
US20150043579A1 (en) 2015-02-12
KR20160042933A (ko) 2016-04-20
EP3031172B1 (en) 2017-06-28
EP3031172A1 (en) 2016-06-15
WO2015021220A1 (en) 2015-02-12
CN105556898A (zh) 2016-05-04
JP2016527846A (ja) 2016-09-08
AU2014305966B2 (en) 2016-12-01
CA2920430C (en) 2022-05-31
CA2920430A1 (en) 2015-02-12
US9413542B2 (en) 2016-08-09
AU2014305966A1 (en) 2016-03-17
JP6434021B2 (ja) 2018-12-05
SG11201600888XA (en) 2016-03-30
HK1224106A1 (zh) 2017-08-11
CN105556898B (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
KR102225815B1 (ko) 데이터 피드 관리
US10764369B2 (en) Data storage method and server applicable to distributed server cluster
KR20190099222A (ko) 블록체인 기반 합의 방법 및 디바이스
US11218541B2 (en) Data storage method, storage server, and storage medium and system
CN109308227B (zh) 故障检测控制方法及相关设备
CN102045192A (zh) 网络结构的假定所用的装置及***
CN104202387A (zh) 一种元数据恢复方法及相关装置
CN105511987A (zh) 一种强一致性且高可用的分布式任务管理***
US10802896B2 (en) Rest gateway for messaging
CN108418859B (zh) 写数据的方法和装置
WO2017071384A1 (zh) 报文处理的方法及装置
US8789072B2 (en) Distributed multi-system management
EP3660679B1 (en) Data backup method, device and system
JP6364727B2 (ja) 情報処理システム、分散処理方法、及び、プログラム
CN110620722A (zh) 一种订单处理的方法和装置
CN113391759B (zh) 一种通信方法和设备
CN115473858A (zh) 数据传输方法和流式数据传输***
CN113111074A (zh) 基于区块链的交互数据监测方法及装置
CN113032477A (zh) 基于gtid的长距离数据同步方法、装置及计算设备
EP2739010B1 (en) Method for improving reliability of distributed computer systems based on service-oriented architecture
US11816095B2 (en) Metrics and events infrastructure
CN114928654A (zh) 节点状态监测方法、装置、设备、存储介质和程序产品
CN117176815A (zh) 数据发送方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant