JP2016515228A - 低レイテンシデータアクセス用のデータストリーム分割 - Google Patents

低レイテンシデータアクセス用のデータストリーム分割 Download PDF

Info

Publication number
JP2016515228A
JP2016515228A JP2015556052A JP2015556052A JP2016515228A JP 2016515228 A JP2016515228 A JP 2016515228A JP 2015556052 A JP2015556052 A JP 2015556052A JP 2015556052 A JP2015556052 A JP 2015556052A JP 2016515228 A JP2016515228 A JP 2016515228A
Authority
JP
Japan
Prior art keywords
log data
data
server
total number
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015556052A
Other languages
English (en)
Other versions
JP2016515228A5 (ja
JP6258975B2 (ja
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 JP2016515228A publication Critical patent/JP2016515228A/ja
Publication of JP2016515228A5 publication Critical patent/JP2016515228A5/ja
Application granted granted Critical
Publication of JP6258975B2 publication Critical patent/JP6258975B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

データストリームを分割することによってログデータ処理を促進し加速するための技術が、本明細書で開示される。フロントエンドクラスタは、大量のログデータをリアルタイムで生成し、ログデータを集約クラスタに転送する。集約クラスタは、異なるフロントエンドサーバ及びクラスタからの着信ログデータストリームを集約するように設計される。集約クラスタは更に、データストリームが受信アプリケーションに並列に送信されるように、ログデータを複数のデータストリームに分割する。一実施形態において、ログデータは、ログデータが分割データストリームに均等に分配されることを保証するように、ランダムに分割される。別の実施形態において、分割データストリームを受信するアプリケーションは、どのようにログデータを分割するかを決定する。

Description

本発明は、概して、データ取り込み及び処理システムに関し、特に、データを多数のデータストリームに分割することが可能なデータ取り込み及び処理システムに関する。
コンピュータ及びネットワーク技術の発達は、大量のデータ記憶を必要とするアプリケーションをもたらした。例えば、何千万ものユーザが、ウェブページを作成し、ソーシャルメディアウェブサイトに画像及びテキストをアップロードすることができる。その結果、ソーシャルメディアウェブサイトは、毎日大量のデータを蓄積し、従って、データを記憶し処理するために非常にスケーラブルなシステムを必要とする可能性がある。かかる大量のデータ記憶を容易にするための様々なツールが存在する。
これらのソーシャルメディアウェブサイトのフロントエンドクラスタは、ユーザ活動を監視し、且つソーシャルメディアユーザの活動に基づいてログデータを作成する。フロントエンドクラスタは、集中型記憶フィラー又はデータウェアハウスにログデータを送信する。集中型記憶フィラー又はデータウェアハウスは、受信したログデータを編成し、データ処理アプリケーションからの要求に応える。大量のログデータを収容するために、大規模データウェアハウスが、ログデータを記憶し、且つデータ処理アプリケーションからのデータ集約的な照会に応えるために、一般に用いられる。
アプリケーションが、何千ものコンピュータ(ノードとも呼ばれる)のクラスタ及びペタバイトのデータと対話できるようにすることによって、大規模なデータ集約型分散アプリケーションを支援するフレームワークが存在する。例えば、ハドゥープ(Hadoop)と呼ばれるフレームワークが、ハドゥープクラスタにおけるデータノード(子ノードとも呼ばれる)間で大量のデータ量を分配するためにハドゥープ分散ファイルシステム(HDFS:Hadoop Distributed File System)と呼ばれる、分配され且つスケーラブルでポータブルなファイルシステムを利用する。データノードの停電又はネットワーク障害(スイッチ故障を含む)の悪影響を低減するために、HDFSにおけるデータは、典型的には、異なるデータノードに複写される。
オープンソースデータウェアハウスシステムであるハイブ(Hive)は、ハドゥープクラスタ上を走るために開発されている。ハイブは、ハイブQLと呼ばれる、スクリプト照会言語(SQL:scripted query language)のような宣言型言語で表現されたデータ照会を支援する。次に、ハイブシステムは、ハイブQLで表現された照会を、有向非巡回グラフの数学的形式において、ハドゥープクラスタ上で実行できるマップリデュースジョブにコンパイルする。ハイブQL言語は、基本型、アレイ及びマップなどのコレクション、並びに入れ子にした型合成を含むテーブルを支援する型システムを含む。更に、ハイブシステムは、データ探索及び照会の最適化に有用な、スキーム及び統計を含むハイブメタストアと呼ばれるシステムカタログを含む。
ハドゥープクラスタと結合されると、ハイブシステムは、ソーシャルネットワーキングシステム用の大量のデータを記憶し分析することができる。例えば、ハイブシステムは、ユーザがソーシャルネットワーキングシステムを追い続けるという話をランク付けするために、ユーザ間の接続程度を分析することができる。ハイブシステムは、アプリケーション開発者、ページ管理者、及び広告主が、開発及びビジネスの決定を行うのを助けるために、ソーシャルネットワーキングシステムのサービスがどのように利用されているかに対する洞察力を得るように活動ログを分析することができる。ハイブシステムは、ソーシャルネットワーキングシステムのユーザに示される広告を最適化するために、複雑なデータマイニングプログラムを実行することができる。ハイブシステム、更に、ソーシャルネットワーキングシステムのスパム及び乱用を識別するために、使用ログを分析することができる。
ハイブシステムは、プログラミング能力のない人々がハイブクエリをオーサリングして実行するための、複雑なデータパイプラインをオーサリングし、デバッギングし、スケジューリングするための、且つハイブシステム、並びにMySQL及びオラクルなどの他の関係データベースに記憶されたデータ基づいて報告を作成するためのウェブベースのツールを含む。
しかしながら、フロントエンドクラスタは、リアルタイムではなく周期的に、取り込んだログデータを集中型データウェアハウスに送信する。更に、データウェアハウスが、これらのログデータに対するデータ照会に応答できる前に、データウェアハウスが、受信したログデータを編成するには時間がかかる。従って、データウェアハウスにおけるログデータは、ログデータが取り込まれてから或る期間後に利用できるだけである。その期間は、1時間又は1日にさえなる可能性がある。データ処理及び消費アプリケーションは、ログデータにアクセスできるまでに著しい待ち時間(レイテンシ)がかかるだけである。
更に、集中型データウェアハウスは、連続的にログデータを受信するために、フロントエンドサーバとの接続を維持する必要がある。現在のソーシャルネットワークにおいて、フロントエンドサーバの数は、数千又はそれを超える可能性がある。データウェアハウスは、接続を維持する著しい負担を担う。接続を維持するかかる負担は、データウェアハウスの全体的性能に影響する。
本明細書で導入される技術は、低レイテンシでのログデータアクセス及び処理の利点を提供する。特に、本明細書で導入される技術は、大量のログデータをリアルタイムで生成し、且つログデータを集約クラスタに転送するフロントエンドクラスタを含む。集約クラスタは、異なるフロントエンドサーバ及びクラスタからの着信ログデータストリームを集約するように設計される。集約クラスタは、更に、データストリームが受信アプリケーションに並列に送信されるように、ログデータを複数のデータストリームに分割する。一実施形態において、集約クラスタは、ログデータが、分割データストリームに均等に分配されることを保証するように、ログデータをランダムに分割する。別の実施形態において、分割データストリームを受信するアプリケーションは、どのようにログデータを分割するかを決定する。
本明細書で導入される技術によれば、データストリームを分割するための方法が提供される。方法は、リアルタイムのユーザ活動に基づくログデータを生成すること、ログデータを集約サーバに送信すること、ログデータを集約サーバにおいて集約すること、ログデータを複数のログデータストリームに分割すること、およびログデータストリームを少なくとも1つのバックエンドサーバに並列に供給することを含む。
本明細書で導入される技術によれば、データストリームを分割するためのコンピュータ実行システムもまた提供される。コンピュータ実行システムは、複数のフロントエンドサーバ及び少なくとも1つの集約サーバを含む。フロントエンドサーバは、リアルタイムのユーザ活動に基づくログデータを生成するように構成される。集約サーバは、フロントエンドサーバの少なくとも幾つかから受信されたログデータを集約するように構成される。集約サーバは、ネットワークを介して、フロントエンドサーバの少なくとも幾つかと接続される。集約サーバは、ログデータをステージングするように構成されたデータステージングエリアを含む。集約サーバは、1つ又は複数のバックエンドサーバがログデータストリームを並列に検索できるように、ログデータを複数のログデータストリームに分割するように更に構成される。
本明細書で導入される技術によれば、ログデータをステージングするための集約サーバもまた提供される。集約サーバは、プロセッサ、ネットワークインターフェース、データ記憶装置及びメモリを含む。ネットワークインターフェースはプロセッサに結合され、このネットワークインターフェースを介して、集約サーバは複数のフロントエンドサーバと通信することができる。フロントエンドサーバは、リアルタイムのユーザ活動に基づくログデータを生成する。データ記憶装置は、データステージングエリアを含む。メモリは、プロセッサによって実行された場合に以下を含む処理、すなわち、フロントエンドサーバから、フロントエンドサーバによって生成されたリアルタイムのユーザ活動に基づくログデータを受信すること、ログデータを集約すること、データステージングエリアにおいてログデータをステージングすること、1つ又は複数のバックエンドサーバがログデータストリームを並列に検索できるようにログデータを複数のログデータストリームに分割することを含む処理を集約サーバに実行させる命令を記憶する。
本発明の実施形態において、特に、ソーシャルネットワーキングシステム若しくはその一部の、第三者システムの、又はクライアントシステムの無許可の使用を防ぐために、ソーシャルネットワーキングシステムの、第三者システムの、又はクライアントシステムのユーザを認証するための方法が提供される。
本発明の実施形態において、方法は、
複数のフロントエンドサーバにおいて、リアルタイムのユーザ活動に基づくログデータを生成すること、
ログデータを集約サーバに送信すること、
集約サーバにおいてログデータを集約すること、
ログデータを複数のログデータストリームに分割すること、
ログデータストリームを少なくとも1つのバックエンドサーバに並列に供給すること、
を含む。
上記分割するステップは、
ログデータが複数のログデータストリームに均等に分配されるようにログデータをランダムに分割することを含むことができる。
上記方法は、
データステージングエリアにおいてログデータをステージングすることを更に含むことができる。
上記方法は、
ログデータをどのように複数のログデータストリームに分割するかに関しての命令を、バックエンドサーバから受信することを更に含むことができる。
ログデータは複数のログデータエントリを含むことができ、各ログデータエントリはアプリケーション識別及びカテゴリフィールドを含むことができる。
上記方法は、
ログデータの各エントリ用に、バケットの合計数を法(modulo)として、アプリケーション識別及びカテゴリフィールドのハッシュ関数によってバケット番号を計算することであって、バケットの合計数が複数のログデータストリームの合計数であることと、
ログデータのそのエントリを、バケット番号によって識別されたログデータストリームに割り当てること、
を更に含むことができる。
カテゴリフィールドは、ログデータエントリの意図された宛先の高レベルの記述を含むことができる。
アプリケーション識別は、ログデータエントリを処理するためのデータ消費アプリケーションを識別することができる。
ログデータは、複数のログデータエントリを含むことができる。
上記方法は、
各ログデータエントリ用に、1からバケットの合計数までの整数をランダムに生成することであって、バケットの合計数が複数のログデータストリームの合計数であることと、
そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てること、
を更に含むことができる。
バケットの合計数は、ログデータストリームを受信するために利用可能なバックエンドサーバの数、及び各バックエンドサーバが扱うことができる接続部の数によって決定することができる。
バケットの合計数は、少なくとも1つのバックエンドサーバ上を走るデータ消費アプリケーションによって指示することができる。
バックエンドサーバがログデータストリームを受信して処理する場合に、バックエンドサーバには等しく負荷をかけることができる。
上記方法は、
ログデータのエントリの接頭部を検査して、エントリが割り当てられるログデータストリームを決定することを更に含むことができる。
上記方法は、
ログデータをデータウェアハウスに送信すること、
データウェアハウスが、処理したログデータに基づいてデータ照会に応答することができるように、データウェアハウスにおいてログデータを処理すること、
を更に含むことができる。
本発明の実施形態において、コンピュータ実行システムは、
リアルタイムのユーザ活動に基づいてログデータを生成するように構成された複数のフロントエンドサーバと、
フロントエンドサーバの少なくとも幾つかから受信されたログデータを集約するように構成された少なくとも1つの集約サーバであって、ネットワークを介してフロントエンドサーバの少なくとも幾つかと接続される集約サーバと、
を含み、
集約サーバは、ログデータをステージングするように構成されたデータステージングエリアを含み、集約サーバは、1つ又は複数のバックエンドサーバが、ログデータストリームを並列に検索できるように、ログデータを複数のログデータストリームに分割するように構成される。
ログデータは複数のログデータエントリを含むことができ、各ログデータエントリはアプリケーション識別及びカテゴリフィールドを含むことができ、集約サーバは更に、
ログデータの各エントリ用に、バケットの合計数を法として、アプリケーション識別及びカテゴリフィールドのハッシュ関数によってバケット番号を計算し、ここで、バケットの合計数は複数のログデータストリームの合計数であり、
ログデータのそのエントリを、バケット番号によって識別されたログデータストリームに割り当てる、
ように構成することができる。
ログデータは、複数のログデータエントリを含むことができ、集約サーバは更に、
各ログデータエントリ用に、1からバケットの合計数までの整数をランダムに生成し、ここで、バケットの合計数は複数のログデータストリームの合計数であり、
そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てる、
ように構成することができる。
バケットの合計数は、1つ又は複数のバックエンドサーバ上を走るデータ消費アプリケーションデータによって指示することができ、バケットの合計数は、ログデータストリームを受信するために利用可能なバックエンドサーバの数、及び各バックエンドサーバが扱うことができる接続部の数によって決定することができる。
本発明の実施形態において、集約サーバは、
プロセッサと、
プロセッサに結合され、集約サーバが複数のフロントエンドサーバと通信することを可能にするネットワークインターフェースと、
データステージングエリアを含むデータ記憶装置と、
プロセッサによって実行されることで集約サーバが以下を含む処理を行うことを可能にする命令を格納するメモリと、
を備え、当該処理が、
フロントエンドサーバからログデータを受信することであって、フロントエンドサーバがリアルタイムのユーザ活動に基づいてログデータを生成することと、
ログデータを集約すること、
データステージングエリアにおいてログデータをステージングすること、
1つ又は複数のバックエンドサーバがログデータストリームを並列に検索できるように、ログデータを複数のログデータストリームに分割すること、
を含む。
ログデータは複数のログデータエントリを含むことができ、各ログデータエントリはアプリケーション識別及びカテゴリフィールドを含むことができ、上記処理は、
ログデータの各エントリ用に、バケットの合計数を法として、アプリケーション識別及びカテゴリフィールドのハッシュ関数によってバケット番号を計算することであって、バケットの合計数が複数のログデータストリームの合計数であることと、
ログデータのそのエントリを、バケット番号によって識別されたログデータストリームに割り当てること、
を更に含むことができる。
ログデータは複数のログデータエントリを含むことができ、上記処理は、
各ログデータエントリ用に、1からバケットの合計数までの整数をランダムに生成することであって、バケットの合計数が複数のログデータストリームの合計数であることと、
そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てること、
を更に含むことができる。
本発明の更なる実施形態において、1つ又は複数のコンピュータ可読非一時的記憶媒体が、本発明による方法又は上記の実施形態のいずれかを実施するように実行された場合に動作可能なソフトウェアを具現化する。
本発明の更なる実施形態において、システムは、1つ又は複数のプロセッサと、プロセッサによって実行可能な命令を含む、プロセッサに結合されたメモリであって、プロセッサが、本発明による方法又は上記の実施形態のいずれかを実施する命令を実行する場合に動作可能であるメモリと、を含む。
本明細書で導入される他の態様は、添付の図面及び以下に続く詳細な説明から明らかになる。本発明の上記した目的や他の目的、機構及び特徴は、全てが本明細書の一部を形成する、添付の特許請求の範囲及び図面と共に以下の詳細な説明の検討から、当業者には一層明らかになる。
オンラインデータ収集システムの例を示す。 ログデータストリームを分割できる集約クラスタの例を示す。 ログデータエントリの例示的な構造を示す。 集約サーバの多層を有するオンラインデータ収集システムの別の例を示す。 ログデータを集約しステージングするための例示的な処理を示す。 ログデータをステージングし分割するための例示的な処理を示す。 本明細書で説明される任意のノード又はサーバを表し得るコンピュータサーバのアーキテクチャの例を示す高レベルブロック図である。
本明細書において、「一実施形態」等への言及は、特定の機構、機能、又は特徴が、本発明の少なくとも一実施形態に含まれることを意味する。この記載におけるかかる句の出現は、全てが必ずしも同じ実施形態を指すわけでもなく、それらが必ずしも相互に排他的であることでもない。
図1は、オンラインデータ収集システムの例を示す。オンラインデータ収集システム100は、複数のフロントエンドクラスタ110を含む。各フロントエンドクラスタ110は、多数の相互接続されたフロントエンドサーバ112を含む。一実施形態において、フロントエンドクラスタ110は、5000〜30000のフロントエンドサーバ112を含むことができる。フロントエンドクラスタは、ウェブトラフィックを扱い、且つオンラインデータ収集システム100によって監視されたユーザ活動に基づいて、リアルタイムでログデータを作成する。一実施形態において、フロントエンドクラスタ110は、更に、HTTPサービスを含む、システム100のユーザにユーザインターフェースを提供する責任を負う。
オンラインデータ収集システム100は、ログデータを集約するための、即ち、効率的なネットワークデータ伝送用にログデータを収集及びバッファリングするための責任を負う複数の集約クラスタ120を更に含む。フロントエンドクラスタ110のそれぞれは、集約クラスタ120が利用可能であるかどうかを決定するために、集約クラスタ120の少なくとも1つに要求を送信する。集約クラスタ120が利用可能な場合に、フロントエンドクラスタ110は、取り込んだログデータを集約クラスタ120へリアルタイムで流す。集約クラスタ120のそれぞれは、多数のサーバからストリーミングログデータを受信し、ログデータを集約する。一実施形態において、ログデータの集約は、ファイル及びディレクトリを組み合わせる観点で、ログデータを再編成することを含む。集約されたログデータファイルは、着信ログデータファイルと必ずしも一対一のマッピングを有しない。集約クラスタ120は、非常に多数のサーバノードに対してスケーリングするように、且つネットワーク及びノード障害に対して堅牢なように設計される。一実施形態において、集約クラスタ120は、集約されたログデータを圧縮することを含む、集約されたログデータに対する追加処理を実行する。別の実施形態において、集約クラスタ120は、集約されたログデータに対して追加処理を実行しない。
次に、集約クラスタ120は、ハドゥープクラスタに対して実現されるハイブデータウェアハウスなどのデータウェアハウス130に、集約されたログデータを周期的にコピーする。幾つかの実施形態において、ハイブデータウェアハウスは、ペタバイトのデータを記憶することができる。他の幾つかの実施形態において、集約クラスタ120は、集約されたログデータを1つ又は複数のNFSフィラーに送信する。
幾つかの実施形態において、集約クラスタ120は、2レベル構造として実現することができる。集約クラスタの1つは、親集約クラスタと呼ばれる。集約クラスタの残りは、レベル2集約クラスタである。親集約クラスタは、フロントエンドクラスタ110からログデータを受信し、且つ受信したログデータをレベル2集約クラスタに分配する責任を負う。バックエンドサーバ上を走るデータ消費アプリケーションは、レベル2集約クラスタからログデータをリアルタイムで検索する。集約クラスタのこの2レベル構造は、バックエンドサーバが集約クラスタからログデータを引き出すための大きな帯域幅を提供する。他の幾つかの実施形態において、バックエンドサーバ上を走るデータ消費アプリケーションは、親集約クラスタから直接にリアルタイムでログデータを検索する。
ひとたびデータウェアハウス130が、関連するログデータを受信し処理すると、バックエンドサーバ140は、オフラインデータ分析用に照会要求をデータウェアハウス130に送信することができる。より高速なログデータアクセスのために、集約クラスタ120のそれぞれは、データステージングエリア122を含む。データステージングエリア122は、集約されたログデータを、処理の前に一時的に記憶するための集約クラスタ120内の中間記憶エリア(パーキングとも呼ばれる)である。一実施形態において、データステージングエリア122は、集約クラスタ120のサーバにわたって拡張することができる。バックエンドサーバ140は、リアルタイム又はほぼリアルタイムでのログデータ供給のために、データステージングエリア122に直接アクセスすることができる。データステージングエリア122に記憶されたログデータは、所定の期間後に削除されても良い。例えば、一実施形態において、ログデータは、ログデータが取り込まれた3日後に削除される。一実施形態において、バックエンドサーバ140は、オンラインデータ収集システム100の一部である。別の実施形態において、バックエンドサーバ140は、オンラインデータ収集システム100とは別個である。
幾つかの実施形態において、フロントエンドクラスタ110のサーバ112は、レベル1プラスステージングエリア115を含む。例えば、フロントエンドクラスタ110におけるフロントエンドサーバ112は、その対応する集約クラスタ120が利用不可能であることを通知される。現在利用不可能な集約クラスタ120にログデータを流す代わりに、フロントエンドサーバ112は、レベル1プラスステージングエリア115にログデータを一時的に記憶する。レベル1プラスステージングエリア115は、バックエンドサーバによって直接アクセスすることができる。換言すれば、バックエンドサーバ140は、集約クラスタ120にもデータウェアハウス130にもアクセスする必要なしに、レベル1プラスステージングエリア115からログデータを直接流すことができる。他の幾つかの実施形態において、フロントエンドクラスタ110は、レベル1プラスステージングエリアがあってもなくても、システム内の任意のレベルからサーバによって直接アクセスできるレベル0ステージングエリアを更に含むことができる。
一実施形態において、オンラインデータ収集システムは、データを多数の優先層に分割することによって、ログデータに優先順位をつけることができる。例えば、トップ層のログデータは、データウェアハウス及びバックエンドサーバに送信される、より高い優先権を有する。トップ層のログデータはまた、データがステージングエリアにパーキングしている場合に、より長い保持時間を有することができる。より低い層のログデータは、トップ層のログデータより短い保持期間後に、より早く削除される。幾つかの実施形態において、優先権を設定する命令は、ポリシーシステムで実行することができる。データ消費アプリケーションが提示された場合に、それが必要とするデータカテゴリ用に、優先層と同様に帯域幅に関してポリシーを指定することができる。ポリシーは、更に、要求されたログデータが、ステージングエリアから、アプリケーションが走るバックエンドサーバへとリアルタイムで直接送信されるべきかどうかということ、要求されたログデータが、データウェアハウスから送信されるべきかどうかということ、又は要求されたログデータが、レベル1プラスステージングエリア、又は集約サーバにおけるステージングエリア上でステージングされるべきかどうかということを更に指定することができる。
ログデータの処理を加速するために、集約クラスタは、ログデータストリームが、バックエンドサーバ上を走るデータ消費アプリケーションに並列に送信されるように、ログデータを多数のログデータストリームに分割することができる。図2は、ログデータストリームを分割できる集約クラスタの例を示す。集約クラスタ210は、分割ログデータストリーム212(バケット(bucket)とも呼ばれる)に均等に且つランダムに分配されるログデータを保証するために、ログデータのエントリを検査することによってログデータを分割する。図3は、ログデータエントリの例示的な構造を示す。ログデータのエントリ300は、アプリケーションID310を含み、アプリケーションID310は、そのログデータエントリを消費し処理しようとしているデータ消費アプリケーションを識別する。一実施形態において、アプリケーションID310は、開発者IDである。エントリ300は、更に、カテゴリ320を含む。カテゴリ320は、メッセージの意図した宛先の高レベルの記述である。エントリ300は、更に、メッセージ330を含む。メッセージ330は、ログデータエントリの実際の内容を含む。
一実施形態において、集約サーバは、アプリケーションID及びカテゴリを読み取り、次に、アプリケーションID及びカテゴリのハッシュ関数を計算する。例えば、ハッシュ関数は、32ビット又は128ビットのハッシュ値を生じるMurmurHash3ハッシュ関数とすることができる。集約サーバは、更に、バケットの合計数によるハッシュ関数の値を法(modulo)とする。結果は、ログデータエントリが割り当てられるバケット番号である。換言すれば、ログデータエントリは、そのバケット番号を有するログデータストリームに含まれることになる。ハッシュ関数は、エントリがバケット(即ち、分割ログデータストリーム)間で均等に且つランダムに分配されるように、ログデータのエントリを入れ替える。エントリへのバケット番号の割り当ては、エントリが生成されるときにも又はエントリのアプリケーションIDとも相関を有しない。幾つかの実施形態において、バケット番号は、アプリケーションIDに加えてログデータエントリのデータフィールドの関数とすることができる。例えば、ハッシュ関数は、バケット番号を決定するためのハッシュ値を生成するために、ログデータエントリのアプリケーションID及び別のデータフィールドを用いることができる。
バケットの合計数は、様々な方法で決定することができる。一実施形態において、バックエンドサーバの合計数は、各バックエンドサーバが扱うことができる推定合計データ量及びデータ帯域幅によって決定される。バケットの数は、システムが、より多くのバックエンドサーバを含むようにスケールアップできるために、バックエンドサーバの数より大きな数として決定される。例えば、バケットの数が1024である場合に、それは、システムが、ストリーム分割において変更を行う必要なしに、1024のバックエンドサーバまでスケールアップできることを意味する。複数のバックエンドサーバが、分割データストリームを並列にリアルタイムで処理するために利用され得る。ストリームが均等に分割されるので、バックエンドサーバは、等しく負荷をかけられる。別の実施形態において、データ消費アプリケーションを提示する場合に、ログデータストリームを並列処理するためのバケット数を含むデータ消費アプリケーション用のポリシーを指定することができる。
別の実施形態において、各ログデータエントリに割り当てられるバケット番号は、乱数によって決定される。集約サーバは、バケットの合計数の範囲内でランダム整数を生成し、その生成された整数を、割り当てられたバケット番号としてログデータエントリに割り当てる。
更に別の実施形態において、データ消費アプリケーションは、バケット番号を割り当てるための関数又は方法を指定することができる。例えば、データ消費アプリケーションは、エントリの或るIDに基づいてバケット番号を割り当てることができる。データ消費アプリケーションは、エントリのユーザIDの第1の範囲を第1のバケット番号に割り当てることができ、エントリのユーザIDの第2の範囲を第2のバケット番号に割り当てることができる等である。
一実施形態において、オンラインデータ収集システムは、図1の集約サーバに似た中間サーバにおける1を超える層を有することができる。図4は、集約サーバの多層を有するオンラインデータ収集システムの別の例を示す。オンラインデータ収集システム400は、複数のフロントエンドクラスタ410を含む。各フロントエンドクラスタ410は、多数の相互接続されたフロントエンドサーバ412を含む。フロントエンドクラスタ410は、オンラインデータ収集システム100によって監視されたユーザ活動に基づいてリアルタイムでログデータを生成する。一実施形態において、フロントエンドクラスタ110におけるサーバ412は、バックエンドサーバ450によって直接アクセスされ得るレベル1プラスステージングエリア415を更に含むことができる。
オンラインデータ収集システム400は、フロントエンドクラスタ410から送信されたログデータを集約する責任を負う複数の第1のレベルの集約クラスタ420を更に含む。更に、オンラインデータ収集システム400は、第1のレベルの集約クラスタ420から送信されたログデータを集約する責任を負う1つ又は複数の第2のレベルの集約クラスタ430を含む。次に、第2のレベルの集約クラスタ430は、集約されたログデータを、ハドゥープクラスタ上に実現されたハイブデータウェアハウスなどのデータウェアハウス440に周期的にコピーする。
第1のレベルの集約クラスタ420は、第1のレベルのデータステージングエリア422を含み、第2のレベルの集約クラスタ430は、第2のレベルのデータステージングエリア432を含む。バックエンドサーバ450は、第1のレベルのデータステージングエリア422又は第2のレベルのデータステージングエリア432からログデータを直接検索することができる。一実施形態において、バックエンドサーバ450は、それが、ネットワークトポロジに基づいて第1のレベルのステージングエリア又は第2のレベルのステージングエリアからログデータを検索するかどうかを決定することができる。例えば、ネットワークトポロジの点で、バックエンドサーバ450が、第1のレベルの集約クラスタ420より第2のレベルの集約クラスタ430に一層近い場合に、バックエンドサーバ450は、第2のレベルのデータステージングエリア432からログデータを検索することを決定する。
例えば、一例において、ログデータは、ユーザの活動データであり、データ消費アプリケーションは、ニュースフィードアプリケーションである。或る期間後にデータウェアハウス上で利用可能なオフラインログデータを待つのではなく、ニュースフィードアプリケーションは、どちらの集約クラスタが、ネットワークトポロジにおいてニュースフィードアプリケーションのバックエンドサーバに一層近いかに依存して、第1又は第2のレベルのステージングエリアから、関連するユーザ活動のログデータをリアルタイムで検索するように要求することができる。ニュースフィードアプリケーションは、非常に低いレイテンシでユーザ活動のログデータを引き出し、且つできるだけ早くログデータを処理しニュースフィード結果を格納することができる。
一実施形態において、多重レベルの集約クラスタを備えたオンラインデータ収集システムが、レベル1プラスステージング能力を備えたフロントエンドクラスタを含む。集約クラスタが利用不可能な場合に、フロントエンドクラスタは、バックエンドサーバログデータを供給し続けるために、自らのレベル1プラスステージング能力を用いることができる。別の実施形態において、オンラインデータ収集システムは、データステージング能力を備えた2を超えるレベルの集約クラスタを含むことさえできる。
多重レベルのステージング能力を有するかかるオンラインデータ収集システムは、ログデータ集約の各ステージにおいてリアルタイムでログデータを供給することができる。システムは、ログデータが中央データリポジトリ(例えばデータウェアハウス)からまだ入手可能でない場合に、各ステージにおけるデータ消費照会に応じて、低レイテンシのデータ供給を提供することができる。バックエンドサーバは、ネットワークトポロジの点から、ステージログデータを検索するために、より近いクラスタを選択することができる。バックエンドサーバのデータストリームは、ネットワークにおいて、より少数のノード及びシステム通って移動する。従って、送信中にログデータを失うか又はログデータを破損する公算は、より少ない。従って、多重レベルのステージングシステムは、ログデータ送信の耐久性及び信頼性を向上させる。
図5は、ログデータを集約してステージングするための例示的な処理を示す。ステップ510において、フロントエンドサーバは、リアルタイムのユーザ活動に基づいてログデータを生成する。一実施形態において、フロントエンドサーバは、更に、ウェブコンテンツをユーザに提供する。一実施形態において、フロントエンドサーバは、ログデータを複数の優先層に分割し、それら優先層のうちのトップ層のログデータだけを集約サーバに送信する。
ステップ514において、フロントエンドサーバは、集約サーバが利用可能かどうかをチェックする。集約サーバが利用不可能な場合に、フロントエンドサーバは、ステップ516において、複数のフロントエンドサーバの少なくとも1つにおけるレベル1プラスステージングエリアにおいてログデータをステージングする。ステップ518において、フロントエンドサーバは、バックエンドサーバが要求した場合に、レベル1プラスステージングエリアからバックエンドサーバにログデータをリアルタイムで供給する。集約サーバが利用可能な場合に、ステップ520において、フロントエンドサーバは、ログデータを集約サーバに送信する。
ステップ530において、集約サーバは、ログデータを集約する。一実施形態において、集約は、集約サーバにおいてログデータのストリームを組み合わせることによって、ログデータを再編成することを含む。別の実施形態において、集約サーバは、更に、集約サーバにおいてログデータを圧縮する。
ステップ540において、集約サーバは、バックエンドサーバがログデータにリアルタイムでアクセスできるように、ログデータをステージングする。一実施形態において、1つのバックエンドサーバが、ログデータ用のデータステージング位置に関する命令を集約サーバ及びフロントエンドサーバに送信する。次に、集約サーバ及びフロントエンドサーバは、命令に従ってログデータをステージングするかどうかを決定する。ステップ550において、集約サーバは、集約サーバから直接バックエンドサーバにログデータをリアルタイムで供給する。
ステップ560において、集約サーバは、ログデータをデータウェアハウスに送信する。ステップ570において、データウェアハウスは、それが、処理されたログデータに基づいてデータ照会に応答できるように、ログデータを処理する。
ステップ580において、集約サーバは、所定の期間後に、集約サーバからログデータを削除する。フロントエンドサーバが、レベル1プラスステージングエリアにおいてログデータをステージングする場合に、フロントエンドサーバもまた、所定の期間後に、レベル1プラスステージングエリアからログデータを削除する。
図6は、ログデータをステージング及び分割するための例示的な処理を示す。ステップ610において、フロントエンドサーバは、リアルタイムのユーザ活動に基づいてログデータを生成する。一実施形態において、フロントエンドサーバは、更に、ウェブコンテンツをユーザに提供する。
ステップ614において、フロントエンドサーバは、集約サーバが利用可能かどうかをチェックする。集約サーバが利用不可能な場合に、フロントエンドサーバは、ステップ616において、複数のフロントエンドサーバの少なくとも1つにおけるレベル1プラスステージングエリアにおいてログデータをステージングする。
ステップ618において、フロントエンドサーバは、バックエンドサーバが要求した場合に、レベル1プラスステージングエリアからバックエンドサーバにリアルタイムでログデータを供給する。集約サーバが利用可能な場合に、ステップ620において、フロントエンドサーバは、ログデータを集約サーバに送信する。
ステップ630において、集約サーバは、ログデータを集約する。一実施形態において、集約は、集約サーバにおいてログデータのストリームを組み合わせることによって、ログデータを再編成することを含む。別の実施形態において、集約サーバは、更に、集約サーバにおいてログデータを圧縮する。
ステップ640において、集約サーバは、バックエンドサーバがログデータにリアルタイムでアクセスできるように、ログデータをステージングする。
一実施形態において、ログデータは、複数のログデータエントリを含む。各ログデータエントリは、アプリケーション識別及びカテゴリフィールドを含む。カテゴリフィールドは、ログデータエントリの意図された宛先の高レベルの記述を含む。アプリケーション識別は、ログデータエントリを処理するためのデータ消費アプリケーションを識別する。集約サーバは、ログデータのエントリの接頭部を検査して、アプリケーション識別及びカテゴリフィールドを認識する。
一実施形態ではステップ650において、ログデータの各エントリ用に、集約サーバは、バケットの合計数を法として、アプリケーション識別及びカテゴリフィールドのハッシュ関数によってバケット番号を計算する。バケットの合計数は、複数のログデータストリームの合計数である。一実施形態において、バケットの合計数は、ログデータストリームを受信するために利用可能なバックエンドサーバの数、及び各バックエンドサーバが扱うことができる接続部の数によって決定される。別の実施形態において、バケットの合計数は、少なくとも1つのバックエンドサーバ上を走るデータ消費アプリケーションによって指示される。その目的は、バックエンドサーバが、ログデータストリームを受信し処理する場合に、バックエンドサーバが等しく負荷をかけられるということである。ステップ652において、集約サーバは、ログデータのそのエントリを、バケット番号によって識別されたログデータストリームに割り当てる。
別の実施形態において、各ログデータエントリ用に、集約サーバは、1からバケットの合計数までの整数をランダムに生成する。次に、集約サーバは、そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てる。
ステップ654において、集約サーバは、ログデータを複数のログデータストリームに分割する。一実施形態において、集約サーバは、ログデータをどのように複数のログデータストリームに分割するかに関する命令をバックエンドサーバから受信する。一実施形態において、フロントエンドサーバはまた、集約サーバがログデータを分割するのと似た方法で、ログデータを複数のログデータストリームに分割することができる。ステップ660において、集約サーバは、ログデータストリームを1つ又は複数のバックエンドサーバに並列に供給する。
ステップ670において、集約サーバは、ログデータをデータウェアハウスに送信する。ステップ680において、データウェアハウスは、それが、処理されたログデータに基づいてデータ照会に応答できるように、ログデータを処理する。
ステップ690において、集約サーバは、所定の期間後に、ログデータを集約サーバから削除する。フロントエンドサーバが、レベル1プラスステージングエリアにおいてログデータをステージングする場合に、フロントエンドサーバもまた、所定の期間後に、レベル1プラスステージングからログデータを削除する。
一実施形態において、バックエンドサーバは、それらが分割ログデータストリームを受信した後で、分割ログデータストリームを統合する。分割の前のログデータが複数のストリームに属すると仮定すると、ストリームのそれぞれは、バックエンドサーバの1つに割り当てられる。バックエンドサーバのいずれかが、分割ログデータストリームのメッセージを集約サーバから受信した場合に、それは、メッセージが属するストリーム用にどのバックエンドサーバが割り当てられるかを決定する。次に、バックエンドサーバは、割り当てられたバックエンドサーバ(オーナとも呼ばれる)にメッセージを転送する。一実施形態において、バックエンドサーバは、1つのカテゴリ用のログデータをキューに統合する。キューは、様々な方法で実現することができる。例えば、キューは、最後のファイルだけが潜在的なオープンファイルであるディレクトリにおけるファイルと類似した命名規則において実現することができる。キューを実現する別の方法は、2層システムを利用することである。
幾つかの実施形態において、ストリーム対サーバ割り当て情報を記録するために、バックエンドサーバは、割り当て情報用の分配マップを維持する。分配マップは、割り当て情報に変更がある場合、例えば、サーバが利用不可能な場合、又は新しいストリームが追加された場合に、更新される。バックエンドサーバは、低レイテンシでこれらの変更の通知を得る。
このストリーム対サーバの割り当て機構は、ストリームとバックエンドサーバとの間の関係を管理するための自動で動的な方法を提供する。バックエンドサーバの1つが故障した場合に、残りのバックエンドサーバは、故障したバックエンドサーバに割り当てられたストリームのオーナーシップを再分配することができる。幾つかのバックエンドサーバから他のバックエンドサーバへと幾つかのストリームのオーナーシップを移すことによって、この機構は、バックエンドサーバの仕事量のバランスを保つことができる。
図7は、サーバ700のアーキテクチャの例を示す高レベルブロック図であり、サーバ700は、フロントエンドサーバ、集約サーバ、データウェアハウスサーバ、及びバックエンドサーバのいずれを表しても良い。サーバ700は、相互接続部730に結合された1つ又は複数のプロセッサ710及びメモリ720を含む。図7に示されている相互接続部730は、適切なブリッジ、アダプタ又はコントローラによって接続された任意の1つ若しくは複数の別個の物理バス、ポイントツーポイント接続部、又は両方を表す抽象概念である。従って、相互接続部730は、例えば、システムバス、周辺構成要素相互接続(PCI)バス若しくはPCIエクスプレスバス、ハイパートランスポート若しくは業界標準アーキテクチャ(ISA)バス、小型コンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、又は「FireWire」(登録商標)とも呼ばれる電気電子技術者協会(IEEE)標準1394バスを含んでも良い。
プロセッサ710は、サーバ700の中央処理装置(CPU)であり、従って、サーバ700の全体的動作を制御する。或る実施形態において、プロセッサ710は、これを、メモリ720に記憶されたソフトウェア又はファームウェアを実行することによって達成する。プロセッサ710は、1つ又は複数のプログラマブル汎用若しくは特定目的マイクロプロセッサ、デジタル信号プロセッサ(DSP)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、プログラマブル論理装置(PLD)、トラステッドプラットホームモジュール(TPM)等、又はかかる装置の組み合わせを含んでも含まなくても良い。
メモリ720は、サーバ700のメインメモリであるか、又はそれを含む。メモリ720は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ等、又はかかる装置の組み合わせの任意の形態を表す。使用において、メモリ720は、とりわけ、サーバ700のオペレーティングシステムの少なくとも一部を具体化するコード770を含んでも良い。コード770はまた、本明細書で開示される技術を実行するための命令を含んでも良い。
相互接続部730を通してプロセッサ710に同様に接続されるのは、ネットワークアダプタ740及び記憶アダプタ750である。ネットワークアダプタ740は、他のフロントエンドサーバ、統合サーバ、データウェアハウスサーバ、又はバックエンドサーバなどの装置と、ネットワークを通じて通信する能力をサーバ700に提供し、且つ例えばイーサネット(登録商標)アダプタ又はファイバチャンネルアダプタであっても良い。幾つかの実施形態において、サーバは、データ記憶クラスタ内及び外の通信に別々に対処するために、1を超えるネットワークアダプタを用いても良い。記憶アダプタ750は、サーバ700が永続記憶装置にアクセスできるようにし、且つ例えばファイバチャンネルアダプタ又はSCSIアダプタであっても良い。
メモリ720に記憶されたコード770は、以下で説明される動作を実行するようにプロセッサ710をプログラムするためのソフトウェア及び/又はファームウェアとして実現されても良い。或る実施形態において、かかるソフトウェア又はファームウェアは、最初は、それをシステムからサーバ700を通して(例えばネットワークアダプタ740を介して)ダウンロードすることによって、サーバ700に提供されても良い。
本明細書で導入される技術は、例えば、ソフトウェア及び/若しくはファームウェアでプログラムされたプログラマブル回路(例えば1つ若しくは複数のマイクロプロセッサ)によってか、完全に特定目的ハードワイヤード回路においてか、又はかかる形態の組み合わせにおいて実行することができる。特定目的ハードワイヤード回路は、例えば、1つ又は複数の特定用途向け集積回路(ASIC)、プログラマブル論理装置(PLD)、フィールドプログラマブルゲートアレイ(FPGA)等の形態であっても良い。
本明細書で導入される技術の実行において使用するためのソフトウェア又はファームウェアは、機械可読記憶媒体上に記憶されても良く、且つ1つ又は複数の汎用又は特定目的プログラマブルマイクロプロセッサによって実行されても良い。「機械可読記憶媒体」は、その用語が本明細書で用いられているように、機械(機械は、例えば、コンピュータ、ネットワーク装置、携帯電話、携帯情報端末(PDA)、製造用工具、1つ又は複数のプロセッサを備えた任意の装置等であっても良い)によってアクセス可能な形態で情報を記憶できる任意の機構を含む。例えば、機械アクセス可能な記憶媒体は、記録可能な/記録不能な媒体(例えば、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置等)などを含む。
用語「論理」は、本明細書で用いられているように、例えば、特定のソフトウェア及び/又はファームウェアでプログラムされたプログラマブル回路、特定目的のハードワイヤード回路、又はそれらの組み合わせを含むことができる。
上記の例に加えて、本発明の様々な他の変形形態及び変更形態が、本発明から逸脱せずに行われ得る。従って、上記の開示は、限定と見なされるべきではなく、添付の特許請求の範囲が、本発明の真の趣旨及び全範囲を包含すると解釈されるべきである。

Claims (20)

  1. 複数のフロントエンドサーバにおいて、リアルタイムのユーザ活動に基づくログデータを生成すること、
    前記ログデータを集約サーバに送信すること、
    前記ログデータを前記集約サーバにおいて集約すること、
    前記ログデータを複数のログデータストリームに分割すること、
    前記ログデータストリームを少なくとも1つのバックエンドサーバに並列に供給すること、
    を備える方法。
  2. 前記分割するステップは、
    前記ログデータが複数のログデータストリームに均等に分配されるように前記ログデータをランダムに分割することを含む、請求項1に記載の方法。
  3. 前記ログデータをどのように前記複数のログデータストリームに分割するかに関しての命令を前記バックエンドサーバから受信することを更に備える請求項1に記載の方法。
  4. 前記ログデータが複数のログデータエントリを含み、各ログデータエントリがアプリケーション識別及びカテゴリフィールドを含む、請求項1に記載の方法。
  5. 前記ログデータの各エントリ用に、バケット合計数を法として、前記アプリケーション識別及び前記カテゴリフィールドのハッシュ関数によってバケット番号を計算することであって、前記バケット合計数が前記複数のログデータストリームの合計数であることと、
    前記ログデータのそのエントリを、前記バケット番号によって識別されたログデータストリームに割り当てること、
    を更に備える請求項4に記載の方法。
  6. 前記カテゴリフィールドが、前記ログデータエントリの意図された宛先の高レベルの記述を含む、請求項5に記載の方法。
  7. 前記アプリケーション識別が、前記ログデータエントリを処理するためのデータ消費アプリケーションを識別する、請求項5に記載の方法。
  8. 前記ログデータが複数のログデータエントリを含み、
    当該方法が、
    各ログデータエントリ用に、1からバケット合計数までの整数をランダムに生成することであって、前記バケット合計数が前記複数のログデータストリームの合計数であることと、
    そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てること、
    を更に備える請求項4に記載の方法。
  9. バケット合計数が、前記ログデータストリームを受信するために利用可能なバックエンドサーバの数及び各バックエンドサーバが扱うことができる接続部の数によって決定される、請求項4に記載の方法。
  10. バケット合計数が、少なくとも1つのバックエンドサーバ上を走るデータ消費アプリケーションによって指示される、請求項4に記載の方法。
  11. 前記バックエンドサーバが前記ログデータストリームを受信して処理する場合に、前記バックエンドサーバに等しく負荷がかけられる、請求項9に記載の方法。
  12. 前記ログデータのエントリの接頭部を検査して、エントリが割り当てられる前記ログデータストリームを決定することを更に備える請求項1に記載の方法。
  13. 前記ログデータをデータウェアハウスに送信すること、
    前記データウェアハウスが、処理したログデータに基づいてデータ照会に応答することができるように、前記データウェアハウスにおいて前記ログデータを処理すること、
    を更に備える請求項1に記載の方法。
  14. コンピュータ実行システムであって、
    リアルタイムのユーザ活動に基づくログデータを生成するように構成された複数のフロントエンドサーバと、
    ネットワークを介して前記複数のフロントエンドサーバのうちの少なくとも幾つかと接続され、前記複数のフロントエンドサーバのうちの少なくとも幾つかから受信した前記ログデータを集約するように構成された少なくとも1つの集約サーバと、
    を備え、
    前記集約サーバが、前記ログデータをステージングするように構成されたデータステージングエリアを含み、前記集約サーバは、1つ又は複数のバックエンドサーバが複数のログデータストリームを並列に検索できるように前記ログデータを複数のログデータストリームに分割するように構成されている、コンピュータ実行システム。
  15. 前記ログデータが複数のログデータエントリを含み、各ログデータエントリがアプリケーション識別及びカテゴリフィールドを含み、
    前記集約サーバは更に、
    前記ログデータの各エントリ用に、バケット合計数を法として、前記アプリケーション識別及び前記カテゴリフィールドのハッシュ関数によってバケット番号を計算し、ここで、前記バケット合計数は前記複数のログデータストリームの合計数であり、
    前記ログデータのそのエントリを、前記バケット番号によって識別されたログデータストリームに割り当てる、
    ように構成されている、請求項14に記載のコンピュータ実行システム。
  16. 前記ログデータが複数のログデータエントリを含み、
    前記集約サーバが更に、
    各ログデータエントリ用に、1からバケット合計数までの整数をランダムに生成し、ここで、前記バケット合計数は前記複数のログデータストリームの合計数であり、
    そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てる、
    ように構成されている、請求項14に記載のコンピュータ実行システム。
  17. バケット合計数が、1つ又は複数のバックエンドサーバ上を走るデータ消費アプリケーションデータによって指示され、前記バケット合計数が、前記ログデータストリームを受信するために利用可能なバックエンドサーバの数、及び各バックエンドサーバが扱うことができる接続部の数によって決定される、請求項4に記載の方法。
  18. 集約サーバであって、
    プロセッサと、
    前記プロセッサに結合され、当該集約サーバが複数のフロントエンドサーバと通信することを可能にするネットワークインターフェースと、
    データステージングエリアを含むデータ記憶装置と、
    前記プロセッサによって実行されることで当該集約サーバが以下を含む処理を行うことを可能にする命令を格納するメモリと、
    を備え、前記処理が、
    前記フロントエンドサーバからログデータを受信することであって、前記フロントエンドサーバが、リアルタイムのユーザ活動に基づいて前記ログデータを生成することと、
    前記ログデータを集約すること、
    前記データステージングエリアにおいて前記ログデータをステージングすること、
    1つ又は複数のバックエンドサーバがログデータストリームを並列に検索できるように、前記ログデータを複数のログデータストリームに分割すること、
    を含む、集約サーバ。
  19. 前記ログデータが複数のログデータエントリを含み、各ログデータエントリがアプリケーション識別及びカテゴリフィールドを含み、
    前記処理が、
    前記ログデータの各エントリ用に、バケット合計数を法として、前記アプリケーション識別及び前記カテゴリフィールドのハッシュ関数によってバケット番号を計算することであって、前記バケット合計数が前記複数のログデータストリームの合計数であることと、
    前記ログデータのそのエントリを、前記バケット番号によって識別されたログデータストリームに割り当てること、
    を更に含む、請求項18に記載の集約サーバ。
  20. 前記ログデータが複数のログデータエントリを含み、
    前記処理が、
    各ログデータエントリ用に、1からバケット合計数までの整数をランダムに生成することであって、前記バケット合計数が前記複数のログデータストリームの合計数であることと、
    そのログデータエントリを、バケット番号によって識別されたログデータストリームに割り当てること、
    を更に含む、請求項18に記載の集約サーバ。
JP2015556052A 2013-01-31 2014-01-17 低レイテンシデータアクセス用のデータストリーム分割 Active JP6258975B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/756,340 US10223431B2 (en) 2013-01-31 2013-01-31 Data stream splitting for low-latency data access
US13/756,340 2013-01-31
PCT/US2014/012120 WO2014120487A1 (en) 2013-01-31 2014-01-17 Data stream splitting for low-latency data access

Publications (3)

Publication Number Publication Date
JP2016515228A true JP2016515228A (ja) 2016-05-26
JP2016515228A5 JP2016515228A5 (ja) 2017-11-02
JP6258975B2 JP6258975B2 (ja) 2018-01-10

Family

ID=51224089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015556052A Active JP6258975B2 (ja) 2013-01-31 2014-01-17 低レイテンシデータアクセス用のデータストリーム分割

Country Status (10)

Country Link
US (1) US10223431B2 (ja)
JP (1) JP6258975B2 (ja)
KR (1) KR101885688B1 (ja)
CN (1) CN104969213B (ja)
AU (1) AU2014212780B2 (ja)
BR (1) BR112015017391A2 (ja)
CA (1) CA2897338C (ja)
IL (1) IL239811B (ja)
MX (1) MX356571B (ja)
WO (1) WO2014120487A1 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9609050B2 (en) * 2013-01-31 2017-03-28 Facebook, Inc. Multi-level data staging for low latency data access
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US10515097B2 (en) * 2015-04-06 2019-12-24 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10541936B1 (en) * 2015-04-06 2020-01-21 EMC IP Holding Company LLC Method and system for distributed analysis
US10277668B1 (en) 2015-04-06 2019-04-30 EMC IP Holding Company LLC Beacon-based distributed data processing platform
US10776404B2 (en) 2015-04-06 2020-09-15 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10511659B1 (en) * 2015-04-06 2019-12-17 EMC IP Holding Company LLC Global benchmarking and statistical analysis at scale
US10706970B1 (en) 2015-04-06 2020-07-07 EMC IP Holding Company LLC Distributed data analytics
US10541938B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
US10791063B1 (en) 2015-04-06 2020-09-29 EMC IP Holding Company LLC Scalable edge computing using devices with limited resources
US10860622B1 (en) 2015-04-06 2020-12-08 EMC IP Holding Company LLC Scalable recursive computation for pattern identification across distributed data processing nodes
US10425350B1 (en) 2015-04-06 2019-09-24 EMC IP Holding Company LLC Distributed catalog service for data processing platform
CN106815274B (zh) * 2015-12-02 2022-02-18 中兴通讯股份有限公司 基于Hadoop的日志数据挖掘方法及系统
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US10656861B1 (en) 2015-12-29 2020-05-19 EMC IP Holding Company LLC Scalable distributed in-memory computation
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
CN105912609B (zh) * 2016-04-06 2019-04-02 中国农业银行股份有限公司 一种数据文件处理方法和装置
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
WO2018182060A1 (ko) * 2017-03-28 2018-10-04 ㈜리얼타임테크 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) * 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
CN112416699A (zh) * 2020-06-05 2021-02-26 上海哔哩哔哩科技有限公司 指标数据收集方法及系统
CN111680009B (zh) * 2020-06-10 2023-10-03 苏州跃盟信息科技有限公司 日志处理方法、装置、存储介质和处理器
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11797522B2 (en) * 2021-01-29 2023-10-24 International Business Machines Corporation Database log writing based on log pipeline contention
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
US11968280B1 (en) 2021-11-24 2024-04-23 Amazon Technologies, Inc. Controlling ingestion of streaming data to serverless function executions
US12015603B2 (en) 2021-12-10 2024-06-18 Amazon Technologies, Inc. Multi-tenant mode for serverless code execution
US11995085B2 (en) 2022-02-25 2024-05-28 Visa International Service Association System, method, and computer program product for efficiently storing multi-threaded log data

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978458B1 (en) * 2000-11-17 2005-12-20 Oracle International Corporation Distributing data items to corresponding buckets for use in parallel operations
JP2008204206A (ja) * 2007-02-20 2008-09-04 Nec Corp データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
US20080256079A1 (en) * 2007-04-11 2008-10-16 Yahoo! Inc. Load-based technique to balance data sources to data consumers
JP2008305352A (ja) * 2007-06-11 2008-12-18 Tatsuya Shindo 全文検索システム
JP2011039820A (ja) * 2009-08-12 2011-02-24 Hitachi Ltd ストリームデータ処理方法及び装置
US20110246826A1 (en) * 2010-03-31 2011-10-06 Cloudera, Inc. Collecting and aggregating log data with fault tolerance

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1024646A (en) 1911-06-24 1912-04-30 Jeremiah Muckey Mold for concrete curbs for graves.
US6212515B1 (en) * 1998-11-03 2001-04-03 Platinum Technology, Inc. Method and apparatus for populating sparse matrix entries from corresponding data
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
AU1785101A (en) 1999-11-22 2001-06-04 Avenue, A, Inc. Efficient web server log processing
US6990531B2 (en) 2000-04-17 2006-01-24 Circadence Corporation System and method for providing last-mile data prioritization
US20110128972A1 (en) 2000-04-17 2011-06-02 Randy Thornton Peer to peer dynamic network link acceleration
US7139791B1 (en) * 2000-07-13 2006-11-21 International Business Machines Corporation Apparatus and method for providing access to a data stream by a plurality of users at a same time
US7127492B1 (en) * 2000-10-31 2006-10-24 International Business Machines Corporation Method and apparatus for distributed application acceleration
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US20020184327A1 (en) * 2001-05-11 2002-12-05 Major Robert Drew System and method for partitioning address space in a proxy cache server cluster
US7895350B1 (en) * 2001-07-05 2011-02-22 Motive, Inc. N-way data stream splitter
US8156216B1 (en) 2002-01-30 2012-04-10 Adobe Systems Incorporated Distributed data collection and aggregation
US7337214B2 (en) 2002-09-26 2008-02-26 Yhc Corporation Caching, clustering and aggregating server
US6698815B1 (en) 2002-10-02 2004-03-02 Grupo Antolin Ingenieria, S.A. Sun visor with mirror assembly
US8676843B2 (en) * 2002-11-14 2014-03-18 LexiNexis Risk Data Management Inc. Failure recovery in a parallel-processing database system
US7506355B2 (en) * 2002-11-22 2009-03-17 Microsoft Corporation Tracking end-user content viewing and navigation
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
US20040230744A1 (en) * 2003-05-17 2004-11-18 Teh Jin Teik Cache content protocol for a content data delivery system
US8234517B2 (en) * 2003-08-01 2012-07-31 Oracle International Corporation Parallel recovery by non-failed nodes
US7523145B2 (en) * 2004-04-22 2009-04-21 Opentv, Inc. System for managing data in a distributed computing system
US7644050B2 (en) * 2004-12-02 2010-01-05 International Business Machines Corporation Method and apparatus for annotation-based behavior extensions
US7555456B2 (en) * 2004-06-08 2009-06-30 Rosenthal Collins Group, Llc Method and system for providing electronic information for multi-market electronic trading
US20080201299A1 (en) * 2004-06-30 2008-08-21 Nokia Corporation Method and System for Managing Metadata
US7380173B2 (en) * 2004-08-03 2008-05-27 International Business Machines Corporation Identifying temporal ambiguity in a aggregated log stream
US8161318B2 (en) 2005-02-07 2012-04-17 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US20060206923A1 (en) 2005-03-09 2006-09-14 Macrovision Corporation Method and system for self-encrypting key identification
US20060236074A1 (en) * 2005-04-14 2006-10-19 Arm Limited Indicating storage locations within caches
JP2006318312A (ja) 2005-05-13 2006-11-24 Victor Co Of Japan Ltd 情報配信管理サーバ
US7587388B2 (en) * 2005-07-28 2009-09-08 Microsoft Corporation Separating uploads into aggregate and raw data storage
US20070027974A1 (en) * 2005-08-01 2007-02-01 Microsoft Corporation Online service monitoring
US8775273B2 (en) 2005-11-23 2014-07-08 Ebay Inc. System and method for transaction automation
US20070124437A1 (en) * 2005-11-30 2007-05-31 Cisco Technology, Inc. Method and system for real-time collection of log data from distributed network components
US7636743B2 (en) * 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7822808B2 (en) 2006-04-21 2010-10-26 Motenet, Inc. Collection and distribution of sense-on-demand data
KR100950661B1 (ko) 2006-05-20 2010-04-02 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US20070299631A1 (en) 2006-06-27 2007-12-27 Microsoft Corporation Logging user actions within activity context
US8037052B2 (en) 2006-11-22 2011-10-11 General Electric Company Systems and methods for free text searching of electronic medical record data
JP5396001B2 (ja) 2006-12-13 2014-01-22 楽天Edy株式会社 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム
US20080288500A1 (en) * 2007-02-13 2008-11-20 Demetrios Sapounas Physiological data processing architecture for situation awareness
US8321579B2 (en) * 2007-07-26 2012-11-27 International Business Machines Corporation System and method for analyzing streams and counting stream items on multi-core processors
US7698422B2 (en) 2007-09-10 2010-04-13 Specific Media, Inc. System and method of determining user demographic profiles of anonymous users
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US8019863B2 (en) 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers
US8893131B2 (en) * 2008-04-11 2014-11-18 Yahoo! Inc. System and/or method for bulk loading of records into an ordered distributed database
JP5257311B2 (ja) * 2008-12-05 2013-08-07 ソニー株式会社 情報処理装置、および情報処理方法
KR101207510B1 (ko) 2008-12-18 2012-12-03 한국전자통신연구원 클러스터 데이터 관리시스템 및 클러스터 데이터 관리 시스템에서 공유 재수행 로그를 이용한 데이터 재구축 방법
US8392530B1 (en) * 2008-12-18 2013-03-05 Adobe Systems Incorporated Media streaming in a multi-tier client-server architecture
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8224924B2 (en) 2009-03-27 2012-07-17 Bank Of America Corporation Active email collector
JP4911198B2 (ja) * 2009-06-03 2012-04-04 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御方法
US8230046B2 (en) * 2009-12-15 2012-07-24 Facebook, Inc. Setting cookies in conjunction with phased delivery of structured documents
US8930686B2 (en) 2009-12-23 2015-01-06 International Business Machines Corporation Deduplication of encrypted data
US8348840B2 (en) 2010-02-04 2013-01-08 Robert Bosch Gmbh Device and method to monitor, assess and improve quality of sleep
US8943053B2 (en) 2010-02-26 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Social data ranking and processing
US9317572B2 (en) 2010-03-31 2016-04-19 Cloudera, Inc. Configuring a system to collect and aggregate datasets
US9082127B2 (en) * 2010-03-31 2015-07-14 Cloudera, Inc. Collecting and aggregating datasets for analysis
US8788543B2 (en) * 2010-05-13 2014-07-22 International Business Machines Corporation Scalable, concurrent resizing of hash tables
US8819236B2 (en) 2010-12-16 2014-08-26 Microsoft Corporation Resource optimization for online services
EP2659620B1 (en) * 2010-12-29 2018-10-17 Citrix Systems Inc. Systems and methods for scalable n-core statistics aggregation
EP2678773B1 (en) 2011-02-23 2019-12-18 Level 3 Communications, LLC Analytics management
US20120246303A1 (en) 2011-03-23 2012-09-27 LogRhythm Inc. Log collection, structuring and processing
US8775556B1 (en) * 2011-07-20 2014-07-08 Google Inc. Automated segmentation and processing of web site traffic data over a rolling window of time
US8775941B1 (en) * 2011-07-20 2014-07-08 Google Inc. System for monitoring and reporting deviations of real-time analytics data from expected analytics data
US20130030868A1 (en) * 2011-07-25 2013-01-31 Cbs Interactive, Inc. Scheduled Split Testing
US11127309B2 (en) 2011-08-09 2021-09-21 The Mitre Corporation Flight management system operator
US9747592B2 (en) 2011-08-16 2017-08-29 Verizon Digital Media Services Inc. End-to-end content delivery network incorporating independently operated transparent caches and proxy caches
US8429162B1 (en) * 2011-09-27 2013-04-23 Amazon Technologies, Inc. Facilitating data redistribution in database sharding
US20150356104A9 (en) 2011-10-04 2015-12-10 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
US20130238391A1 (en) 2012-03-09 2013-09-12 Oracle International Corporation Product oriented web site analytics
CA2814190C (en) 2012-05-31 2015-06-16 Netsweeper Inc. Policy service logging using graph structures
US8850263B1 (en) 2012-09-14 2014-09-30 Amazon Technologies, Inc. Streaming and sampling in real-time log analysis
US9104745B1 (en) 2012-09-28 2015-08-11 Palo Alto Networks, Inc. Distributed log collector and report generation
US8447854B1 (en) * 2012-12-04 2013-05-21 Limelight Networks, Inc. Edge analytics query for distributed content network
US9152502B2 (en) 2012-12-21 2015-10-06 Microsoft Technology Licensing, Llc Data error detection and correction using hash values
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US9609050B2 (en) 2013-01-31 2017-03-28 Facebook, Inc. Multi-level data staging for low latency data access

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978458B1 (en) * 2000-11-17 2005-12-20 Oracle International Corporation Distributing data items to corresponding buckets for use in parallel operations
JP2008204206A (ja) * 2007-02-20 2008-09-04 Nec Corp データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
US20080256079A1 (en) * 2007-04-11 2008-10-16 Yahoo! Inc. Load-based technique to balance data sources to data consumers
JP2008305352A (ja) * 2007-06-11 2008-12-18 Tatsuya Shindo 全文検索システム
JP2011039820A (ja) * 2009-08-12 2011-02-24 Hitachi Ltd ストリームデータ処理方法及び装置
US20110246826A1 (en) * 2010-03-31 2011-10-06 Cloudera, Inc. Collecting and aggregating log data with fault tolerance

Also Published As

Publication number Publication date
AU2014212780A1 (en) 2015-07-23
MX356571B (es) 2018-06-04
BR112015017391A2 (pt) 2017-07-11
IL239811A0 (en) 2015-08-31
MX2015009825A (es) 2016-04-04
CA2897338C (en) 2018-08-14
CN104969213B (zh) 2018-01-12
IL239811B (en) 2019-01-31
KR20150114965A (ko) 2015-10-13
US10223431B2 (en) 2019-03-05
WO2014120487A1 (en) 2014-08-07
CN104969213A (zh) 2015-10-07
CA2897338A1 (en) 2014-08-07
US20140214752A1 (en) 2014-07-31
AU2014212780B2 (en) 2018-09-13
KR101885688B1 (ko) 2018-08-06
JP6258975B2 (ja) 2018-01-10

Similar Documents

Publication Publication Date Title
JP6258975B2 (ja) 低レイテンシデータアクセス用のデータストリーム分割
US10581957B2 (en) Multi-level data staging for low latency data access
US11347761B1 (en) System and methods for distributed database query engines
US10334033B2 (en) Partition balancing in an on-demand services environment
US20180024863A1 (en) Task Scheduling and Resource Provisioning System and Method
EP3959643B1 (en) Property grouping for change detection in distributed storage systems
CN113767377A (zh) 针对分布式存储系统中的变化检测的动态散列函数组合
US11620345B2 (en) Method and apparatus for a mechanism for event replay when a reroute of recordation of the event occurred in a multiplexed event recordation system
EP2765517B1 (en) Data stream splitting for low-latency data access
US11055274B2 (en) Granular change detection in distributed storage systems
US20180095664A1 (en) Techniques and architectures for efficient allocation of under-utilized resources
US10511656B1 (en) Log information transmission integrity
CN117633111A (zh) 基于ClickHouse的请求处理方法、装置、设备及介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170920

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170920

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171207

R150 Certificate of patent or registration of utility model

Ref document number: 6258975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250