JP7220321B2 - クラスタ化されたデータベース環境でのデータのパーティショニング - Google Patents

クラスタ化されたデータベース環境でのデータのパーティショニング Download PDF

Info

Publication number
JP7220321B2
JP7220321B2 JP2022109109A JP2022109109A JP7220321B2 JP 7220321 B2 JP7220321 B2 JP 7220321B2 JP 2022109109 A JP2022109109 A JP 2022109109A JP 2022109109 A JP2022109109 A JP 2022109109A JP 7220321 B2 JP7220321 B2 JP 7220321B2
Authority
JP
Japan
Prior art keywords
data
database
application server
data source
server
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.)
Active
Application number
JP2022109109A
Other languages
English (en)
Other versions
JP2022153422A (ja
Inventor
チェット・チャン・ウォン
シヴァ・ストラム
サチン・ヴィジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Landis and Gyr Innovations Inc
Original Assignee
Landis and Gyr Innovations Inc
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 Landis and Gyr Innovations Inc filed Critical Landis and Gyr Innovations Inc
Publication of JP2022153422A publication Critical patent/JP2022153422A/ja
Application granted granted Critical
Publication of JP7220321B2 publication Critical patent/JP7220321B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/23Updating
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers

Description

本開示は、概略、データシャーディングに関する。より具体的には、本開示は、限定するものではないが、クラスタ化されたデータベース環境におけるデータのパーティショニングに関するものであり、これにより、クラスタ化されたデータベース環境における環境のスケーラビリティ及びクラスタ化されたデータベース環境におけるデバイスの性能を向上させることができる。
クラスタ化されたデータベース環境では、様々なサーバ又は他のデバイスが、一つ又は複数のデータセットにアクセスすることがある。幾つかの既存のクラスタ化データベース環境では、サーバ又はデバイスがデータセットへのアクセスを共有することがあり、これは、環境内の一つ又は複数のサーバ又は他のデバイスが同時に同じデータセットにアクセスしようとしたときに発生し得る、クラスタ待ち若しくはサーバ競合イベントなどの、環境内の様々な技術的問題を引き起こす可能性がある。
いくつかの既存のクラスタ化されたデータベース環境では、クラスタ待ちイベント又はサーバ競合イベントは、他のサーバが同じデータセットにアクセス又は処理しているときに、サーバがデータセットにアクセス又は処理するのを阻止することによって等、環境内の一つ又は複数のサーバ又はデバイスが様々な操作を実行する能力を阻止、遅延、又はその他の方法で影響を与える可能性がある。一つ又は複数のサーバ又はデバイスが操作を実行することを阻止又は遅延させることは、サーバ又はデバイスが操作を実行することを阻止又は遅延させられている間に、ネットワークリソース、又はサーバ若しくはデバイスのコンピューティングリソースを浪費する可能性がある。更に、既存のクラスタ化されたデータベース環境におけるこのような技術的問題は、様々なサーバ若しくはデバイスが通信的に接続され、ランダムな方法で(例えば、ロードバランサデバイスから)データを受信し、同じデータに同時にアクセスしようとする可能性がある、高可用性クラスタ化データベース環境における相互接続トラフィック上で増幅される可能性がある。更に、既存のクラスタ化されたデータベース環境におけるこのような技術的問題は、環境のスケールアウトを妨げる(例えば、更なるデータベースサーバの追加を妨げる)可能性があり、又は、データベース環境がスケールアウトされる場合には、更に増幅される可能性がある。
このように、既存のクラスタ化されたデータベースシステムおよび方法は、上述にて議論されたものなどの欠点を呈しており、大規模で複雑なデータセットを管理または分析することができない場合がある。したがって、これらの及び他の理由から、クラスタ化されたデータベース環境でデータを管理する改良された技術、及び、改良されたクラスタ化されたデータベースシステムが、望まれている。
本発明についてのカバーされる形態は、この要約ではなく、特許請求の範囲によって定義される。この要約は、本発明の様々な形態の高レベルの概要であり、以下の詳細な説明にて更に記載されている概念の幾つかを紹介する。この要約は、発明の主題の重要な特徴若しくは本質的な特徴を特定することを意図するものではなく、発明の主題の範囲を決定するために単独で用いることを意図するものでもない。主題は、明細書全体、任意の若しくは全ての図面、及び各請求項の適切な部分を参照して理解されるべきである。
本開示の様々な実施例は、クラスタ化されたデータベース環境でデータをパーティショニングするためのシステム及び方法を提供し、これにより、環境のスケーラビリティ及び環境内のデバイスのパフォーマンスを改善することができる。
一つの実施例では、システムは、サーバと、アプリケーションサーバを含む、サーバに通信上結合する複数のアプリケーションサーバグループと、複数のアプリケーションサーバグループに通信上結合する複数のデータベースサーバと、及び、複数のパーティションに分割されたシステムデータベースとを含む。サーバは、プロセッサと、プロセッサに通信上結合する非一時性コンピュータ読取可能媒体とを含む。サーバは、データソースからのデータを受信するように構成されており、データは、データソースに関連付けられたソース識別子及びキー識別子を含む。プロセッサはまた、データソースに関連付けられたソース識別子に基づいて、データソースに関連付けられた、複数のアプリケーションサーバグループのうちの、アプリケーションサーバグループを決定するように構成されている。プロセッサは更に、データソースからのデータをアプリケーションサーバグループのアプリケーションサーバに送信するように構成され、ここで、アプリケーションサーバは、アプリケーションサーバグループに関連付けられている複数のデータベースサーバのうちのデータベースサーバを決定し、データソースからのデータをデータベースサーバに送信するように構成され、ここで、データベースサーバは、データソースのキー識別子に基づいて、データソースに関連付けられているシステムデータベースの複数のパーティションのうちの特定のパーティションを決定するように構成され、特定のパーティションは、データソースからのデータを格納するために使用可能である。
別の実施例では、方法は、サーバによって、データソースからデータを取得するステップを含み、そのデータは、データソースに関連付けされたソース識別子とキー識別子とを含む。方法は更に、サーバによって、データソースのソース識別子に基づいて、データソースに関連付けられた、複数のアプリケーションサーバグループのうちのアプリケーションサーバグループを決定するステップを含む。方法はまた、サーバによって、データソースからのデータを、アプリケーションサーバグループのアプリケーションサーバに送信するステップを含む。方法はまた、アプリケーションサーバによって、アプリケーションサーバグループに関連付けられた複数のデータベースサーバのうちのデータベースサーバを決定するステップを含む。方法はまた、アプリケーションサーバによって、データソースからのデータをデータベースサーバに送信するステップを含む。方法はまた、データベースサーバによって、データソースのキー識別子に基づいて、データソースに関連付けられたシステムデータベースの複数のパーティションのうちの特定のパーティションを決定するステップを含み、ここで、特定のパーティションは、データソースからのデータを格納するために使用可能である。
別の実施例では、方法は、サーバによって、データソースからデータを取得するステップを含み、そのデータは、データソースに関連付けられたソース識別子とキー識別子とを含む。方法はまた、サーバによって、データソースに関連付けられたソース識別子に基づいて、データソースに関連付けられた、複数のアプリケーションサーバグループのうちのアプリケーションサーバグループを決定するステップを含む。方法は更に、サーバによって、データソースからのデータを、アプリケーションサーバグループのアプリケーションサーバに送信するステップを含む。方法はまた、アプリケーションサーバによって、アプリケーションサーバグループに関連付けられた、複数のデータベースサーバのうちの第1のデータベースサーバを決定するステップを含む。方法はまた、アプリケーションサーバによって、アプリケーションサーバグループに関連付けられた第1のデータベースサーバのエラーを検出するステップを含む。方法はまた、アプリケーションサーバによって、データソースからデータを受信するための、複数のデータベースサーバのうちの第2のデータベースサーバを特定するステップを含む。方法はまた、アプリケーションサーバによって、データソースからのデータを、複数のデータベースサーバの第2のデータベースサーバに送信するステップを含む。方法はまた、第2のデータベースサーバによって、データソースのキー識別子に基づいて、データソースに関連付けられた、システムデータベースの複数のパーティションのうちの特定のパーティションを決定するステップを含み、ここで、特定のパーティションは、データソースからのデータを格納するために使用可能である。
一つ若しくは複数の形態及び実施例の詳細は、添付の図面及び以下の説明に記載されている。他の特徴および形態は、明細書、図面、及び特許請求の範囲から明らかになるであろう。
図1は、本開示の一実施例によるデータ分割システムの例である。 図2は、本開示の別の実施例によるデータ分割システムの例である。 図3は、本開示の一実施例による、クラスタ化されたデータベース環境でデータを分割するためのプロセスの例を示すフローチャートである。 図4は、本開示の一実施例によるデータ分割システムの例である。
本開示の特定の形態及び特徴は、環境のスケーラビリティ及び環境内のデバイスのパフォーマンスを向上させることができる、クラスタ化されたデータベース環境におけるデータのパーティショニングに関する。上述したように、既存のクラスタ化されたデータベース環境及びシステムは、一つ若しくは複数のデータセットへのアクセスを共有する様々なデバイス(例えば、サーバ、データベースなど)を含むことがあり、このことは、一つ若しくは複数のデバイスが同時に同じデータセットにアクセスしようとするときに、クラスタ待ち又は競合イベントを発生させる可能性がある。本明細書に記載の特定の実施例は、データソースからのデータが、特定のデバイス(例えば、サーバやデータベース)若しくはデバイスのグループに、一貫して送信され、処理されるように、データソースの識別子に基づいてクラスタ化されたデータベース環境内のデータをパーティショニングすることにより、これらの問題に対処するが、このことは、環境のスケーラビリティ及び環境内のデバイスのパフォーマンスを向上させることができる。
一つの実施例では、クラスタ化されたデータベース環境若しくはシステムは、サーバと、様々なアプリケーションサーバと、様々なデータベースサーバと、及び、システムデータベースとを含む。 この実施例では、様々なアプリケーションサーバは、グループ(例えば、ファーム)に分割することができ、アプリケーションサーバの各グループは、特定のデータベースサーバに関連付けられる(例えば、通信的に接続される)ことができる。幾つかの実施例では、環境内のアプリケーションサーバグループの数は、環境内のデータベースサーバの数に基づくことができ、各グループ内のアプリケーションサーバの数は、アプリケーションサーバグループの数に基づくことができる。例えば、環境が、三つのデータベースサーバと24個のアプリケーションサーバとを含むならば、アプリケーションサーバは、夫々8個のアプリケーションサーバを含む三つのアプリケーションサーバグループに分割することができる。別の実施例では、各アプリケーションサーバグループは、任意の数のアプリケーションサーバを含むことができる。例えば、各アプリケーションサーバグループは、異なる数のアプリケーションサーバを含むことができる。
この実施例により引き続き、サーバは、一つ若しくは複数のデータソースと通信的に結合され、データソースからデータを受信することができる。データソースの例としては、電気、ガス、水などの資源の消費量を測定するためのメータデバイスを含み得る。データソースは、データを測定又は受信(例えば、取得)し、任意にデータを保存し、データをサーバに通信してもよい。データは、データソースによって測定又は受信(例えば、取得)された情報を、データソースに関連付けられたソース識別子若しくはキー識別子と共に含むことができる。データソースに関連付けられたソース識別子は、データソースを識別し、データソースからのデータを特定のグループのアプリケーションサーバ、アプリケーションサーバ、又はデータベースサーバにルーティングするのに用い得る識別子であり得る。例として、メータデータソース若しくはデバイスに関連付けられたソース識別子は、メータ識別子とすることができる。データソースに関連付けられたキー識別子は、データソースからのデータをシステムデータベースの特定の部分若しくはパーティションにルーティングするのに用い得る識別子であり得る。例として、データソースがメータデバイスであるならば、メータデバイスに関連付けられたキー識別子は、システムデータベースの特定のパーティションに対応するメータデバイスのメータ識別子の一部であり得る。
サーバは、プロセッサと、及び、データベース(例えば、ルックアップテーブル)を含むメモリとを含むことができ、サーバは、様々なデータソースから受信するデータのための特定のルートを決定することができる。例えば、プロセッサは、一つ若しくは複数の式、アルゴリズム、方法などを用いて、データソースのソース識別子に基づいて、データソースに関連付けられたルーティング識別子を決定することができる。別の実施例では、プロセッサは、データベースにアクセスして、データソースに関連付けられたソース識別子に基づいて、データソースに関連付けられたルーティング識別子を決定することができる。ルーティング識別子は、データソースから受信するデータのための特定のルートを決定するのに用いることができる。例えば、データベースは、様々なデータソースに関連付けられたソース識別子を示すデータと、各ソース識別子に関連付けられたルーティング識別子とを含むことができる。ルーティング識別子は、データソースに関連付けられたアプリケーションサーバ、アプリケーションサーバ、又は、データベースサーバの、特定のグループを示すことができる。例えば、ルーティング識別子は、データソースからデータを受信若しくは処理することができる環境の、特定のグループのアプリケーションサーバ、又は特定のデータベースサーバを決定するのに用いることができる。この実施例では、サーバは、データソースからデータを、データソースに関連付けられたソース識別子と共に受信し、サーバのプロセッサは、データソースのソース識別子に関連付けられたルーティング識別子を決定することができる。この実施例では、サーバは、データソースに関連付けられたルーティング識別子を決定することに対応して、データソースからのデータを、データソースに関連付けられた特定のアプリケーションサーバグループに、送信することができる。
この実施例では、データソースに関連付けられたアプリケーションサーバグループのアプリケーションサーバは、サーバからデータを受信し、そのデータを処理又は分析することができる。次に、アプリケーションサーバは、処理されたデータを、アプリケーションサーバグループに関連付けられた特定のデータベースサーバに送信することができる。データベースサーバは、プロセッサと、データベースを含むメモリとを含むことができる。データベースサーバのプロセッサは、アプリケーションサーバから受信したデータをシステムデータベースの特定の部分またはパーティションにルーティングするように、データベースにアクセスすることができる。例えば、システムデータベースは、様々なデータソースに関連付けられたキー識別子に基づいてパーティショニング(例えば、分割)することができる。例として、システムデータベースの各部分またはパーティションは、特定のデータソースのキー識別子に関連付けられることができる。この実施例では、データベースサーバのデータベースは、様々なデータソースに関連付けられたキー識別子を示すデータと、各キー識別子に関連付けられたシステムデータベースの部分とを含むことができる。データベースサーバは、データベースを用いて、データソースから得られたデータを、データソースのキー識別子に対応するシステムデータベースの特定の部分にルーティングすることができる。
例示的な例として、ガスメータは、データを測定若しくは受信し、そのデータを、ガスメータのソース識別子(例えば、メータ識別子)およびキー識別子(例えば、メータ識別子の最後の2桁)と共に、サーバに送信する。サーバは、メータのソース識別子に基づいてメータに関連付けられたルーティング識別子を決定し、ルーティング識別子を用いて、ガスメータからのデータを処理できるアプリケーションサーバの特定のグループと、アプリケーションサーバのグループに関連付けられた特定のデータベースサーバとを決定できる。アプリケーションサーバのグループのアプリケーションサーバは、ガスメータデバイスからのデータを処理し、処理されたデータをデータベースサーバに送信できる。データベースサーバは、ガスメータデバイスのキー識別子を用いて、データを格納すべき、システムデータベースの一部若しくはパーティションを決定することができる。例えば、システムデータベースを様々な部分に分割し、システムデータベースの各部分を特定のガスメータデバイスのキー識別子に対応させる。この実施例では、データベースサーバは、ガスメータデバイスからのデータをシステムデータベースに送信し、ガスメータデバイスのキー識別子に対応するシステムデータベースの部分に格納する。
このようにして、データソースから得られたデータは、アプリケーションサーバ及びデータベースサーバの特定のグループにルーティングすることができ、これにより、クラスタ化されたデータベース環境において、データソースに関連付けられていない、若しくはデータソースに割り当てられていない他のアプリケーションサーバ若しくはデータベースサーバが、データソースからのデータにアクセスしたり、データソースからのデータを処理したりすることを防ぐことができる。さらに、データソースからのデータは、システムデータベースの特定の部分に格納することができる。幾つかの実施形態では、本明細書に記載のように、一つ若しくは複数のデータソースからのデータをルーティングすることにより、クラスタ化されたデータベース環境内の様々なデバイスが、同じデータセットへのアクセスを共有することを防ぐことができ、これにより、クラスタ化されたデータベース環境内のクラスタ待ち若しくは競合の問題を緩和若しくは排除することができ、環境のスケーラビリティ及び環境内のデバイスのパフォーマンスを向上させることができる。
これらの例示的な実施例は、本明細書で説明する一般的な主題を読者に紹介するべく示されるものであり、本開示の概念の範囲を限定することを意図するものではない。以下のセクションでは、同じ数字が同じ要素を示す図面を参照して様々な更なる特徴及び例を説明し、方向性の記載を用いて例示的な実施例を説明するが、例示的な実施例と同様に、本開示を制限するのに用いられるものではない。
図1は、本開示の一実施例に係る、データ分割システム100の例である。システム100は、データを分割またはシャード化することができる任意のタイプのシステム(例えば、サーバ、データベース、若しくはデバイスの間又は内部でデータをパーティショニング若しくは分割するためのシステム)であることができる。幾つかの実施例では、システム100は、システム100によって受信されたデータに対して様々な操作を実行することができる様々なサーバ(例えば、ノード)を含むシステムのような、クラスタ化されたデータベースシステムであればよい。
図1に示す例では、システム100は、一つ若しくは複数のサーバ102a-d、アプリケーションサーバグループ(例えば、ファーム)104a-c、データベースサーバ106a-c、及びシステムデータベース108を含む。この実施例では、アプリケーションサーバグループ104a-cは、各種アプリケーションサーバ110a-lを含む。各サーバ102a-d、データベースサーバ106a-c、若しくはアプリケーションサーバ110a-lは、任意のコンピューティングシステム(例えば、デバイス)若しくはストレージデバイスであればよく、一つ若しくは複数のコンポーネントを含み得る。例えば、各サーバ102a-d、データベースサーバ106a-c、若しくはアプリケーションサーバ110a-lは、プロセッサ、バス、データベース、メモリ、入出力インタフェースコンポーネント、ディスプレイデバイス、通信デバイスなどを含み得る。
幾つかの実施例では、システム100内のアプリケーションサーバグループ104a-cの数は、システム100内のデータベースサーバ106a-cの数に基づき得るものであり、各アプリケーションサーバグループ104a-cは、特定のデータベースサーバ106a-cに関連付けられ得る(例えば、通信的に結合され得る)。例えば、図1に描かれた例では、システム100は、三つのデータベースサーバ106a-cと、特定のデータベースサーバ106a-cに関連付けられた三つの対応するアプリケーションサーバグループ104a-cとを含む。この実施例では、アプリケーションサーバグループ104aは、データベースサーバ106aに通信上結合し、アプリケーションサーバグループ104bは、データベースサーバ106bに通信上結合し、アプリケーションサーバグループ104cは、データベースサーバ106cに通信上結合する。幾つかの実施例では、各アプリケーションサーバグループ104a-c内のアプリケーションサーバ110a-lの数は、システム100内のアプリケーションサーバグループ104a-cの数に基づき得る。例えば、図1に描かれた例では、システム100は、12個のアプリケーションサーバ110a-lと、それぞれが4個のアプリケーションサーバを含む3つのアプリケーションサーバグループ104a-cとを含む。別の実施例では、各アプリケーションサーバグループ104a-cは、任意の数のアプリケーションサーバ110a-lを含み得る。例えば、各アプリケーションサーバグループ104a-cは、異なる数のアプリケーションサーバ110a-lを含み得る。
幾つかの実施例では、一つ若しくは複数のデータソース10a-cは、システム100の一つ若しくは複数のデバイス若しくはコンポーネント(例えば、サーバ102a-d)に通信上結合し得る。別の実施例では、データソース10a-cは、一つ若しくは複数のリモートデバイス若しくはサーバに通信上結合し得る。例えば、データソース10a-cは、一つ若しくは複数の他のデータソース、メータデバイス、ネットワークデバイスなどに通信上結合し得る。幾つかの実施例では、データソース10a-cは、無線メッシュネットワークを介して、一つ若しくは複数のデータソース、メータデバイス、若しくはネットワークデバイスと通信(例えば、データを送信及び受信)し得る。更に、幾つかの実施例では、コレクタデバイスなどのネットワークデバイスは、データソース10a-cと一つ若しくは複数のサーバ(例えば、サーバ102a-d)との間の通信を促進し得る。
幾つかの実施例では、各サーバ102a-dは、一つ若しくは複数のデータソース10a-cと通信上結合し、データソースからデータを受信できる。データソース10a-cの例は、電気、ガス、水などの資源の消費を測定するメータデバイスを含み得る。データソース10a-cは、データを測定若しくは受信(例えば、取得)し、データを保存し、サーバ102a-dにデータを通信し得る。データは、データソース10a-cによって測定若しくは受信(例えば、取得)された情報を、データソース10a-cに関連付けられたソース識別子若しくはキー識別子と共に、含み得る。ソース識別子は、データソース10a-cを識別してデータソース10a-cからのデータをアプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、若しくはデータベースサーバ106a-cの、特定のグループにルーティングするのに用いられ得る、任意のデータ若しくは情報であり得る。一例として、メータデータソース若しくはデバイスのソース識別子は、メータ識別子とすることができる。データソース10a-cのキー識別子は、データソース10a-cからのデータをシステムデータベース108の特定の部分若しくはパーティションにルーティングするのに用い得る、任意のデータ若しくは情報であり得る。一例として、メータデバイスのキー識別子は、メータデバイスのメータ識別子のうち、システムデータベース108の特定の部分若しくはパーティションに対応する部分であってもよい。
各サーバ102a-dは、プロセッサと、データベース(例えば、ルックアップテーブル)を含むメモリとを、含むことができる。プロセッサは、メモリと(例えば、バスを介して)通信上結合し得る。サーバ102a-dのメモリは、電源オフ時に情報を保持する任意のタイプのメモリデバイスであり得る。幾つかの実施例では、サーバ102a-dは、データソースからデータを受信することができ、サーバ102a-dのプロセッサは、データソースから受信したデータのための特定のルートを決定することができる。一例として、サーバ102aのプロセッサは、データベースにアクセスして、データソース10a-cから受信したデータのための特定の経路を決定することができる。例えば、サーバ102aのデータベースは、様々なデータソース10a-cに関連付けられたソース識別子を示すデータと、(例えば、ルックアップテーブル112の)各ソース識別子に関連付けられたルーティング識別子を示すデータとを、含むことができる。いくつかの実施例では、サーバ102aは、様々なソース識別子及びルーティング識別子を示すデータを(例えば、他のデバイスから、若しくはユーザ入力を介して)取得若しくは受信することができる。ルーティング識別子は、データソース10a-cに関連付けられた(例えば、データソースからデータを受信若しくは処理するためにデータソースに割り当てられている)特定のアプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、若しくはデータベースサーバ106a-cを示すことができる。例えば、図1に描かれた例では、各サーバ102a-dは、様々なソース識別子114a-e(例えば、様々なメータ識別子)と、各ソース識別子114a-eに関連付けられたルーティング識別子116a-e(例えば、値若しくは任意の他の識別子)とを示す、データを含むルックアップテーブル112を含み得る。この例では、各ルーティング識別子116a-eは、各ソース識別子114a-eに関連付けられたデータソース10a-cからデータを受信または処理するために、各ソース識別子114a-eに割り当てられた特定のアプリケーションサーバグループ104a-c若しくはデータベースサーバ106a-cを示す。例えば、ルーティング識別子116a及び116dは、ソース識別子114a及び114dがアプリケーションサーバグループ104a及び/若しくはデータベースサーバ106aに関連付けられている(例えば、割り当てられている)ことを示し、ルーティング識別子116b及び116eは、ソース識別子114b及び114eがアプリケーションサーバグループ104b及び/若しくはデータベースサーバ106bに関連付けられていることを示し、ルーティング識別子116cは、ソース識別子114cがアプリケーションサーバグループ104c及び/若しくはデータベースサーバ106cに関連付けられていることを示すことができる。この例に続けて、サーバ102aは、データソース10a-cから、データソース10a-cに関連付けられたソース識別子114a-eと共に、データを受信することができ、サーバ102aのプロセッサは、ルックアップテーブル112にアクセスして、ソース識別子に関連付けられたルーティング識別子116a-eを決定することができる。この実施例では、サーバ102aは、データソースに関連付けられたルーティング識別子116a-eを決定することに対応して、データソースから、データソースに関連付けられた特定のアプリケーションサーバグループ104a-cに、データを送信することができる。
上述の実施例では、ルックアップテーブル112は、様々なソース識別子に関連付けられたルーティング識別子を示すデータを含み、サーバ102a-dのプロセッサは、データソース10a-cのソース識別子に関連付けられたルーティング識別子を決定するためにルックアップテーブル112にアクセスすることができるが、本開示は、そのような構成に限定されない。むしろ、他の実施例では、サーバ102a-dのプロセッサは、ルックアップテーブル112にアクセスすることなく、データソース10a-cのソース識別子に基づいて、データソース10a-cに関連付けられたルーティング識別子を決定することができる。例えば、サーバ102aは、データソース10a-cから、データソース10a-cに関連付けられたソース識別子114a-eと共に、データを受信することができ、サーバ102aのプロセッサは、一つ若しくは複数の式、アルゴリズム、方法などを用いて、ソース識別子114a-e及び/若しくはデータソース10a-cに関連付けられたルーティング識別子116a-eを、計算若しくは決定することができる。さらに、上述した実施例では、サーバ102a-dはルックアップテーブル112を含むが、本開示はそのような構成に限定されない。寧ろ、他の例では、ルックアップテーブル112は、サーバ102a-dの一部であってもよく、又は、サーバ102a-dとは別個の若しくは遠隔のものであってもよく、サーバ102a-dは、ルックアップテーブル112にアクセスするために、ルックアップテーブル112と通信上結合していてもよい。
幾つかの実施例では、システム100は、ロードバランサデバイス118a-cを含むことができる。各ロードバランサデバイス118a-cは、特定のアプリケーションサーバグループ104a-cに関連付けられ、特定のアプリケーションサーバグループ104a-c及びサーバ102a-dに通信上結合し得る。ロードバランサデバイス118a-cは、アプリケーションサーバグループ104a-cに関連付けられたデータソース10a-cからのデータを処理若しくは分析するために、アプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定するように構成される任意のデバイスであればよい。
例えば、サーバ102a-dのプロセッサは、データソース10a-cからデータを受信し、上述のルーティング識別子に基づいて、データソース10a-cに関連付けられたアプリケーションサーバグループ104a-cを決定することができる。この実施例では、サーバ102a-dのメモリは、各アプリケーションサーバグループ104a-cに関連付けられたロードバランサデバイス118a-cを示すデータを含むことができ、サーバ102a-dのプロセッサは、メモリにアクセスして、アプリケーションサーバグループ104a-cに関連付けられた特定のロードバランサデバイス118a-cを決定し、データソース10a-cから得られたデータを特定のロードバランサデバイス118a-dに送信することができる。一例として、サーバ102aは、データソース10aからデータを取得し、ルーティング識別子116aがデータソース10aのソース識別子114aに関連付けられていると決定する。この例では、サーバ102aは、ルーティング識別子116aがアプリケーションサーバグループ104aに関連付けられていると決定することができる。この実施例に続けて、サーバ102aは、特定のロードバランサデバイス118aがアプリケーションサーバグループ104aに関連付けられていると決定し、データをロードバランサデバイス118aに送信することができる。ロードバランサデバイス118aは、アプリケーションサーバグループ104aに関連付けられたデータソース10aからのデータを処理若しくは分析するために、アプリケーションサーバグループ104a内のアプリケーションサーバ110a-dを決定することができる。幾つかの実施例では、ロードバランサデバイス118a-cは、様々な方法若しくは技法を用いて(例えば、ランダムな方法で、データを処理するアプリケーションサーバ110a-lの可用性に基づいて、又は、他の適切な方法若しくは技法を用いて)、データソース10a-cからのデータを処理若しくは分析するために、アプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定することができる。例えば、ロードバランサデバイス118は、(例えば、アプリケーションサーバ110aが動作を実行していない場合、)アプリケーションサーバ110aがデータを処理するのに利用可能なコンピューティングリソース若しくはネットワークリソースを持っているとの決定に対応して、アプリケーションサーバ110aがデータソース10a-cからのデータを処理することができると決定することができる。別の例として、ロードバランサデバイス118は、(例えば、他のアプリケーションサーバ110b-dがアプリケーションサーバ110aと比較してより多くの操作を実行している場合、)アプリケーションサーバグループ104aの他のアプリケーションサーバ110b-dと比較して、アプリケーションサーバ110aが、利用可能なコンピューティングリソース若しくはネットワークリソースをより多く有すると決定することに対応して、アプリケーションサーバ110aがデータソース10a-cからのデータを処理することができる、と決定し得る。
幾つかの実施例では、サーバ102a-dは、ロードバランサデバイス118a-cと直接通信しなくてもよい。例えば、サーバ102a-dのプロセッサは、データソース10a-cからデータを受信し、上述のルーティング識別子に基づいて、データソース10a-cに関連付けられたアプリケーションサーバグループ104a-cを決定することができる。この例では、サーバ102a-dのプロセッサは、データソース10a-cからのデータを、データソース10a-cに関連付けられたアプリケーションサーバグループ104a-cに送信することができる。アプリケーションサーバグループ104a-cに関連付けられたロードバランサデバイス118a-cは、サーバ102a-dからのデータを受信(例えば、傍受)し、データソース10a-cからのデータを処理若しくは分析するために、ロードバランサデバイス118a-cに関連付けられたアプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定し得る。一例として、サーバ102aは、データソース10aからデータを取得し、ルーティング識別子116aがデータソース10aのソース識別子114aに関連付けられていると決定する。この実施では、サーバ102aは、ルーティング識別子116aがアプリケーションサーバグループ104aに関連付けられていると決定し、データソース10aからのデータをアプリケーションサーバグループ104aに送信することができる。この例に続けて、アプリケーションサーバグループ104aに関連付けられたロードバランサデバイス118aは、サーバ102aからのデータを受信(例えば、傍受)し、アプリケーションサーバグループ104aに関連付けられたデータソース10aからのデータを処理若しくは分析するために、アプリケーションサーバグループ104a内のアプリケーションサーバ110a-dを決定することができる。
幾つかの実施例では、システム100は、ロードバランサデバイス118a-cを含まないことがある。この実施例では、サーバ102a-dは、アプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定して、アプリケーションサーバグループ104a-cに関連付けられたデータソース10a-cからのデータを、上述と実質的に同じ方法で処理若しくは分析するように構成されてもよい。
幾つかの実施例では、アプリケーションサーバ110a-lは、サーバ102a-d若しくはロードバランサデバイス118a-cからデータを受信してデータを処理若しくは分析するために、サーバ102a-d若しくはロードバランサデバイス118a-cに通信上結合することができる。各アプリケーションサーバ110a-lはまた、アプリケーションサーバ110a-lのアプリケーションサーバグループ104a-cに関連付けられた特定のデータベースサーバ106a-cに通信上結合することができる。例えば、アプリケーションサーバグループ104aのアプリケーションサーバ110a-dはデータベースサーバ106aに関連付けられ、アプリケーションサーバグループ104bのアプリケーションサーバ110e-hはデータベースサーバ106bに関連付けられ、アプリケーションサーバグループ104cのアプリケーションサーバ110i-lはデータベースサーバ106cに関連付けられ得る。アプリケーションサーバ110a-lは、サーバ102a-d若しくはロードバランサデバイス118a-cから取得若しくは受信するデータを処理し、処理したデータをアプリケーションサーバ110a-lのアプリケーションサーバグループに関連付けられた特定のデータベースサーバ106a-cに送信することができる。
例えば、各アプリケーションサーバ110a-lは、プロセッサと、データベースを含むメモリとを含むことができる。アプリケーションサーバ110a-lのデータベースは、アプリケーションサーバ110a-lのアプリケーションサーバグループ104a-cに関連付けられた特定のデータベースサーバ106a-cを示すデータを含むことができる。幾つかの実施例では、アプリケーションサーバ110a-lは、(例えば、ロードバランサデバイス118a-c若しくはサーバ102a-dを介して)取得若しくは受信したデータを処理し、アプリケーションサーバ110a-lのアプリケーションサーバグループ104a-cに関連付けられた特定のデータベースサーバ106a-cを決定し、処理されたデータを特定のアプリケーションサーバグループ104a-cに送信することができる。例えば、アプリケーションサーバ1100aは、ロードバランサデバイス118aやサーバ102aから受信したデータを処理することができる。アプリケーションサーバ110のプロセッサは、アプリケーションサーバ110aのデータベースにアクセスして、データベースサーバ106aがアプリケーションサーバ110aのアプリケーションサーバグループ104aに関連付けられていることを決定することができる。そして、アプリケーションサーバ110aは、処理されたデータをデータベースサーバ106aに送信することができる。
各データベースサーバ106a-cは、データベースサーバ106a-cに関連付けられた特定のアプリケーションサーバグループ104a-cのアプリケーションサーバ110a-lに通信上結合し得る。データベースサーバ106a-cは、プロセッサと、データベース(例えば、ルックアップテーブル)を含むメモリとを含むことができる。プロセッサは、メモリに(例えば、バスを介して)通信上結合し得る。データベースサーバ106a-cのメモリは、電源オフ時に情報を保持する任意のタイプのメモリデバイスであればよい。幾つかの実施例では、データベースサーバ106a-cは、データベースサーバ106a-cに関連付けられたアプリケーションサーバ110a-lからデータを受信することができ、データベースサーバ106a-cのプロセッサは、アプリケーションサーバ110a-lから受信したデータをシステムデータベース108の特定の部分またはパーティションにルーティングすることができる。
例えば、システムデータベース108は、様々なデータソース10a-cに関連付けられたキー識別子に基づいてパーティション化(例えば、分割)することができる。一例として、システムデータベース108は、パーティション(例えば、部分)120、122、124に分割することができ、各パーティション120、122、124は、特定のデータソース10a-cのキー識別子に関連付けられ得る。例えば、図1に描かれた例では、パーティション120は、データソース10a-cからのデータがパーティション120に格納されるようにソース識別子114aに対応するデータソース10a-cのキー識別子に関連付けられ得、パーティション122は、データソース10a-cからのデータがパーティション122に格納されるようにソース識別子114bに対応するデータソース10a-cのキー識別子に関連付けられ得、パーティション124は、データソース10a-cからのデータがパーティション124に格納されるようにソース識別子114cに対応するデータソース10a-cのキー識別子に関連付けられ得る。このように、幾つかの実施例では、システムデータベース108は、様々なデータソース10a-cに関連付けられたキー識別子に基づいて水平方向にパーティション化され得る。
この実施例では、データベースサーバ106a-cのデータベースは、様々なデータソースに関連付けられたキー識別子を示すデータと、各キー識別子に関連付けられた(例えば、割り当てられた)システムデータベース108の一部とを含むことができる。幾つかの実施例では、データベースサーバ106a-cは、様々なデータソース10a-cに関連付けられたキー識別子を示すデータと、各キー識別子に関連付けられたシステムデータベース108の一部とを、別のデバイスから若しくはユーザ入力を介して(例えば、別のデバイスから若しくはユーザ入力を介して)取得する(例えば、受信する)ことができる。データベースサーバ106a-cは、(例えば、対応するアプリケーションサーバ110a-lを介して)データソース10a-cから得られたデータを、システムデータベース108の特定の部分に格納することができるように、データソース10a-cのキー識別子に対応するシステムデータベース108の特定の部分にルーティングするように、データベースを用いることができる。一例として、データベースサーバ106aは、データソース10a-cのキー識別子と共に、ソース識別子114aに関連付けられたデータソース10a-cからのデータを含むデータを、アプリケーションサーバ110aから取得する。データベースサーバ106aのプロセッサは、データベースサーバ106aのデータベースにアクセスして、キー識別子に関連付けられたシステムデータベース108の特定のパーティション120を決定し、システムデータベース108のパーティション120に格納されるようにデータをシステムデータベース108に送信する。
別の実施例では、データベースサーバ106a-cのプロセッサは、データベースサーバ106a-cのデータベースにアクセスすることなく、データソース10a-cに関連付けられたキー識別子を決定し、決定されたキー識別子を用いて、データソース10a-cからのデータをシステムデータベース108の特定の部分またはパーティションにルーティングすることができる。例えば、データベースサーバ106aは、ソース識別子114aに関連付けられたデータソース10a-cからのデータを含むデータをアプリケーションサーバ110aから取得する。この実施例では、データベースサーバ106aのプロセッサは、データベースサーバ106a-cのデータベースにアクセスすることなく、ソース識別子114aに関連付けられたキー識別子を決定することができる。一例として、ソース識別子114aは、メータデバイスデータソース10a-cのメータ識別子であることができ、プロセッサは、ソース識別子114aに関連付けられたキー識別子がメータ識別子の一部(例えば、メータ識別子の最後の2桁)であることを決定するための、様々なアルゴリズム、方法、または技術を用いることができる。この例では、データベースサーバ106aのプロセッサは、決定されたキー識別子を用いて、データソースからのデータを、決定されたキー識別子に関連付けられたシステムデータベース108の特定のパーティション120にルーティングし、データをシステムデータベース108に送信してパーティション120に格納することができる。
幾つかの実施例では、システムデータベース108は、任意の適切な方法で、追加的または代替的にパーティション化され得る。例えば、システムデータベース108は、日付、時間、若しくは任意の適切な間隔に基づいて、追加的または代替的にパーティション化され得る。例として、システムデータベース108に格納されるデータは、データソース10a-cから得られるデータが上述のようにシステムデータベース108の特定のパーティション内に格納され、特定のパーティションはデータが受信された時間に基づいてさらにパーティション化されるように、データがデータソース10a-cから得られる若しくは取得される時間に基づいて、追加的にパーティション化され得る(例えば、特定の時間にデータソース10a-cから受信されたデータは、そのパーティションのサブパーティション内に格納され得る)。したがって、幾つかの実施例では、システムデータベース108は、特定のデータソース10a-cからのデータがパーティションの特定のサブパーティション内に更に格納されるように、任意の適切な基準に基づいて(例えば、日付若しくは時間に基づいて)垂直方向にパーティション化され得る。従って、システムデータベース108は、(様々なデータソース10a-cに関連付けられたキー識別子に基づいて)水平方向にパーティション化され得、及び/又は(例えば、任意の適切な基準に基づいて)垂直方向にパーティション化され得る。
このようにして、各種データソース10a-cから得られたデータを、データを受信若しくは処理できるアプリケーションサーバ104a-c及びデータベースサーバ106a-cの特定のグループにルーティングすることができ、これにより、データソース10a-cに関連付けられていない、又は割り当てられていない、アプリケーションサーバ104a-c、アプリケーションサーバ110a-l、若しくはデータベースサーバ106a-cの、他のグループが、データソース10a-cからのデータにアクセスしたり処理したりすることを、防ぐことができる。更に、様々なデータソース10a-cからのデータは、様々なサーバ102a-d、ロードバランサデバイス118a-c、アプリケーションサーバ110a-l、若しくはデータベースサーバ106a-cによって処理され、単一のシステムデータベース108の特定の部分に格納され得る。このように、幾つかの実施形態では、単一のシステムデータベース108は、様々なサーバ若しくはデバイスによって処理され得る様々な異なるソースからのデータを格納するのに用いることができ、システム100における複数のデータベースの使用を省略することができる。幾つかの実施例では、本明細書に記載の一つ若しくは複数のデータソース10a-cからのデータのルーティングは、システム100内の様々なデバイス(例えば、アプリケーションサーバ110a-l若しくはデータベースサーバ106a-c)が、(例えば、同じデータソースからの)同じデータへのアクセスを共有すること、又は同時に同じデータへのアクセスを試みることを、防ぐことができ、このことは、システム100内のクラスタ待ち若しくは競合の問題を緩和又は排除することができる。幾つかの実施例では、システム100におけるクラスタ待ち若しくは競合の問題を緩和又は排除することは、システム100における一つ若しくは複数のアプリケーションサーバ110a-l、データベースサーバ106a-c、又は他のデバイスが、システム100によって得られるデータに対する操作を実行することを、阻止または遅延されることを防止することによって、システム100のリソースが無駄になることを防ぎ得ることとなる。
幾つかの実施例では、システム100においてエラーが発生し得る(例えば、システム100の一つ若しくは複数のデバイス若しくはコンポーネントにおけるエラー、故障、欠陥など)。この例では、システム100においてエラーが発生する場合、システム100の一つ若しくは複数のコンポーネントは、サーバ102a-dによって取得若しくは受信されるデータのための追加的若しくは代替的なルートを決定するように構成され得る。一例として、データベースサーバ106aに欠陥若しくはエラーが発生する場合、データベースサーバ106aに関連付けられたアプリケーションサーバ110a-dは、アプリケーションサーバ110a-dによって取得若しくは受信されるデータのための代替のルートを決定するように構成され得る。
例えば、図4は、本開示の一つの実施例に係るデータ分割システムの例である。図4に描かれた例では、アプリケーションサーバ110aは、ロードバランサデバイス118a若しくはサーバ102aからデータを受信し、データベースサーバ106aに欠陥(例えば、障害)が発生したことを決定又は検出することができる。この例では、アプリケーションサーバ110aは、データを受信又は処理する、システム100内の別のデータベースサーバ106b-cを決定又は特定することができる。例えば、アプリケーションサーバ110aは、データベースサーバ106aに障害が発生したとの決定に対応して、データベースサーバ106bがデータを受信又は処理するために利用可能であると決定し、得られたデータをデータベースサーバ106aの代わりにデータベースサーバ106bに送信することができる。そして、データベースサーバ106bは、上述と実質的に同様の方法で、データソース10a-cのキー識別子に基づいて、データを格納するシステムデータベース108の一部またはパーティションを決定することができる。このようにして、システム100の一つ若しくは複数のコンポーネントにエラー又は欠陥が発生する場合に、システム100によって取得又は受信されたデータを再ルーティングすることができる。
図1に戻ると、図1はシステム100の特定の配置を例示しているが、様々な追加の配置が可能である。一例として、図1は、一定数のサーバ102a-d、アプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、データベースサーバ106a-c、及びシステムデータベース108を図示しているが、本開示は、このような構成に限定されない。寧ろ、他の実施例では、システム100は、サーバ102a-d、アプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、データベースサーバ106a-c、及びシステムデータベース108の、任意の適当な数若しくは種類を含んでもよい。例えば、幾つかの実施例では、システム100は、スケールアウト(例えば、追加のアプリケーションサーバグループ、アプリケーションサーバ、データベースサーバ、又はシステムデータベース108を含むようにスケールアウト)されてもよい。さらに、上述した幾つかの実施例では、データソース10a-cは、データソース10a-cに関連付けられたソース識別子若しくはキー識別子を示すデータを、システム100内の一つ若しくは複数のデバイスに送信することができるが、本開示は、そのような構成に限定されない。寧ろ、他の実施例では、データソース10a-cは、システムの一つ若しくは複数のコンポーネント(例えば、サーバ102a-d)にデータを送信することができ、データは、データソース10a-cに関連付けられたソース識別子と共に、データソース10a-cによって測定又は受信された(例えば、取得された)情報を含むことができる。この例では、システム100の一つ若しくは複数のコンポーネント(例えば、サーバ102a-d、アプリケーションサーバ110a-l、データベースサーバ106a-c、ロードバランサデバイス118a-c、又はシステムデータベース108)は、ソース識別子に基づいて、データソース10a-cに関連付けられたキー識別子を決定できる。例えば、サーバ102aは、ソース識別子114aに関連付けられたデータソース10a-cからデータを取得する。この例では、サーバ102aのプロセッサは、データソース10a-cのソース識別子114aに関連付けられたキー識別子を決定できる。一例として、ソース識別子114aは、メータデバイスデータソース10a-cのメータ識別子であってもよく、プロセッサは、ソース識別子114aに関連付けられたキー識別子が、メータ識別子の一部(例えば、メータ識別子の最後の2桁)であると決定するものであってもよい。この例では、決定されたキー識別子を用いて、上述と実質的に同じ方法で、データソース10a-cからのデータを、決定されたキー識別子に関連付けられたシステムデータベース108の特定のパーティションにルーティングすることができる。幾つかの実施例では、ルーティング識別子又はキー識別子を決定するためのソース識別子としてメータ識別子を使用することにより、一つ若しくは複数の利点が提供され得る。例えば、メータ識別子がデータソース10a-cのソース識別子であり、キー識別子がメータ識別子の一部である場合、データソース10a-cは、ソース識別子を示すデータと共に、測定されたデータをシステム100の一つ若しくは複数のコンポーネント(例えば、サーバ102a-d、アプリケーションサーバ110a-l、データベースサーバ106a-c、ロードバランサデバイス118a-c、又はシステムデータベース108)に送信することができる。この例では、一つ若しくは複数のコンポーネントは、ソース識別子(例えば、メータ識別子)に基づいて、キー識別子(例えば、メータ識別子の部分)を決定または識別することができる。
更に、上述の実施例では、データソース10a-cのルーティング識別子及び/又はキー識別子は、データソース10a-cのソース識別子に基づいて決定することができるが、本開示は、そのような構成に限定されない。寧ろ、他の実施例では、データソース10a-cのルーティング識別子及び/又はキー識別子は、任意の適切な方法または技法を用いて決定することができる。
例えば、図2は、本開示の別の実施例に係る、データ分割システム200の一つの例である。この例では、システム200は、図1のサーバ102a-d、アプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、データベースサーバ106a-c、ロードバランサデバイス118a-c、及びシステムデータベース108を含む。図2に描かれた例では、システム200は、夫々が、図1のロードバランサデバイス118a-c、アプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、及びデータベースサーバ106a-cと実質的に同じ様に構成され得る、追加のロードバランサデバイス202、アプリケーションサーバグループ204、アプリケーションサーバ206a-d、及びデータベースサーバ208を含むようにスケールアウトされている。
この例では、サーバ102a-dのルックアップテーブル112は、様々なソース識別子210a-e(例えば、様々なメータ識別子)と、各ソース識別子210a-eに関連付けられたルーティング識別子212a-eとを含む。ルックアップテーブル112を用いて、ソース識別子210a-eに関連付けられたデータソース(例えば、図1のデータソース10a-c)から、ロードバランサデバイス118a-c及び202、アプリケーションサーバグループ118a-c及び204、アプリケーションサーバ110a-l及び206a-d、並びに、データベースサーバ106a-c及び208へ、上述と実質的に同じ様にして、データをルーティングすることができる。いくつかの例では、サーバ102a-dは、ロードバランサデバイス202、アプリケーションサーバグループ204、アプリケーションサーバ206a-d、若しくはデータベースサーバ208が図1のシステム100に追加されることに対応して、ソース識別子210a-e及びルーティング識別子212a-eを示すデータを(例えば、他のデバイスから、又はユーザ入力を介して)受信することができる。
この例では、システムデータベース108は、データソースからのデータが、上述と実質的に同じ様にして、システムデータベース108の特定の部分に格納され得るように、一つ若しくは複数のデータソースのキー識別子に基づいて更にパーティション化され得る。例えば、システムデータベース108は、アプリケーションサーバグループ204及びデータベースサーバ208に関連付けられたデータソース(例えば、ソース識別子210d及びルーティング識別子212dに関連付けられたデータソース)から得られるデータが、上述と実質的に同じ様にして、システムデータベース108のパーティション214に処理されて格納され得るように、パーティション214を含むべく更にパーティション化され得る。幾つかの実施例では、システムデータベース108は、ロードバランサデバイス202、アプリケーションサーバグループ204、アプリケーションサーバ206a-d、及び、データベースサーバ208を含むようにシステム100をスケールアウトすることに対応して、パーティション214若しくは任意の他のパーティションを含むようにパーティション化され得る。
このようにして、システム100は、追加的又は代替的なコンポーネント(例えば、ロードバランサ、アプリケーションサーバグループ、アプリケーションサーバ、データベースサーバなど)を含むようにスケールアウトし得る。
図3は、本開示の一つの実施例に係る、クラスタ化されたデータベース環境でデータを分割するためのプロセスの一例を示すフローチャートである。幾つかの実施例では、図3のステップは、プロセッサ、例えば、汎用コンピュータ若しくはサーバのプロセッサによって、実行可能なプログラムコードで実装されてもよい。幾つかの実施例では、これらのステップは、プロセッサ若しくはサーバのグループによって実装されてもよい。幾つかの実施例では、図3に示す一つ若しくは複数のステップは、省略されてもよいし、異なる順序で実行されてもよい。同様に、幾つかの実施例では、図3に示されていない追加のステップも実行されてもよい。図3のプロセス300は、図1を参照して説明されているが、他の実施形態も可能である。
ブロック302では、データは、データソース10a-cから、データソース10a-cのソース識別子及びキー識別子と共に、取得される。データソース10a-cは、任意のデータソースであればよい。例えば、データソース10a-cは、電力、ガス、水などの、資源の消費量を測定するためのメータデバイスであってもよい。データソース10a-cは、データを測定又は受信(例えば、取得)し、データを保存し、サーバ102a-dにデータを通信してもよい。データは、データソース10a-cによって測定又は受信(例えば、取得)された情報を、データソース10a-cに関連付けられたソース識別子又はキー識別子と共に、含み得る。一つの例として、データソース10aは、水道メータデバイスであり、サーバ102aは、水道メータデバイスのメータデバイス識別子を示すデータと、メータデバイス識別子の特定の部分(例えば、メータデバイス識別子の最後の2桁)を示すデータと共に、メータデバイスによって測定又は受信されるデータを取得する。
ブロック304では、データソース10a-cのソース識別子に対応するルーティング識別子に基づいて、データソース10a-cに関連付けられた特定のアプリケーションサーバグループ104a-cが、決定される。
例えば、様々なアプリケーションサーバグループ104a-cは、様々なアプリケーションサーバ110a-lを含むことができる。各アプリケーションサーバグループ104a-cは、特定のルーティング識別子に関連付けられ得る(例えば、割り当てられ得る)。幾つかの実施例では、サーバ102aは、プロセッサと、データベース又はルックアップテーブル112を含むメモリとを含む。サーバ102aのルックアップテーブル112は、様々なデータソース10a-cに関連付けられたソース識別子114a-eを示すデータと、各ソース識別子114a-eに関連付けられたルーティング識別子116a-eを示すデータとを、含むことができる。各ルーティング識別子116a-eは、各ソース識別子114a-eに割り当てられる、特定のアプリケーションサーバグループ104a-c、アプリケーションサーバ110a-l、又はデータベースサーバ106a-cを、示す。サーバ102aは、データソース10a-cから、データソース10a-cに関連付けられたソース識別子114a-eと共に、データを受信することができ、サーバ102aのプロセッサは、ルックアップテーブル112にアクセスして、ソース識別子114a-eに関連付けられたルーティング識別子116a-eを決定することができる。一つの例として、サーバ102aは、ソース識別子114aに対応するデータソース10aからデータを受信し、ルックアップテーブル112に基づいて、ルーティング識別子116aがソース識別子114aに関連付けられることを決定する。この例では、サーバ102aは、ルーティング識別子116aがアプリケーションサーバグループ104aに関連付けられる(例えば、割り当てられる)と決定できる。
別の実施例では、ブロック304において、サーバ102a-dのプロセッサは、ルックアップテーブル112にアクセスすることなく、データソース10a-cのソース識別子に基づいて、データソース10a-cに関連付けられたルーティング識別子を決定することができる。例えば、サーバ102aは、データソース10a-cから、データソース10a-cに関連付けられたソース識別子114a-eと共に、データを受信することができ、サーバ102aのプロセッサは、ソース識別子114a-e及び/又はデータソース10a-cに関連付けられたルーティング識別子116a-eを以下の式[数1]を用いて計算又は決定できる。
[数1]
ルーティング識別子=(ソース識別子%100)%n
上記式において、%は、モデューロ演算又は関数(例えば、ある数を別の数で除算した後の残数の決定)を表し、nは、システム100内のデータベースサーバ110a-lの数を表す。
ブロック306では、データソース10a-cからのデータを処理できるアプリケーションサーバグループ104a-cの特定のアプリケーションサーバ110a-lが決定される。例えば、各サーバ102a-dは、データソース10a-cから得られるデータをロードバランサデバイス118a-cに送信することができる。各ロードバランサデバイス118a-cは、特定のアプリケーションサーバグループ104a-cに関連付けられ、特定のアプリケーションサーバグループ104a-c及びサーバ102a-dに通信上結合してもよい。ロードバランサデバイス118a-cは、アプリケーションサーバグループ104a-cに関連付けられたデータソース10a-cからのデータを処理又は分析するために、アプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定することができる。例えば、ロードバランサデバイス118aは、アプリケーションサーバグループ104aに関連付けられ、サーバ102aからデータを受信することができる。ロードバランサデバイス118aは、アプリケーションサーバグループ104aに関連付けられたデータソース10a-cからのデータを処理又は分析するために、アプリケーションサーバグループ104a内のアプリケーションサーバ110a-dを決定することができる。幾つかの実施例では、ロードバランサデバイス118a-cは、様々な方法若しくは技法を用いて(例えば、データを処理するアプリケーションサーバ110a-lの可用性に基づいて、ランダムな方法で、又は、他の適切な方法若しくは技法を用いて)、データソース10a-cからのデータを処理又は分析するために、アプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定することができる。例えば、ロードバランサデバイス118aは、(例えば、アプリケーションサーバ110aが動作を実行していなくとも、)アプリケーションサーバ110aがデータを処理するために利用可能なコンピューティングリソース若しくはネットワークリソースを持っていると、決定することに対応して、アプリケーションサーバ110aがデータソース10aからのデータを処理することができると決定することができる。別の例として、ロードバランサデバイス118aは、(例えば、他のアプリケーションサーバ110b-dがアプリケーションサーバ110aと比較してより多くの操作を実行していても、)アプリケーションサーバグループ104aの他のアプリケーションサーバ110b-dと比較して、アプリケーションサーバ110aが利用可能なコンピューティングリソース若しくはネットワークリソースをより多く有していると、決定することに対応して、アプリケーションサーバ110aがデータソース10aからのデータを処理することができると、決定することができる。
幾つかの実施例では、システム100は、ロードバランサデバイス118a-cを含まない場合がある。この例では、ブロック306において、サーバ102a-dは、アプリケーションサーバグループ104a-c内の特定のアプリケーションサーバ110a-lを決定して、アプリケーションサーバグループ104a-cに関連付けられたデータソース10a-cからのデータを、上述と実質的に同じ様にして、処理又は分析することができる。
ブロック308では、データソース10a-cから得られたデータは、アプリケーションサーバグループ104a-c(例えば、ブロック304で決定されたアプリケーションサーバグループ)のアプリケーションサーバ110a-dに送信される。幾つかの実施例では、サーバ102a-dは、データソース10a-cから得られたデータをアプリケーションサーバグループ104a-c若しくはアプリケーションサーバグループ104a-cのアプリケーションサーバ110a-lに送信するために、アプリケーションサーバグループ104a-cに通信上結合することができる。例えば、サーバ102a-dは、データソース10a-cから得られたデータを、(例えば、ブロック306にて)ロードバランサデバイス118a-cによって決定されたアプリケーションサーバ110a-lに送信することができる。別の例では、サーバ102a-dは、データソース10a-cから得られたデータを、データソース10a-cのソース識別子114a-eに対応するルーティング識別子116a-eに関連付けられたアプリケーションサーバグループ104a-c(例えば、ブロック304で決定されたアプリケーションサーバグループ)の任意のアプリケーションサーバ110a-lに送信することができる。幾つかの実施例では、サーバ102a-dは、アプリケーションサーバグループ104a-cに関連付けられた特定のロードバランサデバイス118a-cに通信上結合することができ、ロードバランサデバイス118a-cは、データをアプリケーションサーバグループ104a-c若しくはアプリケーションサーバグループ104a-cのアプリケーションサーバ110a-lに、送信することができる。
一つの例として、サーバ102aは、ソース識別子114aに対応するデータソース10aからデータを受信し、ルックアップテーブル112に基づいて、ルーティング識別子116aがソース識別子114aに関連付けられていることを決定する。この例では、サーバ102aは、ルーティング識別子116aがアプリケーションサーバグループ104aに関連付けられている(例えば、割り当てられている)と決定することができる。この例に続けて、サーバ102aは、データソース10aから、データソース10aに関連付けられた特定のアプリケーションサーバグループ104a若しくはアプリケーションサーバグループ104aのアプリケーションサーバ110a-dに、データを送信することができる。別の例として、サーバ102aは、アプリケーションサーバグループ104aに関連付けられた特定のロードバランサデバイス118aにデータを送信することができ、ロードバランサデバイス118aは、アプリケーションサーバグループ104a若しくはアプリケーションサーバグループ104aの特定のアプリケーションサーバ110a-d(例えば、ブロック306で決定された特定のアプリケーションサーバ)に、データを送信することができる。
幾つかの実施例では、ブロック308において、特定のアプリケーションサーバグループ104a-cのアプリケーションサーバ110a-lは、サーバ102a-d若しくはロードバランサデバイス118a-cから取得又は受信したデータを処理することができる。
ブロック310において、データは、アプリケーションサーバグループ104a-cに関連付けられた特定のデータベースサーバ106a-cに送信される。例えば、各データベースサーバ106a-cは、特定のアプリケーションサーバグループ104a-cに関連付けられ得る。一つの例として、図1を参照して、データベースサーバ106aは、アプリケーションサーバグループ104aに関連付けられ、データベースサーバ106bは、アプリケーションサーバグループ104bに関連付けられ、データベースサーバ106cは、アプリケーションサーバグループ104cに関連付けられ得る。特定のアプリケーションサーバグループ(例えば、ブロック304で決定されたアプリケーションサーバグループ)のアプリケーションサーバ110a-lは、(例えば、ブロック308で)サーバ102a-d若しくはロードバランサデバイス118a-cから取得又は受信したデータを処理し、処理されたデータをアプリケーションサーバ110a-lのアプリケーションサーバグループ104a-cに関連付けられた特定のデータベースサーバ106a-cに送信することができる。一つの例として、アプリケーションサーバ1100aは、ロードバランサデバイス118a若しくはサーバ102aから受信したデータを処理し、処理したデータを、アプリケーションサーバ1100aのアプリケーションサーバグループ104aに関連付けられた特定のデータベースサーバ106aに送信することができる。
ブロック312において、データソース10a-cからのデータは、データソース10a-cのキー識別子に基づいて、システムデータベース108の特定のパーティションに格納される。
例えば、各データベースサーバ106a-cは、プロセッサと、データベースを含むメモリとを含むことができる。データベースサーバ106a-cは、(例えば、ブロック310にて)データベースサーバ106a-cに関連付けられたアプリケーションサーバ110a-lからデータを受信することができ、データベースサーバ106a-cのプロセッサは、データベースにアクセスして、アプリケーションサーバ110a-lから受信したデータをシステムデータベース108の特定の部分またはパーティションにルーティングすることができる。
一つの例として、システムデータベース108は、様々なデータソース10a-cに関連付けられたキー識別子に基づいてパーティショニング(例えば、分割)され得る。例えば、システムデータベース108は、パーティション(例えば、部分)120、122、124に分割することができ、各パーティション120、122、124は、特定のデータソース10a-cのキー識別子に関連付けられる。例えば、パーティション120は、ソース識別子114aに対応するデータソース10aのキー識別子に関連付けられ、パーティション122は、ソース識別子114bに対応するデータソース10bのキー識別子に関連付けられ、パーティション124は、ソース識別子114cに対応するデータソース10cのキー識別子に関連付けられ得る。この例では、データベースサーバ106a-cのデータベースは、様々なデータソース10a-cに関連付けられたキー識別子を示すデータと、各キー識別子に関連付けられた(例えば、割り当てられた)システムデータベース108の一部とを含むことができる。データベースサーバ106a-cは、データベースを用いて、データソース10a-cから得られたデータを(例えば、対応するアプリケーションサーバ110a-lを介して)、データソース10a-cのキー識別子に対応するシステムデータベース108の特定の部分にルーティングすることができる。一つの例として、データベースサーバ106aは、データソース10aのキー識別子と共に、ソース識別子114aに関連付けられたデータソース10aからのデータを含むデータをアプリケーションサーバ110aから取得する。データベースサーバ106aのプロセッサは、データベースサーバ106aのデータベースにアクセスして、キー識別子に関連付けられたシステムデータベース108の特定のパーティション120を決定し、システムデータベース108のパーティション120に格納されるようにデータをシステムデータベース108に送信する。
この例では、システムデータベース108は、様々なデータソース10a-cに関連付けられたキー識別子に基づいてパーティション化され得るが、本開示は、そのような構成に限定されない。寧ろ、他の実施例では、システムデータベース108は、任意の適切な様にして、追加的又は代替的にパーティション化することができ、データベースサーバ106a-cは、システムデータベース108の特定のパーティションに格納されるように、システムデータベース108にデータを送信するように構成され得る。例えば、システムデータベース108は、日付、時間、又は任意の適切な間隔に基づいてパーティション化され、データベースサーバ106a-cは、特定の日付、時間、又は間隔に基づいて、システムデータベース108の特定のパーティションに格納されるように、システムデータベース108にデータを送信するように構成され得る。一つの例として、システムデータベース108に格納されたデータは、一カ月の数日に基づいて追加的にパーティション化され、データベースサーバ106a-cは、データソース10a-cから得られたデータが、上述のように、データソース10a-cのキー識別子に関連付けられたシステムデータベース108の特定のパーティションに格納されるように、パーティションに基づいて格納されるべくシステムデータベース108にデータを送信するよう構成され得、特定のパーティションは、データが受信された月の日に基づいて更にパーティション化される(例えば、特定の日にデータソース10a-cから受信したデータは、パーティションのサブパーティション内に格納することができる。)。別の例として、システムデータベース108に送信又は格納されたデータは、データソース10a-cからのコンテンツの種類、内容、特徴などの任意の適切な基準に基づいて、追加的又は代替的にパーティション化することができる。
上述の例では、データソースからのデータは、ソース識別子、ルーティング識別子、又は、データソースに関連付けられたキー識別子に基づいてルーティングされ、パーティション化され得るが、本開示はそのような構成に限定されない。寧ろ、他の実施例では、データソースからのデータは、データソースに関連付けられた、ソース識別子、ルーティング識別子、若しくはキー識別子に基づいて、特定のサーバ、ロードバランサデバイス、アプリケーションサーバグループ、及び/又はデータベースサーバに、ルーティングされ得る。代替的な例では、データソースからのデータは、データソースに関連付けられた、ソース識別子、ルーティング識別子、若しくはキー識別子に基づいて、システムデータベースの特定のパーティション若しくはサブパーティションに、格納され得る。
例示された実施例を含む、特定の実施例についての前記説明は、例示及び説明の目的のためだけに提示されたものであり、網羅的であることを意図したものではなく、また、本開示を開示された正確な形態に限定することを意図したものではない。数多くの修正、適応、及びそれらの使用は、開示の範囲から逸脱することなく、当業者には明らかであろう。

Claims (20)

  1. システムであって、
    サーバと、
    前記サーバに通信可能に結合された複数のアプリケーションサーバグループであって、各アプリケーションサーバグループは、アプリケーションサーバを備える、複数のアプリケーションサーバグループと、
    前記複数のアプリケーションサーバグループに通信可能に結合された複数のデータベースサーバであって、前記複数のデータベースサーバの数は、前記複数のアプリケーションサーバグループの数と等しく、前記複数のアプリケーションサーバグループの各々は、前記複数のデータベースサーバのうちの一つのデータベースサーバに対応し、且つ、通信可能に接続されている、前記複数のデータベースサーバと、及び、
    複数のパーティションに分割され、前記複数のデータベースサーバに通信可能に結合されたシステムデータベースと
    を含み、
    前記サーバは、
    プロセッサと、及び、
    前記プロセッサと通信可能に結合された非一時性のコンピュータ読取可能の媒体と
    を含み
    前記プロセッサは、
    データソースから、前記データソースに関連付けられたソース識別子を含むデータを受信するステップと、
    前記データソースに関連付けられた前記ソース識別子に対応するルーティング識別子に基づいて、前記複数のアプリケーションサーバグループのうち、前記データソースに関連付けられたアプリケーションサーバグループを決定するステップであって、前記ルーティング識別子は、前記複数のアプリケーションサーバグループのうち、前記データソースに関連付けられ、且つ、前記データソースから前記データを受信または処理するために使用される、前記アプリケーションサーバグループを示すものである、決定するステップと、及び、
    前記データソースから、前記アプリケーションサーバグループのアプリケーションサーバにデータを送信するステップと
    を含む動作を実行するように構成されており、
    前記アプリケーションサーバは、前記アプリケーションサーバグループに対応する、前記複数のデータベースサーバのうちのデータベースサーバを決定し、前記データソースから前記データベースサーバにデータを送信するように構成されており、
    前記データベースサーバは、前記データソースからのデータを前記システムデータベースに格納させるように構成されている、
    システム。
  2. 更に、
    前記サーバ及び前記複数のアプリケーションサーバグループに通信可能に結合された複数のロードバランサデバイスを含み、
    前記プロセッサは、更に、
    前記アプリケーションサーバグループに関連付けられる、前記複数のロードバランサデバイスのうちの、ロードバランサデバイスを決定するように構成されており、
    前記ロードバランサデバイスは、
    前記データソースからのデータを処理するための、前記アプリケーションサーバグループの前記アプリケーションサーバを決定し、及び、
    前記データソースからのデータを前記アプリケーションサーバにデータを送信する
    ように構成されている、
    請求項1に記載のシステム。
  3. 前記ルーティング識別子は、
    複数のソース識別子に対応する複数のルーティング識別子を含むデータベースから取得され、
    各ルーティング識別子は、前記複数のアプリケーションサーバグループのうち、前記複数のソース識別子のうちの一つのソース識別子により識別されるデータソースに関連付けられ、且つ、前記データソースからデータを受信または処理するために使用される、アプリケーションサーバグループを示す、
    請求項1に記載のシステム。
  4. 前記データソースからのデータを前記システムデータベースに格納させることは、
    前記システムデータベースの前記複数のパーティションに対応する複数のキー識別子にアクセスするステップと、
    前記データソースに関連付けられた前記キー識別子に基づいて前記データソースに対応する前記システムデータベースの特定のパーティションを決定するステップと、及び、
    前記データソースからのデータを前記特定のパーティションに格納するための前記システムデータベースに送信するステップと
    を含む、
    請求項1に記載のシステム。
  5. 前記アプリケーションサーバグループの前記アプリケーションサーバは、更に、
    前記アプリケーションサーバグループに対応する前記データベースサーバのエラーを検出し、
    前記データソースからデータを受信するための、前記複数のデータベースサーバのうちの別のデータベースサーバを特定し、及び、
    前記データソースから、前記複数のデータベースサーバのうちの前記特定された別のデータベースサーバに、データを送信する
    ように構成されている、
    請求項1に記載のシステム。
  6. 前記データソースが、資源の消費量を測定するためのメータデバイスを含む、
    請求項1に記載のシステム。
  7. 前記資源が、電機、ガス、若しくは水を含む、
    請求項6に記載のシステム。
  8. サーバによって、データソースから、前記データソースに関連付けられたソース識別子を含むデータを取得するステップと、
    前記サーバによって、前記データソースの前記ソース識別子に対応するルーティング識別子に基づいて、前記データソースに関連付けられた、複数のアプリケーションサーバグループのうちのアプリケーションサーバグループを決定するステップであって、前記ルーティング識別子は、前記複数のアプリケーションサーバグループのうち、前記データソースに関連付けられ、且つ、前記データソースから前記データを受信または処理するために使用される、前記アプリケーションサーバグループを示すものである、決定するステップと、
    前記サーバによって、前記データソースからのデータを、前記アプリケーションサーバグループのアプリケーションサーバに送信するステップと、
    前記アプリケーションサーバによって、前記アプリケーションサーバグループに対応する、複数のデータベースサーバのうちのデータベースサーバを決定するステップであって、前記複数のデータベースサーバの数は、前記複数のアプリケーションサーバグループの数と等しく、前記複数のアプリケーションサーバグループの各々は、前記複数のデータベースサーバのうちの一つのデータベースサーバに対応し、且つ、通信可能に接続されている、決定するステップと、
    前記アプリケーションサーバによって、前記データソースからのデータを前記データベースサーバに送信するステップと、及び、
    前記データベースサーバによって、前記データソースからのデータをシステムデータベース上に格納させるステップと
    を含む、方法
  9. 前記データベースサーバによって、前記データソースからのデータを前記システムデータベース上に格納させるステップは、
    前記データベースサーバによって、前記データソースの前記ソース識別子に基づいて、前記データソースに関連付けられたキー識別子を決定するステップと、
    前記データベースサーバによって、前記データソースの前記キー識別子に基づいて、前記データソースに関連付けられた前記システムデータベースの複数のパーティションのうちの特定のパーティションを決定するステップであって、前記特定のパーティションは前記データソースからのデータを格納するために使用可能である、決定するステップと、及び、
    前記データベースサーバによって、前記データソースからのデータを前記特定のパーティションに格納するための前記システムデータベースに送信するステップと
    を含む、請求項8に記載の方法。
  10. 前記データソースに関連付けられた前記システムデータベースの前記複数のパーティションのうちの前記特定のパーティションを決定するステップは、
    前記データベースサーバによって、前記システムデータベースの前記複数のパーティションに対応する複数のキー識別子を含むデータベースにアクセスするステップと、
    前記データベースサーバによって、前記データソースの前記キー識別子に対応する前記システムデータベースの前記特定のパーティションを決定するステップと、及び、
    前記データベースサーバによって、前記データソースからのデータを前記特定のパーティションに格納するための前記システムデータベースに送信するステップと
    を含む、
    請求項9に記載の方法。
  11. 前記データソースからのデータを前記アプリケーションサーバグループの前記アプリケーションサーバに送信するステップは、
    前記サーバによって、前記アプリケーションサーバグループに関連付けられている複数のロードバランサデバイスのうちのロードバランサデバイスを決定するステップと、
    前記サーバによって、前記データソースからのデータを前記ロードバランサデバイスに送信するステップと、
    前記ロードバランサデバイスによって、前記データソースからのデータを処理するための前記アプリケーションサーバグループの前記アプリケーションサーバを決定するステップと、及び、
    前記ロードバランサデバイスが、前記データソースからのデータを前記アプリケーションサーバに送信するステップと
    を含む、
    請求項8に記載の方法。
  12. 前記ルーティング識別子は、
    複数のソース識別子に対応する複数のルーティング識別子を含むデータベースから取得され、
    各ルーティング識別子は、前記複数のアプリケーションサーバグループのうち、前記複数のソース識別子のうちの一つのソース識別子により識別されるデータソースに関連付けられ、且つ、前記データソースからデータを受信または処理するために使用される、アプリケーションサーバグループを示す、
    請求項8に記載の方法。
  13. 更に、
    前記アプリケーションサーバグループの前記アプリケーションサーバによって、前記アプリケーションサーバグループに対応する前記データベースサーバのエラーを検出するステップと、
    前記アプリケーションサーバによって、前記データソースからデータを受信するための、前記複数のデータベースサーバのうちの別のデータベースサーバを特定するステップと、及び、
    前記アプリケーションサーバによって、前記データソースからのデータを前記複数のデータベースサーバの前記特定された別のデータベースサーバに送信するステップと
    を含む、請求項8に記載の方法。
  14. 前記データソースが、資源の消費量を測定するためのメータデバイスを含む、請求項8に記載の方法。
  15. サーバによって、データソースから、前記データソースに関連付けられたソース識別子を含むデータを取得するステップと、
    前記サーバによって、前記データソースに関連付けられた前記ソース識別子に対応するルーティング識別子に基づいて、前記データソースに関連付けられた、複数のアプリケーションサーバグループのうちのアプリケーションサーバグループを決定するステップであって、前記ルーティング識別子は、前記複数のアプリケーションサーバグループのうち、前記データソースに関連付けられ、且つ、前記データソースから前記データを受信または処理するために使用される、前記アプリケーションサーバグループを示すものである、決定するステップと、
    前記サーバによって、前記データソースからのデータを前記アプリケーションサーバグループのアプリケーションサーバに送信するステップと、
    前記アプリケーションサーバによって、前記アプリケーションサーバグループに対応する、複数のデータベースサーバのうちの第1のデータベースサーバを決定するステップであって、前記複数のデータベースサーバの数は、前記複数のアプリケーションサーバグループの数と等しく、前記複数のアプリケーションサーバグループの各々は、前記複数のデータベースサーバのうちの一つのデータベースサーバに対応し、且つ、通信可能に接続されている、決定するステップと、
    前記アプリケーションサーバによって、前記アプリケーションサーバグループに対応する前記第1のデータベースサーバのエラーを検出するステップと、
    前記アプリケーションサーバによって、前記データソースからデータを受信するための、前記複数のデータベースサーバのうちの第2のデータベースサーバを特定するステップと、
    前記アプリケーションサーバによって、前記データソースからのデータを前記複数のデータベースサーバの第2のデータベースサーバに送信するステップと、及び、
    前記第2のデータベースサーバによって、前記データソースからのデータをシステムデータベース上に格納させるステップと
    を含む、
    方法。
  16. 前記データソースからのデータを前記アプリケーションサーバグループの前記アプリケーションサーバにデータを送信するステップは、
    前記サーバによって、前記アプリケーションサーバグループに関連付けられた、複数のロードバランサデバイスのうちのロードバランサデバイスを決定するステップと、
    前記サーバによって、前記データソースからのデータを前記ロードバランサデバイスに送信するステップと、
    前記ロードバランサデバイスによって、前記データソースからのデータを処理するための、前記アプリケーションサーバグループの前記アプリケーションサーバを決定するステップと、及び、
    前記ロードバランサデバイスによって、前記データソースからのデータを前記アプリケーションサーバに送信するステップと
    を含む、請求項15に記載の方法。
  17. 前記データソースからのデータを処理するための、前記アプリケーションサーバグループの前記アプリケーションサーバを決定するステップは、
    前記ロードバランサデバイスによって、前記データソースからのデータを処理するための前記アプリケーションサーバの可用性に基づいて、前記データソースからのデータを処理するための前記アプリケーションサーバを決定するステップを含む、
    請求項16に記載の方法。
  18. 前記第2のデータベースサーバによって、前記データソースからのデータを前記システムデータベース上に格納させるステップは、
    前記第2のデータベースサーバによって、前記ソース識別子に基づいて前記データソースに関連付けられたキー識別子を決定するステップと、
    前記第2のデータベースサーバによって、前記システムデータベースの複数のパーティションに対応する複数のキー識別子を含むデータベースにアクセスするステップと、
    前記第2のデータベースサーバによって、前記データソースの前記キー識別子に対応する前記システムデータベースの前記複数のパーティションのうちの特定のパーティションを決定するステップと、及び、
    前記第2のデータベースサーバによって、前記データソースからのデータを、前記特定のパーティションに格納するための、前記システムデータベースに送信するステップと
    を含む、
    請求項15に記載の方法。
  19. 前記ルーティング識別子は、
    複数のソース識別子に対応する複数のルーティング識別子を含むデータベースから取得され、
    各ルーティング識別子は、前記複数のアプリケーションサーバグループのうち、前記複数のソース識別子のうちの一つのソース識別子により識別されるデータソースに関連付けられ、且つ、前記データソースからデータを受信または処理するために使用される、アプリケーションサーバグループを示す、
    請求項15に記載の方法。
  20. 前記データソースが、資源の消費量を測定するためのメータデバイスを含む、
    請求項15に記載の方法。
JP2022109109A 2018-03-19 2022-07-06 クラスタ化されたデータベース環境でのデータのパーティショニング Active JP7220321B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/925,257 2018-03-19
US15/925,257 US10860614B2 (en) 2018-03-19 2018-03-19 Partitioning data in a clustered database environment
JP2020550633A JP7102542B2 (ja) 2018-03-19 2019-03-12 クラスタ化されたデータベース環境でのデータのパーティショニング
PCT/US2019/021726 WO2019182801A1 (en) 2018-03-19 2019-03-12 Partitioning data in a clustered database environment

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020550633A Division JP7102542B2 (ja) 2018-03-19 2019-03-12 クラスタ化されたデータベース環境でのデータのパーティショニング

Publications (2)

Publication Number Publication Date
JP2022153422A JP2022153422A (ja) 2022-10-12
JP7220321B2 true JP7220321B2 (ja) 2023-02-09

Family

ID=65904597

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020550633A Active JP7102542B2 (ja) 2018-03-19 2019-03-12 クラスタ化されたデータベース環境でのデータのパーティショニング
JP2022109109A Active JP7220321B2 (ja) 2018-03-19 2022-07-06 クラスタ化されたデータベース環境でのデータのパーティショニング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020550633A Active JP7102542B2 (ja) 2018-03-19 2019-03-12 クラスタ化されたデータベース環境でのデータのパーティショニング

Country Status (5)

Country Link
US (2) US10860614B2 (ja)
JP (2) JP7102542B2 (ja)
CN (1) CN112106039A (ja)
AU (1) AU2019239150B2 (ja)
WO (1) WO2019182801A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520744B1 (en) * 2019-08-21 2022-12-06 EMC IP Holding Company LLC Utilizing data source identifiers to obtain deduplication efficiency within a clustered storage environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005539287A (ja) 2002-07-16 2005-12-22 ジエッセ ジェスティオーネ スィステミ エッセ.エッレ.エッレ. 地域熱監視のためのシステム及び方法
US20120284296A1 (en) 2011-05-06 2012-11-08 Verizon Patent And Licensing Inc. Database load balancing through dynamic database routing
JP2015534175A (ja) 2012-09-14 2015-11-26 ピークシー, インコーポレイテッド ソフトウェア定義ネットワークアタッチ可能記憶システムおよび方法
US20160070494A1 (en) 2014-09-10 2016-03-10 Oracle International Corporation Highly performant reliable message storage using in-memory replication technology
US20170006135A1 (en) 2015-01-23 2017-01-05 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform
JP2017168109A (ja) 2013-04-09 2017-09-21 サイトリックス システムズ,インコーポレイテッド クラウド同期型データの使用によるネイティブデスクトップの提供

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8374929B1 (en) * 2007-08-06 2013-02-12 Gogrid, LLC System and method for billing for hosted services
US8959222B2 (en) * 2011-05-19 2015-02-17 International Business Machines Corporation Load balancing system for workload groups
US20150120224A1 (en) * 2013-10-29 2015-04-30 C3 Energy, Inc. Systems and methods for processing data relating to energy usage
JP6197692B2 (ja) * 2014-02-26 2017-09-20 富士通株式会社 サーバ
US10346897B2 (en) * 2014-05-30 2019-07-09 Walmart Apollo, Llc Method and system for smart order management and application level sharding
US9792315B2 (en) * 2014-08-21 2017-10-17 Dropbox, Inc. Multi-user search system with methodology for bypassing instant indexing
JP6272190B2 (ja) * 2014-09-02 2018-01-31 株式会社日立製作所 計算機システム、計算機、負荷分散方法及びそのプログラム
WO2016162728A1 (en) 2015-04-07 2016-10-13 Telefonaktiebolaget Lm Ericsson (Publ) Workload aware storage platform
US20170046510A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Methods and Systems of Building Classifier Models in Computing Devices
CN105260136B (zh) * 2015-09-24 2019-04-05 北京百度网讯科技有限公司 数据读写方法及分布式存储系统
CN105447151A (zh) * 2015-11-27 2016-03-30 深圳市金蝶友商电子商务服务有限公司 访问分布式数据库的方法、数据源代理装置及应用服务器
CN107133243A (zh) * 2016-02-29 2017-09-05 华为技术有限公司 一种数据处理方法和服务器
US10530852B2 (en) * 2016-05-19 2020-01-07 Level 3 Communications, Llc Network mapping in content delivery network
TWI616906B (zh) * 2017-03-01 2018-03-01 Yujing Technology Co Ltd Resonant transformer with leakage inductance adjustment
US11055264B2 (en) * 2017-05-10 2021-07-06 Dropbox, Inc. Automatically coordinating application schema changes in a distributed data storage system
US11044336B2 (en) * 2018-01-29 2021-06-22 Salesforce.Com, Inc. Systems, methods, and apparatuses for capturing data change events in a cloud based computing environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005539287A (ja) 2002-07-16 2005-12-22 ジエッセ ジェスティオーネ スィステミ エッセ.エッレ.エッレ. 地域熱監視のためのシステム及び方法
US20120284296A1 (en) 2011-05-06 2012-11-08 Verizon Patent And Licensing Inc. Database load balancing through dynamic database routing
JP2015534175A (ja) 2012-09-14 2015-11-26 ピークシー, インコーポレイテッド ソフトウェア定義ネットワークアタッチ可能記憶システムおよび方法
JP2017168109A (ja) 2013-04-09 2017-09-21 サイトリックス システムズ,インコーポレイテッド クラウド同期型データの使用によるネイティブデスクトップの提供
US20160070494A1 (en) 2014-09-10 2016-03-10 Oracle International Corporation Highly performant reliable message storage using in-memory replication technology
US20170006135A1 (en) 2015-01-23 2017-01-05 C3, Inc. Systems, methods, and devices for an enterprise internet-of-things application development platform

Also Published As

Publication number Publication date
US11416517B2 (en) 2022-08-16
AU2019239150A1 (en) 2020-09-24
US10860614B2 (en) 2020-12-08
WO2019182801A1 (en) 2019-09-26
US20190286738A1 (en) 2019-09-19
AU2019239150B2 (en) 2024-03-28
US20210042328A1 (en) 2021-02-11
JP2021518604A (ja) 2021-08-02
JP2022153422A (ja) 2022-10-12
JP7102542B2 (ja) 2022-07-19
CN112106039A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
US9832128B1 (en) Dynamic advertisement routing
US9996552B2 (en) Method for generating a dataset structure for location-based services and method and system for providing location-based services to a mobile device
US20180176154A1 (en) Method and system for managing workloads in a cluster
US9407692B2 (en) Method and system for distributed load balancing
AU2015369780B2 (en) Auto discovery of configuration items
US20140280021A1 (en) System and Method for Distributed SQL Join Processing in Shared-Nothing Relational Database Clusters Using Stationary Tables
US9367261B2 (en) Computer system, data management method and data management program
US20130031229A1 (en) Traffic reduction method for distributed key-value store
JP2004537126A5 (ja)
US9141677B2 (en) Apparatus and method for arranging query
EP3465966B1 (en) A node of a network and a method of operating the same for resource distribution
JP7220321B2 (ja) クラスタ化されたデータベース環境でのデータのパーティショニング
US11550668B2 (en) Messaging system failover
US20160065660A1 (en) Computer system, computer, and load balancing method
CN112199427A (zh) 一种数据处理方法和系统
US10827042B2 (en) Traffic optimization for multi-node applications
CN113596094A (zh) 一种基于云集群的负载均衡方法及装置
US20210200765A1 (en) Connection pools for parallel processing applications accessing distributed databases
CN108881415B (zh) 分布式实时大数据分析系统
US20130067113A1 (en) Method of optimizing routing in a cluster comprising static communication links and computer program implementing that method
US9894012B2 (en) Method and system to improve network connection locality on multicore systems
JP7440007B2 (ja) データベースをクエリするためのシステム、方法および装置
Liu et al. A high performance, scalable dns service for very large scale container cloud platforms
US8429448B1 (en) Systems and methods for dynamic transaction migration in an event-driven, multi-silo architecture
US10972374B1 (en) Managed time service for compute resources

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220804

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220804

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221031

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230130

R150 Certificate of patent or registration of utility model

Ref document number: 7220321

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150