【誤訳訂正書】
【提出日】平成28年12月8日(2016.12.8)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
キー・バリューストアをマッピングし複製するための方法であって、
所定数の結果および位置のキャッシュ要素を対象のデータセンタのキー・バリューストアに要求するクエリを反復して提出することによって、前記対象のデータセンタの既存のキー・バリューストア中のファイル区切りを抽出することと、
所定数の結果および位置のキャッシュ要素を対象のデータセンタのキー・バリューストアに要求するクエリを反復して提出することによって、前記対象のデータセンタの既存のキー・バリューストア中のファイル区切りを抽出することと、
物理的なストレージ容量にわたるアドレス範囲内の戻り値を受け取ることと、
前記位置のキャッシュ要素をデータマップに加え、前記複製のために必要な細部と前記データマップを比較することにより、前記対象のデータセンタで物理的にグループ化されるキー・バリューのセットおよびレコード複写物を回収することと、
を含む、方法。
【請求項２】
前記キー・バリューストアは、ユーザが直接アクセス可能でない、抽出されるデータテーブルを含む、請求項１に記載の方法。
【請求項３】
前記所定数は、格納されるデータのサイズによって決まる、請求項１に記載の方法。
【請求項４】
キー・バリューストアのマッピングおよび複製を実施するように適合されたコンピューティングデバイスであって、
メモリと
前記メモリに結合され、データ転送アプリケーションを実行するプロセッサと、
を含み、
前記データ転送アプリケーションは、
所定数の結果および位置のキャッシュ要素を対象のデータセンタのキー・バリューストアに要求するクエリを反復して提出することによって、前記対象のデータセンタの既存のキー・バリューストア中のファイル区切りを抽出し、
物理的なストレージ容量にわたるアドレス範囲内の戻り値を受け取り、かつ
前記位置のキャッシュ要素をデータマップに加え、前記複製のために必要な細部と前記データマップを比較することにより、前記対象のデータセンタで物理的にグループ化されるキー・バリューのセットおよびレコード複写物を回収するように構成される、コンピューティングデバイス。
【請求項５】
前記データ転送アプリケーションは、さらに、
新しいデータセンタのキー・バリューストアにおいて前記キー・バリューのセットを複製するように構成される、請求項４に記載のコンピューティングデバイス。
【請求項６】
前記位置のキャッシュ要素は、「NextToken」である、請求項４に記載のコンピューティングデバイス。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【発明の詳細な説明】
【発明の名称】キャッシュベースのキー・バリューストアのマッピングおよび複製
【背景技術】
【０００１】
本明細書に別に規定されていないかぎり、本章に述べる題材は、本出願の請求項に関する従来技術でなく、本章に含めることによって従来技術であると認めるものでもない。
【０００２】
クラウドサービスは、通常、従来のデータベース管理システム（ＤＢＭＳ）をサポートしない、むしろ、それらＤＢＭＳは、アプリケーションプログラミングインターフェース（ＡＰＩ：Application Programming Interface）コマンドを介して、ユーザがアクセスすることができるキー・バリューストアサービスを提供する。このアプローチに関する理由は、ＤＢＭＳが容易にスケーリングされず、そして失敗またはネットワークの不確かさ、すなわちサービス指向のアーキテクチャア（ＳＯＡ：service oriented architecture）に対する両方の要となるインフラの前提にうまく対処していないからである。一度ユーザがそのデータをデータセンタに送ると、データセンタの間でデータを移動させた後で、複雑なツリー構造および最初のデータセンタが長期の動作監視を使用して生成している可能性があるデータの繰り返し（複写）を含む、データベースの性能を維持するには、キー・バリューストアの複製が伴う。そのような構造を宛先データセンタで複製するためには、ユーザテーブルのためのストレージ分割の境界および複写のレコードが使用されている場所を知る必要がある場合がある。これは、データセンタ中でのユーザのアクセスから取り去られる情報である。
【０００３】
キー・バリューストアは、通常、隠れ層を含む。ユーザのデータテーブルは、多くのマシンにわたって分割されることがあり、各キー・バリューの位置を探し出すために、各テーブル上に複数のレベルのメタデータツリーを有する場合がある。キー・バリューストアは、通常、各データセンタのサービスプロバイダーに専有のものであり、ＡＰＩ呼び出しを介してユーザにはアクセス可能であり得、そこではユーザは、キーまたは照合用の用語を提示して、その値を検索することができる。メタデータテーブルまたはユーザのデータテーブルの実際の構造は、ユーザが見ることができず、とはいえ、データベースの性能を維持すべき場合、いくつかの細部は、宛先データセンタにおいて複製する必要がある場合がある。
【０００４】
従来のシステムでは、ユーザは、キー・バリューストアが物理的に格納されている実際のファイルに対するアクセス権を有していない。キー・バリューのファイルは、データセンタのサービス構造の一部であり、顧客を新しいデータセンタに移すことが望まれる場合、専有の方法でマシンの間に広げられ、カレントのデータセンタによって開発された最適化を含み、専有のファイルフォーマットを使用する、これらの大いに統合されたデータの記憶を検索するという行為に、カレントのデータセンタが技術者を割り当てる可能性がありそうもない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示は、一般にデータセンタでキー・バリューストアをマッピングし、データストレージ構造を複製するための技術を述べる。
【課題を解決するための手段】
【０００６】
いくつかの実施例によれば、キー・バリューストアをマッピングし複製するための方法は、対象のデータセンタのキー・バリューストアからのデータのクエリキャッシュを用いて相対的なデータのストレージ位置を抽出することによって、対象のデータセンタ内で物理的なストレージ分散をマッピングすることと、対象のデータセンタ内でデータ分割およびデータ複写をマッピングすることとを含むことができる。また、本方法は、対象のデータセンタ内のデータを新しいデータセンタ中で同様の構造に複製することを含む。
【０００７】
他の実施例によれば、キー・バリューストアのマッピングおよび複製を実施するように適合されたコンピューティングデバイスは、メモリと、メモリに結合されるプロセッサとを含むことができる。プロセッサは、データ転送アプリケーションを実行することができ、それは、対象のデータセンタのキー・バリューストアからのデータのクエリキャッシュを用いて相対的なデータのストレージ位置を抽出することによって、対象のデータセンタ内で物理的なストレージ分散をマッピングし、対象のデータセンタ内でデータ分割およびデータ複写をマッピングし、そして対象のデータセンタ内のデータを新しいデータセンタ中で同様の構造に複製することができる。
【０００８】
さらなる実施例によれば、コンピュータ可読記憶媒体は、キー・バリューストアのマッピングおよび複製のための命令をその上に格納することができる。命令は、対象のデータセンタのキー・バリューストアからのデータのクエリキャッシュを用いて相対的なデータのストレージ位置を抽出することによって、対象のデータセンタ内で物理的なストレージ分散をマッピングすることと；対象のデータセンタ内でデータ分割およびデータ複写をマッピングすることと；対象のデータセンタ内のデータを新しいデータセンタ中で同様の構造に複製することとを含むことができる。
【０００９】
また他の実施例によれば、キー・バリューストアのマッピングおよび複製を実施するように適合されたサーバは、メモリと、メモリに結合されるプロセッサとを含むことができる。プロセッサは、データ転送アプリケーションを実行することができ、それは、対象のデータセンタのキー・バリューストアに対して所定数の結果および位置のキャッシュ要素を要求するクエリを反復して提出することによって、対象のデータセンタの既存のキー・バリューストア中のファイル区切りを抽出し；物理的なストレージ容量にわたるアドレス範囲内の戻り値を受け取り；そして対象のデータセンタにおいて物理的にグループ化されているキー・バリューのセットおよびレコード複写物を回収するように構成することができる。
【００１０】
前述の要約は、例示的であるだけであり、決して限定するものと意図しない。上記に述べた例示的な態様、実施形態および特徴に加えて、さらなる態様、実施形態および特徴は、図面および次の詳細な記述を参照すると、明らかになるはずである。
【００１１】
本開示の前述および他の特徴は、次の記述および添付の請求項から、添付の図面と併せて検討すると、より完全に明らかになるはずである。これらの図面が、本開示によるいくつかの実施形態だけを描いており、したがって、その範囲を限定するものと見なすべきでなく、本開示は、添付図面を使用して、さらなる具体性および詳細さを備えて述べることを理解されたい。
【図面の簡単な説明】
【００１２】
【図１】複数のデータの記憶およびサーバにわたってユーザデータを格納するクラウドベースのデータセンタを概念的に例示する図である。
【図２】キー・バリューストア中に格納されるデータの位置情報を保存するために、抽出されるデータテーブルおよびルート表（root table）を使用することを例示する図である。
【図３】データのクエリキャッシュを使用して、どのようにして物理的なデータのストレージ分散をマッピングすることができるのかを例示する図である。
【図４】キャッシュベースのキー・バリューストアをマッピングするために使用することができる、汎用のコンピューティングデバイスを例示する図である。
【図５】図４のデバイスなどのコンピューティングデバイスによって実施することができる、キャッシュベースのキー・バリューストアをマッピングし複製するための実施例の方法を例示するフローチャートである。
【図６】本明細書に述べる少なくともいくつかの実施形態によってすべて構成される、実施例のコンピュータプログラム製品のブロック図である。
【発明を実施するための形態】
【００１３】
次の詳細な記述では、その一部を形成する添付図面を参照されたい。図面では、同様のシンボルが、文脈が他に指示しないかぎり、通常、同様の構成要素を識別する。詳細な記述で述べる例示的な実施形態、図面および請求項は、限定するものと意味しない。本明細書に提示する主題の趣旨または範囲を逸脱せずに、他の実施形態を利用することができ、他の変更を実施することができる。本開示の態様は、本明細書に一般に述べ図で例示するように、広範囲のさまざまな異なる構成で構成する、置き換える、組み合わす、分離する、かつ設計することができ、それらのすべては、明らかに、本明細書で期待されることを容易に理解されるはずである。
【００１４】
本開示は、とりわけ、データセンタにわたってキャッシュベースのキー・バリューストアをマッピングし、データ構造を複製することに関連する方法、機器、システム、装置および／またはコンピュータプログラム製品について一般に描く。
【００１５】
簡単に述べると、キー・バリューストアは、格納を反復し、アドレス値中のジャンプを検出するようにキャッシュアドレスの変化を調べることによって既存のキー・バリューストア中のファイル区切りを抽出することを介して、データ構造を複製するためにマッピングすることができる。具体的に策定されるクエリは、レコード複写物を含むカレントのデータセンタにおいて物理的にグループ化されるキー・バリューセットを完全に回収するために、物理的なストレージ容量にわたるアドレス範囲内の値を戻すように実行することができる。そのようなセットは、新しい位置で、または新しいキー・バリューストア中にキー・バリューセットを複製する、または通知し、それによって、テーブルが時間とともに最適化されるのにつれて展開するレコード複写物を完全に備えるデータベースのツリー構造を複製して構築することを可能にするために使用することができる。
【００１６】
図１は、本明細書に述べる少なくともいくつかの実施形態によって構成される、複数のデータ記憶およびサーバにわたってユーザデータを格納するクラウドベースのデータセンタを概念的に例示する。
【００１７】
データセンタは、データおよび情報を格納し、管理し、そして広めるための集中型の保存場所である。データセンタは、組織体の施設内に存在することがある、または専門の施設として維持されていることがある。いくつかのデータセンタは、サーバ活動、ウェブのトラフィック、管理データおよびネットワーク性能をモニタリングする自動化システムを含むネットワーク操作センタ（ＮＯＣ：network operations center）と同じ意味である場合がある。他のデータセンタは、収集されるデータを管理することに専門化されている場合がある。データセンタが、通常、物理的な実体（たとえばサーバルーム、サーバファームなど）と関連付けられているが、データセンタは、仮想データセンタ（ＶＤＣ：Virtual Datacenter）としてもまた構成することができ、そこでは、管理されるデータが、仮想サーバおよびデータ記憶を介して、サイズ、オーナまたは他の面に基づき区切られる。
【００１８】
図１の略図１００を参照すると、データセンタ１０４は、ユーザ１０２など、複数のユーザ（クライアント）のためにデータを格納することができる。ユーザ１０２は、１つまたは複数のネットワーク１０６上で（たとえばクラウドベースの相互関係で）データセンタ１０４と情報をやり取りすることができる。ユーザデータは、分散した形で、データ記憶１１２および１１４など、複数のデータ記憶上に格納することができる。ユーザデータの物理的な分散は、キー・バリューストア１０８によって管理される。キー・バリューストア１０８は、隠れ層を含むことができる。ユーザのデータテーブルは、多くのマシンにわたって分割される場合があり、各キー・バリューの位置を探し出すために、各テーブル上に複数のレベルのメタデータツリーを有することができる。さらにまた、キー・バリューストア１０８は、ユーザ１０２がＡＰＩ呼び出しを介してアクセス可能であり得て、そこでは、一人または複数のユーザが実行するアプリケーションによって、キーまたは照合用の用語を提示して、その値を検索することができる。
【００１９】
メタデータツリーおよび物理的なファイル領域は、サービスベースのキー・バリューストアのユーザには明かされていない、というのは、これらの記憶ファイルは、通常、複写物、分散されたファイルのブロックおよびもう使われていないデータが在るために複雑であるからである。複写物は、サービスのロバスト性および性能を可能にするつもりのためである場合がしばしばであり、一方もう使われていないデータは、ガーベジコレクション（garbage collection）およびクリーンアップ（負荷のバランシングのために）が遅れることによる。クラウドサービスは、ＡＰＩを介して値を要求することだけによるアクセス権をユーザ１０２に与えることによって、これらの問題を取り除くことができる。しかし、照合用のデータベースの性能のために、ツリー構造の高度に知的な複製、および使用に基づき時間とともに最適化されてきた、すなわち物理的なデータのグループ化の複製と関連付けられるレコードの複写が、求められる場合がある。一度新しいデータセンタが物理的なデータのグループ化のコピーを有すると、そのセンタは、形状最適化を含む、それ自体のツリー、および前のデータセンタにおいて時間とともに展開してきた複写物を構築することができる。
【００２０】
図２は、本明細書に述べる少なくともいくつかの実施形態によって構成される、キー・バリューストア中に格納されるデータの位置情報を保存するための抽出されるデータテーブルおよびルート表の使用を例示する。
【００２１】
図２の略図２００は、隠れ層を示す実施例のキー・バリューストアを示す。ユーザのデータテーブル２３０、２３４は、多くのマシン／記憶２２８、２３２にわたって分割することができ、それらに対して、複数のレベルのメタデータツリー（メタデータテーブル２２４、２２６およびルート表２２２）を有することができる。ユーザのデータテーブル２３０、２３４、メタデータテーブル２２４、２２６およびルート表２２２は、各キー・バリューの位置を探し出すために使用することができる。キー・バリューストアは、通常、専有のものであって、ユーザがＡＰＩ呼び出しを介してユーザがアクセスし、その呼び出しでは、ユーザが、キーまたは照合用の用語を提示して値を検索することができる。メタデータテーブル２２４、２２６またはユーザのデータテーブル２３０、２３４の実際の構造は、ユーザには見えない、とはいえ、データベース性能を維持すべき場合、その構造は、好ましくは複写レコードおよび他の隠されたプロパティを含んで、宛先データセンタにおいて複製することが必要である。
【００２２】
いくつかの実施形態は、キャッシュを使用するキー・バリューシステム中の真のユーザテーブル（これは、通常、データセンタのインターフェースによって取り除かれる）を抽出することを対象とする。キー・バリューが呼び出されたとき、システムは、それが再び呼び出される可能性を考慮して、その位置のキャッシュを維持する。これらのキャッシュは、通例、ＡＰＩを介してユーザには示されない（それらは、分離されたサービス内に保持される）。しかし、呼び出しによって、サービスが一度に送ることができるより多くのレコードが戻される場合、２つのキャッシュ、つまり戻されたデータのためのキャッシュ、およびクエリをもっと多くのデータについて継続させることができるように、次のレコードの位置を提示するキャッシュが存在し、後者のキャッシュの位置は、ユーザが検出可能であり、したがってユーザは、クエリを中止したところから、ユーザのクエリを継続することができる。
【００２３】
実施形態によるシステムは、最大の戻されるアイテムリストを所定の短いサンプル長さの長さ（たとえば１）に設定し、そして次のアイテムのキャッシュ値を保存しながら、一連のクエリを発行することによって、「NextToken」としても呼ばれる、この「次のアイテムのキャッシュ」を用いる。そのような値は、通常、監視なしに使用され、コンテンツは、クエリを継続させること以上の意味を持たないはずである。通常のクエリは、プリセット数の値および次のアイテムのキャッシュ（たとえば「NextToken」）を返すように設計することができる。そのような状況では、トークン（token）は、トークンがファイルおよびディスクの境界をしばしば横切るので、実際、ランダムに現れることができる。
【００２４】
ストレージアドレスとしての次のアイテムのキャッシュの性質は、次のようにその性質を明らかにする、すなわち、次のアイテムのキャッシュを使用するクエリは、単一のクエリ内の複写物を移すが、しかし次のアイテムのキャッシュを使用する複数のクエリの戻りの間ではそうしない、というのは、各そのようなクエリが別個のストレージセグメント上に在り（それは、物理的な境界を横切ることがある）、そしてそれらの間で複写物を移すことは、性能に影響を及ぼす恐れがあるからである。
【００２５】
図３は、本明細書に述べる少なくともいくつかの実施形態によって構成される、物理的なデータストレージの分散が、データのクエリキャッシュを使用して、どのようにしてマッピングすることができるのかを例示する。
【００２６】
データ位置を提示する点での次のアイテムのキャッシュの性質は、次のアイテムのキャッシュ値（たとえば、単一値の戻り）とともに限定されたデータ要求を有する連続的なクエリを提出するアルゴリズムまたは技術によって、用いることができる。一度相対的なデータのストレージ位置が抽出されると、対象のデータセンタ内のデータ分割およびデータ複写は、マッピングすることができ、したがって、データは、新しいデータセンタ中で同様の構造に複製することができる。
【００２７】
図３の略図３００を参照すると、キー・バリューストア３４０上のデータのクエリキャッシュを介して物理的なストレージ分散をマッピングすることが示されている。サービスプロバイダーのキー・バリューストア３４０は、ユーザが直接アクセス可能でない、サービスプロバイダーの抽出されるデータテーブル３４２および３４４と、やはり不明であるが、しかしユーザが新しいデータセンタにおいてそれを複製することができるように知ることが必要である、物理的なストレージ分散３４６とを含むことができる。クエリを介して物理的なストレージ分散を決定するプロセス３５０は、データ３４８についてある数（Ｎ）の結果を有して設定されるクエリを発行することから始めることができる。Ｎは、レコード毎にマッピングし、最も詳細なものを提示することを可能にするように、１ほど小さくすることができる。他の実施形態では、Ｎは、１００または１，０００など、より大きくしてもよく、平均のアドレス増分の差は、Ｎ個のどのグループが隣接する物理的なストレージ中に区切りを含んでいるのかを推定するために、調べることができ、次いで、それらの領域をより詳細に調べることができる。
【００２８】
検索設計にかかわらず、アルゴリズムは、３５２で位置のキャッシュ要素を含む結果を受け取り、３５４でその位置のキャッシュデータをデータマップに加えることができる。次いで、データマップは、３５６で複製のために必要な細部と比べることができる。さらなるデータが必要な場合、次に続くクエリは、３５０で次の位置から開始して発行することができる。マップが十分に詳細なものである場合、隣接するブロックレベルのクエリは、３５８で実行する、または前の結果から合成することができ、それによって複写物が物理的なストレージブロックの間で暴露される。
【００２９】
クエリを設計するために、いくつかのアプローチを使用することができる。クエリがより大きいと、確かな結果がより少なく生じる可能性があるが、しかし多くの場合、ストレージ境界がどこに在るのかをなお検出することができる。たとえば、何百万ものレコードを検索する場合、千のレコード粒度での解析は、ストレージ中の１ダースぐらいの境界を探し出すのに十分であり得る、というのは、それらの境界にわたるクエリが、戻される次のアイテムのキャッシュ値の間のアドレス空間中でより大きく飛ぶことがあるからである。次いで、千のレコードのクエリは、それぞれ、ストレージ境界を含み、ますますより細かい粒度でクエリを行うことができ、それによって境界の位置がユーザテーブルのストレージ中で絞り込まれる。これらの不連続の位置の確実性は、時間とともにより優れたものになることができ（たとえば、まず１,０００のレコードの範囲内まで、次いで１００、次いで１０、次いで的確なレコードに）、そしてデータマップは、所定の正確さの測定基準に対して比較することができる。
【００３０】
たとえば、次のクエリのために開始点として次のアイテムのキャッシュを使用することによって、クエリを複数のストレージクエリに分解した場合、複写物は、各クエリ内には見られないが、しかし反復するレコードは、クエリの間に検出することができる。これは、物理的なストレージ分散３４６の分散される性質のかなり基本的な特性である。この特性は、システムが、頻繁に使用されるデータなど、最適化のために時間とともに複写されてきたレコードをマッピングするために使用することができる。ユーザが、どの物理的なストレージ要素が各レコードのコピーを有しているのかだけ知ることが必要である場合、物理的なストレージブロックを開始させるように、前にマッピングされた次のアイテム値に開始位置を設定し、かつマッピングされた物理的なストレージのサイズに一致させるようにレコードカウントを設定して、「＊」（すべて）タイプの動作に一致する「select  response」を使用することができる。一度そのような「select response」が各ストレージブロックに対して完了すると、複数のストレージブロック上にカレントに現れるレコードの複数のインスタンスが存在する各物理的なストレージブロックについてのレコードのリストを得ることができる。これによって、ユーザ値の複数のテーブルにわたって頻繁に使用されるレコードが繰り返して発生することなど、最適化を検出することが可能になる。
【００３１】
隣接するブロックレベルのクエリを実行しても、すべての複写レコードを捉えられない場合（たとえば、ストレージブロック内に複写が存在することがある）、最も詳細なデータを集めるために、レコード毎のクエリの戻りを使用することができる。この方法が望ましい場合、そのとき、Ｎを１に設定することができ、データベースを完全に横断するまで、動作３５０〜３５６をループさせる。隣接するブロックレベルのクエリは、そのループの間に集められたレコードから合成して構成することができ、その結果は、すべての死領域（恐らく、再構築されるまで明らかにすることができない無効にされたレコードから）および何回もコピーされたレコードを含む、カレントのデータストレージの配置の詳細なマップとすることができる。
【００３２】
一度データストレージ配置が既存のデータセンタで決定されると、その配置は、宛先データセンタで使用されるキー・バリューシステム内で同様にレコードを配置することによって、宛先データセンタで複製することができる。ツリー（ハッシュツリー（hash tree）、マークルツリー（Merkle tree）、タイガーツリー（Tiger tree）、Ｂツリーなど）が、これらのレコードをマッピングするために構築されたとき、ツリーは、複製されているデータセンタと同様のブランチおよびリーフ、および何倍もカバレッジを有することができる。これによって、出どころのデータセンタにおいて動作監視に基づき実施されてきた可能性がある複雑な最適化を含む、データ記憶性能の相似性を高めることができる。
【００３３】
図１〜３の具体的な実施例、構成要素および構成を使用して、実施形態を上記で議論してきたが、それら実施例は、キャッシュベースのキー・バリューストアのマッピングおよび複製をできるようにするために使用される一般的なガイドラインを提示するように意図している。これらの実施例は、実施形態に対する限定を成すものでなく、それら実施例は、本明細書に述べる原理を使用して他の構成要素、モジュールおよび構成を使用することによって、実施することができる。たとえば、いずれもの適切な専用または汎用のコンピューティングデバイスは、データストレージ構造をマッピングするために、データセンタのキー・バリューストアにクエリを提出するのに使用することができる。さらにまた、上記で議論した動作は、さまざまな順序で、特にインターレース方式で実施することができる。
【００３４】
図４は、汎用のコンピューティングデバイスを例示し、それは、本明細書に述べる少なくともいくつかの実施形態によって構成される、キャッシュベースのキー・バリューストアをマッピングするために使用することができる。極めて基本的な構成４０２では、コンピューティングデバイス４００は、通常、１つまたは複数のプロセッサ４０４と、システムメモリ４０６とを含む。メモリバス４０８は、プロセッサ４０４とシステムメモリ４０６の間で通信するために使用することができる。
【００３５】
所望の構成に依存して、プロセッサ４０４は、ただしこれらに限定されないが、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはそのいずれもの組み合わせを含む、いずれものタイプのものとすることができる。プロセッサ４０４は、あるレベルのキャッシュメモリ４１２など、１つまたは複数のレベルのキャッシングと、プロセッサコア４１４と、レジスタ４１６とを含むことができる。実施例のプロセッサコア４１４は、数値演算ユニット（ＡＬＵ：arithmetic logic unit）、浮動小数点演算ユニット（ＦＰＵ：floating point unit）、デジタル信号処理コア（ＤＳＰ Core：digital signal processing core）、またはそれらのいずれもの組み合わせを含むことができる。また、実施例のメモリコントローラ４１８は、プロセッサ４０４とともに使用することができる、あるいはいくつかの実施態様では、メモリコントローラ４１８は、プロセッサ４０４の内部の一部とすることができる。
【００３６】
所望の構成に依存して、システムメモリ４０６は、ただしこれらに限定されないが、揮発性メモリ（ＲＡＭなど）、不揮発性メモリ（ＲＯＭ、フラッシュメモリなど）、またはそれらのいずれもの組み合わせを含む、いずれものタイプのものとすることができる。システムメモリ４０６は、オペレーティングシステム４２０と、１つまたは複数のアプリケーション４２２と、プログラムデータ４２４とを含むことができる。アプリケーション４２２は、クエリモジュール４２３と、データマッピングモジュール４２５とを含むことができ、それらは、不正な形式のクエリをデータセンタのキー・バリューストアに提出することができ得、本明細書に述べるように別のデータセンタにデータを複製するために、データセンタでデータストレージ構造を戻り値に基づきマッピングすることができる。プログラムデータ４２４は、他のデータの間で、データ使用のクライアントへの解析結果の送達を限定することに関連する制御パラメータ４２８を含むことができる。基本構成４０２について述べたことは、図４に、内側の点線内のそれら構成要素によって例示している。
【００３７】
コンピューティングデバイス４００は、追加の特徴または機能性、および基本構成４０２といずれもの必要な装置およびインターフェースの間で通信を容易にする追加のインターフェースを有することができる。たとえば、バス／インターフェースコントローラ４３０は、ストレージインターフェースバス４３４を介して基本構成４０２と１つまたは複数のデータ記憶装置４３２の間での通信を容易にするために使用することができる。データ記憶装置４３２は、取外し式記憶装置４３６、非取外し式記憶装置４３８、またはその組み合わせとすることができる。取外し式記憶装置および非取外し式記憶装置の実施例は、いくつか例を挙げると、フレキシブルディスクドライブおよびハードディスクドライブ（ＨＤＤ）など、磁気ディスク装置、コンパクトディスク（ＣＤ）ドライブまたはデジタル多用途ディスク（ＤＶＤ）ドライブなど、光ディスクドライブ、半導体ドライブ（ＳＳＤ）、およびテープドライブを含む。実施例のコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなど、情報を格納するためのいずれかの方法または技術によって実現される揮発性および不揮発性、取外し式および非取外し式の媒体を含むことができる。
【００３８】
システムメモリ４０６、取外し式記憶装置４３６および非取外し式記憶装置４３８は、コンピュータ記憶媒体の実施例である。コンピュータ記憶媒体は、ただしこれらに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピューティングデバイス４００によってアクセスすることができる、いずれもの他の媒体を含む。いずれものそのようなコンピュータ記憶媒体は、コンピューティングデバイス４００の一部とすることができる。
【００３９】
コンピューティングデバイス４００は、また、さまざまなインターフェース装置（たとえば、出力装置４４２、周辺インターフェース４４４および通信装置４４６）から基本構成４０２へバス／インターフェースコントローラ４３０を介して通信することを容易にするために、インターフェースバス４４０を含むことができる。いくつかの実施例の出力装置４４２は、グラフィック処理ユニット４４８およびオーディオ処理ユニット４５０を含み、それらは、ディスプレイまたはスピーカなど、さまざまな外部装置と１つまたは複数のＡ／Ｖポート４５２を介して通信するように構成することができる。実施例の周辺インターフェース４４４は、シリアルインターフェースコントローラ４５４またはパラレルインターフェースコントローラ４５６を含み、それらは、入力装置（たとえば、キーボード、マウス、ペン、音声入力装置、タッチ入力装置など）または他の周辺装置（たとえば、プリンタ、スキャナなど）など、外部装置と１つまたは複数のＩ／Ｏポート４５８を介して通信するように構成することができる。実施例の通信装置４４６は、ネットワークコントローラ４６０を含み、それは、１つまたは複数の他のコンピューティングデバイス４６２とネットワーク通信リンクで１つまたは複数の通信ポート４６４を介して通信することを容易にするように構成することができる。
【００４０】
ネットワーク通信リンクは、通信媒体の一実施例とすることができる。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、または搬送波または他の転送メカニズムなど、「変調されたデータ信号」の形の他のデータによって実行させることができ、そしていずれもの情報伝達媒体を含むことができる。「変調されたデータ信号」は、その特性の１つまたは複数が、信号中に情報をエンコードするようにして設定される、または変化させられる信号とすることができる。例としてだけで限定せずに、通信媒体は、有線のネットワークまたは直接配線の接続部など、有線の媒体、および音響、無線周波（ＲＦ）、マイクロウェーブ、赤外線（ＩＲ）および他の無線媒体など、無線の媒体を含むことができる。用語「コンピュータ可読媒体」は、本明細書で使用する際、記憶媒体と通信媒体の両方を含むことができる。
【００４１】
コンピューティングデバイス４００は、汎用または専用のサーバ、メインフレーム、または上記の機能のいずれかを含む同様のコンピュータの一部として実現することができる。また、コンピューティングデバイス４００は、ラップトップコンピュータと非ラップトップコンピュータの構成の両方を含む、パーソナルコンピュータとして実現することができる。
【００４２】
実施例の実施形態は、また、方法を含むことができる。本明細書に述べる構造を含む、これらの方法は、いずれもの数のやり方で実施することができる。１つのそのようなやり方は、本開示で述べたタイプの装置の機械的な動作によるものである。別の任意選択のやり方は、動作のあるものを実施する一人または複数の人の操作員と関連して実施され、一方他の動作はマシンによって実施される、方法のそれぞれの動作の１つまたは複数に関するものである。これらの操作員は、互いに一緒に配置する必要はないが、しかしそれぞれは、プログラムの一部を実行するマシンとだけ連結させることができる。他の実施例では、人の相互関係は、マシンによって自動化される事前に選択される基準などによって、自動化することができる。
【００４３】
図５は、本明細書に述べる少なくともいくつかの実施形態によって構成される、図４の装置など、コンピューティングデバイスによって実施することができる、キャッシュベースのキー・バリューストアをマッピングし複製するための実施例の方法を例示するフローチャートである。実施例の方法は、ブロック５２２、５２４、５２６および／または５２８の１つまたは複数によって例示されるような１つまたは複数の動作、機能または行為を含むことができる。また、ブロック５２２〜５２８で述べる動作は、コンピューティングデバイス５１０のコンピュータ可読媒体５２０など、コンピュータ可読媒体中にコンピュータ実行可能な命令として格納することができる。
【００４４】
キャッシュベースのキー・バリューストアをマッピングし複製するためのプロセスは、ブロック５２２「次のアイテムのキャッシュを用いる不正な形式のクエリを提出する」から開始することができる。ブロック５２２で、図１のユーザ１０２のためのコンピューティングデバイスなど、クライアントデバイスが、位置のキャッシュ要素を有する所定数の結果を要求してデータセンタのキー・バリューストアにクエリを提出することができる（NextToken）。また、不正形式は、広範なクエリ、全データ記憶を戻すクエリ、またはエラーを発生するクエリについて、異常に少ない数の結果を伴う形式を取ることができる。
【００４５】
ブロック５２２は、ブロック５２４「戻り値および次のアイテムのキャッシュを受け取る」がその後に続くことができる。ブロック５２４で、提出したクエリの結果が、位置のキャッシュ要素とともに、ユーザ１０２のためのクライアントデバイスで受け取られる。ブロック５２４は、ブロック５２６「次のアイテムのキャッシュ中でジャンプをモニタリングする」がその後に続くことができる。ブロック５２６で、クライアントデバイスのデータマッピングモジュール４２５が、アドレス値中のジャンプを検出するために、キャッシュアドレスの変化をモニタリングし調べることができる。
【００４６】
ブロック５２６は、ブロック５２８「次のアイテムのキャッシュ値に基づきデータマップを生成する」がその後に続くことができる。ブロック５２８で、クライアントデバイスのデータマッピングモジュール４２５が、対象のデータセンタ内でデータ分割およびデータ複写をマッピングするために、位置のキャッシュ要素をデータマップに加えることができる。たとえば、データマップは、物理的なストレージのグループ化の変化を示す可能性がある異常に長い次のアイテムのキャッシュのステップに基づき、エントリーを複数の列にグループ化することによって、生成することができる。マップが十分に詳細なものになった場合、データマッピングモジュール４２５は、物理的なストレージブロックの間の複写を暴露するために、隣接するブロックレベルのクエリを発行する、または前の結果から隣接するブロックレベルのクエリを合成することができる。プロセスは、データストレージ構造が全部マッピングされるまで、反復して繰り返すことができる。ブロック５２８は、ブロック５３０「新しいデータセンタのためにデータマップを複製する」がその後に続くことができる。ブロック５３０で、クライアントデバイスにおけるアプリケーション４２２または別のアプリケーションが、対象のデータセンタでデータストレージ構造を別のデータセンタに複製することができ、そこにデータが、移動されている。
【００４７】
上記で述べたプロセスでブロックにおいて実施される機能は、例示するためである。クエリのキャッシュに基づく、キー・バリューストアのマッピングおよびデータストレージ構造の複製は、より少ない、または追加の機能を備える同様のプロセスによって実施することができる。いくつかの実施例では、機能は、異なる順序で実施することができる。いくつかの他の実施例では、さまざまな機能は、無くすことができる。また他の実施例では、さまざまな機能は、追加の機能に分割することができる、または互いに組み合わせて機能をより少なくすることができる。
【００４８】
図６は、本明細書に述べる少なくともいくつかの実施形態によって構成される、実施例のコンピュータプログラム製品のブロック図を例示する。いくつかの実施例では、図６に示すように、コンピュータプログラム製品６００は、信号保持媒体６０２を含むことができ、その媒体は、また、たとえばプロセッサによって実行されたとき、図４に関して上記に述べた機能性をもたらすことができるマシン可読命令６０４を含むことができる。それゆえ、たとえばプロセッサ４０４を参照すると、データマッピングモジュール４２５が、命令６０４に応答して図６に示すタスクの１つまたは複数を引き受けることができ、その命令６０４は、次のアイテムのキャッシュを有する不正の形式のクエリを提出することと、結果および次のアイテムのキャッシュ値を受け取ることと、次のアイテムのキャッシュ値のジャンプをモニタリングすることと、次のアイテムのキャッシュ値に基づきデータストレージ構造をマッピングすることとに関連する動作を実施するために、媒体６０２によってプロセッサ５０４に伝達される。
【００４９】
いくつかの実施態様では、図６に描く信号保持媒体６０２は、ただしこれらに限定されないが、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、デジタルテープ、メモリなど、コンピュータ可読媒体６０６を包含することができる。いくつかの実施態様では、信号保持媒体６０２は、ただしこれらに限定されないが、メモリ、リード／ライト（Ｒ／Ｗ）ＣＤ、Ｒ／Ｗ  ＤＶＤなど、記録可能な媒体６０８を包含することができる。いくつかの実施態様では、信号保持媒体６０２は、ただしこれらに限定されないが、デジタルおよび／またはアナログの通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）など、通信媒体６１０を包含することができる。それゆえ、たとえば、プログラム製品６００は、ＲＦ信号保持媒体によって、プロセッサ６０４の１つまたは複数のモジュールに運ぶことができ、信号保持媒体６０２は、無線通信媒体６１０（たとえば、ＩＥＥＥ８０２．１１スタンダードに適合する無線通信媒体）によって伝達される。
【００５０】
いくつかの実施例によれば、キー・バリューストアをマッピングし複製するための方法は、対象のデータセンタのキー・バリューストアからのデータのクエリキャッシュを用いて相対的なデータのストレージ位置を抽出することによって、対象のデータセンタ内で物理的なストレージ分散をマッピングすることと、対象のデータセンタ内でデータ分割およびデータ複写をマッピングすることとを含むことができる。本方法は、また、対象のデータセンタ内のデータを新しいデータセンタ中で同様の構造に複製することを含むことができる。
【００５１】
キー・バリューストアは、ユーザが直接アクセス可能でない、抽出されるデータテーブルを含むことができる。他の実施例によれば、本方法は、所定数の結果を有して設定されるクエリを発行することと、位置のキャッシュ要素を含む結果を受け取ることと、位置のキャッシュ要素をデータマップに加えることと、複製のために必要な細部とデータマップを比較することとをさらに含むことができる。マップが十分に詳細なものである場合、物理的なストレージブロックの間の複写を暴露するために、隣接するブロックレベルのクエリは、発行することができる、あるいは隣接するブロックレベルのクエリは、前の結果から合成することができる。マップが十分に詳細なものでない場合、新しいクエリは、発行することができる。
【００５２】
所定数は、格納されるデータのサイズによって決めることができる。所定数は、最も詳細になることを可能にするために１とすることができる。順次的な要求アドレスの間のステップが、約１つのストレージブロックまたは約１つのページの１つより大きい場合、平均のアドレス増分の差は、どのグループが隣接する物理的なストレージ中に区切りを含んでいるのかを推定するために走査することができ、隣接する物理的なストレージ中に区切りを含んでいるグループは、より詳細に物理的なデータストレージ構造を決定するために調べることができる。新しいデータセンタ中でデータを同様の構造に複製することは、新しいデータセンタで使用されるキー・バリューシステム内でレコードを同様に配置することを含むことができる。また、本方法は、１つまたは複数のツリー構造が、複製されているデータセンタと実質的に同様のブランチおよびリーフ、および何倍もカバレッジを有するようにデータをマッピングするために、１つまたは複数のツリー構造を構築することを含むことができる。ツリー構造は、ハッシュツリー、マークルツリー、タイガーツリーおよびＢツリーの１つまたは複数を含むことができる。
【００５３】
さらなる実施例によると、キー・バリューストアのマッピングおよび複製を実施するように適合されたコンピューティングデバイスは、メモリと、メモリに結合されるプロセッサとを含むことができる。プロセッサは、データ転送アプリケーションを実行することができ、それは、対象のデータセンタのキー・バリューストアからのデータのクエリキャッシュを用いて相対的なデータのストレージ位置を抽出することによって、対象のデータセンタ内で物理的なストレージ分散をマッピングし、対象のデータセンタ内でデータ分割およびデータ複写をマッピングし、そして対象のデータセンタ内のデータを新しいデータセンタ中で同様の構造に複製することができる。
【００５４】
キー・バリューストアは、ユーザが直接アクセス可能でない、抽出されるデータテーブルを含むことができる。他の実施例によれば、データ転送アプリケーションは、さらに、所定数の結果を有して設定されるクエリを発行することと、位置のキャッシュ要素を含む結果を受け取ることと、位置のキャッシュ要素をデータマップに加えることと、複製のために必要な細部とデータマップを比較することとの１つまたは複数を実施することができる。マップが十分に詳細なものである場合、物理的なストレージブロックの間の複写を暴露するために、隣接するブロックレベルのクエリは、発行することができる、あるいは隣接するブロックレベルのクエリは、前の結果から合成することができる。マップが十分に詳細なものでない場合、新しいクエリは、発行することができる。
【００５５】
所定数は、格納されるデータのサイズによって決めることができる。所定数は、最も詳細であることを可能にするために１とすることができる。順次的な要求アドレスの間のステップが、約１つのストレージブロックまたは約１つのページの１つより大きい場合、平均のアドレス増分の差は、どのグループが隣接する物理的なストレージ中に区切りを含んでいるのかを推定するために走査することができ、隣接する物理的なストレージ中に区切りを含んでいるグループは、より詳細に物理的なデータストレージ構造を決定するために調べることができる。新しいデータセンタ中で同様の構造にデータを複製することは、新しいデータセンタで使用されるキー・バリューシステム内でレコードを同様に配置することを含むことができる。データ転送アプリケーションは、また、１つまたは複数のツリー構造が、複製されているデータセンタと実質的に同様のブランチおよびリーフ、および何倍もカバレッジを有するようにデータをマッピングするために、１つまたは複数のツリー構造を構築することができる。ツリー構造は、ハッシュツリー、マークルツリー、タイガーツリーおよびＢツリーの１つまたは複数を含むことができる。
【００５６】
また他の実施例によれば、コンピュータ可読記憶媒体は、キー・バリューストアをマッピングし複製するための命令をその上に格納することができる。命令は、対象のデータセンタのキー・バリューストアからのデータのクエリキャッシュを用いて相対的なデータのストレージ位置を抽出することによって、対象のデータセンタ内で物理的なストレージ分散をマッピングすることと；対象のデータセンタ内でデータ分割およびデータ複写をマッピングすることと；対象のデータセンタ内のデータを新しいデータセンタ中で同様の構造に複製することとを含むことができる。
【００５７】
キー・バリューストアは、ユーザが直接アクセス可能でない、抽出されるデータテーブルを含むことができる。他の実施例によれば、命令は、所定数の結果を有して設定されるクエリを発行することと、位置のキャッシュ要素を含む結果を受け取ることと、位置のキャッシュ要素をデータマップに加えることと、複製のために必要な細部とデータマップを比較することとをさらに含むことができる。マップが十分に詳細なものである場合、物理的なストレージブロックの間の複写を暴露するために、隣接するブロックレベルのクエリは、発行することができる、あるいは隣接するブロックレベルのクエリは、前の結果から合成することができる。マップが十分に詳細なものでない場合、新しいクエリは、発行することができる。
【００５８】
所定数は、格納されるデータのサイズによって決めることができる。所定数は、最も詳細であることを可能にするために１とすることができる。順次的な要求アドレスの間のステップが、約１つのストレージブロックまたは約１つのページの１つより大きい場合、平均のアドレス増分の差は、どのグループが隣接する物理的なストレージ中に区切りを含んでいるのかを推定するために走査することができ、隣接する物理的なストレージ中に区切りを含んでいるグループは、より詳細に物理的なデータストレージ構造を決定するために調べることができる。より詳細に調べることは、所定数を変化させることを含むことができる。新しいデータセンタ中で同様の構造にデータを複製することは、新しいデータセンタで使用されるキー・バリューシステム内でレコードを同様に配置することを含むことができる。命令は、また、１つまたは複数のツリー構造が、複製されているデータセンタと実質的に同様のブランチおよびリーフ、および何倍もカバレッジを有するようにデータをマッピングするために、１つまたは複数のツリー構造を構築することを含むことできる。ツリー構造は、ハッシュツリー、マークルツリー、タイガーツリーおよびＢツリーの１つまたは複数を含むことができる。
【００５９】
いくつかの実施例によれば、キー・バリューストアのマッピングおよび複製を実施するように適合されたサーバは、メモリとメモリに結合されるプロセッサとを含むことができる。プロセッサは、データ転送アプリケーションを実行することができ、それは、所定数の結果および位置のキャッシュ要素を対象のデータセンタのキー・バリューストアに対して要求するクエリを反復して提出することによって、対象のデータセンタの既存のキー・バリューストア中のファイル区切りを抽出し；物理的なストレージ容量にわたるアドレス範囲内の戻り値を受け取り；対象のデータセンタで物理的にグループ化されるキー・バリューのセットおよびレコード複写物を回収するように構成することができる。
【００６０】
他の実施例によれば、データ転送アプリケーションは、さらに、新しいデータセンタのキー・バリューストアでキー・バリューのセットを複製することができる。位置のキャッシュ要素は、「NextToken」とすることができ、所定数は、最も詳細になることが可能なように１である。
【００６１】
システムの側面でのハードウェアの実装形態とソフトウェアの実装形態との間には、ほとんど相違が残されていない。ハードウェアまたはソフトウェアの使用は、一般に（いつもそうではないが、ある状況ではハードウェアとソフトウェアの間の選択が重要になり得るという点で）コスト対効果のトレードオフを表す設計上の選択である。本明細書に記載された、プロセスおよび／またはシステムおよび／または他の技術をもたらすことができるさまざまな達成手段があり（たとえば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい達成手段は、プロセスおよび／またはシステムおよび／または他の技術が導入される状況によって異なる。たとえば、実装者が速度と正確性が最も重要であると決定すると、実装者は主にハードウェアおよび／またはファームウェアの達成手段を選択することができる。フレキシビリティが最も重要なら、実装者は主にソフトウェアの実装形態を選択することができる。または、さらに別の代替案として、実装者は、ハードウェア、ソフトウェア、および／またはファームウェアのなんらかの組み合わせを選択することができる。
【００６２】
前述の詳細な説明では、ブロック図、フローチャート、および／または例の使用によって、装置および／またはプロセスのさまざまな実施形態を説明してきた。そのようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または動作を含む限りにおいて、そのようなブロック図、フローチャート、または例の中のそれぞれの機能および／または動作は、広範囲のハードウェア、ソフトウェア、ファームウェア、または実質上それらのすべての組み合わせにより、個別におよび／または集合的に実装可能であることが、当業者には理解されるであろう。ある実施形態では、本明細書に記載された主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または他の集積化方式によって実装することができる。しかし、本明細書で開示された実施形態のいくつかの態様が、全体においてまたは一部において、１つまたは複数のコンピュータ上で動作する１つまたは複数のコンピュータプログラムとして（たとえば、１つまたは複数のコンピュータシステム上で動作する１つまたは複数のプログラムとして）、１つまたは複数のプロセッサ上で動作する１つまたは複数のプログラムとして（たとえば、１つまたは複数のマイクロプロセッサ上で動作する１つまたは複数のプログラムとして）、ファームウェアとして、あるいは実質上それらの任意の組み合わせとして、等価に集積回路に実装することができることを、当業者は認識するであろうし、電気回路の設計ならびに／またはソフトウェアおよび／もしくはファームウェアのコーディングが、本開示に照らして十分当業者の技能の範囲内であることを、当業者は認識するであろう。
【００６３】
本開示は、本出願で述べる具体的な実施形態の観点から限定されるべきでなく、本開示は、さまざまな態様を例示するものと意図する。当業者に明らかになるはずであるように、その趣旨および範囲を逸脱せずに、多くの修正および変形を実施することができる。本開示の範囲内の機能的に同等の方法および機器類は、本明細書に列挙したものに加えて、前述の記述から当業者に明らかになるはずである。そのような修正および変形は、添付の請求項の範囲内に含まれると意図する。本開示は、添付の請求項がその資格を得られる同等物の全範囲とともに、そのような請求項の条項によってのみ限定されるべきである。本開示は、特定の方法、試薬、複合物、合成物または生物学システムに限定されず、それらは、もちろん、変わることができることを理解すべきである。また、本明細書に使用する用語は、具体的な実施形態を述べる目的のためだけであり、限定するものと意図しないことを理解すべきである。
【００６４】
さらに、本明細書に記載された主題のメカニズムをさまざまな形式のプログラム製品として配布することができることを、当業者は理解するであろうし、本明細書に記載された主題の例示的な実施形態が、実際に配布を実行するために使用される信号伝達媒体の特定のタイプにかかわらず適用されることを、当業者は理解するであろう。信号伝達媒体の例には、フロッピーディスク、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリ、などの記録可能なタイプの媒体、ならびに、デジタル通信媒体および／またはアナログ通信媒体（たとえば、光ファイバケーブル、導波管、有線通信リンク、無線通信リンクなど）の通信タイプの媒体が含まれるが、それらには限定されない。
【００６５】
本明細書で説明したやり方で装置および／またはプロセスを記載し、その後そのように記載された装置および／またはプロセスを、データ処理システムに統合するためにエンジニアリング方式を使用することは、当技術分野で一般的であることを当業者は認識するであろう。すなわち、本明細書に記載された装置および／またはプロセスの少なくとも一部を、妥当な数の実験によってデータ処理システムに統合することができる。通常のデータ処理システムは、一般に、システムユニットハウジング、ビデオディスプレイ装置、揮発性メモリおよび不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算実体、ドライバ、グラフィカルユーザインターフェース、およびアプリケーションプログラムのうちの１つもしくは複数、タッチパッドもしくはスクリーンなどの１つもしくは複数の相互作用装置、ならびに／またはフィードバックループおよびコントロールモータを含むコントロールシステム（たとえば、ガントリーシステムの位置検知用および／もしくは速度検知用フィードバック、コンポーネントの移動用および／もしくは数量の調整用コントロールモータ）を含むことを、当業者は理解するであろう。
【００６６】
通常のデータ処理システムは、データコンピューティング／通信システムおよび／またはネットワークコンピューティング／通信システムの中に通常見られるコンポーネントなどの、市販の適切なコンポーネントを利用して実装することができる。本明細書に記載された主題は、さまざまなコンポーネントをしばしば例示しており、これらのコンポーネントは、他のさまざまなコンポーネントに包含されるか、または他のさまざまなコンポーネントに接続される。そのように図示されたアーキテクチャは、単に例示にすぎず、実際には、同じ機能を実現する多くの他のアーキテクチャが実装可能であることが理解されよう。概念的な意味で、同じ機能を実現するコンポーネントの任意の構成は、所望の機能が実現されるように効果的に「関連付け」される。したがって、特定の機能を実現するために組み合わされた、本明細書における任意の２つのコンポーネントは、アーキテクチャまたは中間のコンポーネントにかかわらず、所望の機能が実現されるように、お互いに「関連付け」されていると見ることができる。同様に、そのように関連付けされた任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に接続」または「動作可能に結合」されていると見なすこともでき、そのように関連付け可能な任意の２つのコンポーネントは、所望の機能を実現するために、互いに「動作可能に結合できる」と見なすこともできる。動作可能に結合できる場合の具体例には、物理的に接続可能な、および／もしくは物理的に相互作用するコンポーネント、ならびに／またはワイヤレスに相互作用可能な、および／もしくはワイヤレスに相互作用するコンポーネント、ならびに／または論理的に相互作用する、および／もしくは論理的に相互作用可能なコンポーネントが含まれるが、それらに限定されない。
【００６７】
本明細書における実質的にすべての複数形および／または単数形の用語の使用に対して、当業者は、状況および／または用途に適切なように、複数形から単数形に、および／または単数形から複数形に変換することができる。さまざまな単数形／複数形の置き換えは、理解しやすいように、本明細書で明確に説明することができる。
【００６８】
通常、本明細書において、特に添付の特許請求の範囲（たとえば、添付の特許請求の範囲の本体部）において使用される用語は、全体を通じて「オープンな（ｏｐｅｎ）」用語として意図されていることが、当業者には理解されよう（たとえば、用語「含む（ｉｎｃｌｕｄｉｎｇ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｉｎｇ  ｂｕｔ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきであり、用語「有する（ｈａｖｉｎｇ）」は、「少なくとも有する（ｈａｖｉｎｇ  ａｔ  ｌｅａｓｔ）」と解釈されるべきであり、用語「含む（ｉｎｃｌｕｄｅｓ）」は、「含むがそれに限定されない（ｉｎｃｌｕｄｅｓ  ｂｕｔ  ｉｓ  ｎｏｔ  ｌｉｍｉｔｅｄ  ｔｏ）」と解釈されるべきである、など）。導入される請求項で具体的な数の記載が意図される場合、そのような意図は、当該請求項において明示的に記載されることになり、そのような記載がない場合、そのような意図は存在しないことが、当業者にはさらに理解されよう。たとえば、理解の一助として、添付の特許請求の範囲は、導入句「少なくとも１つの（ａｔ  ｌｅａｓｔ  ｏｎｅ）」および「１つまたは複数の（ｏｎｅ  ｏｒ  ｍｏｒｅ）」を使用して請求項の記載を導くことを含む場合がある。しかし、そのような句の使用は、同一の請求項が、導入句「１つまたは複数の」または「少なくとも１つの」および「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、不定冠詞「ａ」または「ａｎ」による請求項の記載の導入が、そのように導入される請求項の記載を含む任意の特定の請求項を、単に１つのそのような記載を含む実施形態に限定する、ということを示唆していると解釈されるべきではない（たとえば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）。同じことが、請求項の記載を導入するのに使用される定冠詞の使用にも当てはまる。また、導入される請求項の記載で具体的な数が明示的に記載されている場合でも、そのような記載は、少なくとも記載された数を意味すると解釈されるべきであることが、当業者には理解されよう（たとえば、他の修飾語なしでの「２つの記載（ｔｗｏ  ｒｅｃｉｔａｔｉｏｎｓ）」の単なる記載は、少なくとも２つの記載、または２つ以上の記載を意味する）。
【００６９】
さらに、「Ａ、ＢおよびＣ、などの少なくとも１つ」に類似の慣例表現が使用されている事例では、通常、そのような構文は、当業者がその慣例表現を理解するであろう意味で意図されている（たとえば、「Ａ、Ｂ、およびＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを共に、ＡおよびＣを共に、ＢおよびＣを共に、ならびに／またはＡ、Ｂ、およびＣを共に、などを有するシステムを含むが、それに限定されない）。２つ以上の代替用語を提示する事実上いかなる離接する語および／または句も、明細書、特許請求の範囲、または図面のどこにあっても、当該用語の一方（ｏｎｅ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、当該用語のいずれか（ｅｉｔｈｅｒ  ｏｆ  ｔｈｅ  ｔｅｒｍｓ）、または両方の用語（ｂｏｔｈ  ｔｅｒｍｓ）を含む可能性を企図すると理解されるべきであることが、当業者にはさらに理解されよう。たとえば、句「ＡまたはＢ」は、「Ａ」または「Ｂ」あるいは「ＡおよびＢ」の可能性を含むことが理解されよう。
【００７０】
さらに、本開示の特徴または態様が、マーカッシュグループの観点から述べられている場合、当業者は、本開示が、また、それによって、マーカッシュグループのいずれものそれぞれのメンバまたはメンバのサブグループの観点から述べられていることを認識されるはずである。
【００７１】
当業者が理解されるはずのように、いずれかおよびすべての目的で、書面の記述を提示することに関してなど、本明細書に開示するすべての範囲は、また、いずれかおよびすべてのあり得る部分的な範囲およびその部分的な範囲の組み合わせを包含する。いずれもの列挙した範囲は、十分に述べており、同じ範囲が少なくとも等しい半分に、１／３に、１／４に、１／５に，１／１０になどに分解できるものとして容易に理解することができる。非限定の例として、本明細書で議論した各範囲は、下側３分の１、中間の３分の１および上側３分の１などに容易に分解することができる。また、当業者が理解されるはずであるように、「まで（up to）」、「少なくとも（at least）」、「より大きい（greater than）」、「より小さい（less than）」など、すべての言葉は、列挙される数を含み、上記で議論したように、その以降で部分的な範囲に分解することができる範囲を言う。最後に、当業者が理解されるはずであるように、範囲は、各それぞれのメンバを含む。それゆえ、たとえば、１〜３のセルを有するグループは、１つ、２つ、または３つのセルを有するグループを言う。同様に、１〜５のセルを有するグループは、１つ、２つ、３つ、４つまたは５つのセルを有するグループを言い、その他も同様である。
【００７２】
さまざまな態様および実施形態を本明細書に開示してきたが、他の態様および実施形態は、当業者に明らかになるはずである。本明細書に開示したさまざまな態様および実施形態は、例示する目的のためであり、限定するものと意図せず、その真の範囲および趣旨は、次の請求項によって示されている。