JP2007513426A - 異種コンピュータシステムにわたる複雑計算 - Google Patents

異種コンピュータシステムにわたる複雑計算 Download PDF

Info

Publication number
JP2007513426A
JP2007513426A JP2006542690A JP2006542690A JP2007513426A JP 2007513426 A JP2007513426 A JP 2007513426A JP 2006542690 A JP2006542690 A JP 2006542690A JP 2006542690 A JP2006542690 A JP 2006542690A JP 2007513426 A JP2007513426 A JP 2007513426A
Authority
JP
Japan
Prior art keywords
program
data
database
nodes
statement
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
JP2006542690A
Other languages
English (en)
Other versions
JP4774372B2 (ja
JP2007513426A5 (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 JP2007513426A publication Critical patent/JP2007513426A/ja
Publication of JP2007513426A5 publication Critical patent/JP2007513426A5/ja
Application granted granted Critical
Publication of JP4774372B2 publication Critical patent/JP4774372B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/30Data warehousing; Computing architectures
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A90/00Technologies having an indirect contribution to adaptation to climate change
    • Y02A90/10Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed
    • Y10S707/971Federated
    • Y10S707/972Partitioning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • Biotechnology (AREA)
  • Bioethics (AREA)
  • Public Health (AREA)
  • Biomedical Technology (AREA)
  • Pathology (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

複数のノードにおいて計算を統合するために、外部関数を登録し、データベースマネジメントシステムから並列で呼び出すことのできるプログラマチックインターフェースについて説明する。一実施形態において、各ノードは、データベースシステムから受信したコマンドに応えて計算を行うプログラムをスタートさせるよう構成された処理を実行する。データベースシステムにおいてクエリを受信したことに応え、複数のコマンドが処理に送信され、各対応する処理において同時に計算を行う。結果は各処理から受信され、ステートメントの実行は受信された結果に基づいて終了される。

Description

発明の分野
本発明はデータベースシステムに関し、より具体的には、異種コンピュータシステムにわたる複雑計算に関する。
発明の背景
科学計算における共通のシナリオは、多様な異なるフォーマットで格納されたデータにアクセスし、処理する複数の異種環境にわたり、複雑計算を実行することである。たとえば、1つの複雑計算は、遺伝子の配列およびそれらの引用の多様なデータベース内の遺伝物質のDNA適合を検索するものである。異種環境は、異なる、そしてしばしば互換性のないハードウェア、オペレーティングシステム、およびアプリケーションソフトウェアの組み合わせを含む。一般的に、これらの異なるシステムは、特定のニーズに応えるため個々に購入され、企業は、複数のコンピュータシステムに散在する情報を有するであろう。システム業者は、競争相手の販売に勝る競争力を備えようとするため、異なるシステムは、ほぼ本質的に互換性がない。構造化照会言語(SQL)基準およびリレーショナルモデルに基づくリレーショナルデータベースマネジメントシステム(DBMS)でさえ、SQL実施、データベース定義、および通信機構の差異のために、互換性がない。したがって、複雑計算を実行するための異種システムを組みあわせる仕事は困難である。
複雑計算を、複数の異種環境にわたって実行する場合、データベースマネジメントシステムは、計算で用いられるデータのいくつかのソースと同じく、しばしば計算結果の最終的なレポジトリとして用いられる。しかし、さらに他の異種システム、すなわちデータベースマネジメントシステムを環境に統合することは、複雑計算を実行する既に困難なタスクに、さらなる複雑さを提起する。
たとえば、このような複雑計算を管理するあるアプローチが、多段式処理として知られており、そこでは複雑計算は複数のステップに分散され、各ステップはユーザーによって提示され、同種プラットフォーム上で、全体として独立的に行われる。各計算の結果は、別々のステップで組み合わせられ、結果データベースにロードされる。計算ステップの統合は、手動で行われるか、何らかの形状のワークフローエンジンを用いて行われるかし、完全な計算結果は一括モードで実行された後にのみ得られ、インタラクティブではない。したがって、多段式処理アプローチにおいて、データベースシステムとの統合は質が悪くインタラクティブでないものであり、本質的に、データベースシステムを、前回実行された一連のデータの結果の事後ユーザーインターフェースへと制限するものである。さらに、計算の実行の統合を堅固で拡張可能な方法とするのは困難である。
よりインタラクティブなアプローチは、ユーザーによって提示されるデータベースクエリの特定の統合ステップをコード化することである。ユーザーが具体的にコード化したクエリをデータベースシステムに提示する場合、クエリは実行され、データベースシステムをして複雑計算の多様なサブコンポーネントを起動させ、結果同士を組み合わせさせる。このアプローチでクエリをコード化することは、開発者が各異種システムおよびその上で実行されるべき計算の部分の詳細な知識を有することおよび、データベース外部の部分の実行を管理することを要求する。このアプローチの範囲は一般的なものではなく、特定の計算のみを扱うものである。
その他のアプローチは、並列クエリ、クラスタリング、および、単一のクエリを複数の(異種)データベースインスタンスにわたって実行できるようにするいくつかのデータベースシステムの二相コミット機構を利用するものである。このアプローチにおいて、互換性のないシステムに存在するデータは1以上のデータベースに移動させられ、計算を行っていたアルゴリズムはデータベース内の関数に書き換えられる。しかし、この移動-書き換えアプローチは高価かつ時間消費型で、各ノードが、データベース管理およびアプリケーション開発リソースと同じく、データベースインスタンス、データベースマネジメントシステムソフトウェアを実行できるように、ハードウェアへの投資を要求する。また、データベース内で実行されるアルゴリズムを書き換えるのは、実現可能ではない。
したがって、複数の異種データベースシステムにわたって複雑計算を行うための、堅固、拡張可能、インタラクティブ、および高価でないアプローチが必要とされる。
発明の概要
本発明の、外部関数を登録し、データベースマネジメントシステムから並列に呼び出すことのできるプログラマチックインターフェースによって、これらおよびその他の必要性が検討される。したがって、本発明の一態様は、それぞれデータベースシステムから受信されたコマンドに応えて計算を行うプログラムをスタートするよう構成された処理を実行する複数のノードで、計算を統合する方法に関する。データベースシステムでクエリを受信することに応じて、複数のコマンドが処理に送信され、各対応する処理に同時に計算を行う。結果は各処理から受信され、ステートメントの実行は受信された結果に基づいて終了される。
本発明の他の態様は、複数のノードに配置された複数のデータコンテナ上で計算を統合する方法およびソフトウェアを対象とする。ステートメントもしくはクエリを、計算を行う外部ルーチンを特定するデータベースシステムで受信することに応えて、計算を行うコマンドは、計算を行うプログラムをスタートするよう構成された処理に送信される。結果はそれぞれの処理から受信され、ステートメントの実行は、受信された結果に基づいて終了される。一実施形態において、計算を行うノードのコホートは、並列度や利用可能なスレッド数などの多様な基準に基づいて決定される。
本発明のさらにその他の態様、特徴、および有利な点は、本発明を実施するための考えられる最良の形態を含む、多数の特定の実施形態および実施を説明するだけで、以下の詳細な説明から容易に明らかになる。本発明はまた、その他の異なる実施形態でも可能であり、いくつかの詳細は、本発明の精神および範囲から逸脱することなく、多様な自明の意味で変更できる。したがって、図面および説明は、事実上説明的なものであり、限定的なものではないと見なされるべきである。
添付の図面の図中で、本発明は一例として示されており、限定するものとして示されているわけではない。同一の参照番号は同様の要素を言及する。
好適な実施形態の説明
複雑計算のためのシステム、方法、およびソフトウェアが説明される。以下の記載において、説明の目的で、本発明の充分な理解をもたらすために多数の具体的な詳細が説明される。しかし、当業者にとって、本発明は、これら具体的な詳細を伴うことなく、または同等の配置とともに実行されてよいことは明白である。その他の場合、本発明を不必要に不明瞭にすることを防ぐべく、ブロック図に既知の構造および装置が示される。
データベースマネジメントシステムにおいて、データは、それぞれレコードを含む1以上のデータコンテナに格納され、各レコード内のデータは1以上のフィールドとして組織される。リレーショナルデータベースシステムにおいて、データコンテナはテーブルと呼ばれ、レコードはローと呼ばれ、フィールドはカラムと呼ばれる。オブジェクト指向のデータベースにおいて、データコンテナはオブジェクトクラスと呼ばれ、レコードはオブジェクトと呼ばれ、フィールドは属性と呼ばれる。その他のデータベース構造はその他の用語を用いてもよい。
本発明を実施するシステムは、特定のタイプのデータコンテナまたはデータベース構造に限定されるものではない。しかし、説明の目的で、ここに用いられる用語および実施例は、通常はリレーショナルデータベースと関連するものとする。したがって、「テーブル」、「ロー」および「カラム」の用語はここではそれぞれ、データコンテナ、レコード、およびフィールドを呼ぶものとする。
(システム概観)
図1は、複雑計算を行うべく本発明の一実施形態が配置されるところの異種環境100を示す概略図である。特に、異種環境100はデータベースマネジメントシステム(DBMS)プラットフォーム101および異種プラットフォーム103を含む。プラットフォーム103は、ハードウェア、オペレーティングシステム、およびアプリケーションソフトウェアの組み合わせが、DBMSプラットフォーム101のハードウェア、オペレーティングシステム、およびアプリケーションソフトウェアと異なるまたは互換性がない場合に、異種であると考えられてよい。配置環境によって、本発明の実施形態は1以上の追加の異種プラットフォーム105を含んでよい。ここではプラットフォーム103および105は異種として説明されるが、1以上のプラットフォーム103および105がDBMSプラットフォーム101と同種であって、なお本発明のその他の特徴からもたらされる利点のいくつかを実現してもよい。したがって、本発明は同種もしくは同種/異種混合の環境において有利である。
BMSプラットフォーム101は、ユーザーインターフェース、もしくは複数の異種プラットフォーム103および105にわたって複雑計算を行うアプリケーションプラグラムを提供し、異種プラットフォーム103および105の間の複雑計算を統合し、異種プラットフォーム103および105からの複雑計算の結果のレポジトリとして機能する。一実施形態において、DBMSプラットフォーム101は、ユーザー、もしくは複雑計算を特定するアプリケーションプログラムからクエリを受け取るデータベースサーバ107と、複雑計算に関与するその他のデータと同じく複雑計算の結果を格納するリレーショナルデータベース109と、分散した複雑計算を統合するプログラミングインターフェースレジストリ111と、プログラミングインターフェースレジストリ111内の情報に基づきプログラミングインターフェースによって作成されるスタブプログラム113とを含む。プログラミングインターフェースレジストリ111およびスタブプログラム113は、以下により詳細に説明される。
スタブプログラム113は、ネットワーク接続、もしくは異種プラットフォーム105上で実行する対応するデーモン(図示されない)と同じく異種プラットフォーム103上で実行するデーモン115へのその他の通信リンクを開くべく構成される。一般性を喪失することなく、また説明の都合上、異種プラットフォーム103および105のシステム構成は、もっぱら異種プラットフォーム103についてのみ説明される。デーモン115は、スタブプログラム113からの通信によって起動されるまで継続的にアイドリングする、バックグラウンドの処理であることが好ましい。デーモン115は、起動されると、1以上の計算プログラム117の実行をスタートし、引数を渡し、ストップするよう構成
される。1以上の計算プログラム117は、複雑計算を行うべく異質のデータベース119と相互作用してよく、リレーショナルデータベース109への格納およびユーザーもしくはアプリケーションプラグラムへの提示のため、最終的にデータベースサーバ107に結果を返してよい。
スタブプログラム113およびデーモン115は、1以上の異種プラットフォーム103および105上の1以上の計算プログラム117を、並列度を実現するよう一斉に起動するべく構成されることが好ましい。この構成において、データベースサーバ103は、スタブプログラム113を介して、デーモン115に、1以上の計算プログラム117を適切な引数でスタートするよう、もしくは既に実行中の計算プログラム117に引数を渡すよう、もしくは既に実行中の計算プログラム117を終了するよう命令する。デーモン117は、要求された各計算プログラム117を順にノンブロッキング方式でスタートし、要求された全ての計算プログラム117がスタートすると、計算プログラム117が終了するのを待機する。各計算プログラム117が終了すると、結果がDBMSプラットフォーム101の要求処理に返される。一実施形態において、デーモン115は、実行中の計算プログラム117に、ノンブロッキング方式で、すなわち計算プログラム117からの結果を待つことなく、引数を渡す。データベースサーバ107は、先立つ要求の一部として実行中の、1以上の計算プログラム117の実行をストップする要求を送信することができる。両方の要求が同一ソースからのものであることが確認されると、デーモン115は要求された計算プログラム117を終了することができる。
さらに、デーモン115に登録された各計算プログラム117は、デフォルトの並列度(たとえば並列実行スレッド数)を有してよい。このデフォルトは、データベースサーバ107から、異なるスレッド数で計算プログラム117をスタートするよう要求されることにより、無効にされることがある。この実施形態において、各デーモン115は有効なスレッドのプールを保持し、計算プログラム117をスレッドに添付してスレッドにビジーとマークすることで計算プログラム117をスタートする各スレッドのステータス(ビジー、フリー)を追跡する。プールされた全てのスレッドがビジーである場合、設定可能な閾値に達するまで新たなスレッドが作成される。デーモン115はデータベースサーバ107をそのスレッドプールのステータス、たとえば全スレッド数、ビジースレッド数などについて更新し続けるので、データベースサーバ103は、他の異種プラットフォーム105との並列起動を管理できる。
したがって、データベースクエリが、各ターゲットの異種プラットフォーム103および105上で複数かつ好ましくは並列の計算プログラム117を管理するデーモン115に、ランタイムを呼び出させるようにする、DBMSプラットフォーム101内のプログラマチックインターフェースが提供される。これらデーモン115は、データベースサーバ107に代わって、非データベースプログラム117の実行を管理する。スタブプログラム113を作成するプログラミングインターフェースと計算プログラム117を実行するデーモン117のどちらも一般的なものであってよく、したがってアプリケーション開発者は、複雑計算を行うためのデータベースクエリを書くために、分散型コンピュータシステム101の構成を知る必要がない。さらに、複雑計算を統合するプログラミングインターフェースレジストリ117のセットアップは、データベース管理者によるワンタイムオペレーションであってよい。結果として、複数の異種コンピュータシステムにわたって複雑計算を行うのに、堅固かつ拡張可能で使いやすいシステムが達成される。
(プログラミングインターフェースレジストリ)
一実施形態において、DBMSプラットフォーム101において実行中のアプリケーションは、異種プラットフォーム103および105の能力、および異種プラットフォーム103および105内に常駐し異種プラットフォーム103および105間の複雑計算を
統合するのに充分な計算プログラム117の能力を示す情報を含む、プログラミングインターフェースレジストリ111にアクセスするノンブロッキング方式プログラミングインターフェースを用いる、他のプラットフォーム103および105上の並列プログラム117を呼び出せる。この情報は、前もってデータベース管理者によって入力されているのが好ましいが、情報のうちいくらかは、クエリでインタラクティブに得られる。たとえば、プログラミングインターフェースレジストリ111内の情報は、DBMSプラットフォーム101に対して有効な異種プラットフォーム103および105を識別し、計算プログラム117をデータベースサーバ107内のプログラマチックインターフェースのためにこれらのプラットフォーム103および105と関連付けるために用いられてもよく、データベースサーバはプログラム117の各デーモン115に、デーモンの対応するプラットフォーム103および105上で実行されてよいことを通知できる。
プログラミングインターフェースレジストリ111内のレジストレーションデータは以下のことを指示できる。すなわち、計算プログラム117の名前、それぞれ計算プログラム117を実行できる異種環境100内の各コンピュータ103、計算プログラム117を呼び出すプログラム引数(数字、データタイプ、位置)、このコンピュータ103上のこの計算プログラム117を実行できるところのデータセット、および計算プログラム117の実行した結果がいかに返されたか(通常はレコードのコレクション)である。その他の、より管理的なタイプのプログラミングレジストリ111内の情報は、次のものを含むことができる。すなわち、計算プログラム117が毎回再起動される必要があるか、または実行を続け、呼び出し毎に新しい引数を受け入れられるかどうかの指示、部分的な結果でも容認できるか(計算プログラム117に対する要求を実行するコンピュータ103および105の適切なサブセットが有効な結果を返すことができなかった場合、結果は部分的であると考えられる)、および計算プログラム117に対するデフォルトおよび最大の並列度である。
プログラミングインターフェースレジストリ111はまた、異種環境101内の各コンピュータ103に関するデータを含む。この情報は、次のものを含むことができる。すなわち、各コンピュータ103および105の名前、DBMSプラットフォーム101と異種プラットフォーム103間の通信リンクを作成するための連結データ(IPアドレス、認証情報)、異種プラットフォーム103からの確認に対するタイムアウト間隔、イムアウトインターフェースからの確認の受信失敗後のリトライ数、ハートビート間隔(コンピュータ103上のデーモン115からのステータスメッセージ間の時間)、および、異種プラットフォーム103に対するコンピュータの不具合を示す、失われたハートビート数である。また、並列呼び出しは、プログラミングインターフェースレジストリ111内のスレッドプールステータスおよび最大の許容サイズ情報を用いて、さらに統合されることができる。
登録の際、手続き型スタブ113が、たとえば、プログラミングインターフェースレジストリ111をセットアップするのに用いられるプログラミングインターフェースプログラムによって、プログラミングインターフェースレジストリ111に登録された各計算プログラム117について作成される。データベースサーバ103でサポートされるプログラミング言語にコード化されたスタブプログラム113は、計算プログラム117への呼び出しインターフェースを提供する。スタブプログラム113のパラメータは、リターンタイプ(データベースローのコレクション)に加え、計算プログラム117に対する引数、操作されるところのデータ範囲、所望の並列度を含んでよい。
したがって、SQLクエリの関数として実行され、一連の結果を返してよいプログラムはどれでも、異種環境100で並列に実行することができ、コンピュータクラスターと見なされる。結果が一連のローと定義される場合、関数は、SQLクエリのFROM節で、
一連のローを返すテーブル関数として用いられる。一方、関数が一連のロー(たとえば、整数のコレクション)を返さない場合、その関数はまた、SELECTリストもしくはオブジェクトタイプのためのユーザー定義のメソッドで用いられてよい。
テーブル関数は、物理的データベースのようにクエリされたり、PL/SQL可変コレクションに割り当てられたりする、ローのコレクションもしくはベクトル/アレイを作り出す関数である。構文的には、テーブル関数はクエリのFROM節のデータベーステーブル名と同じように、もしくはクエリのSELECTリスト内のカラム名と同じように用いられてよい。テーブル関数はローのコレクションを入力としてみなすことができる。テーブル関数の実行は並列処理にされてよく、返されたローは、中間段階なしに次の処理に直接ストリームされる。ある実施において、テーブル関数により返されたコレクションからのローは連続送信型であってよい、すなわち、テーブル関数の入力の処理の終了の一括処理で一度に返される代わりに、ローが作られるにつれ反復して返されてよい。したがって、テーブル関数のストリーミング、連続送信、並列実行は、テーブル関数のマルチスレッド並列実行を可能にすることにより、処理間の中間段階を除去することにより、そしてクエリ応答時間を改良することにより、パフォーマンスを向上させることができる。非連続送信型テーブル関数では、テーブル関数により返されたコレクションの全体は、クエリが単一の結果ローを返すより前に、構成され、サーバに返される。連続送信は、ローが作られるにつれ反復して返されることを可能にする。このことはまた、オブジェクトキャッシュがコレクションの全体を実体化する必要がないため、テーブル関数が必要とするメモリを減らす。コレクションの全体がテーブルもしくはメモリに組織されるのを待ってコレクション全体を返すのに代わり、ローが作成されるにつれ、テーブル関数により返されたコレクションから結果ローを反復して提供する。
一実施形態において、簡単にするために、異種環境101で実行する関数はリーフレベルの関数であり、集約(MAX、MIN、DISTINCTなど)はデータベースサーバ103によって行われる。もしあれば、データベースサーバ103によって行われる集約により、計算プログラム117から連続送信されたローは、コンシューマーローソースに直ちに返されてもよく、データベースサーバ107内の集約のためにバッファされてもよい。
(操作の概観)
複数の異種システムにわたって複雑計算を統合する本発明の一実施形態の操作が図2に説明される。ステップ201において、データベースサーバ107はクエリ、もしくはプログラミングレジストリインターフェースにリストされる外部ルーチンへの呼び出しを含むデータベースステートメントを受け取り、ステートメント内の呼び出しを操作するスレッドを生じる。構造化照会言語(SQL)の典型的なクエリは以下のようなものであってよい。
Figure 2007513426
このステートメントは、外部関数「dna_match」を異種環境内のコンピュータシステムにわたって実行した結果から形成されるテーブル「st」と、引用テーブル「c」との、2つのソースに参加操作を行うことで、一連の引用名(すなわち、カラム「citation_name」)を要求するクエリである。「dna_match」外部関数
は、多様なコンピュータシステム103上で実行できるプログラム117であり、ゲノムデータベース119の遺伝子配列データベースにアクセスし、編集距離内の引数のヌクレオチドの結果に適合するゲノムデータベース119内の全てのDNA配列に対し、シーケンス識別子(「sequence_id」)を返す。ヌクレオチドは、DNAに対してはアデニン(A)、グアニン(G)、チミン(T)、シトシン(C)であり、RNAに対しては、アデニン(A)、グアニン(G)、ウラシル(U)、シトシン(C)である。この実施例において異種環境100は、それぞれ異なるデータベースとインターフェースに対処する必要のある、多様な遺伝子配列の独占データベースを有する異種コンピュータシステム103および105を含む。引用テーブル「c」は、ほとんどのユーザーには不明瞭なシーケンス識別子(「sequence_id」=「seq_id」)を、よりユーザーに理解しやすい対応するシーケンスのソース引用に関連付ける。所望の並列度は、上に示すように、クエリでは空白のままでよく、この場合並列度は、プログラミングインターフェースレジストリ111で既にセットアップされているデフォルトになる。
ステップ203において、呼び出しが解析され、外部ルーチンに対する引数が、数、タイプ、および位置に関して正確であるかを検証する。この検証は、プログラミングインターフェースレジストリ111に格納される関数シグネチャーにアクセスすることによって行われてよく、外部ルーチンに渡される引数の数と、各位置における各パラメータのタイプを特定する。たとえば、プログラミングインターフェースレジストリ111に格納される「dna_match」関数の関数シグネチャーは、ある表現において、次のように与えられてよい。
Figure 2007513426
このシグネチャーにおいて、「dna_match」は、「ストリング」タイプの「パターン」と呼ばれる1引数を正確に取る外部関数である。「dna_match」は、1カラムテーブルとして表される一連のシーケンス識別子を返すように特定される。引数が正確でない場合(たとえば、2つの引数が「dna_match」に渡される場合、もしくは数が「dna_match」に渡される場合)、起動は有効にされず、エラーは呼び出しアプリケーションに戻される。
検証にパスすると、実行は、コンピュータ101、103および105の「コホート」(「ノード」と呼ばれる)およびスレッドが、呼び出し内の特定された複雑計算を行うよう外部呼び出しを最終的に実行するため決定される、ステップ205に進む。本発明から外れることなく、このコホートを決定する多様な方法がある。一実施形態において、局所性を向上するよう、コホートは、(a)要求される並列度(スタブ関数113のパラメータで特定されるか、もしくはレジストリのデフォルトにされる)、(b)ノードにおける異質のデータベース119が要求に応じられるか否か、(c)数の多い利用可能なスレッドが数の少ない利用可能なスレッドよりも好まれるところの、各ノードのスレッドプール内のスレッドの利用可能性、および、(d)どのノードが先に含まれるか、の影響を受ける最も少ないコンピュータ数になるよう決定される。
ステップ207において、スタブプログラム113を実行するスレッドは、プログラム117をコホートメンバー上で、 好ましくはコホート内の各コンピュータが可能な限り多い並列スレッドをサポートした状態で、たとえば利用可能なスレッドを上限とする既に実行されている仕事量を前提として、実行するよう要求する。これらの要求は、コホート内の各コンピュータ上のデーモン115に対して行われる。スタブ内で参照されるプログ
ラム117が各要求のために再起動する必要がなければ、要求は新しい一連の引数を渡すだけでよい。
要求を送信した後、スレッドは、要求が各ターゲットのデーモン115に受信されたことの確認を待機する。要求が、プログラミングインターフェースレジストリ111のタイムアウト間隔に定義されているようにタイムアウトした場合、要求はプログラミングインターフェースレジストリ111に特定された回数再送信される。再送信しても成功せず、部分的な結果が容認されない場合(同じくプログラミングインターフェースレジストリ111内の値によって管理される)、呼び出しの実行は中止され、制御はアプリケーションに戻る。呼び出しが中止された場合、成功裡に到達したコホートコンピュータのため、プログラム終了要求がデーモン115に送信される。
全てのデーモン115が成功裡に要求を受信した場合、もしくは部分的な結果を作成するのに十分なデーモンがある場合、ステップ209において、スレッドは、要求を受信した全てのノードから結果を集めるのを待機する。ノードのハートビートが機能しない場合(プログラミングインターフェースレジストリ111に特定されるように)、スレッドは、ノードからの結果を待機することを中止する。部分的な結果が容認され、なお得られる場合には(すなわち、有効な結果をなお返すコンピュータが残っている場合には)、スレッドは待機を続ける。そうでなければ、残りの要求は中止され、制御はアプリケーヨンに戻る。
最後に、ステップ211において、スレッドが待機するところの全ての要求が結果を返すと、結果はスタブに定められるフォーマットに処理され、アプリケーションに戻される。ある実施において、1度に1ローの結果はアプリケーションに連続送信される。
(ノードとコンテナ間の1対1マッピング)
図2に関して説明されるアプローチは、強力かつ柔軟であり、多様な異なる呼び出し方針を処理することができる。たとえば、最も単純な事例のひとつは、ノードと、リレーショナルデータベース109外部の各関数のデータとの間に1対1マッピングのある環境である。すなわち、各ノード103および105は、プログラミングインターフェースレジストリ111に、ファイルシステム内(たとえば、スレッドが初期化されている場合は環境設定ファイルを介して)の特定の場所の、特定のデータ本体もしくはデータコンテナにアクセスするようコード化された関数を実行可能であるものとして登録されている。この場合、スタブ関数113は、SQLクエリで供給される引数で関数を実行するよう登録された全てのノードのデーモン115に、コマンドを送信する。具体的には、コンピュータクラスター上で並列実行される関数は、所与のパターンを検索し、所定の編集距離内にパターンを含む一連のシーケンス番号をローとして返す関数である。
Figure 2007513426
パターン「ACGTAT」を含むシーケンスに対する全ての引用を決定するには、この実施例において、ユーザーは次のクエリをデータベースサーバ107に発行する。
Figure 2007513426
それに応じて、データベースサーバ103は、プログラミングインターフェースレジストリ111内の「dna_match function」に登録された全てのノードに、「ACGTAT」をパラメータとして、リモートプロシージャコール(RPC)を発行するスタブ113を呼び出す。計算プログラム117の「dna_match」関数のそれぞれの実施は、シーケンスをそのファイルシステム119内に配置すること、および引用テーブルと結合されるシーケンス識別子を戻すことに関与する。
(ノードとデータコンテナ間の非全単射マッピング)
先の事例はノードとデータコンテナ間の、1対1もしくは全単射マッピングを特徴とした。しかし、一実施形態は、非全単射マッピングもしくは「m」ノードと「n」データコンテナ間の「m−to−n」マッピングをサポートできる。非全単射マッピングは、いくつかのノードが、たとえばNFS(ネットワークファイルシェアリング)を介して、同一のデータコンテナのうちの少なくともいくつかへのアクセスをシェアする場合に可能である。この場合、追加的な潜在パラメータが、計算プログラム117を実行する各スレッドに渡され、スレッドが処理を必要としていることをデータコンテナに知らせる。データベースサーバ107はデータコンテナの構造を解釈できる必要はなく、データベースサーバ107はいかにデータコンテナを特定するか(たとえば、ファイルシステム119内のパス名で)、またいかに各関数についてノードをコンテナにマッピングするかを知る必要がある。このようなマッピングテーブルは、表1に示すように、プログラミングレジストリ111、リレーショナルデータベース109、または他の場所に格納されてよい。
Figure 2007513426
表1のマッピングの各ローは、外部関数(たとえば、「dna_match」もしくは「protein_match」)を、外部関数を実行できるノード(たとえば、Dlsun1、Dlsun2、またはDlsun3)、およびノードが扱うことができるデータコンテナに関連付ける。したがって、Dlsun1は1つのデータコンテナに対し1つの関数しか扱えないが(X:/disk02/sequence.dat上の「dna_match」)、ノードDlsun1は、2つの異なるコンテナに対して「dna_match」の呼び出しを、そして他の2つの異なるコンテナに対して「protein_match」の呼び出しを扱うことができる。外部関数、たとえば、「dna_match」が呼び出されると、処理される必要のある一連のデータコンテナが決定され(たとえば、X:/disk01/sequence.datとX:/disk02/sequence.dat)、データコンテナに割り当てられたノードが、ノード上の負荷、所望の並列度、キャッシュの局所性(スレッドがキャッシュした任意のデータを再利用できるよう、同一の関数を数回、同一のノード上で実行することが望ましい)などの基準に基づきコホートに選択される。
(属性による枝刈り)
現段階では、データベースサーバ107は、関数を実行するにあたり、データコンテナを「枝刈り」していない、すなわち、要求を満たすために実際に検索される必要のあるデータコンテナの数を減らしていない。いくつかのコンテナは、クエリに応答するためにアクセスされる必要はなく、データコンテナ上の不経済な検索やその他の操作を防ぐことが望ましい。この実施例において、枝刈りは外部関数の実施者によってなされてよい。たとえば、外部関数に対する引数は、ファイルヘッダを見ることで、あるデータコンテナがローを返さないことを素早く(たとえばO(1)時間)決定するのに用いられてよい。たとえば、dna_matchがE.coliのシーケンス上でのみ求められている場合、E.coli引数はクエリで以下のように特定される。
Figure 2007513426
表1に与えられたセットアップ、ノードDlsun1上の「dna_match」関数が、dna_match(コンテキスト、「x/disk01/sequence.dat」、「ACGTAT」、「E.coli」)として呼び出されてよいと仮定すると、「dna_match」関数は、データコンテナに対する「x:/disk01/sequence.da」ファイルのヘッダが、シーケンスがどれもE.coliに対するものでないことを示すならば、すぐに戻る。しかし、データベースサーバ107が、デーモン115にノード上に関数を呼び出すコマンドを送るより前に、データコンテナを除去することが望ましい。1つの解決法は、各データコンテナを、データベースサーバ107がSQLクエリに依存するコンテナを除去するのに用いることができる、いくつかのユーザー定義の属性に関連付けることである。たとえば、コンテナマッピングに対するこの関数は、表2に示される「sequence_type」と呼ばれる追加の属性を用いることができる。
Figure 2007513426
この実施例において、コンテナは、以下のクエリのWHERE節内の追加の述語によって枝刈りされる。
Figure 2007513426
このフィルタリング機構により、すべてのSQLオペレータは属性タイプによりサポートされる。
(パラメータのフィルタリング)
属性レベルフィルタリング機構が充分に柔軟でないことがあり得る。このような場合には、ユーザー定義の分割関数が各関数に関連付けられてよい。この関数は、デーモン115を呼び出す前に呼び出され、クエリに応答するためにアクセスされる必要がある一連のデータコンテナを決定する。分割関数はデータベースサーバ107のコンテキスト内で実行し、並列化される必要はない。分割関数のシグネチャーは、これが一連のコンテナを返すこと以外は、実行される関数と同一である。たとえば、
Figure 2007513426
パラメータの第1のリストは、関数自身のパラメータと同一であり(この特定の実施例においては、唯一のパラメータ「pattern」しかない)、属性名および値は、WHERE節内で特定された値に依存するデータベースサーバ107によって成立する。ユーザーが与えた「dna_match_partition」関数は、属性名および属性値を用いてコンテナをOUTパラメータとしてポピュレートし、次にそれらはコホートを決定するべくスタブプログラム113によって用いられ、各デーモン115を呼び出す。
(WHERE節条件)
データコンテナ枝刈りに必要なものに加え、WHERE節条件を並列関数に渡すことがさらに望ましい。たとえば、ユーザーは、SQLのWHERE条件に「編集距離」を補うことを望んでよい。このWHERE節はコンテナを枝刈りするのには用いられないが、一連の結果にフィルターをかける時、もしくはそれ自身の実行中に用いられるべく、並列関数に渡される。したがって、検索を他のテーブルに記録されたedit_distanceに限定するためには、次のクエリが用いられてよい。
Figure 2007513426
「sequence_type」および「sequence_date」は、上のパラメータ枝刈りの事例で説明したように、データコンテナ枝刈り条件であり、並列外部関数には渡されない。一方「edit_distance」条件は、潜在WHERE節コンテキストとして、外部関数に渡される。これらWHERE節条件はスカラーデータタイプに限定されるのが望ましい。そうでなければ、もしWHERE節が他のローソースとの接合に含まれるならば、データベースサーバ107はWHERE節基準を外部関数に連続送信する必要があり、並列外部関数の実施を著しく複雑なものにする。さらに、WHERE節コンテキストは、外部関数が一連のローをFROM節内のテーブル関数として返す場合にのみ、並列外部関数に渡される。
(物理的ノード内の複数のスレッド)
上記で説明された分割方法は、物理的ノード内の複数のスレッドに適合するよう、容易に拡張される。物理的ノードが所与の関数に対してNスレッド数まで実行することができる場合、ノードは、スレッド間の作業を分割する時に、N論理ノードとして、もしくは仮想処理装置として扱われてよい。コホート内通信(すなわち、関数を実行するリーフレベルスレッド間の通信)がないか、データベースコントロール外のコホート内通信がないか、であるため、データベースサーバ107は同一の物理的ノード上にスレッドを配置するよう試みる必要がない。スレッドおよびノードの選択は、データコンテナへのアクセス、物理的ノード上の負荷などの、上で説明されたその他のパラメータに基づく。
(ハードウェア概観)
図3は、本発明による実施形態が実施されるところのコンピュータシステム300を説明する。コンピュータシステム300は、バス301もしくはその他の情報を通信する通信機構と、バス301に連結され情報を処理する処理装置303を含む。コンピュータシステム300はまた、バス301に連結されて処理装置303に実行されるべき情報や指示を格納する、ランダムアクセスメモリ(RAM)やその他のダイナミック記憶装置などのメインメモリ305を含む。メインメモリ305はまた、一時的な変数もしくはその他の処理装置303による指示の実行中の中間情報を格納するのにも用いられる。コンピュータシステム300はさらに、読み取り専用メモリ(ROM)307もしくはその他の、バス301に連結されて処理装置303に対する静的情報および指示を格納する、静的記憶装置を含んでよい。磁気ディスクもしくは光ディスクなどの記憶装置309は、バス301に連結され、情報および指示を絶え間なく格納する。
コンピュータシステム300は、バス301を介して、ブラウン管(CRT)、液晶ディスプレイ、動的マトリクスディスプレイ、またはプラズマディスプレイなどのディスプレイ311に連結され、コンピュータのユーザーに対する情報を示している。英数字やその他のキーを含むキーボードなどの入力装置313がバス301に連結されて、処理装置303に対して情報およびコマンド選択を通信する。その他のタイプのユーザー入力装置は、マウス、トラックボール、カーソル方向キーなどのカーソルコントロール315であり、方向情報およびコマンド選択を処理装置303に通信し、ディスプレイ311上のカーソル動作をコントロールする。
本発明の一実施形態によれば、複数のノードにわたる複雑計算の統合は、メインメモリ305に含まれる指示の配置を実行する処理装置303に応えて、コンピュータシステム300によって提供される。これらの指示は、記憶装置309などその他のコンピュータ読み取り可能な媒体から、メインメモリ305に読み込まれることができる。メインメモリ305に含まれる指示の配置の実行は、処理装置303をして、ここに説明される処理ステップを行わせる。多重処理配置内の1以上の処理装置は、メインメモリ305内に含まれる指示を実行するのに用いられてもよい。代替的な実施形態において、ハードワイヤードの回路は、ソフトウェア指示の代わりに、もしくは一緒に用いられて、本発明の実施形態を実施してもよい。その他の実施例において、その論理ゲートの機能性および接続形態がランタイムでカスタマイズ可能であるところの、フィールドプログラマブルゲートアレー(FPGAs)などの再構成可能なハードウェアが、通常はメモリルックアップテーブルをプログラムすることで用いられてもよい。したがって、本発明の実施形態は、ハードウェア回路およびソフトウェアのある特定の組み合わせに限定されるものではない。
コンピュータシステム300はまた、バス301に連結される通信インターフェース317を含む。通信インターフェース317は、ローカルネットワーク321に接続されたネットワークリンク319に両方向データ通信結合を提供する。たとえば、通信インター
フェース317はデジタルサブスクライバライン(DSL)カードもしくはモデム、総合デジタル通信網(ISDN)カード、ケーブルモデム、電話モデム、または任意のその他の、対応するタイプの通信線にデータ通信接続を提供する通信インターフェースであってよい。その他の実施例として、通信インターフェース317は、データ通信接続を互換性のあるLANに提供するローカルエリアネットワーク(LAN)カード(たとえば、イーサネット(登録商標)もしくは非同期転送モデル(ATM)ネットワークに対して)でよい。ワイヤレスリンクもまた実施されてよい。これらの任意の実施において、通信インターフェース317は、多様なタイプの情報を表すデジタルデータストリームを運ぶ、電気、電磁気、または光学の信号を送受信する。さらに、通信インターフェース317は、ユニバーサルシリアルバス(USB)インターフェース、PCMCIA(PCメモリーカード国際協会)インターフェースなどの周辺インターフェース装置を含んでよい。図3では単一の通信インターフェース317が示されているが、複数の通信インターフェースもまた用いることができる。
ネットワークリンク319は一般的に、他のデータ装置との1以上のネットワークを介してデータ通信を提供する。たとえば、ネットワークリンク319はローカルネットワーク321を介して、ネットワーク325(たとえば、ワイドエリアネットワーク(WAN)もしくは現在一般的に「インターネット」と呼ばれるグローバルパケットデータ通信ネットワーク)への、もしくはサービス提供者により操作されるデータ装置への接続性を有するホストコンピュータ323への通信を提供してもよい。ローカルネットワーク321およびネットワーク325はどちらも電気、電磁気、もしくは光学の信号を用いて情報および指示を伝達する。多様なネットワークを通る信号、ネットワークリンク319上の、および通信インターフェース317を通る、デジタルデータをコンピュータシステム300に通信する信号は、情報および指示を運ぶ搬送波の典型的な形状である。
コンピュータシステム300は、メッセージを送信し、ネットワーク、ネットワークリンク319、および通信インターフェース317を介して、プログラムコードを含むデータを受信することができる。インターネットの実施例において、サーバ(図示されない)は、本発明の一実施形態を実施するべく、ネットワーク325、ローカルネットワーク321および通信ターフェース317を介して、アプリケーションプログラムに属する要求されたコードを伝えるかもしれない。処理装置303は、伝えられたコードが受信されると同時にそれを実行し、および/もしくはコードを記憶装置309、もしくは後ほど実行するべくその他の不揮発性記憶装置に格納してよい。このように、コンピュータシステム300は、搬送波の形状でアプリケーションコードを取得できる。
ここで用いられる「コンピュータ読み取り可能な媒体」の用語は、処理装置305に実行するための指示を提供するのに参加する任意の媒体を呼ぶものである。このような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含む多くの形状を取ることができるが、これに限定されるものではない。不揮発性媒体は、たとえば、記憶装置309などの光学もしくは磁気ディスクを含む。揮発性媒体は、メインメモリ305などのダイナミックメモリを含む。伝送媒体は、バス301を構成する線を含む、同軸ケーブル、銅線、および光ファイバーを含む。伝送媒体はまた、無線周波(RF)および赤外線の(IR)データ通信で発生するような、音響の光学波もしくは電磁波の形状を取ることができる。コンピュータ読み取り可能な媒体の共通の形は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意のその他の磁気媒体、CD-ROM、CDRW、DVD、任意のその他の光学媒体、パンチカード、紙テープ、光学マークシート、穴パターンもしくはその他の光学的に認識可能な印を有する任意のその他の物理媒体、RAM、PROM、およびEPROM、FLASH−EPROM、任意のその他のメモリチップもしくはカートリッジ、搬送波、もしくはコンピュータがそこから読み取り可能な任意のその他の媒体を含む。
コンピュータ読み取り可能な媒体の多様な形状は、処理装置に実行するための指示を提供することに関与してよい。たとえば、本発明の少なくとも一部を実行するための指示は、最初は、リモートコンピュータの磁気ディスク上にあってよい。このようなシナリオにおいて、リモートコンピュータは指示をメインメモリにロードし、モデムを用いて電話線を介してそれを送信する。ローカルコンピュータシステムのモデムは、電話線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換し、赤外線信号を、パーソナルデジタルアシスタント(PDA)もしくはラップトップなどの、ポータブルコンピュータデバイスに転送する。ポータブルコンピュータデバイス上の赤外線検知器は、赤外線信号が持つ情報および指示を受信し、データをバス上に配置する。バスはデータをメインメモリに搬送し、そこから処理装置が指示を取り出し実行する。メインメモリに受信された指示は、処理装置による実行の前もしくは後に、記憶装置に任意で格納されてもよい。
本発明は多数の実施形態および実施に関連付けて説明されたが、本発明はこれらに限定されるものではなく、添付の請求の範囲の範囲内で、多様な明白な改良および同等の配置を網羅するものである。
本発明の一実施形態を配置することができる異種環境を示す図である。 本発明の一実施形態の操作を示すフローチャートである。 本発明の一実施形態を実施するのに用いられるコンピュータシステムを示す図である。

Claims (10)

  1. 各ノードにおいて、データベースシステムから受信したコマンドに応えて計算を行うプログラムをスタートさせるよう構成された対応する処理を実行することと、
    データベースシステムにおいて、計算を行う外部ルーチンを特定するステートメントを受信することと;ステートメントを受信することに応えて、
    計算を行う複数のコマンドを、前記各対応する処理に同時に送ることと、
    前記各処理から結果を受信することと、
    前記各処理から受信した結果に基づいて、ステートメントの処理を終了することと、から構成される複数のノードに配置された複数のデータコンテナ上で計算を統合する方法。
  2. 計算を行う外部ルーチンを特定するデータベースシステムにおいてステートメントを受信することと、
    ステートメントを受信することに応えて、
    計算を行う複数のコマンドを、コマンドに応えて計算を行う複数の各プログラムをスタートするよう構成された、複数の各処理に送信することと、
    前記各処理から結果を受信することと、
    前記各処理から受信した結果に基づいて、ステートメントの処理を終了することと、から構成される複数のノードに配置された複数のデータコンテナ上で計算を統合する方法。
  3. 計算を行うことのできる複数のノードからノードのコホートを決定することからさらに構成され、複数の各処理はノードのコホートに対応することを特徴とする、請求項2に記載の方法。
  4. 複数のノードは、ノードのコホートに含まれない少なくとも1つのノードを含むことを特徴とする、請求項3に記載の方法。
  5. 前記決定することは、各ノードにサポートされる並列度に基づくことを特徴とする、請求項3に記載の方法。
  6. プログラムとデータコンテナの間の関連付けを特定するレジストリにアクセスすることからさらに構成され、
    前記決定することは、プログラムとデータコンテナの間の関連付けに基づくことを特徴とする、請求項3に記載の方法。
  7. データコンテナに対する各属性を特定するレジストリにアクセスすることからさらに構成され、
    前記決定することは、データコンテナに対する各属性をステートメントのパラメータに適合させることに基づくことを特徴とする、請求項3に記載の方法。
  8. プログラムおよびデータコンテナに関連付けられた分割関数を特定するレジストリにアクセスすることからさらに構成され、
    前記決定することは、プログラムおよびデータコンテナに関連付けられた分割関数を実行した結果に基づくことを特徴とする、請求項3に記載の方法。
  9. 少なくともいくつかのプログラムを並列で実行することを特徴とする、請求項2に記載の方法。
  10. 計算を統合するための指示を持つコンピュータ読み取り可能な媒体で、前記指示は、請求項1に記載の方法を行う1以上の処理装置による実行があり次第、配置される。
JP2006542690A 2003-12-02 2004-12-02 異種コンピュータシステムにわたる複雑計算 Active JP4774372B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/724,834 2003-12-02
US10/724,834 US7047252B2 (en) 2003-12-02 2003-12-02 Complex computation across heterogenous computer systems
PCT/US2004/040114 WO2005057410A1 (en) 2003-12-02 2004-12-02 Complex computation across heterogenous computer systems

Publications (3)

Publication Number Publication Date
JP2007513426A true JP2007513426A (ja) 2007-05-24
JP2007513426A5 JP2007513426A5 (ja) 2007-11-29
JP4774372B2 JP4774372B2 (ja) 2011-09-14

Family

ID=34620148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006542690A Active JP4774372B2 (ja) 2003-12-02 2004-12-02 異種コンピュータシステムにわたる複雑計算

Country Status (9)

Country Link
US (1) US7047252B2 (ja)
EP (1) EP1690183B1 (ja)
JP (1) JP4774372B2 (ja)
CN (1) CN1890643B (ja)
AU (1) AU2004297890B2 (ja)
CA (1) CA2545933C (ja)
DE (1) DE602004020919D1 (ja)
HK (1) HK1090147A1 (ja)
WO (1) WO2005057410A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536492A (ja) * 2010-07-07 2013-09-19 アリババ・グループ・ホールディング・リミテッド 複数のシステムを用いたデータ解析
JP2015022388A (ja) * 2013-07-17 2015-02-02 株式会社東芝 データベース・システム
WO2017056189A1 (ja) * 2015-09-29 2017-04-06 株式会社日立製作所 管理システム、データ処理方法、及び記憶媒体
JP2017517775A (ja) * 2014-06-11 2017-06-29 オラクル・インターナショナル・コーポレイション データストリームのカスタムパーティション
US10628424B2 (en) 2016-09-15 2020-04-21 Oracle International Corporation Graph generation for a distributed event processing system
US10713249B2 (en) 2016-09-15 2020-07-14 Oracle International Corporation Managing snapshots and application state in micro-batch based event processing systems
US10880363B2 (en) 2017-03-17 2020-12-29 Oracle International Corporation Integrating logic in micro batch based event processing systems
US10958714B2 (en) 2017-03-17 2021-03-23 Oracle International Corporation Framework for the deployment of event-based applications
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767167B2 (en) * 2000-04-27 2017-09-19 Proquest Llc Method and system for retrieving search results from multiple disparate databases
EP1831803A2 (en) * 2004-12-15 2007-09-12 Koninklijke Philips Electronics N.V. System and method for managing binary large objects
US7680862B2 (en) * 2005-04-18 2010-03-16 Oracle International Corporation Rewriting table functions as SQL strings
US7693912B2 (en) 2005-10-31 2010-04-06 Yahoo! Inc. Methods for navigating collections of information in varying levels of detail
US20070100883A1 (en) * 2005-10-31 2007-05-03 Rose Daniel E Methods for providing audio feedback during the navigation of collections of information
US20070100915A1 (en) * 2005-10-31 2007-05-03 Rose Daniel E Methods for displaying dynamic suggestions in a user interface
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US8848442B2 (en) * 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7962926B2 (en) * 2006-04-05 2011-06-14 International Business Machines Corporation Method, system, and program storage device for generating a retry message when a thread in a real-time application is unavailable to process a request to utilize the real-time application
US20080027782A1 (en) * 2006-04-07 2008-01-31 Juliana Freire Managing provenance of the evolutionary development of workflows
US8060391B2 (en) * 2006-04-07 2011-11-15 The University Of Utah Research Foundation Analogy based workflow identification
US20080040181A1 (en) * 2006-04-07 2008-02-14 The University Of Utah Research Foundation Managing provenance for an evolutionary workflow process in a collaborative environment
US7680765B2 (en) * 2006-12-27 2010-03-16 Microsoft Corporation Iterate-aggregate query parallelization
CN101236513B (zh) * 2007-01-30 2012-07-18 阿里巴巴集团控股有限公司 一种分布式任务系统和分布式任务管理方法
US8209701B1 (en) * 2007-09-27 2012-06-26 Emc Corporation Task management using multiple processing threads
US8006175B2 (en) * 2007-10-29 2011-08-23 Microsoft Corporation Calculation of spreadsheet data
US20090125553A1 (en) * 2007-11-14 2009-05-14 Microsoft Corporation Asynchronous processing and function shipping in ssis
US8190633B2 (en) * 2008-06-16 2012-05-29 The University Of Utah Research Foundation Enabling provenance management for pre-existing applications
US10789272B2 (en) 2011-06-06 2020-09-29 International Business Machines Corporation Scalable, distributed containerization across homogenous and heterogeneous data stores
EP2746936A4 (en) 2011-10-24 2015-03-11 Huawei Tech Co Ltd METHOD AND SYSTEM FOR STARTING AN APPLICATION IN A LINUX CONTAINER
WO2013086384A1 (en) 2011-12-08 2013-06-13 Oracle International Corporation Techniques for maintaining column vectors of relational data within volatile memory
US9342314B2 (en) 2011-12-08 2016-05-17 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors
US10534606B2 (en) 2011-12-08 2020-01-14 Oracle International Corporation Run-length encoding decompression
US9697174B2 (en) 2011-12-08 2017-07-04 Oracle International Corporation Efficient hardware instructions for processing bit vectors for single instruction multiple data processors
US9792117B2 (en) 2011-12-08 2017-10-17 Oracle International Corporation Loading values from a value vector into subregisters of a single instruction multiple data register
CN103455366A (zh) * 2012-06-01 2013-12-18 阿里巴巴集团控股有限公司 一种调用外部系统服务的方法及装置
US9336302B1 (en) 2012-07-20 2016-05-10 Zuci Realty Llc Insight and algorithmic clustering for automated synthesis
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US8849871B2 (en) * 2012-10-04 2014-09-30 Oracle International Corporation Efficient pushdown of joins in a heterogeneous database system involving a large-scale low-power cluster
US9166865B2 (en) * 2012-11-07 2015-10-20 International Business Machines Corporation Mobility operation resource allocation
US9378232B2 (en) 2013-09-21 2016-06-28 Oracle International Corporation Framework for numa affinitized parallel query on in-memory objects within the RDBMS
US10089486B2 (en) * 2013-10-31 2018-10-02 Hewlett Packard Enterprise Development Lp Non-blocking registration in distributed transactions
CN103645940A (zh) * 2013-12-04 2014-03-19 清华大学 远程调用方法及系统
US10437843B2 (en) 2014-07-29 2019-10-08 Microsoft Technology Licensing, Llc Optimization of database queries via transformations of computation graph
US10169433B2 (en) * 2014-07-29 2019-01-01 Microsoft Technology Licensing, Llc Systems and methods for an SQL-driven distributed operating system
US10176236B2 (en) 2014-07-29 2019-01-08 Microsoft Technology Licensing, Llc Systems and methods for a distributed query execution engine
US20160140195A1 (en) * 2014-11-19 2016-05-19 Oracle International Corporation Custom parallization for database table loading
US10073885B2 (en) 2015-05-29 2018-09-11 Oracle International Corporation Optimizer statistics and cost model for in-memory tables
US9990308B2 (en) 2015-08-31 2018-06-05 Oracle International Corporation Selective data compression for in-memory databases
CN105528253A (zh) * 2015-11-24 2016-04-27 无锡江南计算技术研究所 一种异构众核系统上的流水式通信并行方法
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
US10599488B2 (en) 2016-06-29 2020-03-24 Oracle International Corporation Multi-purpose events for notification and sequence control in multi-core processor systems
US10380058B2 (en) 2016-09-06 2019-08-13 Oracle International Corporation Processor core to coprocessor interface with FIFO semantics
US10936554B2 (en) 2016-09-17 2021-03-02 Oracle International Corporation Incremental rationalization in hierarchical systems
US10783102B2 (en) 2016-10-11 2020-09-22 Oracle International Corporation Dynamically configurable high performance database-aware hash engine
US10176114B2 (en) 2016-11-28 2019-01-08 Oracle International Corporation Row identification number generation in database direct memory access engine
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
CN107273525A (zh) * 2017-06-23 2017-10-20 上海携程商务有限公司 函数式查询方法及系统
CN107918676B (zh) * 2017-12-15 2022-01-18 联想(北京)有限公司 结构化查询的资源优化方法及数据库查询系统
DE102018104752A1 (de) * 2018-03-01 2019-09-05 Carl Zeiss Ag Verfahren zum Ausführen und Übersetzen eines Computerprogrammes in einem Rechnerverbund, insbesondere zum Steuern eines Mikroskops
US11467878B2 (en) * 2018-09-28 2022-10-11 Amazon Technologies, Inc. Orchestration of computations using a remote repository
US11868355B2 (en) * 2019-03-28 2024-01-09 Indiavidual Learning Private Limited System and method for personalized retrieval of academic content in a hierarchical manner
CN110008042A (zh) * 2019-03-28 2019-07-12 北京易华录信息技术股份有限公司 一种基于容器的算法级联方法及系统
US20200320035A1 (en) * 2019-04-02 2020-10-08 Micro Focus Software Inc. Temporal difference learning, reinforcement learning approach to determine optimal number of threads to use for file copying
US20220222256A1 (en) * 2019-04-03 2022-07-14 University Of South Florida Batched query processing and optimization
US11461324B2 (en) 2019-08-29 2022-10-04 Oracle International Corporation First futamura projection in the context of SQL expression evaluation
US11531652B2 (en) * 2019-08-30 2022-12-20 Oracle International Corporation Database modularization of pluggable guest languages
US11294894B2 (en) 2019-08-30 2022-04-05 Oracle International Corporation Dynamic resolution of dependencies for database guest languages

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271738A (ja) * 1994-03-31 1995-10-20 Nec Corp ソフトウエア・アーキテクチャを用いた高度並列コンピュータ・システムの制御方式
JPH10232875A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd データベース管理方法および並列データベース管理システム
US6009455A (en) * 1998-04-20 1999-12-28 Doyle; John F. Distributed computation utilizing idle networked computers
US6041344A (en) * 1997-06-23 2000-03-21 Oracle Corporation Apparatus and method for passing statements to foreign databases by using a virtual package
WO2000028431A1 (en) * 1998-11-05 2000-05-18 Bea Systems, Inc. Clustered enterprise javatm having a message passing kernel in a distributed processing system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6434694B1 (en) * 1998-06-29 2002-08-13 Sun Microsystems, Inc. Security for platform-independent device drivers
US6483851B1 (en) * 1998-11-13 2002-11-19 Tektronix, Inc. System for network transcoding of multimedia data flow
US6434594B1 (en) * 1999-03-09 2002-08-13 Talk2 Technology, Inc. Virtual processing network enabler
US20030158886A1 (en) * 2001-10-09 2003-08-21 Walls Jeffrey J. System and method for configuring a plurality of computers that collectively render a display
US6924799B2 (en) * 2002-02-28 2005-08-02 Hewlett-Packard Development Company, L.P. Method, node, and network for compositing a three-dimensional stereo image from a non-stereo application
US20030212742A1 (en) * 2002-05-07 2003-11-13 Hochmuth Roland M. Method, node and network for compressing and transmitting composite images to a remote client

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271738A (ja) * 1994-03-31 1995-10-20 Nec Corp ソフトウエア・アーキテクチャを用いた高度並列コンピュータ・システムの制御方式
JPH10232875A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd データベース管理方法および並列データベース管理システム
US6041344A (en) * 1997-06-23 2000-03-21 Oracle Corporation Apparatus and method for passing statements to foreign databases by using a virtual package
US6009455A (en) * 1998-04-20 1999-12-28 Doyle; John F. Distributed computation utilizing idle networked computers
WO2000028431A1 (en) * 1998-11-05 2000-05-18 Bea Systems, Inc. Clustered enterprise javatm having a message passing kernel in a distributed processing system
JP2002529855A (ja) * 1998-11-05 2002-09-10 ビーイーエイ システムズ, インコーポレイテッド 分散処理システムにおけるメッセージパッシングカーネルを有するクラスター化エンタープライズジャバ

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013536492A (ja) * 2010-07-07 2013-09-19 アリババ・グループ・ホールディング・リミテッド 複数のシステムを用いたデータ解析
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
JP2015022388A (ja) * 2013-07-17 2015-02-02 株式会社東芝 データベース・システム
JP2017517775A (ja) * 2014-06-11 2017-06-29 オラクル・インターナショナル・コーポレイション データストリームのカスタムパーティション
WO2017056189A1 (ja) * 2015-09-29 2017-04-06 株式会社日立製作所 管理システム、データ処理方法、及び記憶媒体
US11573965B2 (en) 2016-09-15 2023-02-07 Oracle International Corporation Data partitioning and parallelism in a distributed event processing system
US10789250B2 (en) 2016-09-15 2020-09-29 Oracle International Corporation Non-intrusive monitoring output of stages in micro-batch streaming
US10713249B2 (en) 2016-09-15 2020-07-14 Oracle International Corporation Managing snapshots and application state in micro-batch based event processing systems
US10628424B2 (en) 2016-09-15 2020-04-21 Oracle International Corporation Graph generation for a distributed event processing system
US11615088B2 (en) 2016-09-15 2023-03-28 Oracle International Corporation Complex event processing for micro-batch streaming
US11657056B2 (en) 2016-09-15 2023-05-23 Oracle International Corporation Data serialization in a distributed event processing system
US11977549B2 (en) 2016-09-15 2024-05-07 Oracle International Corporation Clustering event processing engines
US10880363B2 (en) 2017-03-17 2020-12-29 Oracle International Corporation Integrating logic in micro batch based event processing systems
US10958714B2 (en) 2017-03-17 2021-03-23 Oracle International Corporation Framework for the deployment of event-based applications
US11394769B2 (en) 2017-03-17 2022-07-19 Oracle International Corporation Framework for the deployment of event-based applications
US11503107B2 (en) 2017-03-17 2022-11-15 Oracle International Corporation Integrating logic in micro batch based event processing systems

Also Published As

Publication number Publication date
EP1690183A1 (en) 2006-08-16
CN1890643A (zh) 2007-01-03
CA2545933C (en) 2009-09-15
AU2004297890A1 (en) 2005-06-23
JP4774372B2 (ja) 2011-09-14
HK1090147A1 (en) 2006-12-15
CN1890643B (zh) 2011-02-02
US20050119988A1 (en) 2005-06-02
WO2005057410A1 (en) 2005-06-23
DE602004020919D1 (de) 2009-06-10
AU2004297890B2 (en) 2009-02-19
CA2545933A1 (en) 2005-06-23
US7047252B2 (en) 2006-05-16
EP1690183B1 (en) 2009-04-29

Similar Documents

Publication Publication Date Title
JP4774372B2 (ja) 異種コンピュータシステムにわたる複雑計算
US8112443B2 (en) Method and system for executing a database query
US7885969B2 (en) System and method for executing compute-intensive database user-defined programs on an attached high-performance parallel computer
US9092491B2 (en) Searching documentation across interconnected nodes in a distributed network
US8478790B2 (en) Mechanism for co-located data placement in a parallel elastic database management system
US7143078B2 (en) System and method for managed database query pre-optimization
US7451136B2 (en) System and method for searching multiple disparate search engines
US8620903B2 (en) Database distribution system and methods for scale-out applications
US7558922B2 (en) Apparatus and method for quick retrieval of search data by pre-feteching actual data corresponding to search candidate into cache memory
US7464073B2 (en) Application of queries against incomplete schemas
US7103613B2 (en) Object oriented query root leaf inheritance to relational join translator method, system, article of manufacture, and computer program product
US6850927B1 (en) Evaluating queries with outer joins by categorizing and processing combinations of relationships between table records
CN110019314B (zh) 基于数据项分析的动态数据封装方法、客户端和服务端
US20120036166A1 (en) Effective dating for table or relationship modifications
US11204746B2 (en) Encoding dependencies in call graphs
US7213014B2 (en) Apparatus and method for using a predefined database operation as a data source for a different database operation
US8719242B2 (en) System and method for a database access statement interceptor
US8606744B1 (en) Parallel transfer of data from one or more external sources into a database system
US7707138B2 (en) Identifying columns for row based operations
US20070136332A1 (en) System for managing a user defined type in a database

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

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: 20110621

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110627

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4774372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250