JP5341183B2 - ワイヤレス通信デバイスの間のグループ通信をサポートするための改善されたデータベースアーキテクチャ - Google Patents

ワイヤレス通信デバイスの間のグループ通信をサポートするための改善されたデータベースアーキテクチャ Download PDF

Info

Publication number
JP5341183B2
JP5341183B2 JP2011514686A JP2011514686A JP5341183B2 JP 5341183 B2 JP5341183 B2 JP 5341183B2 JP 2011514686 A JP2011514686 A JP 2011514686A JP 2011514686 A JP2011514686 A JP 2011514686A JP 5341183 B2 JP5341183 B2 JP 5341183B2
Authority
JP
Japan
Prior art keywords
data
server
data set
checkpointing
ordering information
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.)
Expired - Fee Related
Application number
JP2011514686A
Other languages
English (en)
Other versions
JP2011524718A (ja
Inventor
グプタ、ラシム
セルラムス、ジドヘンドラン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011524718A publication Critical patent/JP2011524718A/ja
Application granted granted Critical
Publication of JP5341183B2 publication Critical patent/JP5341183B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/10Push-to-Talk [PTT] or Push-On-Call services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/40Connection management for selective distribution or broadcast
    • H04W76/45Connection management for selective distribution or broadcast for Push-to-Talk [PTT] or Push-to-Talk over cellular [PoC] services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/14Backbone network devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/04Interfaces between hierarchically different network devices
    • H04W92/12Interfaces between hierarchically different network devices between access points and access point controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、コンピュータデータベース構造に関する。より詳細には、本発明は、ワイヤレス通信デバイスの通信グループの間のグループ通信制御において使用するのに特にフォールトトレラント(fault-tolerant)で有利である、スケーラブルマルチスレッド(scalable and multi-threaded)データベースアーキテクチャに関する。
総称的に「プッシュツートーク(Push-To-Talk)」(PTT)機能と呼ばれる1対1または1対多数の通信を提供するワイヤレス通信サービスが存在する。通信ワイヤレスデバイスのための受信デバイスの特定のPTTグループは、通常、キャリアによってセットアップされ、グループ通信をセットアップおよび制御するサーバにアクセス可能なデータベース上に保持される。PTT通信接続は、典型的に、ワイヤレスデバイス上で1回ボタンを押して、話者とグループの各メンバーデバイスとの間の半二重リンクをアクティブにすることによって開始され、ボタンを放すと、デバイスは、ボタンを放した後の入信PTT送信を受信することができる。いくつかの構成では、PTT話者は、話者が話している間は他のグループメンバーが話すことができない「フロア」を有することになり、どのデバイスがフロアを有するかを判断するのは通信サーバの役目である。話者がPTTボタンを放すと、グループの他のどの個々のメンバーも、彼らのPTTボタンを作動させることができ、フロアを有することになる。
PTTグループのグループ情報を保持するデータベースなどのデータベースが、新しい情報で常時更新される必要があり、たとえば、新しいPTTグループがキャリアにおいて追加されており、しかも、新しいグループ通信が行われるときにアクセスされる必要もあるとき、問題が起こる。したがって、キャリア(または他のサーバ)は、その新しいグループデータを、典型的にグループ通信サーバによってアクセス可能であるデータベースに送信する必要があり、それにより、グループ通信サーバは、そのレコードをメモリにおいて順序正しく更新し、また、そのデータをそのデータベースにおいて順序正しくチェックポイントすること、すなわち、キャリアまたは他のエンティティによって供給される正しいグループ情報を照合することが可能になる。
この更新は、典型的に、順序正しく記憶された複数のレコードを各パケットが有する複数のパケットにおいて新しいデータを送信するキャリアサーバを用いて行われる。グループ通信サーバ(または他の受信サーバ)は、入信パケットごとに新しいスレッドを生成し、次いで、サーバのメモリを更新し、それをデータベース中にチェックポイントする。データベースが更新されているときのレコードが極めて多数であり、データベースのアクセスがほぼ常時である場合は、更新の失敗の可能性が増加する。その上、新しいデータを正しい順序で送信する際に送信のクラッシュまたは失敗が起こり、その結果、受信サーバが再始動する必要が生じた場合、受信サーバは、順序正しく記憶されたレコードのみをチェックポイントから読み取ることができ、さもなければ、受信サーバがチェックポイントから順序正しく読み取った最後のレコードからのデータを用いてキャリアサーバが受信サーバを再び更新することを要求する必要があり、それは最悪の場合、データ送信を最初から再始動することである。
常時更新およびアクセスする必要があるデータベースに伴うこの問題の一般的なソリューションは、入信パケットのためのキューを使用し、次いで、順序正しく更新するための特定のパケットを選択することである。アプリケーションスレッドが順序正しくパケットを制御すると、そのパケット順序は、キャッシュにおいて更新され、また、更新がどの程度進行したかを判断するためのチェックポイントを形成する。しかしながら、インターネットまたは他のTCP/IP交換ネットワークなどのパケットネットワークにおいて一般的である、パケットの順序受信のエラーがあると、更新プロセスのために、正しく順序付けされたパケットの位置が特定される前にキューがいっぱいになった場合、その記憶が失敗することになる。
したがって、障害の著しい危険および新しいデータ送信全体を再送信する必要なしに、新しい順序付けデータの受信と、新しいデータの正しい順序でのデータベースの更新とを確実に可能にする、改善されたデータベースアーキテクチャを提供することが有利であろう。データベース内のデータの更新は、他のアプリケーションによる更新データベースのアクセスを妨害すべきではない。したがって、本発明が主に対象とするのは、そのような改善されたデータベースアーキテクチャの提供である。
手短に説明すると、本発明は、ワイヤレス通信デバイスの通信グループ中のメンバーのグループ識別データベースなど、複数のアプリケーションスレッドによってアクセスされる大きな且つほぼ継続的に変化するデータセットの継続的な更新を可能にするアーキテクチャのための発明である。第1のサーバがグループ識別データベースにアクセスでき、アプリケーションスレッドがメンバーワイヤレス通信デバイスの間のグループ通信をセットアップするためにそのデータベースにアクセスすると、キャリアサーバなどの第2のサーバが、個別の順序付けブロックとして着信する新しいデータでそのデータベースを更新するために新しいグループ識別データを送信する。新しいデータブロックがグループ識別データベース中に更新されるとき、第1のサーバにおけるデータインデックステーブルが、新しいデータブロックの順序付け情報で更新され、第1のサーバ上のチェックポインティングスレッドが、新しいデータブロックの順序付け情報をチェックポイントキャッシュに入れ、順序付け情報をチェックポイントして、それによって、メモリ中のデータセットを更新するためにチェックポインティングキャッシュからデータが取り出されたときに、データインデックステーブルと比較してデータの順序付け(またはバージョン)が検証される。このようにして、本アーキテクチャは、単一のキャッシュ、バッファ、またはキューの使用に依拠せずに、入信データブロックを受信するとともに、メモリへのブロック挿入をチェックポイントする。
一実施形態では、複数のアプリケーションスレッドによってアクセスされる大型のほぼ継続的に変化するデータセットを継続的に更新するためのシステムが、(通信グループ識別データベースなどの)ほぼ継続的に変化する第1のデータセットを選択的に制御するように構成された第1のサーバを含み、第1のサーバは、その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドを含み、また、第1のサーバは、チェックポインティングキャッシュとデータインデックステーブルとをさらに含み、第1のデータセットは、少なくとも第1のサーバ上に常駐する、アプリケーションスレッドによってほぼ常にアクセスされる。本システムは、新しいグループ識別など、個別の順序付けブロックからなる新しいデータを、第1のデータセット中に含めるために第2のデータセットから第1のサーバに選択的に送信するように構成された第2のサーバを有する。新しいデータが受信されると、データインデックステーブルが更新され、少なくともデータブロックの順序付け情報がチェックポインティングキャッシュに入れられる。第1のデータセット中に含めるべき(またはその中に更新すべき)新しいデータのブロックごとに、チェックポインティングスレッドは、データインデックステーブル中のデータブロックの順序付け情報をチェックポインティングキャッシュ中のデータブロックの順序付け情報と比較し、比較により、第1のデータセット中に含めるべきデータブロックの順序についての正しい順序付け情報が示されたときは、チェックポインティングスレッドはそのデータブロックを第1のデータセット中に含め、さもなければ、比較により、第1のデータセット中に含めるべきデータブロックについての不正確な順序付け情報が示されたときは、チェックポインティングスレッドは、そのデータブロックを廃棄し、チェックポインティングキャッシュからの正しい順序のデータブロックを待つ。あるいは、チェックポインティングスレッドは、第2のサーバに、なくなっている(1つまたは複数の)データブロックを要求することができる。
一実施形態では、複数のアプリケーションスレッドによってアクセスされる大型のほぼ継続的に変化するデータセットを継続的に更新するための方法が、ほぼ継続的に変化する第1のデータセットを選択的に制御するように構成された第1のサーバにおいて個別の順序付けブロックからなる、第2のデータセットからの新しいデータを受信するステップを含み、第1のサーバは、その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドを含み、また、第1のサーバは、チェックポインティングキャッシュとデータインデックステーブルとをさらに含み、第1のデータセットは、少なくとも第1のサーバ上に常駐するアプリケーションスレッドによってほぼ連続的にアクセスされる。第1のサーバにおいて新しいデータブロックが受信されたときにデータインデックステーブルを更新することであって、データインデックステーブルが、第2のデータセット内に保持されたデータブロックの順序付け情報を含んでいる、更新することと、データブロックの順序付け情報をチェックポインティングキャッシュに入れることとを含む。次いで、第1のデータセット中に含めるべき新しいデータのブロックごとに、チェックポインティングスレッドが、データインデックステーブル中のデータブロックの順序付け情報をチェックポインティングキャッシュ中のデータブロックの順序付け情報と比較することと、比較により、第1のデータセット中に含めるべきデータブロックの順序についての正しい順序付け情報が示されたときは、チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含めることと、さもなければ、比較により、第1のデータセット中に含めるべきデータブロックについての不正確な順序付け情報が示されたときは、チェックポインティングスレッドが、そのデータブロックを廃棄し、チェックポインティングキャッシュからの正しい順序のデータブロックを待つこととを含む。
一実施形態では、ほぼ継続的に更新され変化する常駐データセットを選択的に制御するように構成されたサーバであって、チェックポインティングスレッドを含む複数の常駐アプリケーションスレッドと、チェックポインティングキャッシュと、データインデックステーブルと、少なくとも第1のサーバ上に常駐するアプリケーションスレッドによってほぼ連続的にアクセスされる第1のデータセットとを含む、サーバが提供される。第1のデータセットは、個別の順序付けブロックからなる第2のデータセットからのデータブロックで少なくとも周期的に更新される。本サーバ上で、データインデックステーブルは、第2のデータセットから新しいデータブロックが受信されたときに更新され、データインデックステーブルは、第2のデータセット内に保持されたデータブロックの順序付け情報を含んでいる。したがって、本サーバにおいて新しいデータブロックが受信されたときに、少なくともデータブロックの順序付け情報がチェックポインティングキャッシュに入れられ(あるいは、データのブロック全体がそこに入れられ)、次いで、第1のデータセット中に含めるべき新しいデータのブロックごとに、チェックポインティングスレッドは、データインデックステーブル中のデータブロックの順序付け情報をチェックポインティングキャッシュ中のデータブロックの順序付け情報と比較し、比較により、第1のデータセット中に含めるべきデータブロックの順序についての正しい順序付け情報が示されたときは、チェックポインティングスレッドはそのデータブロックを第1のデータセット中に含める。さもなければ、比較により、第1のデータセット中に含めるべきデータブロックについての不正確な順序付け情報が示されたときは、チェックポインティングスレッドは、そのデータブロックを廃棄し(または、そのブロックが書き込まれないようにし)、チェックポインティングキャッシュからの正しい順序のデータブロックを待つ。
したがって、本アーキテクチャ、ならびに対応するシステム、方法、および構成要素は、新しい順序付けデータの受信と、新しいデータの正しい順序でのデータセットの更新とを可能にし、それによって、障害の危険と新しいデータ送信全体を再送信する必要とを最小限に抑えるという点で有利である。データセット(データベース)は、正しく順序付けされた新しいデータが追加される間、依然として他のアプリケーションによってアクセスできる。その上、データセットは、本アーキテクチャでは容易にスケーラブルである。
本発明の他の目的、特徴、および利点は、図面の簡単な説明、発明の詳細な説明、および特許請求の範囲の検討の後に明らかになろう。
ワイヤレス通信デバイスの指定されたPTTグループがグループ通信サーバと通信し、キャリアサーバがそのグループ通信サーバに更新されたグループレコードを送信する、ワイヤレスネットワークの代表的な図。 グループ通信サーバにPTTグループメンバーのワイヤレス通信デバイス間の通信を制御させる、一般的なセルラー通信構成におけるワイヤレスネットワークの一実施形態の代表的な図。 キャリアサーバから新しいグループデータを取り出し、局所的に記憶されたグループ情報を更新する、グループ通信サーバ(または地域グループ当局(regional group authority))を示す代表的な図。 グループ通信サーバにおいてグループ識別データベースを更新するためのプロセスの一実施形態のフローチャート。 グループ通信サーバが入信パケットを処理し、その入信パケットで常駐(resident)キャッシュを更新するためのプロセスの一実施形態の代表的な図。 パケットがメモリに書き込まれるためにチェックポインティングキャッシュから取り出されたときに、グループ通信サーバがパケットをチェックポイントし、そのパケットの順序が正しくない場合のプロセスの一実施形態の代表的な図。 パケットがメモリに書き込まれるためにチェックポインティングキャッシュから取り出されたときに、グループ通信サーバがパケットをチェックポイントし、そのパケットの順序が正しい場合、そのパケットをメモリに更新するためのプロセスの一実施形態の代表的な図。
本明細書では、「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス通信デバイス」、「PTT通信デバイス」、「ハンドヘルドデバイス」、「モバイルデバイス」、および「ハンドセット」という用語は、互換的に使用される。「呼」および「通信」という用語も互換的に使用される。本明細書で使用する「アプリケーション」という用語は、実行可能および非実行可能ソフトウェアファイル、生データ、集合体データ、パッチ、ならびに他のコードセグメントを包含することを意図するものである。「例示的」という用語は、開示する要素または実施形態が一例にすぎないことを意味し、ユーザのいかなる選好をも示さない。さらに、複数の図を通して同様の数字は同様の要素を指し、本明細書において別段の規定がない限り、冠詞「a」および「the」は複数の参照を含む。
全体を通して同様の数字が同様の要素を表す図を参照すると、図1は、ワイヤレスネットワーク20上の他のワイヤレス通信デバイスとともに、PTTグループ12中の、ワイヤレス電話14、スマートページャ16および携帯情報端末(PDA)18などのワイヤレス通信デバイスのためのグループ識別データベースを更新し、それにアクセスするための、改善されたアーキテクチャを提供するためのシステム10の一実施形態を示す。システム10では、各ワイヤレス通信デバイス14、16、18は、ワイヤレス通信ネットワーク20上で1つまたは複数の他の複数のワイヤレス通信デバイスのターゲットセットと選択的に直接的にまたは間接的に通信することが可能である。たとえば、携帯電話14のターゲットセットは、通信グループ12中のすべてのデバイス、またはページャ16およびPDA18など、そのサブセットとすることができる。
典型的に、ワイヤレス通信デバイス(携帯電話14など)は、ワイヤレスネットワーク20上のサーバ側LAN30上に存在する、ここではグループ通信サーバ32として示されているグループ通信コンピュータデバイスに、そのワイヤレスデバイスがワイヤレスネットワーク20上に存在し、すなわちアクセス可能であることを通知する。グループ通信コンピュータデバイスは、ワイヤレスネットワーク20上のグループメンバーデバイスに関する情報を保つか、又はこの情報を第1のワイヤレス通信デバイスによって示されるターゲットワイヤレス通信デバイスのセットと共有するかのいずれかを行うことができ、あるいはサーバ側LAN30上に常駐するかまたはワイヤレスネットワーク20上でアクセス可能な他のコンピュータデバイスとこの情報を共有することもできる。グループ通信サーバ32は、ワイヤレスデバイスのグループ識別データを記憶する付属のまたはアクセス可能なグループ識別データベース34を有することができる。ここで、サーバ側LAN30上に存在するか、またはグループ通信サーバ32に電子的にアクセス可能であるかのいずれかである、キャリアサーバ36は、そのサーバがホスティングを担当するグループメンバー情報の更新のためにグループ識別情報をグループ通信サーバ32に送信する。サーバ側LAN30上、またはワイヤレスネットワーク20上、またはインターネット全体に常駐するコンピュータ構成要素の数は限定されないことを諒解されたい。
PTTボイス通信などのグループ通信は、通信ワイヤレス通信デバイス14、16、18とターゲットセットの1つまたは複数の他のワイヤレス通信デバイスとの間の半二重(half-duplex)チャネルを介して確立できる。また、グループ通信コンピュータデバイス32は、送信されたPTT通信を実際に受信しているターゲットセットのワイヤレス通信デバイスについての知識なしに、そのターゲットセットとの要求された直接通信をブリッジしようと試みることができる。あるいは、グループ通信コンピュータデバイス32は、ターゲットセット12への直接通信をブリッジすることができないことをPTT送信ワイヤレス通信デバイス14、16、18に通知することができる。さらに、グループ通信コンピュータデバイス32は、ここではグループ識別データの付属データベース34を有するものとして示されているが、他のコンピュータデバイスが、その上に常駐するグループ識別データを有し、本明細書で説明するすべての記憶機能を実行することができる。たとえば、グループ通信サーバ32は、他のサーバ制御通信グループから要求されるようにグループ情報を管理するための専用の地域グループ当局とすることができる。したがって、本システム10は、PTT環境における2つのサーバ間でデータを送信するためのスケーラブルなマルチスレッドフォールトトレラント(multi-threaded and fault-tolerant)アーキテクチャである。
図2は、PTTシステムにおけるセットグループメンバー(デバイス70、72、74、76)のワイヤレス通信デバイス間の通信を制御する一連のグループ通信コンピュータデバイス(グループ通信サーバ)32を有する、一般的なセルラー通信構成におけるワイヤレスネットワークの一実施形態の代表的な図である。本ワイヤレスネットワークは、例示的なものにすぎず、リモートモジュールが互いの間および中で、ならびに/あるいは、限定はしないが、ワイヤレスネットワークキャリアおよび/またはサーバを含むワイヤレスネットワーク20の構成要素の間および中で、無線で通信するための任意のシステムを含むことができる。一連のグループ通信サーバ32はグループ通信サーバLAN50に接続される。ワイヤレス通信デバイス14、16、18は、EvDOまたはCDMA2000規格の信号などのデータサービスオプションを使用して、(1つまたは複数の)グループ通信サーバ3にパケットデータセッションを要求することができる。
(1つまたは複数の)グループ通信サーバ32は、ここではキャリアネットワーク54上に常駐するものとして示されているPSDN52など、ワイヤレスサービスプロバイダのパケットデータサービスノード(PDSN)に接続される。各PSDN52は、パケット制御機能(PCF)62を介して基地局60の基地局コントローラ64とインターフェースすることができる。PCF62は一般に基地局60中に位置する。キャリアネットワーク54は、メッセージングサービスコントローラ(「MSC」)58に(一般にデータパケットの形態で)送信されるメッセージを制御する。キャリアネットワーク54は、ネットワーク、インターネットおよび/またはPOTS(「旧式電話システム(plain ordinary telephone system)」)によってMSC58と通信する。一般に、キャリアネットワーク54とMSC58との間のネットワークまたはインターネット接続はデータを転送し、POTSはボイス情報を転送する。MSC58は1つまたは複数の基地局60に接続できる。キャリアネットワークと同様の方法で、MSC58は、一般に、データ転送用のネットワークおよび/またはインターネットとボイス情報用のPOTSとの両方によってブランチツーソース(branch-to-source)(BTS)66に接続される。BTS66は、最終的に、ショートメッセージサービス(「SMS」)、または当技術分野で知られている他の無線方法によって、メッセージをセルラー電話70、72、74、76などのワイヤレスデバイスにワイヤレスでブロードキャストし、ワイヤレスデバイスからメッセージを受信する。また、本明細書で説明するように、キャリア境界および/またはPTTオペレータネットワーク境界はデータの共有を抑止または禁止しないことに留意されたい。
図3は、キャリアサーバ102から新しいグループデータを取り出し、グループ識別データベース108上で局所的に記憶されたグループ情報を更新する、地域グループ当局(RGA)100(または代わりにグループ通信サーバ)を示す代表的な図である。ここでは1つまたは複数のサーバであるRGA100は、グループ識別データベース108においてほぼ継続的に変化する第1のデータセットを選択的に制御するように構成されている。RGA100は、その上に常駐する、スレッド112、114、116などの複数のアプリケーションスレッドを含み、チェックポインティングスレッド118をも含む。RGA100は、チェックポインティングキャッシュ104とデータインデックステーブル106とを有し、グループ識別データベース108は、少なくとも、ここではグループ通信をセットアップするためのスレッドである、RGA100上に常駐するデータベースアクセススレッド38などのアプリケーションスレッドによってほぼ常にアクセスされる(とはいえ、必ずしも連続的にアクセスされるわけではない)。
キャリアサーバ102(またはサーバまたは他のコンピュータデバイス)は、新しい通信グループレコードの形態の新しいデータを、グループ識別データベース108(または他のデータセット)中に含めるためにRGA100に選択的に送信する。その新しいグループデータは個別の順序付けブロックからなり、データインデックステーブル106は、RGA100において新しいデータブロックが受信されたときに、そのデータブロックの順序付け情報を反映するように更新される。RGA100においてキャリアサーバ102から新しいデータブロックが受信されたときに、少なくともデータブロックの順序付け情報、および好ましくはデータブロックが、チェックポインティングキャッシュ104に入れられる。グループ識別データベース108中に含めるべき新しいデータのブロックごとに、チェックポインティングスレッド118は、データインデックステーブル106中のデータブロックの順序付け情報をチェックポインティングキャッシュ104中のデータブロックの順序付け情報と比較し、比較により、グループ識別データベース108中に含めるべきデータブロックの順序についての正しい順序付け情報が示されたときは、チェックポインティングスレッド118はそのデータブロックをグループ識別データベース108中に含める。さもなければ、比較により、グループ識別データベース108中に含めるべきデータブロックについての不正確な順序付け情報が示されたときは、チェックポインティングスレッド118は、そのデータブロックを廃棄し、チェックポインティングキャッシュ104からの正しい順序のデータブロックを待つ。
一実施形態では、チェックポインティングスレッド118はさらに、正しい順序付け情報を有するデータブロックをRGA100のグループ識別データベース108に入れる。RGA100は、要求スレッド110などによってキャリアサーバ102に新しいデータを選択的に要求するようにさらに構成できる。また、ここで、キャリアサーバ102は、キャリアサーバ102に新しいレコードを供給する2次オペレータデータベース120と接触しているものとして示されている。また、比較により、グループ識別データベース108中に含めるべきデータブロックについての不正確な順序付け情報が示されたとき、チェックポインティングスレッド118は、キャリアサーバ102に正しい順序のデータブロックをさらに要求することができる。
動作中、RGA100のメモリの更新は任意の順序で実行できるが、グループ識別データベース108が正しく最新であることを検証するために、最終更新バージョン番号の属性(またはデータ項目としては「LastUpdatedVersionNumber」)を追跡しなければならない。また、これは、その更新がタイムアウトした場合、更新プロセスが中断したところからの正確なレコード番号を求める要求をキャリアサーバ102に対して行うことができるようにするために必要である。
一実施形態では、アプリケーションスレッド112、114、116は、キャリアサーバ102からのデータパケットを待ち続け、パケットが着信すると、そのパケットの順序が正しいか否かにかかわらず、どのスレッドもそのパケットを処理することができる。パケット中にはグローバルカウンタが含まれており、すなわち、「LastUpdatedVersionNumber」、さらに(開始レコード番号、終了レコード番号)のような(キー、値)のペアをもつハッシュマップである。したがって、スレッドが「updateGroupDefReq」パケットを受信すると、すなわち新しいデータが入ってくると、チェックポインティングスレッド118は、最初にそのレコード番号について検査し、これを「LastUpdatedVersionNumber」と照合する。それが一致した場合、それは、このパケットの−LastUpdatedVersionNumber終了レコード番号を更新する。それが一致しなかった場合、それはハッシュテーブルにそれを追加する。このパケットの処理が終わった後、そのスレッドは、(何らかの他のスレッドがこのスレッドの前にそのパケットを更新した可能性があるので)そのスレッドが予想する次のパケットのクイックルックアップO(1)をハッシュテーブルにおいて行う。そのスレッドは、そのパケットの位置を特定した場合、ハッシュテーブルにおいて見つかったレコードの終了バージョン番号でLastUpdatedVersionNumberを更新し、そのレコードをハッシュテーブルから除去する。このようにして、データインデックステーブル106において、「LastUpdatedVersionNumber」の厳密な順序付けを維持している。
メモリ(またはグループ識別データベース108)への更新のチェックポインティングは、厳密に順序が正しくなければならず、RGA100のフェールオーバ(failover)後、そのプロセスはそのチェックポイントから最終更新バージョン番号を読み取り、次いで、キャリアサーバ102に残りのバージョン番号を要求することができる。一実施形態では、「mysql」データベースに記憶された2つのテーブルがあり、すなわち、キャリアサーバ102のレコードの現行バージョンで存在するすべてのデータを含んでいる、データインデックステーブル106Table−Cache、および「LastVersionNumberCheckpointed」のテーブルとすることができる、チェックポイントキャッシュ104である。チェックポインティングキャッシュ104(ここではテーブル)は、RGA100の一般的なメモリキャッシュを更新するために使用されるテーブルとは異なる。LastVersionNumberCheckpointed中のバージョン番号は、グループ識別データベース108においてチェックポインティングスレッド118によって順序正しくチェックポイントされた最後の動作を表し、その前のチェックポイントから読み取ることは、情報を失うことがなく、安全である。
チェックポインティングスレッド118は、チェックポインティングキュー104からメッセージを読み取るとき、最初に属性「LastVersionNumberCheckpointedinMemory」(これは、グループ識別データベース108中の「LastVersionNumberCheckpointed」と同じである)を見て、そのメッセージの順序が正しいのか、または正しくないのかを判断する。メッセージの順序が正しくない場合、チェックポインティングスレッド118は、開始バージョン番号および終了バージョン番号を、キーと値のペアとしてマップに記憶する。好ましくは、そのマップ中に追加のフィールドがあり、チェックポインティングスレッド118は、現在チェックポインティングを行っている場合は、そのフィールドを0に設定し、チェックポインティングを完了した場合は、そのフィールドを1に設定する。チェックポインティングスレッド118は(LastVersionNumberCheckpointedを見ることによって)最終的に正しい順序のパケットを得ると、そのパケットをチェックポイントし、次の開始バージョン番号についてデータインデックステーブル106を再帰的に見て、最後に、これをグループ識別データベース108のテーブル「LastVersionNumberCheckpointed」にチェックポイントする。したがって、レコード番号「LastVersionNurnberCheckpointed」を下回るあらゆるレコードが、グループ識別データベース108の場合のようにチェックポイントされる。
したがって、グループ識別データベース108の更新中のチェックポインティングのこのプロセスの一実施形態を図4のフローチャートに示す。ステップ130に示すように、入信データブロック(またはパケット)を受信し、次いで、ステップ132に示すように、データブロックをメモリキャッシュに入れ、それはワーカースレッド(112、114)によって行われる。ステップ134に示すように、(データインデックステーブル106などの)メモリマップ中のデータブロックのバージョンを更新し、次いで、ステップ134に示すように、グループ識別データベース108への更新のためにチェックポインティングスレッド118によってデータブロックを取り出す。
決定136に示すように、データブロックについてバージョン番号が正しいかどうかに関する判断を最初に行い、そうでなければ、ステップ140に示すように、データブロックを廃棄し、ステップ142に示すように、キャリアサーバ102に次のバージョン番号(または正しいバージョン)を要求し、本プロセスは、ステップ136において次のデータブロックを取り出すために戻る。さもなければ、決定138においてバージョン番号が正しかった場合、決定144で示すように、メモリにおいて更新すべきこのブロックについてチェックポインティングキャッシュ104中のチェックポイント番号が正しいかどうかに関する判断を行う。
決定144において、ブロックが書き込まれるためにすでに取り出されているか、またはブロックがなくなっている場合など、チェックポインティング番号が不正確だった場合、ステップ146に示すように、チェックポインティングスレッド118は、正しいブロックについてチェックポインティングキュー(または代わりにチェックポインティングキャッシュ)104を検査し、次いで、決定148において、正しいチェックポインティングについての判断を行う。正しくチェックポイントされたデータブロックの位置が特定された場合、ステップ150に示すように、データセット(または、ここでは、グループ識別データベース108)中のデータブロックを更新し、チェックポインティングキュー中のチェックポイントを更新し、本プロセスは、ステップ136において更新するための次のデータブロックを取り出すために戻る。さもなければ、決定148において、正しくチェックポイントされたデータブロックの位置が特定されなかった場合、ステップ142において、本プロセスは、キャリアサーバ102に所望のデータブロックの正しいバージョン番号を要求し、次いで、ステップ136において更新するための次のデータブロックを取り出すために戻る。
決定144において、正しくチェックポイントされたデータブロックが存在した場合、ステップ150に示すように、データブロックを更新し、ステップ152に示すように、チェックポイントキュー中のチェックポイントを更新し、本プロセスは、ステップ136において更新するための次のデータブロックを取り出すために戻る。新しいグループレコードがほとんど常時RGA100に着信していると、本プロセスは、たいていの場合、連続となるが、更新するためのデータブロックが存在しないときは終了し、新しいデータブロックを受信したときは再始動することができる。
図5は、グループ通信サーバが入信パケットを処理し、その入信パケットで常駐キャッシュを更新するためのプロセスのタイムラインの一実施形態の代表的な図である。ここでは、(データブロックまたはパケットなどの)入信メッセージを保持する保留スレッドキュー160があり、ワーカースレッド112、114がワーカースレッドキュー162を利用し、ワーカースレッドはグループキャッシュ164を更新し、そのスレッドがそのメッセージをメモリマップに入れることができるかどうかを判断し、そうであれば、その受信をキャリアサーバ102に通知し、メモリマップ166中の次の開始番号を探し、次いで、データインデックステーブル106などのメモリ168中の最終バージョン番号を更新した。これで、データインデックステーブル106は最新であるので、ワーカースレッドは、次いで、そのレコードを処理し、そのメッセージをチェックポインティングキュー170に追加する。
図6Aは、パケットがグループ識別データベース108に書き込まれるためにチェックポインティングキュー180から取り出されたときに、グループ通信サーバまたはRGAがメッセージをチェックポイントするためのプロセスの一実施形態の代表的な図である。ここで、チェックポインティングスレッド182が、チェックポインティングキュー180からメッセージ(またはデータブロック、パケットなど)をピックアップし、チェックポインティングスレッド182は、メモリ186から最終バージョン番号を得て、パケットの順序が正しいかどうか、すなわち最新であるかどうかを判断する。メッセージの順序が正しくない場合、ここではダーティビット値を0に設定することによって、チェックポインティングスレッド182が有するバージョン番号が不正確であることが示され、メモリマップ184が更新され、そのメッセージは廃棄される。本実施形態では、チェックポインティングスレッド182はまた、次いで、メッセージの不正確なバージョンがグループ識別データベース188に書き込まれていないことを検証するか、またはさもなければ、正しい更新のためにどんな新しいデータが必要とされるかを判断することができる。
図6Bは、図6Aにおける正しいバージョン一致に続くプロセスの一実施形態の代表的な図である。したがって、チェックポインティングスレッド182が、チェックポインティングキュー180からメッセージ(またはデータブロック、パケットなど)をピックアップした後、チェックポインティングスレッド182は、メモリ186から最終バージョン番号を得て、パケットの順序が正しいかどうかを判断し、次いで、チェックポイントスレッド182は、メモリ184中のアクティブマップ中の次の開始バージョン番号を判断し、次いで、メモリ186中の最終バージョン番号を更新し、(それは、ここではチェックポインティングキュー180をも更新することになる)次いで、実際のデータをグループ識別データベース188中に更新する。ある更新からグループ識別データベース188機能への単一のメモリ更新は、データインデックステーブル106およびチェックポインティングキュー(またはキャッシュ)104を同時に更新することができることを諒解されたい。
コンピュータプラットフォーム上で実行可能である方法に鑑みて、これらのステップは、それに応じて、コンピュータ可読媒体に常駐するプログラムによって実行でき、そのプログラムは、コンピュータプラットフォームを有する1つまたは複数のコンピュータデバイスに、本明細書で説明するそれらのステップを実行するように命令する。コンピュータ可読媒体は、サーバのメモリとすることができ、または接続可能なデータベース中にあってもよい。さらに、コンピュータ可読媒体は、磁気ディスクもしくはテープ、光ディスク、ハードディスク、フラッシュメモリ、または当技術分野で知られている他の記憶媒体など、ワイヤレス通信デバイスのコンピュータプラットフォーム上にロード可能な2次記憶媒体中にあってもよい。
1つまたは複数の例示的な実施形態では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装できる。ソフトウェアで実装する場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶するか、あるいはコンピュータ可読媒体を介して送信することができる。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形態の所望のプログラムコードを担持または記憶するために使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
本発明を特にその好ましい実施形態を参照しながら図示し説明したが、以下の特許請求の範囲に示す本発明の範囲を逸脱することなく形態および詳細の様々な変更を行うことができることが、当業者には理解されよう。さらに、本発明の要素は、単数形で説明または請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[C1]複数のアプリケーションスレッドによってアクセスされる大きな且つ実質的に継続して変化するデータセットを継続的に更新するためのシステムであって、
実質的に継続して変化する第1のデータセットを選択的に制御するように構成された第1のサーバであって、前記第1のサーバは、その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドを含み、前記第1のサーバは、チェックポインティングキャッシュとデータインデックステーブルとをさらに含み、前記第1のデータセットは、少なくとも前記第1のサーバ上に常駐する前記アプリケーションスレッドによってほぼ常にアクセスされる、第1のサーバと、
個別の順序付けブロックからなる新しいデータを、前記第1のデータセット中に含めるために第2のデータセットから前記第1のサーバに選択的に送信するように構成された第2のサーバと
を備え、
前記データインデックステーブルは、前記第2のデータセット内に保持されたデータブロックの順序付け情報をさらに含んでおり、前記データインデックステーブルは、前記第1のサーバにおいて前記第2のサーバから新しいデータブロックが受信されたときに更新され、
前記第1のサーバにおいて前記第2のサーバから新しいデータブロックが受信されたときに、少なくとも前記データブロックの前記順序付け情報が前記チェックポインティングキャッシュに入れられ、次いで、前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記チェックポインティングスレッドが、前記データインデックステーブル中の前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュ中の前記データブロックの前記順序付け情報と比較し、
比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、前記チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含め、
さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、前記チェックポインティングスレッドが、そのデータブロックを廃棄し、前記チェックポインティングキャッシュからの前記正しい順序の前記データブロックを待つ、システム。
[C2]前記チェックポインティングスレッドがさらに、正しい順序付け情報を有する前記データブロックを前記第1のサーバのメモリに入れる、C1に記載のシステム。
[C3]前記第1のサーバが、前記第2のサーバに新しいデータを選択的に要求するようにさらに構成された、C1に記載のシステム。
[C4]前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたとき、前記チェックポインティングスレッドが、前記第2のサーバに正しい順序の前記データブロックをさらに要求する、C1に記載のシステム。
[C5]前記第1のデータセットがワイヤレス通信デバイスの通信グループのためのグループ識別データベースである、C1に記載のシステム。
[C6]前記第1のサーバがワイヤレス通信デバイスの通信グループのためのグループ通信サーバである、C5に記載のシステム。
[C7]前記アプリケーションスレッドが、ワイヤレス通信デバイスの通信グループのためのグループ通信をセットアップするために前記第1のデータセットにアクセスする、C5に記載のシステム。
[C8]複数のアプリケーションスレッドによってアクセスされる大きな且つ実質的に継続して変化するデータセットを継続的に更新するための方法であって、
実質的に継続して変化する第1のデータセットを選択的に制御するように構成された第1のサーバにおいて個別の順序付けブロックからなる、第2のデータセットからの新しいデータを受信することであって、前記第1のサーバが、その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドを含み、前記第1のサーバが、チェックポインティングキャッシュとデータインデックステーブルとをさらに含み、前記第1のデータセットが、少なくとも前記第1のサーバ上に常駐する前記アプリケーションスレッドによって実質的に連続してアクセスされる、受信することと、
前記第1のサーバにおいて新しいデータブロックが受信されたときに前記データインデックステーブルを更新することであって、前記データインデックステーブルが、前記第2のデータセット内に保持されたデータブロックの順序付け情報を含んでいる、更新することと、
前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュに入れることと、
前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記チェックポインティングスレッドが、前記データインデックステーブル中の前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュ中の前記データブロックの前記順序付け情報と比較すること、と、
前記比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、前記チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含めること、と、
さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、前記チェックポインティングスレッドが、そのデータブロックを廃棄し、前記チェックポインティングキャッシュからの前記正しい順序の前記データブロックを待つこと、と
を備える方法。
[C9]前記チェックポインティングスレッドが、正しい順序付け情報を有する前記データブロックを前記第1のサーバのメモリに入れること、をさらに備える、C8に記載の方法。
[C10]前記第1のサーバが、第2のサーバにおける前記第2のデータセットに新しいデータを選択的に要求すること、をさらに備える、C8に記載の方法。
[C11]前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたとき、前記チェックポインティングスレッドが、前記第2のサーバに正しい順序の前記データブロックを要求すること、をさらに備える、C10に記載の方法。
[C12]前記第1のデータセットがワイヤレス通信デバイスの通信グループのためのグループ識別データベースであり、ワイヤレス通信デバイスの通信グループのためのグループ通信をセットアップするために1つまたは複数のアプリケーションスレッドによって前記第1のデータセットにアクセスすることをさらに備える、C8に記載の方法。
[C13]実質的に継続して更新され変化する常駐データセットを選択的に制御するように構成されたサーバであって、
その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドと、
チェックポインティングキャッシュと、
データインデックステーブルと、
少なくとも第1のサーバ上に常駐する前記アプリケーションスレッドによって実質的に連続してアクセスされ、個別の順序付けブロックからなる第2のデータセットからのデータブロックで少なくとも周期的に更新される、第1のデータセットと
を備え、
前記データインデックステーブルは、前記サーバにおいて前記第2のデータセットから新しいデータブロックが受信されたときに更新され、前記データインデックステーブルは、前記第2のデータセット内に保持されたデータブロックの順序付け情報を含んでおり、 前記サーバにおいて新しいデータブロックが受信されたときに、少なくとも前記データブロックの前記順序付け情報が前記チェックポインティングキャッシュに入れられ、次いで、前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記チェックポインティングスレッドが、前記データインデックステーブル中の前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュ中の前記データブロックの前記順序付け情報と比較し、
前記比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、前記チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含め、
さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、前記チェックポインティングスレッドが、そのデータブロックを廃棄し、前記チェックポインティングキャッシュからの前記正しい順序の前記データブロックを待つ
サーバ。
[C14]前記チェックポインティングスレッドがさらに、正しい順序付け情報を有する前記データブロックを前記サーバのメモリに入れる、C13に記載のサーバ。
[C15]前記サーバが、第2のサーバに新しいデータを選択的に要求するようにさらに構成された、C13に記載のサーバ。
[C16]前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたとき、前記チェックポインティングスレッドが、前記第2のサーバに正しい順序の前記データブロックをさらに要求する、C15に記載のサーバ。
[C17]前記第1のデータセットがワイヤレス通信デバイスの通信グループのためのグループ識別データベースである、C13に記載のサーバ。
[C18]前記第1のサーバがワイヤレス通信デバイスの通信グループのためのグループ通信サーバである、C13に記載のサーバ。
[C19]前記アプリケーションスレッドが、ワイヤレス通信デバイスの通信グループのためのグループ通信をセットアップするために前記第1のデータセットにアクセスする、C17に記載のサーバ。
[C20]実質的に継続して更新され変化するデータセットを選択的に制御するように構成されたサーバであって、
その上に常駐する複数の常駐アプリケーションスレッドを制御するための手段と、
チェックポインティングデータを記憶するための手段と、
データインデックスを記憶するための手段と、
少なくとも前記アプリケーションスレッドを制御するための前記手段によって実質的に常にアクセスされている第1のデータセットを記憶するための手段と、
前記第1のデータセットを第2のデータセットからのデータブロックで少なくとも周期的に更新するための手段と
を備え、
データインデックスを記憶するための前記手段はさらに、前記サーバにおいて新しいデータブロックが受信されたときに前記データインデックスを更新し、前記データインデックスが、前記第2のデータセット内に保持されたデータブロックの順序付け情報を含んでおり、
チェックポインティングデータを記憶するための前記手段がさらに、前記第2のデータセットからの前記データブロックの前記順序付け情報を記憶し、
データインデックスを記憶するための前記手段中の前記データブロックの前記順序付け情報を、チェックポインティングデータを記憶するための前記手段中の前記データブロックの前記順序付け情報と比較するための手段を備え、
前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、更新するための前記手段が、次いでそのデータブロックで前記第1のデータセットを更新し、
さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、更新するための前記手段が、次いでそのデータブロックを廃棄し、チェックポインティングデータを記憶するための前記手段からの前記正しい順序の前記データブロックを待つ、サーバ。

Claims (20)

  1. 複数のアプリケーションスレッドによってアクセスされる大きな且つ実質的に継続して変化するデータセットを継続的に更新するためのシステムであって、
    実質的に継続して変化する第1のデータセットを選択的に制御するように構成された第1のサーバであって、前記第1のサーバは、その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドを含み、前記第1のサーバは、チェックポインティングキャッシュとデータインデックステーブルとをさらに含み、前記第1のデータセットは、少なくとも前記第1のサーバ上に常駐する前記アプリケーションスレッドによってほぼ常にアクセスされる、第1のサーバと、
    個別の複数の順序付けブロックからなる新しいデータを、前記第1のデータセット中に含めるために第2のデータセットから前記第1のサーバに選択的に送信するように構成された第2のサーバと
    を備え、
    前記データインデックステーブルは、前記第2のデータセット内に保持された複数のデータブロックの順序についての順序付け情報をさらに含んでおり、前記データインデックステーブルは、前記第1のサーバにおいて前記第2のサーバから新しい複数のデータブロックが受信されたときに更新され、
    前記第1のサーバにおいて前記第2のサーバから新しい複数のデータブロックが受信されたときに、少なくとも前記新しい複数のデータブロックの順序についての前記順序付け情報が前記チェックポインティングキャッシュに入れられ、次いで、前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記チェックポインティングスレッドが、前記データインデックステーブル中の前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュ中の前記データブロックの前記順序付け情報と比較し、
    比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、前記チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含め、
    さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、前記チェックポインティングスレッドが、そのデータブロックを廃棄し、前記チェックポインティングキャッシュからの前記正しい順序の前記データブロックを待つ、システム。
  2. 前記チェックポインティングスレッドがさらに、正しい順序付け情報を有する前記データブロックを前記第1のサーバのメモリに入れる、請求項1に記載のシステム。
  3. 前記第1のサーバが、前記第2のサーバに新しいデータを選択的に要求するようにさらに構成された、請求項1に記載のシステム。
  4. 前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたとき、前記チェックポインティングスレッドが、前記第2のサーバに正しい順序の前記データブロックをさらに要求する、請求項1に記載のシステム。
  5. 前記第1のデータセットがワイヤレス通信デバイスの通信グループのためのグループ識別データベースである、請求項1に記載のシステム。
  6. 前記第1のサーバがワイヤレス通信デバイスの通信グループのためのグループ通信サーバである、請求項5に記載のシステム。
  7. 前記アプリケーションスレッドが、ワイヤレス通信デバイスの通信グループのためのグループ通信をセットアップするために前記第1のデータセットにアクセスする、請求項5に記載のシステム。
  8. 複数のアプリケーションスレッドによってアクセスされる大きな且つ実質的に継続して変化するデータセットを継続的に更新するための方法であって、
    実質的に継続して変化する第1のデータセットを選択的に制御するように構成された第1のサーバにおいて個別の複数の順序付けブロックからなる、第2のデータセットからの新しいデータを受信することであって、前記第1のサーバが、その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドを含み、前記第1のサーバが、チェックポインティングキャッシュとデータインデックステーブルとをさらに含み、前記第1のデータセットが、少なくとも前記第1のサーバ上に常駐する前記アプリケーションスレッドによって実質的に連続してアクセスされる、受信することと、
    前記第1のサーバにおいて新しい複数のデータブロックが受信されたときに前記データインデックステーブルを更新することであって、前記データインデックステーブルが、前記第2のデータセット内に保持された複数のデータブロックの順序についての順序付け情報を含んでいる、更新することと、
    前記新しい複数のデータブロックの順序についての前記順序付け情報を前記チェックポインティングキャッシュに入れることと、
    前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記チェックポインティングスレッドが、前記データインデックステーブル中の前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュ中の前記データブロックの前記順序付け情報と比較すること、と、
    前記比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、前記チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含めること、と、
    さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、前記チェックポインティングスレッドが、そのデータブロックを廃棄し、前記チェックポインティングキャッシュからの前記正しい順序の前記データブロックを待つこと、と
    を備える方法。
  9. 前記チェックポインティングスレッドが、正しい順序付け情報を有する前記データブロックを前記第1のサーバのメモリに入れること、をさらに備える、請求項8に記載の方法。
  10. 前記第1のサーバが、第2のサーバにおける前記第2のデータセットに新しいデータを選択的に要求すること、をさらに備える、請求項8に記載の方法。
  11. 前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたとき、前記チェックポインティングスレッドが、前記第2のサーバに正しい順序の前記データブロックを要求すること、をさらに備える、請求項10に記載の方法。
  12. 前記第1のデータセットがワイヤレス通信デバイスの通信グループのためのグループ識別データベースであり、ワイヤレス通信デバイスの通信グループのためのグループ通信をセットアップするために1つまたは複数のアプリケーションスレッドによって前記第1のデータセットにアクセスすることをさらに備える、請求項8に記載の方法。
  13. 実質的に継続して更新され変化する常駐データセットを選択的に制御するように構成されたサーバであって、
    その上に常駐する、チェックポインティングスレッドを含む複数のアプリケーションスレッドと、
    チェックポインティングキャッシュと、
    データインデックステーブルと、
    少なくとも第1のサーバ上に常駐する前記アプリケーションスレッドによって実質的に連続してアクセスされ、個別の複数の順序付けブロックからなる第2のデータセットからの複数のデータブロックで少なくとも周期的に更新される、第1のデータセットと
    を備え、
    前記データインデックステーブルは、前記サーバにおいて前記第2のデータセットから新しい複数のデータブロックが受信されたときに更新され、前記データインデックステーブルは、前記第2のデータセット内に保持された複数のデータブロックの順序についての順序付け情報を含んでおり、
    前記サーバにおいて新しい複数のデータブロックが受信されたときに、少なくとも前記新しい複数のデータブロックの順序についての前記順序付け情報が前記チェックポインティングキャッシュに入れられ、次いで、前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記チェックポインティングスレッドが、前記データインデックステーブル中の前記データブロックの前記順序付け情報を前記チェックポインティングキャッシュ中の前記データブロックの前記順序付け情報と比較し、
    前記比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、前記チェックポインティングスレッドがそのデータブロックを第1のデータセット中に含め、
    さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、前記チェックポインティングスレッドが、そのデータブロックを廃棄し、前記チェックポインティングキャッシュからの前記正しい順序の前記データブロックを待つ
    サーバ。
  14. 前記チェックポインティングスレッドがさらに、正しい順序付け情報を有する前記データブロックを前記サーバのメモリに入れる、請求項13に記載のサーバ。
  15. 前記サーバが、第2のサーバに新しいデータを選択的に要求するようにさらに構成された、請求項13に記載のサーバ。
  16. 前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたとき、前記チェックポインティングスレッドが、前記第2のサーバに正しい順序の前記データブロックをさらに要求する、請求項15に記載のサーバ。
  17. 前記第1のデータセットがワイヤレス通信デバイスの通信グループのためのグループ識別データベースである、請求項13に記載のサーバ。
  18. 前記第1のサーバがワイヤレス通信デバイスの通信グループのためのグループ通信サーバである、請求項13に記載のサーバ。
  19. 前記アプリケーションスレッドが、ワイヤレス通信デバイスの通信グループのためのグループ通信をセットアップするために前記第1のデータセットにアクセスする、請求項17に記載のサーバ。
  20. 実質的に継続して更新され変化するデータセットを選択的に制御するように構成されたサーバであって、
    その上に常駐する複数の常駐アプリケーションスレッドを制御するための手段と、
    チェックポインティングデータを記憶するための手段と、
    データインデックスを記憶するための手段と、
    少なくとも前記アプリケーションスレッドを制御するための前記手段によって実質的に常にアクセスされている第1のデータセットを記憶するための手段と、
    前記第1のデータセットを第2のデータセットからの複数のデータブロックで少なくとも周期的に更新するための手段と
    を備え、
    データインデックスを記憶するための前記手段はさらに、前記サーバにおいて新しい複数のデータブロックが受信されたときに前記データインデックスを更新し、前記データインデックスが、前記第2のデータセット内に保持された複数のデータブロックの順序についての順序付け情報を含んでおり、
    チェックポインティングデータを記憶するための前記手段がさらに、前記第2のデータセットからの前記新しい複数のデータブロックの順序についての前記順序付け情報を記憶し、
    データインデックスを記憶するための前記手段中の前記データブロックの前記順序付け情報を、チェックポインティングデータを記憶するための前記手段中の前記データブロックの前記順序付け情報と比較するための手段を備え、
    前記第1のデータセット中に含めるべき新しいデータのブロックごとに、前記比較により、前記第1のデータセット中に含めるべき前記データブロックの順序についての正しい順序付け情報が示されたときは、更新するための前記手段が、次いでそのデータブロックで前記第1のデータセットを更新し、
    さもなければ、前記比較により、前記第1のデータセット中に含めるべき前記データブロックについての不正確な順序付け情報が示されたときは、更新するための前記手段が、次いでそのデータブロックを廃棄し、チェックポインティングデータを記憶するための前記手段からの前記正しい順序の前記データブロックを待つ、サーバ。
JP2011514686A 2008-06-17 2009-06-09 ワイヤレス通信デバイスの間のグループ通信をサポートするための改善されたデータベースアーキテクチャ Expired - Fee Related JP5341183B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/140,981 US8655833B2 (en) 2008-06-17 2008-06-17 Database architecture for supporting group communications among wireless communication devices
US12/140,981 2008-06-17
PCT/US2009/046673 WO2009155162A2 (en) 2008-06-17 2009-06-09 Improved database architecture for supporting group communications among wireless communication devices

Publications (2)

Publication Number Publication Date
JP2011524718A JP2011524718A (ja) 2011-09-01
JP5341183B2 true JP5341183B2 (ja) 2013-11-13

Family

ID=41395824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011514686A Expired - Fee Related JP5341183B2 (ja) 2008-06-17 2009-06-09 ワイヤレス通信デバイスの間のグループ通信をサポートするための改善されたデータベースアーキテクチャ

Country Status (6)

Country Link
US (1) US8655833B2 (ja)
EP (1) EP2300907A2 (ja)
JP (1) JP5341183B2 (ja)
KR (1) KR101321664B1 (ja)
CN (1) CN102067641A (ja)
WO (1) WO2009155162A2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615678B1 (en) 2008-06-30 2013-12-24 Emc Corporation Auto-adapting multi-tier cache
US20110138177A1 (en) * 2009-12-04 2011-06-09 General Instrument Corporation Online public key infrastructure (pki) system
US9130928B2 (en) 2010-04-15 2015-09-08 Google Technology Holdings LLC Online secure device provisioning framework
JP5593841B2 (ja) * 2010-05-28 2014-09-24 富士通株式会社 データベース装置
BR112013029858A2 (pt) * 2011-05-26 2016-12-20 Google Inc fornecimento de informações contextuais e habilitação de comunicação em grupo para participantes em uma conversa
CN103714090B (zh) * 2012-10-09 2018-04-10 阿里巴巴集团控股有限公司 多索引数据库事务处理方法及数据库
WO2014097139A1 (en) * 2012-12-19 2014-06-26 Marvell World Trade Ltd. Selective layer-2 flushing in mobile communication terminals
JP6257746B2 (ja) * 2014-02-18 2018-01-10 京セラ株式会社 通信システム、サーバ装置及び通信方法
US10691661B2 (en) * 2015-06-03 2020-06-23 Xilinx, Inc. System and method for managing the storing of data
US10733167B2 (en) 2015-06-03 2020-08-04 Xilinx, Inc. System and method for capturing data to provide to a data analyser
CN110019179A (zh) * 2017-07-31 2019-07-16 北京嘀嘀无限科技发展有限公司 更新索引库的方法及装置、电子设备、存储介质
CN113099397B (zh) * 2021-05-08 2022-05-17 儒安物联科技集团有限公司 一种基于ptt控制的多分组语音传输方法、终端及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996013912A1 (en) * 1994-10-28 1996-05-09 Motorola Inc. Method of facilitating talkgroup communication in a peer-to-peer communication network
JP2904100B2 (ja) 1996-01-26 1999-06-14 日本電気株式会社 複数のデータベース間の整合方式
US6704737B1 (en) 1999-10-18 2004-03-09 Fisher-Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
GB2394816B (en) 1999-10-18 2004-08-11 Fisher Rosemount Systems Inc Accessing and updating a configuration database from distributed physical locations within a process control system
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US7418441B2 (en) * 2001-02-28 2008-08-26 International Business Machines Corporation Data loading from a remote data source record by record
JP4772197B2 (ja) 2001-03-23 2011-09-14 株式会社西部技研 ガス吸着濃縮装置
GB2374951B (en) * 2001-04-24 2005-06-15 Discreet Logic Inc Asynchronous database updates
JP2003244142A (ja) 2002-02-14 2003-08-29 Nec Corp Ipネットワークにおけるトラップ抜け検出方式及び検出方法
JP3856756B2 (ja) 2002-11-22 2006-12-13 株式会社エヌ・ティ・ティ・データ メッセージ到達順序保証方法、コンピュータ、メッセージ受信システム及びプログラム
US7065618B1 (en) * 2003-02-14 2006-06-20 Google Inc. Leasing scheme for data-modifying operations
US7308607B2 (en) * 2003-08-29 2007-12-11 Intel Corporation Periodic checkpointing in a redundantly multi-threaded architecture
KR100974106B1 (ko) * 2005-06-29 2010-08-04 인텔 코포레이션 캐싱 방법, 장치 및 시스템
US7620660B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Pre-image logging for database recovery
US7404041B2 (en) * 2006-02-10 2008-07-22 International Business Machines Corporation Low complexity speculative multithreading system based on unmodified microprocessor core
JP2008059114A (ja) 2006-08-30 2008-03-13 Fujitsu Ltd Snmpを利用した自動ネットワーク監視システム
EP2003556A1 (fr) 2007-05-25 2008-12-17 Axalto SA Procédé de traitement par un dispositif électronique portable de commandes applicatives issues de canaux physiques, dispositif et système correspondants
US8015362B2 (en) * 2008-02-15 2011-09-06 International Business Machines Corporation Method and system for handling cache coherency for self-modifying code
US7934080B2 (en) * 2008-05-28 2011-04-26 Oracle America, Inc. Aggressive store merging in a processor that supports checkpointing

Also Published As

Publication number Publication date
US20090313252A1 (en) 2009-12-17
EP2300907A2 (en) 2011-03-30
JP2011524718A (ja) 2011-09-01
WO2009155162A2 (en) 2009-12-23
KR101321664B1 (ko) 2013-10-23
CN102067641A (zh) 2011-05-18
WO2009155162A3 (en) 2010-02-25
KR20110020302A (ko) 2011-03-02
US8655833B2 (en) 2014-02-18

Similar Documents

Publication Publication Date Title
JP5341183B2 (ja) ワイヤレス通信デバイスの間のグループ通信をサポートするための改善されたデータベースアーキテクチャ
US8713098B1 (en) Method and system for migrating object update messages through synchronous data propagation
US8732261B2 (en) Apparatus and methods of a zero single point of failure load balancer
US8219084B2 (en) Method of roaming in broadcast service and system and terminal thereof
US20050203905A1 (en) Method of synchronizing data between server and user terminal using messenger service system and system using the same
US20090219901A1 (en) Wireless Content Aquisition for Mobile Electronic Devices
US20050278415A1 (en) Highly reliable and scalable architecture for data centers
US20100070963A1 (en) Mobile communication terminal and method of updating software thereof
US20070197202A1 (en) System and method for application auto-disable/restore enhancement
US11202213B2 (en) Device and method for distributing software update for communication devices
US20040054763A1 (en) Method for minimizing connection time for data synchronization
US9872276B2 (en) Scheduling of software package transmissions on a multimedia broadcast multicast service channel
KR20090016726A (ko) 통신 네트워크에서 통신 세션을 관리하는 방법
EP2862027B1 (en) Methods and apparatuses for processing time zone identifiers
US20140198702A1 (en) Method and system for enabling multicast distribution of mobile device update data
WO2016053984A1 (en) Methods and systems for regulating communications at a mobile communications device
KR20150087390A (ko) 광고 처리 방법 및 장치
CN111200622B (zh) 一种资源传输方法及装置、存储介质
CN106412092A (zh) 消息推送方法、装置及服务器
WO2018001063A1 (zh) 文件的发送方法、装置及系统
CN102387500B (zh) 一种业务密钥管理方法及系统
WO2017045454A1 (zh) 一种实现终端接入的方法、装置和系统
US10122540B2 (en) Device and method for managing multicast group in wireless network
TWI469578B (zh) Access control method, access control device and access control program
CN110049360B (zh) 跨平台内容控制方法、装置、终端、服务器及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121121

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130807

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees