JP6521324B2 - 単一テナント及び複数テナント環境を提供するデータベースシステム - Google Patents

単一テナント及び複数テナント環境を提供するデータベースシステム Download PDF

Info

Publication number
JP6521324B2
JP6521324B2 JP2015560353A JP2015560353A JP6521324B2 JP 6521324 B2 JP6521324 B2 JP 6521324B2 JP 2015560353 A JP2015560353 A JP 2015560353A JP 2015560353 A JP2015560353 A JP 2015560353A JP 6521324 B2 JP6521324 B2 JP 6521324B2
Authority
JP
Japan
Prior art keywords
database
request
tenant environment
environment
client
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
JP2015560353A
Other languages
English (en)
Other versions
JP2016514311A (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 JP2016514311A publication Critical patent/JP2016514311A/ja
Application granted granted Critical
Publication of JP6521324B2 publication Critical patent/JP6521324B2/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/21Design, administration or maintenance of databases

Landscapes

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

Description

いくつかの先端技術組織は、「サービスとしてのソフトウェア」を売る組立技術に投資している。そのようなサービスは、共有記憶装置(例えば、データベースシステム)及び/または計算情報源へのアクセスをクライアントまたは加入者に提供する。多段電子商業システム内では、異なる情報源が、加入者及び/または全機器からの彼らのアプリケーションに、CPUに、メモリに、ネットワーク帯域に、及びI/O容量に割り当てられ得る。
クライアントアプリケーションとデータベースサービスとの間の相互作用は、読み出し操作(読み出し専用問い合わせ)、(データを記憶するための)書き込み操作、及び読み出し・変更・書き込み作業流れを用いて概念化され得る更新操作を含む。
複数テナント環境を実施するデータベースサービスは通常、複数の記憶ノードにわたりデータを区分けし、異なる顧客の代わりに(例えば、同じ記憶ノード上に及び/または同じデータベースインスタンス内に)保持される表を一体的に同時配置する。単一テナント環境を実施するデータベースサービスは、異なるクライアントに代わってそのサービスが保持する表を互いに対して隔離させる(例えば、異なる記憶ノード上で及び/または異なるデータベースインスタンス内でそれらの表を保持する)。
複数テナント環境及び単一テナント環境においてデータベースインスタンス及びデータベース表を作成する方法の一実施形態を示す流れ図である。 様々なウェブ式サービスをクライアントに提供するシステムの一実施形態を示すブロック図である。 ウェブサービス式データ記憶サービスを実施するように構成されているシステム構造の一実施形態を示すブロック図である。 図4A〜4Cは、一実施形態に従うウェブサービスプラットフォームの様々な部品を示すブロック図である。 一実施形態に従う様々なウェブ式サービスをクライアントに提供するシステムのサブシステム示すブロック図である。 複数テナント環境におけるデータベースインスタンスと単一テナント環境におけるデータベースインスタンスとを提供するシステム内で表を作成する方法の一実施形態を示す流れ図である。 単一テナント環境におけるデータベースインスタンスで表を作成し、アクセスする方法の一実施形態を示す流れ図である。 複数テナント環境におけるデータベースインスタンスで表を作成し、アクセスする方法の一実施形態を示す方法の一実施形態を示す流れ図である。 複数テナント環境において表を作成し、それを単一テナント環境に移動させる方法の一実施形態を示す流れ図である。 単一テナント環境において表を作成し、それを複数テナント環境に移動させる方法の一実施形態を示す流れ図である。 複数テナント環境及び単一テナント環境におけるデータベースインスタンスを提供するために本明細書に記載される1つ以上の技術を実施するコンピュータシステムの一実施形態を示す。
本明細書で記載される技術は様々な変更及び代わりの形の余地があるが、その特定の実施形態は、図面内で実施例として示され、本明細書で詳細に記述されるであろう。しかしながら、図面及びそれに対する詳述が、開示された特定の形態に本開示を限定することを意図しておらず、反対に、その意図は、付属の請求項により定義された本開示の趣旨及び範囲内に、全ての変更、均等物及び代替物を包含すると理解されるべきである。
上記のように、複数テナント環境を実行するデータベースサービスは通常、複数の記憶ノードにわたりデータを仕切し、(例えば、同じ記憶ノード上に及び/または同じデータベースインスタンスで)異なるクライアントの代わりに一体的に保持される表を同時配置することになる。複数テナントデータベースサービスは通常、警備、サービスコンプライアンスの質、サービス品質保証契約の施行、サービス要求の計測、及び/または異なるクライアントのためにまとめてホストされる表に対する他の表管理活動を処理することになる。この複数テナントモデルは、クライアントに対するデータベースサービスの費用を少なくとも総計で低減しやすい。しかしながら、クライアントが、極めて高頻度で使用する場合(例えば、クライアントが、1秒当たり100万回の読み出し及び/または1秒当たり100万回の書き込みの処理能力を必要とする場合)、データベースサービスを受信することを望む場合、単一テナントモデルは、クライアントに対して、複数テナント環境よりも費用効果があり得る。例えば、複数テナント機能に対処し、システム内の警備、コンプライアンス/施行、及び/または計測操作を提供するのに必要とされる機能性を含むことは、個別の記憶ノードに対してシステムが達成することができ得る処理能力量を制限する(低減する)場合がある。
いくつかの実施形態では、データベースサービスをクライアントに提供するコンピュータシステムは、その内部でクライアントに代わって表が作成され、保持され及び/または管理され得る、複数テナント環境と単一テナント環境の両方を提供し得る。本明細書でより詳しく記載されるように、データベースサービス(または基底コンピュータシステム)は、(例えば、規定によりまたはインスタンスまたは表を作成する要求で指定される様々なパラメータ値に従って)これら2つの型の環境のうちの一方または両方においてデータベースインスタンス及び表を作成し得る。いくつかの実施形態では、単一テナント環境においてホストされる表に向けられた要求を受信し、処理するとき、システムは、複数テナント環境においてホストされた表に向けられた要求を処理するときに実行され得る管理操作(例えば、いくつかの認証及び/または計測操作)のうちの少なくともいくつかを省略し得る。例えば、単一テナント環境を実施するデータベースサービスは、異なるクライアントに代わってそのサービスが保持する表を互いに対して隔離させ得る(例えば、異なる記憶ノード上で及び/または異なるデータベースインスタンス内でそれらの表を保持する)ので、これらの操作のうちのいくつかまたは全ては、表を確実にかつ効果的に管理し、その表に向けられた要求を処理するために不要の場合がある。
本明細書でより詳しく記載されるように、いくつかの実施形態では、表は、(例えば、観測される、予測される、または望まれる処理能力に応じて)システムにより自動的に、またはクライアントからの(例えば、処理能力を増すまたは費用を削減するために)そのようにするとの明確な要求に応答して単一テナント環境から複数テナント環境へまたはその逆に移動され得る。
いくつかの実施形態では、データベースサービスは、(クライアントアプリケーション、ユーザ、及び/またはデータベースサービス加入者を含み得る)クライアントに、単一テナント環境において1つ以上のデータベースインスタンスをプロビジョニングし、それらのインスタンスで複数の表を作成し、並びに複数テナント環境において1つ以上のデータベースインスタンスをプロビジョニングする(それらのインスタンスで表を作成する)能力を与え得る。基底システムは、2つの型の環境において作成される表に対してクライアントへの同じ機能性及び/またはインターフェースを表出させながら異なる基底データベースタイプを用いて、異なる型の環境に対してそれらのデータベースインスタンスを作成し得る。例えば、一実施形態では、複数テナント環境において作成されるデータベースインスタンスは、関連性のないデータベースとして実現され得るのに対し、単一テナント環境において作成されるデータベースインスタンスは、関連性のあるデータベースとして実現され得るが、これらのデータベースインスタンス及び/またはそれらのインスタンス内でホストされる表と相互作用するためのアプリケーションプログラミングインターフェース及び/またはグラフィックユーザインターフェースは、クライアントへの同じ機能性を表出させ得る。いくつかの実施形態では、クライアントは、いずれかの環境におけるデータベースインスタンスでのホストされる表に対して同じ予測可能性及び(例えば、自動縮尺決めを含む)拡張性を受け得る。
複数テナント環境及び単一テナント環境においてデータベースインスタンス及びデータベース表を作成するための方法の一実施形態は、図1の流れ図により示される。110で示されるように、この実施例では、本方法は、複数テナント環境及び単一テナント環境においてデータベースサービスを提供するシステム内でデータベースインスタンスを作成する要求を受信することを含み得る。いくつかの実施形態では、要求は、環境型(例えば、複数テナントまたは単一テナント)を指定し得る。他の実施形態では、その内部において要求されるデータベースインスタンスを作成するべき環境型の選択は、データベースシステムで作成されるデータベースインスタンスに対する規定のまたは初期の選択を指定する既定の方式に基づき得る。図1に示されるように、要求に応答して、本方法は、120内のような、データベースシステム(またはそれらのモジュール)が特定の型の環境においてデータベースインスタンスを作成することを含み得る。本方法は、130内のように、システムが、別のデータベースインスタンスを作成する要求を受信し、この他の要求が、他の環境型(例えば、複数テナントまたは単一テナント)を特定することも含み得る。要求に応答して、データベースシステム(またはそのモジュール)は、140内のように、他の型の環境においてデータベースインスタンスを作成し得る。
いくつかの実施形態では、本方法は、150内のように、データベースシステムが指定された型の環境において表を作成する要求を受信し、対応するデータベースインスタンスで表を作成することを含み得る。本方法は、160内のように、データベースシステムが、指定された環境型のプロトコルを用いて表を目標にするデータベース操作(例えば、表内に項目を記憶する及び/または取り出す操作)を実行する1つ以上の要求を受信し、処理することを含み得る。いくつかの実施形態では、本方法は、170内のように、データベースシステムが、作成された表を他の型の環境に移動させる要求を受信することを含む場合があり、この要求に対して、本システムは、他の型の環境におけるデータベースインスタンスにその表を移動させ得る。続いて、本方法は、180内のように、システムが、他の環境型のプロトコルを用いて表を目標にするデータベース操作を実行する1つ以上の追加の要求を受信し、処理することを含み得る。
いくつかの実施形態では、どちらかのテナント環境型でのデータベースインスタンスを作成することが、記憶ノードクラスタ(例えば、3つの記憶ノードのクラスタ)を作成することを含む場合があり、クライアントは、異なる型の複数のデータベースインスタンスの作成を要求する(またはそうでなければ、開始する)ことができ得る。いくつかの実施形態では、クライアントは、単一テナント環境において複数の表を作成し、アクセスする(例えば、様々なデータベース操作を実行する)ことができ得る。本システムにより、クライアントは、(例えば、望まれる場合、秒当たりの読み出し及び書き込みに関して)サービス要求に対する既定の、予測された、または取り決められた処理能力率を超えることが可能になり得る。言い換えれば、クライアントの表が、クライアント専用データベースインスタンス上にホストされるとき、システムは、クライアントが(少なくとも一時的に)バーストするのを可能にし得る。対照的に、複数テナントデータベースインスタンスでクライアントに代わって作成された表に対して、システムは、表が作成された際に要求され、指定され、及び/または取り決められた処理能力量のみを可能にし得る(及び/または保証し得る)。したがって、複数テナントモデルと単一テナントモデルの両方に対応するデータベースシステムでは、クライアントは、潜時と予測可能性と処理能力との間に折り合いを付けることができ得る。
本明細書に記載される様々な技術は、インターネット上でまたは他の公共ネットワーク上で、または仮想個人ネットワーク及び仮想個人クラウド(VPC)環境におけるサービスへの接続のような個人のネットワーク上でユーザ(例えば、加入者)にサービスを提供するシステムを含む、局所または遠隔コンピュータシステムに用いられ得る。図2は、一実施形態に従ってクライアントに様々なウェブ式サービスを提供するシステムのブロック図を示す。この実施例では、システム200は、1つ以上のクライアント205を含む。この実施例では、クライアント205は、通信ネットワーク215を介してウェブサーバ235と相互作用するように構成され得る。
この実施例で示されるように、ウェブサーバ235は、ウェブサービスA(225)、ウェブサービスB(245)、ウェブサービスC(255)のような様々なサービスに対するクライアント205からの要求を処理し、クライアント205に結果を返すように構成され得る。各々のウェブサービスは、計算源、データベースサービス、(例えば、クライアントに代わって1つ以上の表内でデータを保持する)データ記憶サービス、またはいずれかの他の種類のサービスまたは供有情報源の1つ以上をクライアントに提供し得る。
本明細書で記載されるもののようなウェブサービス式データ記憶サービスを実現するように構成されるシステム構成の一実施形態は、図3に示される。所与の部品の1つ以上のインスタンスが存在し得る場所では、本明細書で以下でのその部品についての言及が単数または複数のいずれかで行われることを注記する。しかしながら、いずれかの形式の利用は、他方を排除することを意図していない。様々な実施形態では、図3に示される部品は、コンピュータハードウェア内で直接的に、コンピュータハードウェア(例えば、マイクロプロセッサまたはコンピュータシスステム)により直接的または間接的に実行可能な命令として、またはこれらの技術の組合せを用いて実現され得る。例えば、図3の部品は、図11に示され、以下に記載される例示のコンピュータシステムのような、複数の計算ノード(または単に、ノード)を含む分散システムにより実現され得る。様々な実施形態では、所与の記憶サービスシステム部品の機能性は、特定の計算ノードにより実現され得る、またはいくつかの計算ノードにわたり分散され得る。いくつかの実施形態では、所与の計算ノードは、1超過の記憶サービスシステム部品の機能性を実現し得る。
概して、記憶サービスクライアント310a〜310nは、ネットワーク320を介してウェブサービスプラットフォーム330にウェブサービス要求を提出するように構成可能ないずれかの種類のクライアントを包含し得る。例えば、所与の記憶サービスクライアント310は、ウェブサービスプラットフォーム330により提供されるサービスへのデータベースまたはデータ記憶サービスクライアント(例えば、クライアントアプリケーション、ユーザ、及び/または加入者)のアクセスを提供するために、適切な様式のウェブブラウザ、またはプラグインモジュール、またはウェブブラウザにより提供される実行環境へのまたはその内部への拡張として実行するように構成された他の種類のコードモジュールを含み得る。代わりに、記憶サービスクライアント310は、データベースアプリケーション、メディアアプリケーション、オフィスアプリケーション、または強固な記憶源を利用するいずれかの他のアプリケーションのようなアプリケーションを包含してもよい。いくつかの実施形態では、そのようなアプリケーションは、全ての種類のウェブ式データに対する完全なブラウザサポートを必ずしも実現することなく、ウェブサービス要求を生成し、処理するのに十分な(例えば、適切な様式のハイパーテキスト・トランスファー・プロトコル(HTTP)に対する)プロトコルサポートを含み得る。即ち、記憶サービスクライアント310は、ウェブサービスプラットフォーム330と直接相互作用するように構成されたアプリケーションであり得る。様々な実施形態では、記憶サービスクライアント310は、表象状態伝送(REST)型のウェブサービス構成、文書またはメッセージ式ウェブサービス構造、または別の適切なウェブサービス構造に従ってウェブサービス要求を生成するように構成され得る。
いくつかの実施形態では、記憶サービスクライアント310は、他のアプリケーションにそれらのアプリケーションに対して透明であるようにウェブサービス式記憶装置へのアクセスを提供するように構成され得る。例えば、記憶サービスクライアント310は、本発明に記載される記憶モデルの適切な別形に従って記憶を提供するために、操作システムまたはファイルシステムと一体化するように構成され得る。しかしながら、操作システムまたはファイルシステムは、ファイル、ディレクトリ及び/またはフォルダの従来のファイルシステム階層のような、アプリケーションへの異なる記憶インターフェースを提示し得る。そのような実施形態では、アプリケーションは、本明細書に記載される記憶システムサービスモデルを利用するために変更される必要がなくてもよい。代わりに、ウェブサービスプラットフォーム330へインターフェース接続することの詳細は、操作システム環境内でのアプリケーション実行に代わって、記憶サービスクライアント310及び操作システムまたはファイルシステムにより調整され得る。
記憶サービスクライアント310は、ネットワーク320を介してウェブサービスプラットフォーム330にウェブサービス要求を伝送し、そのプラットフォームから応答を受信し得る。様々な実施形態では、ネットワーク320は、クライアント310とプラットフォーム330との間にウェブ式通信を設けるのに必要なネットワークハードウェアとプロトコルとのいずれかの適切な組合せを包含し得る。例えば、ネットワーク320は一般に、インターネットを総括的に実現する様々な遠距離通信ネットワークとサービスプロバイダとを包含し得る。ネットワーク320は、局所域ネットワーク(LAN)または広域ネットワーク(WAN)のような個人のネットワーク並びに公共または個人の無線ネットワークを含み得る。例えば、所与のクライアント310とウェブサービスプラットフォーム330の両方は、自前の内部ネットワークを有する企業内でそれぞれプロビジョニングされ得る。そのような実施形態では、ネットワーク320は、ハードウェア(例えば、モデム、ルータ、スイッチ、負荷バランサ、プロキシサーバ等)と、所与のクライアント310とインターネットとの間に並びにインターネットとウェブサービスプラットフォーム330との間にネットワークリンクを設けるのに必要なソフトウェア(例えば、プロトコルスタック、アカウントソフトウェア、ファイヤーウォール/セキュリティソフトウェア等)とを含み得る。いくつかの実施形態では、記憶サービスクライアント310が、公共のインターネットではなく個人のネットワークを用いてウェブサービスプラットフォーム330と通信する場合があることを注記する。例えば、クライアント310は、本明細書に記載されるデータ記憶サービス(及び/または基底システム)として同じ企業内でプロビジョニングされ得る。そのような事例では、クライアント310は、個人のネットワーク320(例えば、LAN、またはインターネット式通信プロトコルを用い得るが公共的にはアクセス可能ではないWAN)を通じて完全にプラットフォーム330と通信し得る。
概して、ウェブサービスプラットフォーム330は、データベースサービスまたはデータ記憶サービスによりクライアント/ユーザに代わって保持される表及び/またはそれらの表内に記憶された項目及び属性にアクセスする要求のような、ウェブサービス要求を受信し、処理するように構成される1つ以上のサービスエンドポイントを実現するように構成され得る。例えば、ウェブサービスプラットフォーム330は、様々なサービスエンドポイントを実現し、それらのエンドポイントに向けられたHTTP式ウェブサービス要求を適切に受信し、処理するように構成されたハードウェア及び/またはソフトウェアを含み得る。一実施形態では、ウェブサービスプラットフォーム330は、クライアント310からウェブサービス要求を受信し、処理用データ記憶システムをまとめて実現する様々な部品にそれらの要求を進めるように構成されたサーバシステムとして実現され得る。他の実施形態では、ウェブサービスプラットフォーム330は、負荷均衡取りと、大規模ウェブサービス要求処理負荷を動的に管理するように構成された他の要求管理機構とを実行する(例えば、クラスタ形態での)複数の異なるシステムとして構成され得る。
図3に示されるように、ウェブサービスプラットフォーム330は、(とりわけ、サービス要求を受信し、認証し、解析し、絞り込み及び/または発送するように構成され得る)フロントエンドモジュール340、(本明細書でより詳しく記載されるように、様々な可視化及び/または制御機能を提供するように構成され得る)1つ以上の管理部品または自動管理インスタンス350、及びクライアント/ユーザの代わりにまたはデータ記憶サービス(及びその基底システム)自体の代わりにその各々が1つ以上の表を保持し、管理し得る、複数の記憶ノードインスタンス(360a〜360nとして示される)を含み得る。これらの種類の部品の各々により提供される機能性のうちのいくつかは、様々な実施形態に従って本明細書でより詳しく記載される。いくつかの実施形態では、ウェブサービスプラットフォーム330が、複数テナント環境内のデータベースインスタンスで保持される表を作成し、アクセスし、及び/または管理する機能性を提供されるものとは異なる様式の、単一テナント環境内のデータベースインスタンスで保持される表を作成し、アクセスし、及び/または管理する機能性を提供するための図3に示される部品のいくつかを含む場合があることを注記する。他の実施形態では、複数テナント環境と単一テナント環境の両方に対応する機能性は、図3に示される部品のいずれかまたは全てに含まれ得る。様々な実施形態では、1つ以上のデータベースインスタンスが記憶ノード360a〜360nのうちの各々の上で実現される場合があり、各々がクライアントの代わりに表を記憶し得ることも注記する。これらのデータベースインスタンスのいくつかは、複数テナント環境内にあるように動作する場合があり、他のものは、単一テナント環境内にあるように動作する場合がある。いくつかの実施形態では、複数テナント環境内にあるとして動作するデータベースインスタンスは、単一テナント環境内にあるものとして動作するデータベースインスタンスとは異なる計算ノード上で(または単一計算ノード上で実行される異なる仮想機器上で)実現され得る。
様々な実施形態では、ウェブサービスプラットフォーム330は、異なる種類のウェブサーバ要求に対処するように構成され得る。例えば、いくつかの実施形態では、プラットフォーム330は、データ記憶サービスシステムによりクライアント/ユーザの代わりに保持及び管理される表上の様々な操作(及び/またはそれらの表上に記憶されたデータ)に対処する特定のウェブサービスアプリケーションプログラミングインターフェース(API)を実行するように構成され得る。そのようなAPIにより対処される操作の実施例は、本明細書により詳しく記載される。
クライアントのウェブサービス要求に対してアドレス指定可能なエンドポイントとして機能することに加えて、いくつかの実施形態では、ウェブサービスプラットフォーム330は、様々なクライアント管理構造を実装し得る。例えば、プラットフォーム330は、要求するクライアント310の身元、クライアント要求の数及び/または頻度、クライアント310に代わって記憶されるまたは取り出される表及び/または項目の寸法、クライアント310により用いられる総合記憶帯域、クライアント310により要求される記憶クラス、及び/またはいずれかの他の計測可能なクライアント使用パラメータを追跡することによってのように、記憶源を含むウェブサービスのクライアント使用の計量及び計算を調整することがある。プラットフォーム330はそのうえ、収支勘定及び支払請求システムを実施し得る、またはクライアント使用活動を報告及び支払請求するための外部システムにより問い合わせられ、処理される使用データのデータベースを保持し得る。いくつかの実施形態では、プラットフォーム330は、ロックマネージャ及び/または自動構成(図示されず)を含み得る。
様々な実施形態では、データベースサービスまたはデータ記憶サービスが、本明細書に記載される機能を実行するように構成される1つ以上の計算ノード上に実装される。いくつかの実施形態では、サービスは、その各々が本明細書に記載される1つ以上の機能を実行し得る、複数の計算ノードで構成される(図3のウェブサービスプラットフォーム330のような)ウェブサービスプラットフォームにより実行され得る。様々な群の計算ノードは、自動管理クラスタ、データ記憶サービス専用情報源のクラスタ、及び(いくつかの実施形態において他のウェブサービスまたはアプリケーションで共有され得る)一群の外部源の機能性を提供するように構成され得る。
いくつかの実施形態では、それを用いてシステムが本明細書に記載される機能性を提供するように相互作用する、外部源は、外部作業流れ部品370として図3で示される外部作業流れ部品を含み得る。外部作業流れ部品370は、それを通じて他の部品が外部作業流れシステムと相互作用する、フレームワークを提供し得る。いくつかの実施形態では、ウェブサービスプラットフォーム330は、そのフレームワーク(図示されず)の頂部上に組み立てられるアクセスAPIを含み得る。このインターフェースにより、システムが、データ記憶サービスにより受けられると予想される使用パターンに適したAPIを実行することが可能になり得る。いくつかの実施形態では、外部作業流れ部品370を用いるシステムの部品またはモジュールは、外部作業流れ部品370により提供されるインターフェースに直接接合するのではではなく、これらのインターフェースを含み得る。いくつかの実施形態では、ウェブサービスプラットフォーム330は、外部作業流れ部品370に加えて、外部記憶サービス380及び/または他の外部(いくつかの事例では共有される)外部源のような1つ以上の外部源に依存し得る。いくつかの実施形態では、外部作業流れ部品370は、特定の区画レプリカ群に拡張される操作のような、分散型操作を実行するのに用いられ得る。
いくつかの実施形態では、本発明に記載されるデータベースシステムは、「完全非共有」型構造におけるユーザ表の継ぎ目のないスケーリングに対応し得る。例えば、いくつかの実施形態では、各々のデータベース区画は、完全に独立した並列計算ユニットとして実装され得る。そのような実施形態では、システムは、区画にわたる分散調整を提供しない、またはバッチ「プット」操作及び/または複数宣言トランザクションに対応しない場合がある。いくつかの実施形態では、作業負荷分散が区画にわたり良く分散されている限り、区画数の増加により、使用可能な表の寸法が大きくなる及び/またはサービス要求に対する処理能力容量が増加する場合がある。本明細書に記載されるように、いくつかの実施形態では、(プログラム通りの/自動のまたは明確に初期化された)実況再区分が、作業変化に適合するように用いられ得る。言い換えれば、いくつかの実施形態では、(区画移動、区画分割、及び他の再区分操作を含む)再区分は、割り当てられた区画に向けられたサービス要求が受信され、処理され続ける間(即ち、ソース区画との接続を切ることなく)実行され得る。
いくつかの実施形態では、サービス(及び/または基底システム)は、様々なサービス提供及び/または処理能力モデルに対応し得る。いくつかの実施形態では、サービスは、付託作業処理能力提供及び/または最良成果提供に対応し得る。いくつかの実施形態では、規格化されたロジカル作業ユニット(またはロジカルサービス要求ユニット)を経時的に測定する観点から、付託作業処理能力レベルが指定される場合があり、システムにより保証される作業処理能力レベルを表し得る。例えば、(例えば、クライアントの代わりに保持される表内に)データベースまたはデータ記憶サービスを提供するシステムでは、記憶サービスクライアント(例えば、サービスへのアクセスを有するクライアントアプリケーション、ユーザ、または加入者)が、様々なビジネスモデル、加入の種類、及び/または支払モデルに従ってサービスにより提供される複数の処理能力選択肢の間の優先度を指定してもよい。例えば、クライアント/ユーザは、いくつかの実施形態において表を作成する要求のパラメータを通じて、特定の表に対して好ましい処理能力モデルを示してもよい。他の実施形態では、クライアント/ユーザは、データ記憶サービスにより彼らの代わりに作成され、保持される全ての表に対して規定の処理能力モデルを指定し得る。付託処理能力モデルと(それに対しては処理能力の保証が行われない)最良成果処理能力モデルの両方に対応することにより、システムは、クライアント/ユーザが、彼らの要求及び/または予算に従って性能と費用との間で折り合いを付けるのを可能にし得る。他の種類のサービスは、付託作業処理能力モデル及び/または他の処理能力モデルに対応し得る。
付託処理能力を提供するデータ記憶サービス(及び基底システム)は、表に向けられた通信量に応答してクライアント/ユーザの代わりに保持される表の作成、拡大、及び管理に対して容量及び/または情報源を事前に割り当てるように、かつ、情報源及び/または表がその上で保持される記憶ノード(複数可)の容量を管理しないように構成され得る。いくつかの実施形態では、付託処理能力モデル下のサービス(基底システム)により保持される表は、クライアント/ユーザからの要求を処理する際に極端に低い潜時を提供するために、高性能媒体(例えば、フラッシュメモリまたは固体ドライブ、またはSSD、媒体)のような高速の(及び多くの場合、より高価な)記憶源内に保持され得る。例えば、システムは、それらの表(及び表の様々な区画)を保持するための主要(例えばディスク)メモリに高比率の高速/局所メモリを提供(及び呈示)し得る。付託処理能力モデル下で所与の表に割り当てられた記憶源は、いくつかの事例において(少なくともある程度の時間)十分に活用され得ないが、クライアント/ユーザは、その表に対して常に必要とされるよりも多くの情報源を呈示する追加の(及びいくつかの事例において無駄な)費用ばかりでなく、付託処理能力モデルにより割り当てられる予測可能な性能を評価し得る。同様に、付託作業処理能力モデルに対応するために他の種類のサービスに事前に割り当てられる情報源は、いくかの事例において(少なくともある程度の時間)十分には活用され得ないが、(例えば、利用可能性及び/または応答性に関して)予測可能な性能レベルをクライアント/ユーザに提供し得る。
本明細書に記載されるように、いくつかの実施形態では、本明細書に記載されるシステムは、複数テナントモデルと単一テナントモデルの両方に対応し得る。そのようないくつかの実施形態では、クライアント/ユーザは、表を作成する要求のパラメータを通じて特定の表に対してこれらのテナントモデルの好ましいものを示し得る。他の実施形態では、クライアント/ユーザは、データ記憶サービスにより彼らの代わりに作成され、保持される全ての表に対して規定のまたは初期のテナントモデルを指定し得る。
図4A〜4Cは、一実施形態に従ってウェブサービスプラットフォーム330の各々の種類の部品に含まれ得る様々な要素またはモジュールを示す。図4Aに示されるように、フロントエンドモジュール340は、サービス要求の解析及び絞り込み(410として示される)、サービス要求の認証及び/または計測(415として示される)、サービス要求の発送(425として示される)、及び/または区画マップキャッシュ(430として示される)の保持を実行するように構成される1つ以上のモジュールを含み得る。これらの部品特定モジュールに加えて、フロントエンドモジュール340は、メッセージバス(435として示される)及び/または動的構成モジュール(440として示される)ような、ウェブサービスプラットフォーム330をまとめて実現する複数の種類の計算ノードに共通する部品を含み得る。他の実施形態では、より多くの、より少ない、または異なる要素がフロントエンドモジュール340に含まれ得る、またはフロントエンドモジュール340に含まれるものとして示されるいずれかの要素が、本明細書に記載されるデータ記憶サービスを提供するために、ウェブサービスプラットフォーム330の別の部品に、またはウェブサービスプラットフォーム330と相互作用するように構成された部品に含まれ得る。
図4Bに示されるように、自動管理インスタンス350は、システム管理者に可視化及び制御(445として示される)を提供するように、または熱収支(450として示される)及び/または異常制御(455として示される)、情報源割り当て(460として示される)を実行するように構成された1つ以上のモジュールを含み得る。自動管理インスタンス350は、それを通じてシステム管理者がデータ記憶サービス(及び/または基底システム)と相互作用し得る、管理コンソール465を含み得る。いくつかの実施形態では、管理コンソール465は、データ記憶サービスのための(例えば、システム管理者による構成または再構成のための)第1の視覚化及び制御点であり得る。例えば、管理コンソール465は、システム管理者及び/または他の特権ユーザに表示及び制御機能を提供してかつそれを通じてシステム状態指標、メタデータ、及び/または操作パラメータが観測及び/または更新される、比較的軽量クライアントとして実行され得る。これらの部品特性モジュールに加えて、自動管理インスタンス350は、メッセージバス(435として示される)及び/または動的構成モジュール(440として示される)ような、ウェブサービスプラットフォーム330をまとめて実現する異なる種類の計算ノードに共通する部品も含み得る。他の実施形態では、より多くの、より少ない、または異なる要素が自動管理インスタンス350に含まれ得る、または自動管理インスタンス350に含まれるものとして示されるいずれかの要素が、本明細書に記載されるデータ記憶サービスを提供するために、ウェブサービスプラットフォーム330の別の部品に、またはウェブサービスプラットフォーム330と相互作用するように構成された部品に含まれ得る。
図4Cに示されるように、記憶ノードインスタンス360は、区画管理を提供するように(470として示される)、複製を実行し、プロセスの障害を迂回するように(475として示される)、及び/または基底記憶装置にアプリケーションプログラミングインターフェース(API)を提供するように(480として示される)構成される1つ以上のモジュールを含み得る。この実施例で示されるように、各々の記憶ノードインスタンス360は、1つ以上のクライアント/ユーザの代わりに(いくつかの実施形態において関連のないデータベースであり得る)記憶装置480内に1つ以上の表(及び関連する表データ)を保持する(即ち、記憶及び管理する)ように構成され得る記憶エンジン485を含み得る。これらの部品特定モジュールに加えて、記憶ノードインスタンス360は、メッセージバス(435として示される)及び/または動的構成モジュール(440として示される)ような、ウェブサービスプラットフォーム330をまとめて実現する異なる種類の計算ノードに共通する部品を含み得る。他の実施形態では、より多くの、より少ない、または異なる要素が記憶ノードインスタンス360に含まれ得る、または記憶ノードインスタンス360に含まれるものとして示されるいずれかの要素が、本明細書に記載されるデータ記憶サービスを提供するために、ウェブサービスプラットフォーム330の別の部品に、またはウェブサービスプラットフォーム330と相互作用するように構成された部品に含まれ得る。
いくつかの実施形態では、単一テナント環境において動作する表に対して複数テナント環境においてフロントエンドモジュール340により通常提供され得る絞り込み、認証及び/または計測操作のいくつかまたは全てを実行する必要があり得ないことを注記する。例えば、システムは、単一テナント環境における表に向けられた要求を処理する際にこれらの操作を省略するように、しかし複数テナント環境における表に向けられた要求を処理する際にそれらの操作を実行するように構成され得る。同様に、いくつかの実施形態では、自動管理インスタンス350により実行されるものとして示される操作のいくつか(例えば、熱収支及び/または情報源割り当て)は、単一テナント環境における表を管理する際に用いられても、用いられなくてもよい。しかしながら、自動管理インスタンス350(またはそれらの様々なモジュール)により実行されるものとして示される他の操作は、複数テナント環境と単一テナント環境の両方において表を作成及び/または管理する際に用いられてもよい。
本明細書に記載されるデータベースまたはデータ記憶サービスの基底にあるシステムは、記憶サービスクライアント(例えば、クライアントアプリケーション、ユーザ、及び/または加入者)に代わって、1つ以上の属性を有する項目を含む表内にデータを記憶し得る。いくつかの実施形態では、データ記憶サービスは、その内部においてクライアント/ユーザに代わって保持される各々の表が1つ以上の項目を含みかつ各々の項目が一群の属性を含む、データモデルをクライアント/ユーザに提示し得る。項目の属性は、任意の順序の一群の名称値対であり得る。いくつかの実施形態では、項目内の各々の属性は、名称、種類、及び値を有し得る。いくつかの属性は、属性名が単一値に対応付けられるような単一値であり得るのに対し、他のものは、属性名が2つ以上の値に対応付けられるような複数値であり得る。いくつかの実施形態では、属性の名称は常に文字列であり得るが、その値は、文字列、数字、文字列集合、または数字集合であり得る。以下は、属性の全ての例である:「ImagID」=1、「題目」=「花」、「タグ」={「花」「ジャスミン」、「白」}、「等級付け」={3、4、2}。項目は、(1つ以上の属性値を含み得る)第1のキー値に各々の項目を割り当てることにより管理され得る。この第1のキー値は、項目を一意に識別するのに用いられ得る。いくつかの実施形態では、大きな数の属性は、表内の項目にわたり定義され得るが、各々の項目は、これらの属性の疎集合を含み得る(一項目に対して指定された特別な属性は、同じ表内の別の項目の属性に関連していない)。属性の全ては、第1のキー属性(複数可)を除いて任意であり得る。言い換えれば、従来のデータベースとは異なり、データベースまたはデータ記憶サービス(及び基底記憶システム)により保持される表は、第1のキーへのそれらの依存以外は既定の概要を有していなくてもよい。いくつかの実施形態では、属性が項目内に含まれる場合、その値がゼロまたは空であり得ず(例えば、属性名及び値は空の文字列ではあり得ず)、単一項目内でその属性の名称が一意である場合があることを注記する。
いくつかの実施形態では、本明細書に記載されるシステムは、ユーザ/加入者またはクライアントアプリケーションに大量の(即ち、仮想的に限度のない)縮尺決め、予測可能性、及び簡素化を提供するために、ある程度限定された指標及び/または問い合わせモデルを用い得る。例えば、いくつかの実施形態では、データは、第1のキーのみにより指標を付けられ、区分けされ(例えば、基底データベース内で区分けされ)得る。そのような実施形態では、ユーザ表内のデータに指標を付けるのに用いられるべき第1のキーが、ユーザの代わりに表が作成されるときにユーザにより指定され得る。その後、ユーザのデータの区分けは、システムにより処理され、ユーザから抽出され得る。いくつかの実施形態では、データに指標を付けるのに用いられる第1のキーが単一の属性ハッシュキーで構成され得る。他の実施形態では、データを指標付け及び/または区分けするのに用いられる第1のキーは、ハッシュキー部品及びレンジキー部品と本明細書で時折呼ばれる別の部品を備えた複合キーであり得る。様々な実施形態では、指標を付けられた属性に対する問い合わせに対応する場合があり、完全表走査機能が、(例えば、障害探索に対応するために)提供され得る。いくつかの実施形態では、ユーザは、第1のキーの指標以外の1つ以上の属性に基づいて表に対する第2の指標を定義する場合があり、次にユーザが定義している指標を用いて項目に対して問い合わせる場合がある。例えば、いくつかの実施形態では、システムが、(例えば、createIndex APIを用いて)第2の指標を短時間で作成することの作成に対応する場合があり、これらの第2の指標は、記憶要求に基づいて自動的に縮尺決めされ(例えば、データ容積を増加または減少させ)、及び/または、通信に読み出し/書き込みし得る。いくつかの実施形態では、そのような第2の指標は、表内の項目が更新されるときに非同期で更新され得る。
様々な実施形態では、サービス(及び/または基底システム)は、表名称、項目、属性値、第1のキー値、及び/または属性名についての事前に定められた寸法制限を施行し得る。例えば、いくつかの実施形態では、項目内の全ての属性名及び値の全寸法(即ち、横列寸法)は、限定され得る。
本明細書に記載されるデータベース及びデータ記憶サービス(及び/または基底システム)は、記憶サービスクライアントの代わりに保持された、表を目標にする様々な操作、項目、及び/または属性を要求するためのアプリケーションプログラミングインターフェース(API)を提供し得る。いくつかの実施形態では、サービス(及び/または基底システム)は、制御プレーンAPIとデータプレーンAPIの両方を提供し得る。データ記憶サービス(及び/または基底システム)により提供される制御プレーンAPIは、表及び指標のような表レベル全体を操作するのに用いられ得る。これらのAPIは、(データプレーンAPIと比較すると)比較的頻繁に呼び出され得る。いくつかの実施形態では、サービスにより提供される制御プレーンAPIは、表を作成し、表を削除し、及び/または表を記述するのに用いられ得る。いくつかの実施形態では、表レベル全体に対する更新を実行する制御プレーンAPIは、要求された操作を実行するために非同期の作業流れを呼び起こし得る。(例えば、describeTables APIを介して)「記述」情報を必要とする方法は単に、クライアント/ユーザの代わりにサービスにより保持される現時点で周知の表の状態を返し得る。データ記憶サービス(及び/または基底システム)により提供されるデータプレーンAPIは、項目及び/またはそれらの属性を記憶し、削除し、取り出し、及び/または更新する、または問い合わせ及び走査のような表内の複数の項目にわたり指標に基づく検索型操作を実行するような、項目レベル操作を実行するのに用いられ得る。
本明細書に記載されるサービスにより提供されるAPIは、異なる実施形態において、1つ以上の工業規格または適性データ交換形式に符号化された要求及び応答パラメータに対応し得る。例えば、様々な実施形態では、要求及び応答は、人により読み出し可能な(例えば、テキスト式の)データ交換規格(例えば、JavaScript(登録商標) Object Notation、またはJSON)に固執し得る、又(いくつかの事例においてテキスト式表記よりも小型であり得る)二値符号化を用いて表記され得る。様々な実施形態では、システムは、本明細書に記載されるAPIの入力パラメータの1つ以上に対して規定値(例えば、システムワイド、ユーザ特定、またはアカウント特定規定値)を供給し得る。
上記のように、サービスにより対応される制御プレーンAPIは、表についての更新を実行するAPI(例えば、CreateTable API及び/またはDeleteTable API)を含み得る。様々な実施形態では、これらのAPIは、要求された操作を実行するために非同期の作業流れを呼び起こし得る。加えて、サービスは、現時点で周知の状態を返す方法(例えば、DescribeTable API)に対応し得る。いくつかの実施形態では、共通の使用モデルは、(例えば、Createtable APIを用いて)クライアントが行動を要求し、次に対応する記述APIを介して、その完了を問い合わせるためのものであり得る(例えば、DescribeTable)。
システムがデータベースまたはデータ記憶サービスをクライアントに提供する、いくつかの実施形態では、システムは、記憶サービスクライアントの代わりにサービスにより表内に保持されるデータについての以下の操作:項目を入力(記憶)すること、特定の第1のキーを有する1つ以上の項目を得ること、項目を削除すること、単一項目内の属性を更新すること、指標を用いて項目について問い合わせること、表全体にわたり走査する(例えば、項目を一覧する)こと、任意選択で返された項目を選別することのうちのいくつかまたは全てへの対応を含むアプリケーションプログラミングインターフェース(API)を提供し得る。例えば、本明細書に記載されるデータ記憶サービス(及び/または基底システム)は、PutItem API、GetItem(GetItems)API、DeleteItem API、及び/またはUpdateItem APIのような項目レベル操作、並びに、QueryAPI及び/またはScan APIのような表内の複数の項目にわたり1つ以上の指標ベース検索/走査操作を実行するための様々なデータプレーンAPIを提供してもよい。それらの操作を特定するサービス要求を満たすのに必要とされる作業量が、要求を満たすために、指定された特定の操作に依存して、及び/または記憶システムとクライアントとの間でアクセス及び/または伝送されるデータ量に依存して変化する場合があることを注記する。
いくつかの実施形態では、本明細書に記載されるシステムは、専用ハードウェア上で(例えば、専用記憶装置上で)またはシステム内の記憶ノードのうちの特定のものの上で単一テナント環境においてデータベースインスタンスを作成し、実行するように構成され得る。他の実施形態では、単一テナント環境におけるデータベースインスタンスは、同じ記憶ノード上で作成されかつ実行される他のデータベースインスタンスとは異なる記憶ノード内の仮想機器上で作成され、実行され得る。いくつかの実施形態では、両方の型の環境における表を目標にするデータベース操作(データを記憶し、取り出し、または削除する操作)を実行するための機能を実行する基底ソフトウェア及び/またはハードウェアは、同じ(実質的に類似)であり得る。しかしながら、クライアントは、単一テナント環境においてデータベースインスタンス(及び/またはその内部の表)に直接接続することができ得るので、システムが、複数テナントに対応するのに必要とされる安全性または他の有用性を提供するために中間層を提供する必要はあり得ない。代わりに、認証確認は省かれる場合があり、クライアントは、これらの表上で操作を実行する要求を例えば低潜時経路上で直接基底記憶ノード(複数可)に提出してもよい。
例えば、いくつかの実施形態では、クライアントは、(例えば、CreateDatabaseInstance APIを用いて)データベースインスタンスを作成する要求を提出してもよく、(例えば、DescribeDatabaseInstance APIを用いて)データベースインスタンスを記述する要求を提出してもよく、それに応答して、システムは、クライアントが様々な操作(例えば、表作成、項目入力、項目獲得等)を実行するためにデータベースインスタンス(またはその内部の表)に直接接続し得る、IPアドレス一覧を返し得る。一般に、複数テナント環境におけるデータベースインスタンスは、全てが同じデータベースインスタンス内で実行される、複数の異なるクライアントに対する表を記憶し得る。したがって、システムは、クライアントが、様々な警備及び認証方式を用いて各々の他の表にアクセスすることができないようにすることを必要とされる場合がある。しかしながら、単一テナント環境において専用データベースインスタンスを用いて、クライアントは、特定のデータベースインスタンスに対する特定のIPアドレスを与えられてもよく、その後、クライアントは、いくつかの実施形態において、そのインスタンスに接続し及び/またはそれらの表(複数可)への彼ら自身のネットワーク接続、例えば、様々なオープンソースプロトコルうちの1つを準拠するTCP接続を作成することができるクライアントを制限するために、ファイヤーウォール群または別の種類の警備群を構成してもよい。
図5は、いくつかの実施形態に従って様々なウェブ式サービスをクライアントに提供するコンピュータシステム500を示すブロック図である。例えば、いくつかの実施形態では、コンピュータシステム500は、図3に示されるようなウェブサービスプラットフォーム330のようなウェブサーバを実行し得る。様々な実施形態では、コンピュータシステム500は、様々なクライアントにより要求されたサービスを提供するために、1つ以上の情報源プールからコンピュータシステム500により受信されるサービス要求までの(例えば、下流サービス、データベース接続、入力/出力経路、計算情報源、実行スレッド、システムメモリの一部、ディスクメモリまたは他の強固な記憶源、または他の制約付き情報源を含み得る)様々な情報源を割り当てるように構成され得る。例えば、データ記憶システムに向けられたサービス要求を満たすために、データ記憶システムは、各々の規格化されたロジックユニットまたは要求を満たすのに必要とされるロジックサービス要求に対して、1つ以上のデータベース接続、入力/出力経路、記憶源部分及び/または他の情報源を割り当ててもよい。この実施例で示されるように、コンピュータシステム500は、ウェブサービスインターフェース505、複数テナント環境に用いられる承認制御サブシステム510、複数テナント環境において表に向けられる要求を管理するためのサービス要求サブシステム530、及び単一テナント環境における表に向けられる要求を管理するためのサービス要求サブシステム535を含み得る。
この実施例では、ウェブサービスインターフェース505は、様々なクライアントからサービスに対する要求を受信し、クライアントの代わりにこれらのサービスを実行しやすくするために承認制御サブシステム510と通信するように構成され得る。例えば、いくつかの実施形態では、承認制御サブシステム510は、複数テナント環境における表に向けられるどのサービス要求及び/またはどれ位多くのサービス要求が様々なクライアントから受け入れられるかを判定するように構成される場合があり、1つ以上の受信されたサービス要求を受け入れる及び/または処理するためにサービス要求サブシステム530と通信する場合がある。いくつかの実施形態では、承認制御サブシステム510は、システムに対する及び/または特定のクライアント、アプリケーション、目標、要求の種類、または操作に対する最大要求率に応じて、どのサービス要求及び/またはどれ位多くのサービス要求が受け入れられるのか判定するように構成され得る。本明細書に記載されるように、最大要求率は、現時点の作業処理能力率及び/または目標または付託作業処理能力率に応じて動的に調節され得る。他の実施形態では、サービス要求は、作業式トークンを用いて管理され得る。様々な実施形態では、承認制御サブシステム510は、均一ではない作業負荷を有するサービス要求を管理するのに適したいずれかの承認制御機構を含む1つ以上の承認制御機構を実行し得る。
いくつかの実施形態では、サービス要求が、承認制御サブシステム510により処理するために受け入れられる場合、次にサービス要求サブシステム530は、要求されるサービスを実行するのに必要とされる1つ以上の情報源をそれらの要求に割り当てる(またはそれらの割り当てを開始する)ように、及び/またはウェブサービスインターフェース505を介してクライアントに結果を返すように構成され得る。例えば、承認制御サブシステム510により受け入れられる問い合わせ要求に応答してシステムがデータ記憶サービスを提供する実施形態では、サービス要求サブシステム530は、問い合わせが向けられる先の、かつウェブサービスインターフェース505を介してクライアントに問い合わせ結果を返し得る、表にアクセスし得る。いくつかの実施形態では、承認制御サブシステム510は、均一ではない作業負荷を有するサービス要求を絞り込むように、そうでなければそれらを管理するように(例えば、現時点の作業処理能力率に応じて最大要求率を調節するように)構成され得る。他の実施形態では、この機能性は、サービス要求を絞り込むのに用いられる承認制御サブシステムに最大要求率を提供し得るシステムの別の部品により提供され得る。いくつかの実施形態では、承認制御サブシステム510は、「漏れバケット」式承認コントローラを実装し得る。いくつかの実施形態では、ウェブサービスインターフェース505は、クライアントの代わりに承認制御サブシステム510及び/またはコンピュータ500の他の部品と通信するために、定義されたアプリケーションプロトコルインターフェース(API)を介してのように、既定の命令または通信を活用し得る。
この実施例では、サービス要求サブシステム535は、単一テナント環境における表に向けられる要求されたサービスを実行するのに必要とされる1つ以上の情報源を割り当てる(またはそれらの割り当てを初期化する)ように、及び/または承認制御サブシステム510によって実行されているような上述の操作の全てを実行することなく、ウェブサービスインターフェース505を介してクライアントに結果を返すように構成され得る。例えば、問い合わせ要求に応答してシステムが単一テナント環境における表に対するデータベースまたはデータ記憶サービスを提供する、実施形態では、サービス要求サブシステム535は、問い合わせが向けられる先の、かつウェブサービスインターフェース505を介してクライアントに問い合わせ結果を返し得る、表にアクセスし得る。
様々な実施形態では、図4A〜4C及び/または図5に示される部品が、コンピュータハードウェア(例えば、マイクロプロセッサまたはコンピュータシステム)により直接的または間接的に実行可能な命令として、またはそれらの技術の組合せとして、コンピュータハードウェア内に直接実装される場合があることを注記する。例えば、コンピュータシステム500の部品は、任意の数の計算ノード(または単に、ノード)を含む分散システムにより実装されてもよい。様々な実施形態では、所与の部品の機能性は、特定のノードにより実装され得る、またはいくつかのノードにわたり分散され得る。いくつかの実施形態では、所与のノードは、図4A〜4C及び/または図5に示される1超過の部品の機能を実行し得る。
ウェブサーバ(または承認制御システムまたはそのシステムの他の部品)により実行され得る様々な技術が、異なる実施形態に従って以下により詳しく記載される。一般に、クライアントの代わりにサービス要求の処理を管理するための本明細書に記載される技術のいずれかまたは全ては、ウェブサーバの部品である承認制御モジュールにより実行され得る、及び/またはその中に実装され得る。本明細書に記載されるいくつかの実施例は、インターネット上でサービスを提供するシステムに向けられているが、他の実施形態では、これらの技術は、承認制御モジュールまたはサービスをクライアントに提供しかつそれらのクライアントに代わって要求を受信し、受け入れ、及び/または処理するように構成されている、別の種類のシステムの類似の部品により実行され得る、及び/またはその中に実装され得る。
上記のように、いくつかの実施形態では、複数テナントモデルと単一テナントモデルの両方に対応するデータベースシステムは、クライアントが、それらの表を設定させようとする方法を選択するのを可能にし得る。加えて、いくつかの実施形態では、初期において表が(例えば、費用を低く保とうとする際に)複数テナント環境において設定される場合、後にクライアントが表の全て(または一部)に対してより高い処理能力を必要とする(望む)場合、表(またはその表の高使用頻度部分)は、より高い処理能力を提供し得る単一テナント環境に移動され得る。例えば、表内のデータに高頻度でアクセスされている(高頻度でアクセスされると予想される)とき、クライアントは、表データの瞬時状態(または高頻度でアクセスされている表の一部)を作成し、その表(またはその表の一部)を単一テナント環境に移動させることを必要とし得る(システムはそれを自動的に実行し得る)。この実施例では、将来のいずれかの時点で、表(または移動された表の一部)がもはや高頻度でアクセスされていない場合、クライアントは、その表を複数テナント環境に戻すように移動させる必要があり得る(またはシステムはそれを自動的に実行させる)。一般に、本明細書で記載されるシステム内で作成される表は、望みに応じて(例えば、作業負荷、所望の処理能力、費用、様々なシステム方式またはサービス契約に応じて、または他の因子に応じて)複数テナント環境と単一テナント環境との間のどちらの方向にも移動され得る。
いくつかの実施形態では、単一のクライアントが、複数テナント環境における表内のそれらのデータのいくつかの部分と単一テナント環境における表内のそれらのデータの他の部分とを記憶し得るけれども、クライアントが、それらのデータを表毎でこれら2つのテナント機能モデルに分割させることのみができ得ることを注記する。言い換えれば、クライアントは、複数テナント環境におけるいくつかの表と単一テナント環境における他の表とを記憶することができ得るが、各々がこれらの環境モデルの1つの下で記憶されることになる表自体が最初に複数の表に分割されない場合、表を2つの環境の間で分割させることができない場合がある。一実施例では、単一テナント環境におけるデータベースインスタンスの能力が100ギガバイトであり(これが、単一テナントモデルにおいて対処され得る最大寸法のデータベースインスタンスがあり)、クライアントが、記憶120ギガバイトのデータを作成することを望む場合、クライアントは、100ギガバイトを切り分け、それを単一テナント環境における表に加え、残りの20ギガバイトを複数テナント環境における表に加え(残し)てもよい。
複数テナント環境におけるデータベースインスタンスと単一テナント環境におけるデータベースインスタンスとを提供するシステム内で表を作成するための方法の1つの実施形態は、図6の流れ図により示される。610に示されるように、この実施例では、本方法は、複数テナント環境及び単一テナント環境においてデータベースサービスを提供し、表を作成する要求を受信するシステムを含む場合があり、その要求は、環境型(例えば、複数テナントまたは単一テナント)を指定し得る。その要求が、(620からの肯定方向の出口として示される)複数テナント環境において表が作成されるべきであることを指定する場合、本方法は、630内のように、データベースシステムが、複数テナント環境におけるデータベースインスタンスで表を作成することを含み得る。次に本システムは、635内のように、続いて受信され、かつ表を目標にする入力サービス要求のうちの少なくとも一部を処理し始め得る。
要求が、(620からの否定方向の出口として示される)複数テナント環境において表が作成されるべきであることを指定しない場合、本方法は、640内のように、データベースシステムが、単一テナント環境におけるデータベースインスタンスで表を作成することを含み得る。次に本システムは、645内のように、続いて受信され、かつ表を目標にする入力サービス要求のうちの少なくとも一部を処理し始め得る。(650からの肯定方向の出口として示される)表を作成するより多くの要求が受信される場合、本方法は、(650の否定方向の出口から610への帰還として示される)各々の追加の要求に対して図6に示される操作を繰り返すことを含み得る。
上記のように、データベースシステムは、単一テナント環境における表を目標にするデータベース操作を実行する要求を処理するときに、複数テナント環境における表を目標にするデータベース操作を実行する要求を処理するときとは異なる操作を実行するように構成され得る。単一テナント環境におけるデータベースインスタンスで表を作成し、アクセスするための方法の一実施形態は、図7の流れ図により示される。この実施例で示されるように、本方法は、710内のように、複数テナント環境及び単一テナント環境においてデータベースサービスを提供し、単一テナント環境における表を作成する要求を(クライアントから)受信する、システムを含み得る。それに応答して、データベースシステムは、720内のように、単一テナント環境における表を作成し得る。表を作成することは、単一テナント環境におけるデータベースインスタンスで表に(例えば、1つ以上の記憶ノードのうちの一部を含む)情報源を与えること含む場合があり、いくつかの実施形態において、要求に含まれる構成パラメータ値に従って表を構成すること及び/または表を作成する要求の一部として受信される表データを表に備え付けることを含む場合もある。この例で示されるように、本方法は、730内のように、単一テナント環境における表に対する要求及び/または表に対するデータベースインスタンス情報(例えば、クライアントが記憶ノードまたは表がその上部で提供されるノード上の表への直接接続を設けることを可能にする情報)を受信し、その情報を要求者に提供する、データベースシステムを含み得る。例えばいくつかの実施形態では、そのような要求に応答して、データベースシステムは、表に対するIPアドレスをクライアントに返し得る。
この実施例で示されるように、本方法は、740内のように、要求者(クライアント)が、単一テナント環境における表を提供するデータベースインスタンスの記憶ノード(複数可)への直接接続を設定することを含み得る。続いて、要求者(クライアント)は、750内のように、(設定された直接接続を通じて)処理するために単一テナント環境における表をホストするデータベースインスタンスの記憶ノード(複数可)に、表を目標にするデータベース操作を実行する要求を誘導し得る。この実施例で示されるように、単一テナント環境においてホストされる表上でデータベース操作を実行する要求を処理することは、750内のように、システム内の認証及び/または計測機構(例えば、複数テナント環境においてホストされた表に向けられた要求を処理する際に実行され得る認証及び/または計測機構)のうちの少なくともいくつかを省略することを含み得る。例えば、(少なくともいくつかの実施形態では)単一テナント環境においてホストされる表として同じデータベースインスタンスで他のクライアントに代わってホストされる表がなく、異なるクライアントの表の間で共有されるデータベース源がないことがあり得るので、単一テナント環境において表がホストされるクライアントが直接接続を通じて表と通信してもよいので、複数テナント環境においてクライアント表の間の孤立を強要するまたは表へのアクセスの既定の限界を強要する認証及び/または計測操作のうちのいくつかを実行する必要がない場合がある。
複数テナント環境におけるデータベースインスタンスで表を作成し、アクセスするための方法の一実施形態を示す方法の一実施形態は、図8の流れ図により示される。810で示されるように、この実施例では、本方法は、複数テナント環境及び単一テナント環境においてデータベースサービスを提供し、複数テナント環境において表を作成する要求を受信するシステムを含み得る。その要求に応答して、データベースシステムは、820内のように、複数テナント環境において表を作成し得る。表を作成することは、複数テナント環境におけるデータベースインスタンスで表に(例えば、1つ以上の記憶ノードのうちの一部を含む)情報源をプロビジョニングすることを含む場合があり、いくつかの実施形態において、要求内に含まれる構成パラメータ値に従って表を構成すること及び/または表を作成する要求の一部として受信された表データを表に備え付けることを含む場合もある。以前注記されたように、クライアントに代わって複数テナント環境においてホストされる表は、他のクライアントに代わって1つ以上の表もホストするデータベースインスタンスでホストされ得る。
図8に示されるように、本方法は、データベースシステムが、830内のように、表を目標にするデータベース操作を実行する要求を受信することを含み得る。それに応答して、本システムは、840内のように、要求を処理するべきかを判定するための1つ以上の認証及び/または計測機構を適用し得る。要求が処理されるべきである場合(850からの肯定方向の出口として示される)、本方法は、860内のように、システムが要求を処理することを含み得る。そうでない場合(850からの否定方向の出口として示される)、システムは、(870内のように)要求を拒絶し得る。例えば、要求を認証することができない場合、またはクライアントが既定の処理能力限界を超えている場合、要求は拒絶され得る。
上記のように、いくつかの事例では、単一テナント環境から複数テナント環境へ表を移動させることが(例えば、性能または費用の視点から)望ましい場合がある。いくつかの実施形態では、表を異なる環境に移動させることは、基底記憶ノードを異なる環境に移動させることを含むことを含むばかりでない。例えば、複数テナント環境における表を移動させるために、クライアント(またはシステム)は、特定の複数テナント記憶ノード(その各々は表の一部を記憶し得る)に対する1つ以上のデータファイルにアクセスし、それらのデータファイルの瞬時状態を(例えば、キー値記憶システムに)抜き出し、専用データベースインスタンス(例えば、単一テナント環境におけるデータベースインスタンス)を作成しその瞬時状態からのデータファイルを、新たに作成された専用データベースインスタンスに複写し得る(それは、その瞬時状態からの表を新たなデータベースインスタンスに「復元する」ことに実質的に類似し得る)。同様に、単一テナント環境から複数テナント環境へ表を移動させることは、表の瞬時状態を(例えば、キー値記憶システムに)抜き出し、次にその瞬時状態からの表を複数テナント環境におけるデータベースインスタンスに「復元する」ことを含み得る(それは、複数テナント環境においてデータベースインスタンスを、それがまだ存在していない場合に作成することを含み得る)。
さらに特定の実施例では、クライアントの代わりに注文データをホストするデータベースサービスは、単一テナントデータベースインスタンスで個別の表内に最も新しい注文データ(例えば、各週のデータ分量)を記憶し、後に(例えば、表内の注文データが1週間よりも古くなった後に)、その表を複数テナント環境に移動させるように構成され得る。古い注文データは、より新しい注文データよりもアクセスされそうにない(従って高処理能力専用インスタンスが必要とされ得ない)ので、古い注文データを複数テナント環境に記憶することは、より費用効果があり得る。いくつかの実施形態では、さらに古いデータ(例えば、数ヶ月または数年の古いデータ)は、データベースサービスの記憶ノードから完全に除去される場合があり、その時点でその除去は達成され得る。別の実施例では、頻繁にアクセスされると予想されないデータは、単一テナント環境に記憶され得る。しかしながら、データへのアクセスが急に上昇する場合、データは、少なくとも処理能力への需要が増加する期間わたり、複数テナント環境に移動され得る。
上記のように、いくつかの実施形態では、データベースシステムは、初期に規定により複数テナント環境または単一テナント環境のいずれかにおいて全ての表を作成するように構成され得るが、後に表を他の型の環境に移動させることに対処し得る。複数テナント環境において表を作成し、その表を単一テナント環境に移動させるための方法の一実施形態は、図9の流れ図により示される。910に示されるように、この実施例では、本方法は、複数テナント環境及び単一テナント環境においてデータベースサービスを提供し、表を作成する要求を受信するシステムを含み得る。この実施例では、その要求に応答して、データベースシステムは、920内のように、(例えば、規定により)複数テナント環境において表を作成し得る。930に示されるように、本方法は、データベースシステムが、表を目標にするデータベース操作を実行する1つ以上の要求の少なくともいくつかを受信及び処理することを含む場合があり、それは、上記のような、その要求に対して1つ以上の認証及び/または計測機構を用いることを含み得る。
この実施例では、(将来のいずれかの時点で)複数テナント環境における表により提供される処理能力が、表を目標にする要求を処理するのに十分であることが確定される場合(940からの否定方向の出口として示される)、本方法は、複数テナント環境において表をホストし続け、複数テナント環境のプロトコルに従って表に向けられた要求を受信及び処理することを含み得る。これは、図9において940の否定方向の出口から930への帰還により示される。他方では、表を目標にする要求に対してより高い処理能力が必要とされる(所望される)ことが確定される場合(940からの正方向の出口として示される)、本方法は、データベースシステムが、表の瞬時状態を抜き出し、(何も存在しない場合)単一テナント環境においてデータベースインスタンスを作成し、950内のように、その瞬時状態からの表を単一テナント環境におけるデータベースインスタンスでの新たな表として「復元する」ことを含み得る。例えば、いくつかの実施形態では、データベースシステムは、表(及び/または同じデータベースインスタンスで提供される他の表)に向けられた観測される作業負荷に及び/または表が被っている観測される処理能力に基づいて、(例えば、様々なシステム方式及び/または適用可能なサービス品質保証契約に従って)性能を向上させるために表が単一テナント環境に移動されるべきであることを確定するように構成され得る。他の実施形態では、表に向けられたサービス要求に対する処理能力を増加させることによりそれらのアプリケーションの性能を向上させることを欲するクライアントは、(例えば、グラフィックユーザインターフェースを用いてシステムに伝えられる要求メッセージを用いることにより、またはAPIにより定義されるような移動をプログラム的に呼び起こすことにより)表が単一テナント環境に移動されることを明らかに要求し得る。この実施例に示されるように、この移動に続いて、本方法は、データベースシステムが、表を目標にするデータベース操作を実行する1つ以上の追加の要求のうちの少なくともいくつかを受信及び処理することを含んでもよいが、本システムは、(960内に示されるように)複数テナント環境においてホストされる表に対して用いられ得る1つ以上の認証及び/または計測機構のうちの少なくともいくつかを用いることを省略してもよい。
単一テナント環境において表を作成し、その表を複数テナント環境に移動させるための方法の一実施形態は、図10の流れ図により示されている。1010で示されるように、この実施例では、本方法は、複数テナント環境及び単一テナント環境においてデータベースサービスを提供し、表を作成する要求を受信するシステムを含み得る。この実施例では、要求に応答して、データベースシステムは、1020内のように、(例えば規定により)単一テナント環境において表を作成し得る。1030に示されるように、本方法は、データベースシステムが、表を目標にするデータベース操作を実行する1つ以上の要求のうちの少なくともいくつかを受信及び処理し、その間は、上記のように、システムが、1つ以上の認証及び/または計測機構を要求処理に用いることを省き得ることを含み得る。
この実施例では、(将来のいずれかの時点で)複数テナント環境において表をホストする際に提供され得た低処理能力が、表を目標とする要求に対して十分であると確定される場合(1040からの正方向の出口として示される)、本方法は、1050内のように、データベースが、表の瞬時状態を抜き出し、(もし何も存在しない場合)複数テナント環境においてデータベースインスタンスを作成し、その瞬時状態からの表を複数テナント環境におけるデータベースインスタンスでの新たな表として「復元する」ことを含み得る。例えば、いくつかの実施形態では、データベースシステムは、その表に向けられる観測される、予想される、及び/または望まれる作業負荷及び/またはその表により被っている観測される処理能力に基づいて、(例えば、様々なシステム方式及び/または適用可能なサービス品質保証契約に従って)費用を削減するために表が複数テナント環境に移動されるべきであることを確定するように構成され得る。他の実施形態では、表に向けられたサービス要求に対して低減された処理能力を受け入れることにより表を管理する費用を削減することを望むクライアントは、(例えば、グラフィックユーザインターフェースを用いることによりシステムに伝えられる要求メッセージを用いることにより、またはAPIにより定義されるような移動をプラグラム的に呼び起こすことにより)表が複数テナント環境に移動されることを明らかに必要とし得る。この実施例に示されるように、移動に続いて、本方法は、データベースシステムが、表を目標にするデータベース操作を実行する1つ以上の追加の要求のうちの少なくともいくつかを受信及び処理することを含んでもよく、その操作は、(1060内のように)単一テナント環境においてホストされる表に向けられた要求を処理する際に省略される1つ以上の認証及び/または計測機構のうちの少なくともいくつかを実行することを含み得る。
他方では、複数テナント環境における表により与えられる処理能力が、表を目標にする要求を処理するのに十分ではないことが確定される場合(1040からの否定方向の出口として示される)、本方法は、単一テナント環境において表をホストし続け、単一テナント環境のプロトコルに従って表に向けられる要求を受信及び処理することを含み得る。これは、図10において1040の否定方向の出口から1030への帰還により示される。
いくつかの実施形態では、単一テナント環境において作成されるデータベースインスタンスが、まさに複数テナント環境において作成されるデータベースインスタンスが行うように、自動的に拡大縮小する(必要に応じて表の複製を記憶するより多くのまたはより少ない基底記憶ノード及び/またはデータベースインスタンスを用いる)ことを注記する。言い換えれば、クライアントがより多くのデータを加えるにつれて、データベースインスタンスは自動的に縮尺を変更する。いくつかの実施形態では、特定のデータベースインスタンスとそれを実行するのに用いられる1つ以上の記憶ノードとの間に固定された関連性があり得ないことを注記する。そのうえ、単一テナント環境において特定のクライアントにより作成されるデータベースインスタンスは、(例えば、そのインスタンスでホストされたデータの3つの複製を保持するための)3つの基底データベースインスタンスに対応するようにデバッグ情報を削除される場合があることを注記する。
上記の技術は、様々な実施形態では、サービスをクライアントに提供する様々なシステムにおいて表をホストし、それらの表に向けられたサービス要求を管理するのに適し得る。例えば、それらの技術は、比較的高い作業処理能力率及び/または動的に変化する作用処理能力率を含む幅広い作業負荷動作を受けるシステムにおいて表をホストし、サービス要求を管理するのに適し得る。いくつかの実施形態では、複数テナント環境における同容量のデータベース表に対するものとは異なる単一テナント環境におけるデータベース表に対する価格設定モデルがあり得る。例えば、単一テナントモデル下での価格設定はインスタンス毎のものであってもよいが、複数テナントモデル下の価格設定は処理能力に基づいてもよい。
いくつかの実施形態では、本明細書に記載される方法、技術または部品のいずれかが、コンピュータアクセス可能媒体を介して記憶されるまたは伝送される能力のある命令及びデータとして実施され得ると考えられる。そのような方法または技術は、例えば限定されることなく、本明細書に記載されるような複数テナント環境及び単一テナント環境においてデータベースサービスを与えるための様々な方法を含み得る。そのような命令は、特定の目的(例えば、ウェブサーバインターフェースを介して受信された要求の処理、または様々な要求の処理の帰還及び/または結果の返し)に合わせて調整された特定の計算機能、並びに操作システム機能、視覚化機能、ネットワーク通信機能、アプリケーション機能、記憶システム機能、及び/またはいずれかの他の適切な機能のような高次の機能を実行するのに実行され得る。
複数テナント環境及び単一テナント環境においてデータベースサービスを提供するための本明細書に記載される技術の1つ以上を実施するコンピュータシステムの一実施形態は、図11に示される。異なる実施形態では、本明細書に記載される様々なモジュールまたは方法のうちのいずれかの機能は、コンピュータシステム1100の1つまたはいくつかのインスタンスにより実施され得る。特に、本明細書に記載されるシステムの異なる要素が、異なるコンピュータシステム1100により実現される場合があることを注記する。例えば、異なる実施形態では、サービス要求を管理するための本明細書に記載される機能に対応するコンピュータシステムは、クライアント(そのクライアントを通じて顧客または加入者がシステムにアクセスし得る)がその上部で実行する、同じコンピュータシステム1100上に、または別のコンピュータシステム1100上に実現されてもよい。別の実施例では、異なるサブシステム(例えば、ウェブサーバインターフェース、承認制御サブシステム、サービス要求サブシステム、及び/または1つ以上のウェブサーバまたは他の部品)が、計算ノードのうちの複数のものの上にまたはそれらにわたって実現されてもよく、計算ノードの各々は、コンピュータシステム1100に類似し得る。
図示される実施形態では、コンピュータシステム1100は、入力/出力(I/O)インターフェース1130を介してシステムメモリ1120に結合される1つ以上のプロセッサ1110を含む。コンピュータシステム1100はさらに、I/Oインターフェース1130に結合されるネットワークインターフェース1140を含む。様々な実施形態では、コンピュータシステム1100は、1つのプロセッサ1110を含む単一プロセッサシステム、またはいくつかのプロセッサ1110(例えば、2、4、8、または別の適切な数)を含む複数プロセッサシステムであり得る。プロセッサ1110は、命令を実行する能力のあるいずれかの適切なプロセッサであり得る。例えば、様々な実施形態では、プロセッサ1110は、x86、PowerPC(商標)、SPARK(商標)、またはMIPS(商標)ISA、またはいずれかの他の適切なISAのような、様々な命令集合構造(ISA)を実行する汎用または組込プロセッサであってもよい。複数プロセッサシステムでは、プロセッサ1110の各々は、必須ではないが一般的に同じISAを実装してもよい。
システムメモリ1120は、プロセッサ1110によりアクセス可能な命令(例えば、コード1125)及び(例えば、データ記憶装置1122内の)データを記憶するように構成され得る。様々な実施形態では、システムメモリ1120は、静的ランダムアクセスメモリ(SRAM)、同期型動的RAM(SDRAM)、非揮発性/フラッシュ型メモリ、またはいずれかの他の種類のメモリのようないずれかの適切なメモリ技術を用いて実装され得る。図示される実施形態では、(本明細書に記載される機構のいずれかまたは全てを用いて複数テナント環境及び単一テナント環境においてデータベースサービスを提供するための機能のような)所望の機能、方法または技術を実行する命令またはデータは、コード1125のようにシステムメモリ1120内に記憶されて示される。いくつかの実施形態では、コード1125が、プロセッサ1110により直接実行可能ではないが、プロセッサ1110により直接実行可能である命令に翻訳可能である抽象形式で表記または符号化される所望の機能を実行する命令及びデータを含む場合があることを注記する。例えば、コード1125は、プロセッサ1110により、またはプロセッサ1110上で実行可能な他のコード1125によりエミュレートされ得るISA内で指定された命令を含んでもよい。代わりに、コード1125は、実行中にコンパイルされ得るまたは解釈され得る抽象的なプログラム言語で実行される命令、手続または宣言を含み得る。限定されない実施例として、コード1125は、CまたはC++のような手続型またはオブジェクト指向性プログラム言語、パールのような記述言語、HTMLまたはXMLのようなマークアップ言語、またはいずれかの他の適切な言語で指定されたコードを含んでもよい。
いくつかの実施形態では、システムメモリ1120内のデータ記憶装置1122は、複数テナント及び単一テナント環境においてデータベースサービスを提供する際に用いられる規定の、システム側の、クライアント特定の、または種類特定の構成可能なパラメータの値;(実作業処理能力率、最大要求率、実要求率及び/または拒否率、及び/または目標または付託作業処理能力率を含むが、これらに限定されない)観測される、抽出される、計測される、及び/または凝集される(例えば平均化される)性能情報;構成データ(例えば、トークンバケット容量限界、規定のトークン生成率、規定のトークン控除値、サービス品質保証契約パラメータ値、承認制御方式データ及び/またはクライアント特定パラメータ値);及び/または本明細書に記載の技術を実行するのに適した様々なデータ構造内の他のデータを記憶し得る。
一実施形態では、I/Oインターフェース1130は、装置内のプロセッサ1110、システムメモリ1120、及びいずれかの周辺装置間のI/O通信量を調整するように構成される場合があり、ネットワークインターフェース1140または他の周辺インターフェースを含む。いくつかの実施形態では、I/Oインターフェース1130は、いずれかの必要なプロトコル、タイミング、または1つの部品(例えば、システムメモリ1120)からのデータ信号を別の部品(例えば、プロセッサ1110)による使用に適した形式へ変換するための他のデータ変換を含み得る。いくつかの実施形態では、I/Oインターフェース1130は、周辺部品インターコネクト(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変異形のような様々な種類の周辺バスを通じて取り付けられる装置に対するサポートを含み得る。いくつかの実施形態では、I/Oインターフェース1130の機能は、例えば北ブリッジ及び南ブリッジのような2つ以上の別個の部品に分割され得る。そのうえ、いくつかの実施形態では、システムメモリ1120へのインターフェースのようなI/Oインターフェース1130の機能性のいくつかまたは全ては、プロセッサ1110に直接組み込まれ得る。
ネットワークインターフェース1140は、コンピュータシステム1100と例えば他のコンピュータシステムのようなネットワークに取り付けられた他の装置との間でデータが交換され得るように構成され得る。様々な実施形態では、ネットワークインターフェース1140は、いずれかの適切な種類のイーサーネットワークのような有線または無線一般データネットワークを介した、例えばアナログ音声ネットワークまたはデジタルファイバネットワークのような遠距離通信/電話通信ネットワークを介した、ファイバチャンネルSANのような記憶領域ネットワークを介した、またはいずれかの他の適切な種類のネットワーク及び/またはプロトコルを介した通信に対処し得る。
いくつかの実施形態では、システムメモリ1120は、上記の命令及びデータを記憶するように構成された非一過性のコンピュータ読出可能記憶媒体を含み得る。しかしながら、他の実施形態では、命令及び/またはデータは、異なる種類のコンピュータアクセス可能記憶媒体上で受信され、送信されまたは記憶され得る。一般的に、非一過性のコンピュータ読出可能媒体は、磁気または光学媒体、例えばI/Oインターフェース1130を介してコンピュータシステム1100に結合されるディスクまたはCD/DVD−ROMのような記憶媒体またはメモリ媒体を含み得る。非一過性のコンピュータ読出可能媒体は、コンピュータシステム1100のいくつかの実施形態においてシステムメモリ1120としてまたは別の種類のメモリとして含まれ得るRAM(例えば、SDRAM、DDR、SDRAM、RDRAM、SRAM等)、ROM等のようないずれかの揮発性または非揮発性記憶媒体を含み得る。コンピュータアクセス可能記憶媒体は一般に、ネットワークインターフェース1140を介して実装され得るような、ネットワーク及び/または無線リンクのような通信媒体を介して伝達される電気、電磁気、またはデジタル信号のような伝送媒体または信号を介してアクセス可能であり得る。
上記のことは、以下の付記を考慮してより良く理解され得る。
1.1つ以上のプロセッサと、
1つ以上のプロセッサに結合されるメモリと、
1つ以上の記憶ノードと、を備えるシステムであって、
メモリは、1つ以上のプロセッサにより実行されるときに、複数テナント環境における及び単一テナント環境においてデータベースサービスを1つ以上のデータベースサービスクライアントに提供するデータベースサービスを1つ以上のプロセッサに実行させるプログラム命令を記憶し、複数テナント環境は、その内部において複数のクライアントに対するデータベース表が単一のデータベースインスタンスでまとめてホストされる、環境を含み、単一テナント環境は、その内部において異なるクライアントに対するデータベース表が異なるデータベースインスタンスでホストされる、環境を含み、
データベースサービスは、
データベースインスタンスを作成する要求をクライアントから受信し、要求は、データベースインスタンスが複数テナント環境において作成されるべきであることを指定しており、
要求するクライアントに代わって複数テナント環境におけるデータベースインスタンスを作成するために、1つ以上の記憶ノードのうちの1つ以上をプロビジョンニングし、
別のデータベースインスタンスを作成する要求をクライアントから受信し、要求は、他のデータベースインスタンスが単一テナント環境において作成されるべきであることを指定しており、
要求するクライアントに代わって単一テナント環境におけるデータベースインスタンスを作成するために、1つ以上の記憶ノードのうちの1つ以上をプロビジョンニングし、
表を作成する要求をクライアントから受信し、要求は、表が複数テナント環境または単一テナント環境におけるデータベースインスタンスで作成されるべきであるのかを指定しており、
指定された環境におけるデータベースインスタンスで表を作成するように
構成されている、システム。
2.データベースサービスはさらに、
指定された環境のプロトコルに従って表を目標に定めるデータベース操作を実行する1つ以上の要求を受信及び処理し、
指定された環境以外の環境におけるデータベースインスタンスに表を移動させ、かつ
他の環境のプロトコルに従って表を目標に定めるデータベース操作を実行する1つ以上の要求を受信及び処理するように構成されている、付記1に記載のシステム。
3.複数テナント環境においてデータベースインスタンスを作成する要求の起源であるクライアントと、単一テナント環境においてデータベースインスタンスを作成する要求の起源であるクライアントとが同じクライアントである、付記1に記載のシステム。
4.データベースサービスがさらに、
クライアントから別の表を作成する要求を受信し、要求は、他の表が指定された環境以外の環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
他の環境におけるデータベースインスタンスで別の表を作成するように構成されている、付記1に記載のシステム。
5.複数テナント環境においてデータベースインスタンスを作成するために、データベースサービスが、関連性のないデータベースのインスタンスを作成するように構成されており、
単一テナント環境においてデータベースインスタンスを作成するために、データベースサービスが、関連性のあるデータベースのインスタンスを作成するように構成されている、付記1に記載のシステム。
6.1つ以上のコンピュータによって、
表を作成する要求を受信することと、
前記受信に応答して、複数テナント環境または単一テナント環境のうちの所与の一方においてデータベースインスタンスで表を作成することと、
表を目標に定めるデータベース操作を実行する1つ以上の要求を受信及び処理することと、
前記受信及び処理に続いて、
複数テナント環境または単一テナント環境のうちの他方においてデータベースインスタンスに表を移動させることと、
表を目標に定めるデータベース操作を実行する1つ以上の追加の要求を受信及び処理することと、を実行することを含む、方法。
7.方法がさらに、他の環境においてデータベースインスタンスに表を移動させる要求を受信することを含み、
表を移動させる要求の受信に応答して前記移動が実行される、付記6に記載の方法。
8.方法はさらに、表を目標に定めるデータベース操作を実行する要求を受信及び処理するための観測されるまたは望まれる処理能力に応じて、表が移動されるべきであることを確定することを含み、
前記確定に応答して前記移動が実行される、付記6に記載の方法。
9.前記移動が、
前記他の環境におけるデータベースインスタンスで表を作成することと、
指定された環境において表の瞬時状態を抜き出すことと、
他の環境における前記データベースインスタンスで表に瞬時状態を複写することと、を含む、付記6に記載の方法。
10.前記瞬時状態を抜き出すことが、キー値記憶システム内に瞬時状態を記憶することを含み、
前記表に瞬時状態を複写することが、キー値記憶システムから瞬時状態を取り出すことを含む、付記9に記載の方法。
11.表を作成する要求は、表が複数テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
表を作成する要求が、表を目標に定めるデータベース操作を実行する要求を受信または処理するための所望の処理能力をさらに指定する、付記6に記載の方法。
12.表を作成する要求は、表が複数テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
前記1つ以上の要求を受信及び処理することが、1つ以上の要求の各々を処理するべきであるかを判定するために1つ以上の認証または計測機構を用いることを含む、付記6に記載の方法。
13.表を作成する要求は、表が単一テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
前記1つ以上の要求を受信及び処理することが、複数テナント環境において用いられる1つ以上の認証または計測機構を用いることを省略することを含む、付記6に記載の方法。
14.表を作成する要求は、表が単一テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
前記1つ以上の要求を受信及び処理することが、表に対して事前に定められた処理能力限界を超える少なくともいくつかの要求を受容及び処理することを含む、付記6に記載の方法。
15.前記表を作成する要求を受信することが、データベースサービスクライアントに代わって表を作成する要求を受信することを含み、1つ以上の他の表は、クライアントに代わって所与の環境において作成されており、
前記移動が、表を移動させ、1つ以上の他の表を移動させないことを含む、付記6に記載の方法。
16.表を作成する要求は、表が単一テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
方法がさらに、
単一テナント環境においてデータベースインスタンスまたは表に対する接続情報の要求を受信することと、
それを通じて表への接続が設定され得る、IPアドレスを戻すことと、を含む、付記6に記載の方法。
17.前記1つ以上の要求を受信及び処理することが、要求を受信し、クライアントと戻されたIPアドレスとの間に設定された直接接続を通じて応答を戻すことを含む、付記16に記載の方法。
18.記憶容量に対する需要または表に対する処理能力の変化に応答して、応答表内で表を拡大または縮小することをさらに含む、付記16に記載の方法。
19.1つ以上のコンピュータ上で実行されるときに、
データベース表を作成する要求を受信することと、
前記受信に応答して、単一テナント環境におけるデータベースインスタンスでデータベース表を作成することと、
データベース表にアクセスする1つ以上の要求を受信及び処理することと、
要求を受信または処理するための観測される、予想される、または望まれる処理能力に応じて、データベース表が複数テナント環境におけるデータベースインスタンスに移動されるべきであることを確定することと、
前記確定に応答して、複数テナント環境におけるデータベースインスタンスにデータベース表を移動させることと、を前記1つ以上のコンピュータに実行させるプログラム命令を記憶する、非一過性コンピュータ読出可能記憶媒体。
20.前記表を作成する要求を受信することが、アプリケーションプログラミングインターフェースにより定義される要求メッセージを受信することを含み、
アプリケーションプログラミングインターフェースが、複数テナント環境におけるデータベースインスタンスと単一テナント環境におけるデータベースインスタンスとの間で共通する機能性を呼び出す要求メッセージを定義する、付記19に記載の非一過性コンピュータ読出可能記憶媒体。
21.前記表を作成する要求を受信することが、グラフィックユーザインターフェースを通じて要求メッセージを受信することを含み、
グラフィックユーザインターフェースが、複数テナント環境におけるデータベースインスタンスと単一テナント環境におけるデータベースインスタンスとの間で共通する機能性を表出させる、付記19に記載の非一過性コンピュータ読出可能記憶媒体。
22.1つ以上のコンピュータと、
プログラム命令を記憶するメモリと、を備えるシステムであって、前記プログラム命令が、1つ以上のコンピュータ上で実行されるときに、
データベース表を作成する要求を受信することと、
前記受信に応答して、複数テナント環境におけるデータベースインスタンスでデータベース表を作成することと、
データベース表にアクセスする1つ以上の要求を受信及び処理することと、
要求を受信または処理するための観測される、予想される、または望まれる処理能力に応じて、データベース表の少なくとも一部が、単一テナント環境においてデータベースインスタンスに移動されるべきであることを確定することと、
前記確定に応答して、単一テナント環境においてデータベースインスタンスにデータベース表の前記少なくとも一部を移動させることと、を1つ以上のコンピュータに実行させる、システム。
23.前記確定は、データベース表の少なくとも一部が、複数テナント環境においてデータベース表に対して対処され得る処理能力よりも高い処理能力を被っているまたは被ると予想されることを確定することを含み、
前記データベース表の前記少なくとも一部を移動させることが、
データベース表の少なくとも一部の瞬時状態を抜き出すことと、
単一テナント環境におけるデータベースインスタンスでデータベース表のその少なくとも一部に対して新たな表を作成することと、を含む、付記22に記載のシステム。
24.1つ以上のコンピュータ上で実行されるときに、プログラム命令がさらに、
前記移動に続いて、新たな表を目標に定める要求を受信または処理するための観測される、予想される、または望まれる処理能力の変化に応答して、複数テナント環境においてデータベースインスタンスに新たな表を移動させることを1つ以上のコンピュータに実行させる、付記22に記載のシステム。
上の実施形態はかなり詳細に記述されているが、上記の開示が完全に理解された後に、数多くの変更及び修正が当業者に明らかになるであろう。以下の特許請求の範囲が、全てのそのような変更及び修正を含むと解釈されることが意図される。

Claims (14)

  1. 1つ以上のプロセッサと、
    前記1つ以上のプロセッサに結合されるメモリと、
    1つ以上の記憶ノードと、を備えるシステムであって、
    前記メモリは、前記1つ以上のプロセッサにより実行されるときに、複数テナント環境及び単一テナント環境におけるデータベースサービスを1つ以上のデータベースサービスクライアントに提供するデータベースサービスを前記1つ以上のプロセッサに実行させるプログラム命令を記憶し、複数テナント環境は、その内部において複数のクライアントに対するデータベース表が単一のデータベースインスタンスでまとめてホストされる、環境を含み、単一テナント環境は、その内部において異なるクライアントに対するデータベース表が異なるデータベースインスタンスでホストされる、環境を含み、
    前記データベースサービスは、
    データベースインスタンスを作成する要求であって、前記データベースインスタンスが前記データベースサービスの前記複数テナント環境において作成されるべきであることを指定する、要求をクライアントから受信し、
    前記要求するクライアントの代わりに前記複数テナント環境においてデータベースインスタンスを作成するために、前記1つ以上の記憶ノードのうちの1つ以上をプロビジョニングし、
    別のデータベースインスタンスを作成する要求であって、前記別のデータベースインスタンスが前記データベースサービスの前記単一テナント環境において作成されるべきであることを指定する、要求を前記クライアントから受信し、
    前記要求するクライアントの代わりに前記単一テナント環境においてデータベースインスタンスを作成するために、前記1つ以上の記憶ノードのうちの1つ以上をプロビジョニングし、
    表を作成する要求であって、前記表が、前記クライアントからの前記要求に応答して作成された、前記複数テナント環境における前記データベースインスタンス、または、前記クライアントからの前記要求に応答して作成された、前記単一テナント環境における前記別のデータベースインスタンス、のどちらにおいて作成されるべきであるのかを指定する、前記要求を前記クライアントから受信し、かつ
    前記指定された環境におけるデータベースインスタンスで表を作成し、
    前記指定された環境のプロトコルに従って前記表を目標に定めるデータベース操作を実行する1つ以上の要求を受信及び処理し
    前記指定された環境以外の他の環境におけるデータベースインスタンスに前記表を移動させ、かつ
    前記他の環境のプロトコルに従って前記表を目標に定めるデータベース操作を実行する1つ以上の要求を受信及び処理するように、構成されている、前記システム。
  2. 複数テナント環境においてデータベースインスタンスを作成する前記要求の起源である前記クライアントと、単一テナント環境においてデータベースインスタンスを作成する前記要求の起源である前記クライアントとが同じクライアントである、請求項1に記載の前記システム。
  3. 前記データベースサービスがさらに、
    別の表を作成する要求であって、前記別の表が前記指定された環境以外の他の環境におけるデータベースインスタンスで作成されるべきであることを指定する、要求を前記クライアントから受信し、かつ
    前記他の環境におけるデータベースインスタンスで別の表を作成するように、構成されている、請求項1に記載の前記システム。
  4. 複数テナント環境においてデータベースインスタンスを作成するために、前記データベースサービスが、非リレーショナルデータベースのインスタンスを作成するように構成されており、
    単一テナント環境においてデータベースインスタンスを作成するために、前記データベースサービスが、リレーショナルデータベースのインスタンスを作成するように構成されている、請求項1に記載の前記システム。
  5. 1つ以上のコンピュータによって、
    表を作成する要求を受信することと、
    前記受信に応答して、複数テナント環境または単一テナント環境のうちの所与の一方においてデータベースインスタンスで表を作成することと、
    前記表を目標に定めるデータベース操作を実行する1つ以上の要求を受信及び処理することと、
    前記受信及び処理に続いて、
    複数テナント環境または単一テナント環境のうちの他方においてデータベースインスタンスに前記表を移動させることと、
    前記表を目標に定めるデータベース操作を実行する1つ以上の追加の要求を受信及び処理することと、を実行することを含む、方法。
  6. 前記方法がさらに、前記他方の環境におけるデータベースインスタンスに前記表を移動させる要求を受信することを含み、
    前記表を移動させる前記要求の受信に応答して前記移動が実行される、請求項に記載の前記方法。
  7. 前記方法はさらに、前記表を目標に定めるデータベース操作を実行する要求を受信及び処理するための観測されるまたは望まれる処理能力に応じて、前記表が移動されるべきであることを確定することを含み、
    前記確定に応答して前記移動が実行される、請求項に記載の前記方法。
  8. 前記表を作成する要求は、前記表が複数テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
    前記表を作成する要求が、前記表を目標に定めるデータベース操作を実行する要求を受信または処理するための所望の処理能力をさらに指定する、請求項に記載の前記方法。
  9. 前記表を作成する要求は、前記表が単一テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
    前記1つ以上の要求を受信及び処理することが、前記表に対して事前に定められた処理能力限界を超える少なくともいくつかの要求を受容及び処理することを含む、請求項に記載の前記方法。
  10. 前記表を作成する要求は、前記表が単一テナント環境におけるデータベースインスタンスで作成されるべきであることを指定しており、
    前記方法がさらに、
    前記単一テナント環境における前記データベースインスタンスまたは前記表に対する接続情報の要求を受信することと、
    前記表への接続が設定され得るIPアドレスを戻すことと、を含む、請求項に記載の前記方法。
  11. 記憶容量に対する需要または前記表に対する処理能力の変化に応答して、前記表を拡大または縮小することをさらに含む、請求項に記載の前記方法。
  12. 1つ以上のコンピュータと、
    プログラム命令を記憶するメモリと、備えるシステムであって、前記プログラム命令が、前記1つ以上のコンピュータ上で実行されるときに、
    データベース表を作成する要求を受信することと、
    前記受信に応答して、複数テナント環境におけるデータベースインスタンスでデータベース表を作成することと、
    前記データベース表にアクセスする1つ以上の要求を受信及び処理することと、
    要求を受信または処理するための観測される、予想される、または望まれる処理能力に応じて、前記データベース表の少なくとも一部が、単一テナント環境においてデータベースインスタンスに移動されるべきであることを確定することと、
    前記確定に応答して、単一テナント環境においてデータベースインスタンスに前記データベース表の前記少なくとも一部を移動させることと、を前記1つ以上のコンピュータに実行させる、前記システム。
  13. 前記確定は、前記データベース表の前記少なくとも一部が、前記複数テナント環境において前記データベース表に対して対処され得る処理能力よりも高い処理能力を被っているまたは被ると予想されることを確定することを含み、
    前記データベース表の前記少なくとも一部を移動させることが、
    前記データベース表の前記少なくとも一部の瞬時状態を抜き出すことと、
    単一テナント環境におけるデータベースインスタンスで前記データベース表のその前記少なくとも一部に対して新たな表を作成することと、を含む、請求項1に記載の前記システム。
  14. 前記1つ以上のコンピュータ上で実行されるときに、前記プログラム命令がさらに、
    前記移動に続いて、前記新たな表を目標に定める要求を受信または処理するための観測される、予想される、または望まれる処理能力の変化に応答して、複数テナント環境においてデータベースインスタンスに前記新たな表を移動させることを、前記1つ以上のコンピュータに実行させる、請求項1に記載の前記システム。
JP2015560353A 2013-02-28 2014-02-28 単一テナント及び複数テナント環境を提供するデータベースシステム Active JP6521324B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/780,077 US10706025B2 (en) 2013-02-28 2013-02-28 Database system providing single-tenant and multi-tenant environments
US13/780,077 2013-02-28
PCT/US2014/019448 WO2014134464A2 (en) 2013-02-28 2014-02-28 Database system providing single-tenant and multi-tenant environments

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018040535A Division JP2018088293A (ja) 2013-02-28 2018-03-07 単一テナント及び複数テナント環境を提供するデータベースシステム

Publications (2)

Publication Number Publication Date
JP2016514311A JP2016514311A (ja) 2016-05-19
JP6521324B2 true JP6521324B2 (ja) 2019-05-29

Family

ID=51389248

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015560353A Active JP6521324B2 (ja) 2013-02-28 2014-02-28 単一テナント及び複数テナント環境を提供するデータベースシステム
JP2018040535A Withdrawn JP2018088293A (ja) 2013-02-28 2018-03-07 単一テナント及び複数テナント環境を提供するデータベースシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018040535A Withdrawn JP2018088293A (ja) 2013-02-28 2018-03-07 単一テナント及び複数テナント環境を提供するデータベースシステム

Country Status (6)

Country Link
US (1) US10706025B2 (ja)
EP (1) EP2962225B1 (ja)
JP (2) JP6521324B2 (ja)
CN (1) CN105074702B (ja)
CA (1) CA2902955C (ja)
WO (1) WO2014134464A2 (ja)

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9559900B1 (en) * 2013-06-13 2017-01-31 Amazon Technologies, Inc. Dedicated endpoints for network-accessible services
US9106642B1 (en) * 2013-09-11 2015-08-11 Amazon Technologies, Inc. Synchronizing authentication sessions between applications
US9396338B2 (en) 2013-10-15 2016-07-19 Intuit Inc. Method and system for providing a secure secrets proxy
US9894069B2 (en) 2013-11-01 2018-02-13 Intuit Inc. Method and system for automatically managing secret application and maintenance
US9444818B2 (en) 2013-11-01 2016-09-13 Intuit Inc. Method and system for automatically managing secure communications in multiple communications jurisdiction zones
US9467477B2 (en) 2013-11-06 2016-10-11 Intuit Inc. Method and system for automatically managing secrets in multiple data security jurisdiction zones
US9807119B2 (en) * 2014-01-21 2017-10-31 Oracle International Corporation System and method for supporting web services in a multitenant application server environment
CN105900059B (zh) 2014-01-21 2019-06-07 甲骨文国际公司 用于在应用服务器、云或其它环境中支持多租户的系统和方法
US20150379096A1 (en) * 2014-06-26 2015-12-31 Kpmg Llp System and method for automatically connecting multiple, distinct tables of a data repository
US9836339B1 (en) * 2014-09-24 2017-12-05 Amazon Technologies, Inc. Application programming interface as a service
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US9405530B2 (en) 2014-09-24 2016-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US9813500B2 (en) * 2015-06-12 2017-11-07 Cisco Technology, Inc. Allocating cloud storage based on storage attributes
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9495421B1 (en) * 2015-10-15 2016-11-15 Atlassian Pty Ltd Bidirectional data portability
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
CN105635465A (zh) * 2015-12-30 2016-06-01 中科创达软件股份有限公司 数据隔离方法、数据隔离装置及终端
US10015274B2 (en) * 2015-12-31 2018-07-03 International Business Machines Corporation Enhanced storage clients
US10270465B2 (en) 2015-12-31 2019-04-23 International Business Machines Corporation Data compression in storage clients
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
US20180039628A1 (en) * 2016-08-03 2018-02-08 Oracle International Corporation System and method for providing dynamic relocation of tenants in a multi-tenant database environment
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
JP6997774B2 (ja) * 2016-09-30 2022-01-18 セールスフォース ドット コム インコーポレイティッド マルチテナント非リレーショナル・プラットフォーム・オブジェクト
CN106776998B (zh) * 2016-12-06 2020-01-21 华为技术有限公司 一种数据库服务提供方法及服务器
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
US10936711B2 (en) * 2017-04-18 2021-03-02 Intuit Inc. Systems and mechanism to control the lifetime of an access token dynamically based on access token use
CN108881111B (zh) * 2017-05-10 2022-07-12 中兴通讯股份有限公司 一种实现多租户系统的方法及装置
US10592353B2 (en) * 2017-06-27 2020-03-17 Salesforce.Com, Inc. Systems and methods of restoring a dataset of a database for a point in time
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10592293B2 (en) 2017-08-31 2020-03-17 Cisco Technology, Inc. Tenant-specific policy generation and enforcement within containers
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10853124B2 (en) 2017-09-25 2020-12-01 Splunk Inc. Managing user data in a multitenant deployment
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
US10657276B2 (en) * 2017-10-26 2020-05-19 Sap Se System sharing types in multi-tenancy database systems
US10860336B2 (en) * 2017-10-27 2020-12-08 Google Llc Managing multi-single-tenant SaaS services
US10635829B1 (en) 2017-11-28 2020-04-28 Intuit Inc. Method and system for granting permissions to parties within an organization
US11323315B1 (en) 2017-11-29 2022-05-03 Amazon Technologies, Inc. Automated host management service
US10768834B2 (en) * 2018-04-27 2020-09-08 Netapp, Inc. Methods for managing group objects with different service level objectives for an application and devices thereof
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
CN109412878A (zh) * 2019-01-16 2019-03-01 紫光云数科技有限公司 多租户业务接入实现方法、装置及电子设备
US10997208B2 (en) 2019-02-13 2021-05-04 Sap Se In-memory database-managed container volume replication
US11403320B2 (en) * 2019-03-06 2022-08-02 Sap Se Elastic in-memory database provisioning on database-as-a-service
US11422973B2 (en) 2019-03-06 2022-08-23 Sap Se Peer-to-peer delta image dispatch system
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11222035B2 (en) * 2020-03-03 2022-01-11 Sap Se Centralized multi-tenancy as a service in cloud-based computing environment
US10938780B1 (en) 2020-03-04 2021-03-02 Snowflake Inc. Secure message exchange between deployments
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
CN113360476B (zh) * 2021-06-21 2023-11-21 上海上讯信息技术股份有限公司 一种程序数据库虚拟化插拔的方法及设备
US11698914B1 (en) * 2021-12-10 2023-07-11 Amazon Technologies, Inc. Serverless managed bulk import on a global NoSQL database with selective back pressure

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101124578A (zh) * 2005-01-14 2008-02-13 国际商业机器公司 包括增值和请求式数据传送的可共享多租户参考数据实用工具和储存库以及运行方法
US20060235831A1 (en) * 2005-01-14 2006-10-19 Adinolfi Ronald E Multi-source multi-tenant entitlement enforcing data repository and method of operation
US8122055B2 (en) 2007-04-26 2012-02-21 Microsoft Corporation Hosted multi-tenant application with per-tenant unshared private databases
WO2010025554A1 (en) * 2008-09-05 2010-03-11 Alocet Incorporated A method and system of synchronizing accounting objects between a client and server
US8713060B2 (en) 2009-03-31 2014-04-29 Amazon Technologies, Inc. Control service for relational data management
US8930332B2 (en) 2010-03-12 2015-01-06 Salesforce.Com, Inc. Method and system for partitioning search indexes
US8447754B2 (en) 2010-04-19 2013-05-21 Salesforce.Com, Inc. Methods and systems for optimizing queries in a multi-tenant store
US8762340B2 (en) * 2010-05-14 2014-06-24 Salesforce.Com, Inc. Methods and systems for backing up a search index in a multi-tenant database environment
US8386431B2 (en) * 2010-06-14 2013-02-26 Sap Ag Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US9460176B2 (en) * 2010-12-29 2016-10-04 Sap Se In-memory database for multi-tenancy
US8706772B2 (en) 2010-12-30 2014-04-22 Sap Ag Strict tenant isolation in multi-tenant enabled systems
CN102737020B (zh) 2011-03-31 2014-08-27 国际商业机器公司 一种初始化多租户数据库的方法和装置
US8924542B1 (en) * 2011-05-31 2014-12-30 Amazon Technologies, Inc. Methods and apparatus for scalable private services
US20130081109A1 (en) 2011-09-23 2013-03-28 Corent Technology, Inc. Multi-Tenant Agile Database Connector

Also Published As

Publication number Publication date
WO2014134464A3 (en) 2014-11-06
JP2018088293A (ja) 2018-06-07
US20140244585A1 (en) 2014-08-28
EP2962225A4 (en) 2017-01-11
CN105074702A (zh) 2015-11-18
WO2014134464A2 (en) 2014-09-04
JP2016514311A (ja) 2016-05-19
US10706025B2 (en) 2020-07-07
CA2902955C (en) 2019-01-15
EP2962225A2 (en) 2016-01-06
CA2902955A1 (en) 2014-09-04
CN105074702B (zh) 2019-01-11
EP2962225B1 (en) 2023-12-20

Similar Documents

Publication Publication Date Title
JP6521324B2 (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
US11711420B2 (en) Automated management of resource attributes across network-based services
US20230291786A1 (en) Client-directed placement of remotely-configured service instances
CN109643312B (zh) 托管查询服务
US9384227B1 (en) Database system providing skew metrics across a key space
US11411921B2 (en) Enabling access across private networks for a managed blockchain service
US9342353B2 (en) Techniques for implementing information services with tenant specific service level agreements
CN110557975A (zh) 用于多租户身份云服务的租户数据比较
US10146814B1 (en) Recommending provisioned throughput capacity for generating a secondary index for an online table
JP2018518744A (ja) コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング
US9438665B1 (en) Scheduling and tracking control plane operations for distributed storage systems
US10397051B1 (en) Configuration and testing of network-based service platform resources using a service platform specific language
US10102230B1 (en) Rate-limiting secondary index creation for an online table
US10158709B1 (en) Identifying data store requests for asynchronous processing
US20180067951A1 (en) Computer-implemented object management via tags
US10013449B1 (en) Validating and non-validating secondary indexes for a table in a non-relational data store
US9875270B1 (en) Locking item ranges for creating a secondary index from an online table
EP4026014B1 (en) Enabling federated query access to heterogeneous data sources
US10747739B1 (en) Implicit checkpoint for generating a secondary index of a table
US10135703B1 (en) Generating creation performance metrics for a secondary index of a table
JP2023535896A (ja) エンド・ツー・エンド・リンクのトラスト・レベルの動的決定方法、システム
US9898614B1 (en) Implicit prioritization to rate-limit secondary index creation for an online table
US11711314B1 (en) Grouping resource metadata tags
US11954564B2 (en) Implementing dynamically and automatically altering user profile for enhanced performance
Padhy et al. X-as-a-Service: Cloud Computing with Google App Engine, Amazon Web Services, Microsoft Azure and Force. com

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170502

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180307

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180313

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20180525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190417

R150 Certificate of patent or registration of utility model

Ref document number: 6521324

Country of ref document: JP

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