JP6602355B2 - クラウドベースの分散永続性及びキャッシュデータモデル - Google Patents

クラウドベースの分散永続性及びキャッシュデータモデル Download PDF

Info

Publication number
JP6602355B2
JP6602355B2 JP2017183619A JP2017183619A JP6602355B2 JP 6602355 B2 JP6602355 B2 JP 6602355B2 JP 2017183619 A JP2017183619 A JP 2017183619A JP 2017183619 A JP2017183619 A JP 2017183619A JP 6602355 B2 JP6602355 B2 JP 6602355B2
Authority
JP
Japan
Prior art keywords
data
cache
adapter
client
file system
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
JP2017183619A
Other languages
English (en)
Other versions
JP2018022514A (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 JP2018022514A publication Critical patent/JP2018022514A/ja
Application granted granted Critical
Publication of JP6602355B2 publication Critical patent/JP6602355B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、構造化照会言語(SQL)アプリケーションインタフェースを備えたクラウドベースの分散永続性及びキャッシュデータモデルを使用して、クラウドコンピューティングの拡張可能性を向上させ待ち時間を低減するためのシステム及び方法を提供する。
クラウドコンピューティング環境は、ウェブ上でネットワークを介して、インフラストラクチャ、アプリケーション、及びソフトウェアを提供することができる。初期のウェブベースのインフラストラクチャは、メインフレーム又はサーバベースの関係データベースモデル及びn階層ネットワーククラスタリングアプリケーションサーバに基づいていた。ウェブが成長して対話型プラットフォームになったので、インフラストラクチャは、2つのフロント−データ層とアプリケーション層になった。アプリケーション層に対しては多数のソリューションが存在し、オフザシェルフ・ソリューションを使用することによって直線的な拡張可能性をかなり容易に達成することができ、アプリケーション層が、モデルビューコントローラ(MVC)アーキテクチャでビュー及びコントローラを提供する。データ層は本来、MVCアーキテクチャにおけるモデルを構成する。データ層は、関係データベース、オブジェクト指向データベース、及びキー/値ペアデータベースを含むデータベース管理システムの1つを使用して、アプリケーションに対する非構造化/構造化データを提供する。
関係データベース
関係データベースは、本技術分野で公知である。関係データベースは、構造化照会言語(SQL)を使用してアクセスすることができる構造化テーブル内のビット及びバイトの形式で様々なデータ型を格納する構造化データストアある。関係データベースの基点は、関係代数にさかのぼることができる。現在の関係データベース提供物の基本的な前提は、標準化されたインタフェースを介して何らかのハードウエア又はソフトウェアから独立してデータがアクセス可能である必要がある点にある。初期段階では、データ要素は、最小又はゼロ関係属性によって独立している。データベースエンジンがより強力になるにつれて、データ構造及び関係データグラフは、テーブルとデータ要素との間の関係が複雑になるように複雑になる。本来、関係データベースは、データベースにアクセスするアプリケーションのためのSQLインタフェースを備えた行及び列から構成されるテーブルの集まりである。関係データベースは、一般的なデータを管理する場合に、単純性、ロバスト性、融通性、性能、拡張可能性、及び互換性のベストミックスをこれまで提供してきた。データベースを供給するベンダーに関わらず、全ての関係データベースは、例外なくデータの構造化を要求する。関係データベース管理システム(RDBMS)の欠点は、手動介入及び維持を必要とするパーティショニング及び/又はシャーディングを使用しない限り、動的又は自動的にネットワーク上でシームレスに物理マシン境界全体にわたって分散できないということである。
この手動介入は、単一マシンの物理境界内又は外部データアレイ内に格納することができるデータ量の物理的制限を克服する必要がある。ウェブ2.0及びその大規模なデータスケールが出現する前は、上記のシナリオは、マルチコアコンピュータ処理ユニットを備えた単一マシンの計算能力が大部分の機構のデータ成長よりも速く成長したので絶えず機能することができたが、現在のアプリケーションに対するデータスケールは、毎日、指数的に成長し、上記の前提が当てはまらない。上記の欠点は、極めて高額な使用許諾及びサポート費用に加えて、エクサバイト及びゼッタバイトであるデータスケールを有する現在の及び将来のクラウドベースのアプリケーションに対して関係データベースを不都合なものにする。
関係/オブジェクト関係データベース
関係データベース設計は、1世代又は2世代ずつオブジェクト指向設計パラダイムに先行しているので、複雑なオブジェクトグラフに対する真のサポートが欠如している。情報の複雑性の進歩が、関係データベースに対する別の欠点を引き起こしている。関係データベースは、詳細には、共通の特性によってデータを組織化するために作られる。複雑な画像、数字、設計、及びマルチメディア製品は、簡単なカテゴリー化を不可能にし、最終的には非構造化データに変わる複雑なオブジェクトグラフをもたらし、オブジェクト−関係データベース管理システムと呼ばれるデータベースの新しい形式のための方法をもたらす。現在のシステムは、より複雑なアプリケーションを処理するよう設計されており、クラウドにおける拡張可能及び分散可能である能力を必要とする。オブジェクト関係データベースは、これらが拡張可能又はネットワーク分散可能でないので必要条件を満足させず、従って不適当である。
キー/値データベース
新しいウェブ2.0パラダイムは、ギガバイトとは対照的にテラバイト及びペタバイト単位で測定されるデータを処理する。関係データベースは40年間機能しているが、これらは、毎日のようにテラバイトの大きさで急成長するデータを処理するのに適切ではない。この欠点に対する主な理由は、関係データベースに対して、拡張可能性が、下層マシン又は分割マシンの計算能力に直接関係付けられるからである。コンピュータ処理のすべてのファセットにソーシャルネットワーキングの態様を追加したウェブ2.0の出現の前は、サーバ設計における進歩によって、データベースは拡張して、スアプリケーションのニーズにサービスを提供するようになっているが、ペタバイト及びより大きな大量データを処理するために、新しい形式のデータベース管理システムが定着しており、非関係データベース管理システム(非RDBMS)又はスキームレスデータベースとして公知のキー/値ストアを使用している。新しい形式のデータベース管理システムは、一般的にはキー/値ストアを使用する非関係及び/又はNoSQLデータベースと呼ばれる。実際には、標準的な名前がまだ存在せず、文書指向、インターネットフェーシング、属性指向、分散データベース(これも関係性とすることができるが)、シャードソートアレイ、分散ハッシュテーブル、又はキー/値データベースと呼ぶことができる。これらの名前の各々は、この新しい方式の特定の特徴を示すが、これらは、発明者らがキー/値データベースと呼ぶ、1つのテーマにおける全てのバリエーションである。以下を含む幾つかの選択肢が、この新しいキー/値方式によって現在の市場で利用可能である。
Cassandra(カサンドラ)は、オープンソース分散データベース管理システムである。これは、単一障害点がない高可用性サービスを提供すると同時に多くのコモディティサーバ全体に拡散される大量のデータを処理するよう設計されたApacheソフトウェア財団のトップレベルプロジェクトである。これは、最初にFacebookによって開発されそれらのインボックス検索特徴を強力にするNoSQLソリューションである。Cassandraは、Amazon−Dynamoのようなインフラストラクチャで実行されるBigTable(ビッグテーブル)データモデルである。
Cassandraは、結果整合性を有する構造化キー−値ストアを提供する。キーは、カラムファミリーにグループ分けされる複数の値にマップされる。カラムファミリーは、Cassandraデータベースが作成された時に固定されるが、いつでもファミリーにカラムを追加することができる。更に、カラムは、指定されたキーだけに追加され、異なるキーは、いずれの所与のファミリーにおいてもカラムの異なる数を有することができる。
各キーに対するカラムファミリーからの値が一緒に格納され、Cassandraをカラム指向のDBMSと行指向のストアの間のハイブリッドにする。
一般的には、CouchDBと呼ばれるApache CouchDBは、Erlangプログラミング言語で書かれたフリーオープンソース文書指向データベースである。これは、ローカル複製のために設計されたNoSQL製品であり、広範囲のデバイスに沿って垂直に拡張する。CouchDBは、営利事業CouchOne and Cloudantによってサポートされる。
ハイパーテーブルは、GoogLeのBigTable(ビッグテーブル)の設計での公開に端を発するオープンソースデータベースである。プロジェクトは、大規模データインテンシブタスクを解決したエンジニアの経験に基づく。ハイパーテーブルは、ApacheHadoopDFS、グラスタFS、又はコスモスファイルシステム(KFS)のような分散ファイルシステム(DFS)の上部で実行される。これはほとんど全てが、性能を求めてC++で書かれている。
MongoDBは、C++プログラミング言語で書かれたオープンソース、拡張可能、高性能、スキーマフリー、文書指向データベースである。このデータベースは、JSONのような文書の集まりを管理するので文書指向である。従って、データを複雑な階層にネストすることができ照会可能及び索引可能であるので、多くのアプリケーションがより自然な方法でデータをモデル化することができる。MongoDBの開発は10genによって2007年10月に始まった。最初の公開は、2009年2月であった。
TokyoCabinetは、データベースを管理するためのルーチンのライブラリである。データベースは、各々がキーと値のペアである記録を包含する単純なデータファイルである。すべてのキー及び値は、可変長のシリアルバイトである。バイナリデータと文字列の両方を、キー及び値として使用することができる。データテーブルの概念もデータ型も存在しない。記録は、ハッシュテーブル、B+ツリー、又は固定長アレイに組織化される。TokyoCabinetは、GDBM及びQDBMの後継者として開発されてきた。
Voldemortは、関係データベースではなく、ACIDプロパティを満足させながら属性関係を満足させようと試みることはせず、オブジェクトリファレンスグラフをトランスペアレントにマップしようとするオブジェクトデータベースでもなく、文書指向のような新しいアブストラクションを導入することもない。これは、基本的には大きな分散型の永久耐障害性ハッシュテーブルである。アクティブ記録又はハイバーネイトのようなO/Rマッパーを使用することができるアプリケーションでは、Voldemortが、水平拡張可能性及びより高い可用性を提供するが、利便性を大いに犠牲にする。インターネットタイプの拡張可能性の圧力下の大きなアプリケーションでは、システムは、幾つかの機能的に区分されたサービス又はアプリケーションプログラミングインタフェースから構成される可能性が高く、これは、水平に区分することができる記憶システムを使用して複数のデータセンタ間で記憶資源を管理することができる。このスペースにおけるアプリケーションでは、データの全てが何らかの単一データベースでは利用できないので、任意のインデータベース結合は既に不可能である。典型的なパターンは、ハッシュテーブル意味論を何らかの方法で要求するキャッシング層を導入することである。
Drizzleは、キー/値ストアが解決しようとする問題に対する対抗策と考えることができる。Drizzleは、MySQL(6.0)関係データベースの派生として始まった。最後の数カ月に渡って、この開発者は、非コア特徴のホスト(ビュー、トリガ、準備された命令文、格納された手順、問合せキャッシュ、ACL、及び幾つかのデータ型を含む)を、スリムで単純な高速データベースシステムを作成する目的で取り除いてきた。Drizzleは、関係データを格納することができ、目的は、16コア又はそれ以上を備えたシステムで実行されるウェブ及びクラウドベースのアプリケーションに合った準関係データベースプラットフォームを構築することである。
複雑なオブジェクトグラフを有するアプリケーションに関する前述のような分散型キー/値データベースの最大の欠点は、応答時間における待ち時間及び何らかのオフザシェルフ汎用関係データベースにおいて当然のことと考える機能の欠如である。現在のソーシャルネットワーキングアプリケーションの全てではないが大部分は、極めて複雑なオブジェクトグラフを必要とする。
BigTableは、Googleファイルシステム、ChubbyLockService、SSTable、及び幾つかの他のGoogleプログラムに構築された、圧縮されて高性能かつ専用のデータベースシステムであり、これは現在ではGoogleの外部では分散又は使用されていないが、Googleは、Googleアプリケーションエンジンの一部としてそれへのアクセスを勧めている。
HBaseは、GoogleのBigTableの後でモデル化されたオープンソースの非関係分散データベースであり、Java(登録商標)で書かれている。これは、Apacheソフトウェア財団のHadoopプロジェクトの一部として開発され、Hadoop分散ファイルシステムのトップで実行され、HadoopのためのBigTableのような機能を提供する。これは、大量のスパースデータを記憶する耐障害性の方法を提供する。
データベースメモリキャッシュ
動的ウェブの出現により、データアクセス時間の待ち時間がウェブページの性能に影響を与えるようになってきた。読み取り及び書込みの両方に対するデータアクセス時間における待ち時間は、永続的データを保持するハードドライブのアクセス時間に直線的に関係している。情報を得るためにディスクにアクセスする障害を取り除くために、コンピュータ開発者は、同じデータの頻繁な読み取りのためにサーバにメモリの一部分(RAM)を確保する方法として、共有メモリ/キャッシュの概念を考え出した。読み取りのためのデータをキャッシュしておくことで、頻繁なディスクアクセスの必要性を無くし、従ってデータ待ち時間が短縮される。時間が進むにつれて、キャッシュはよりエキゾチックに成長する。様々な利用可能な選択肢には、Google Cache;CSQLキャッシュ‐MySQL、Postgres及びOracleからのキャッシュテーブル;Memcached‐問合せのキャッシュ結果セット;TimesTen−キャッシュORACLEテーブル;及びSafePeak−フルデータの正確性のための自動化キャッシュエビクションによるSQLサーバからの問合せ及び手順の結果セットの自動化キャッシングを含む。Memcachedは、フリー及びオープンソース、高性能、分散メモリオブジェクトキャッシングシステムであり、性質上汎用的であるが、データベース負荷を軽減することによって動的ウェブアプリケーションをスピードアップする場合に使用することが意図されている。Memchachedは、データベース呼出し、アプリケーションプログラミングインタフェース呼出し、又はページレンダリングの結果からの任意データ(ストリング、オブジェクト)の小さなチャンクに対するメモリ内キー−値ストアである。
構造化データとアプリケーション(キャッシュと共に)の間のインタラクションに対する全ての3つのメインストリームアプローチは賛否両論である。本発明は、クラウドにおいて完全に機能的に関係的であり完全に分散可能なデータストアを単一のパッケージで提示することによって、新しいクラウドベースのパラダイムに対するソリューションを提供する。
本発明は、クラウドコンピューティングのためのデータベース階層における強化された拡張可能性及び低減された待ち時間のためのシステム及び方法を提供する。これらは、関係、又は非関係(構造化、又は非構造化)データベースフォーマットのいずれかにおいてデータを格納することができるキャッシュアダプタを含むシステムを備え、キャッシュアダプタは、データの永続性のためのデータキャッシュのバックエンドにおける分散ファイルシステム及び分散ファイルシステムからのデータ同期のためのクライアントデータベース(キャッシュ)のフロントエンド上のクライアントキャッシュと通信する。
本発明の更なる理解を可能にするために用いられ本明細書の一部に組み入れられてこれを構成する添付の図面は、本発明の原理を説明するための記述と共に本発明の例示的な実施形態を示す。
本発明の実施形態におけるキャッシュアダプタとクライアントとの間のデータの流れを示す図である。 本発明の実施形態におけるキャッシュアダプタを利用する分散ファイルシステムとクライアントとの間のデータの流れ及び同期化を示す図である。 本発明の実施形態におけるキャッシュアダプタを利用する分散ファイルシステムとクライアントとの間のデータの流れ及び同期化を示す図である。 本発明の実施形態を使用して行われるクライアント要求に続くデータの流れを示す流れ図である。 本発明の実施形態を使用してユーザペルソナを設定するためのクライアントログインに続くデータの流れを示す流れ図である。 本発明の実施形態におけるデータセルを示す図である。 本発明の実施形態における1つ又はそれ以上のバーチカルアプリケーションへのユーザ加入を示す図である。 クライアントがデータベースの単一のインスタンスと通信する本発明の特定の実施形態のアーキテクチャを示す図である。 本発明の実施形態によるクライアントマシンデータベースとのデータセルにおけるユーザデータとのバックエンド同期を示す図である。 データベースの複数のインスタンスが並行してクライアントと通信する本発明の特定の実施形態のアーキテクチャを示す図である。 データベースの複数のインスタンスが並行してクライアントと通信し各クライアントがその固有のデータベースインスタンスを有する本発明の特定の実施形態のアーキテクチャを示す図である。 キャッシュアダプタがデータ永続性目的のためにデータベースと対話することができ、次にデータベースが分散ファイルシステムにデータを格納することになる、本発明の特定の実施形態のアーキテクチャを示す図である。
本発明は、本明細書で説明される多様な特定の方法、複合物、材料、製造技術、使用、及び応用に限定されない。本明細書で使用される用語は、特定の実施形態を説明する目的のためだけであり、本発明の範囲を限定するものではない。単数形「a」、「an」及び「the」は、本文脈が他に明確に指示しない限り複数形の参照を含む。従って、「ある要素」への参照は、1つ又はそれ以上の要素への参照であり、当業者に公知のその等価物を含む。同様に、別の実施例では、「あるステップ」又は「ある手段」への参照は、1つ又はそれ以上のステップ又は手段への参照であり、サブステップ及び従属する手段を含むことができる。使用される全ての接続詞は、可能な限り最も包含的な意味に理解すべきである。従って「又は」という語は、本文脈が他に明確に必要としない限り論理的な「排他的な又は」ではなく論理的な「又は」の定義を有するものとして理解する必要がある。説明される構造は、このような構造の機能的な等価物を示すものと理解すべきである。近似を表現すると解釈できる用語は、本文脈が他の明確に指示しない限りそのように理解すべきである。
他に定義されない限り、本明細書で使用される全ての技術的及び科学的用語は、本発明が属する当業者が一般に理解するのと同じ意味を有する。好ましい方法、技術、デバイス、及び材料が説明されるが、本明細書で説明されるものに類似又は等価の何らかの方法、技術、デバイス、又は材料は、本発明の実施又は検証に使用することができる。本明細書で説明される構造は、このような構造の機能的な等価物を示すものと理解すべきである。
特定される全ての特許及び他の公報は、例えば、本発明に関して使用することができる当該公報で説明される方法論を説明及び開示する目的で、引用により本明細書に組み入れられる。これらの公報は、本出願の出願日の前のその開示のためだけに提供される。ここで、従来の発明又は何らかの他の理由によるそのような開示に対して本発明者が先行しないものであると自認すると解釈されるべきではない。
本明細書で使用する用語「自動的」及びその変形形態は、処理又は動作が実行される場合に有形な人間の入力なしで行われる何らかの処理又は動作を示す。しかしながら、入力が処理又は動作の実行前に受け取られた場合、処理又は動作の実行が有形又は無形な人間の入力を使用したとしても、処理又は動作は自動的とすることができる。このような入力が処理又は動作が実行される方法に影響を与える場合、人間の入力は有形と見なされる。処理又は動作の実行に同意する人間の入力は「有形」と見なされない。
本明細書で使用する用語「コンピュータ可読媒体」は、実行のためにプロセッサに命令を提供することに関係する何らかの有形記憶装置を示す。このような媒体は、限定されるものではないが、不揮発性媒体、揮発性媒体、及び送信媒体を含む多くの形式を取ることができる。不揮発性媒体は、例えば、NVRAM、又は磁気又は光学ディスクを含む。揮発性媒体は、主メモリのような動的メモリを含む。コンピュータ可読媒体の一般的な形式には、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、又は任意の他の磁気媒体、磁気光学媒体、CD−ROM、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理的媒体、RAM、PROM、及びEPROM、FLASH−EPROM、メモリカードのような固体媒体、任意の他のメモリチップ又はカートリッジ、又はコンピュータが読み取ることができる任意の他の媒体が含まれる。コンピュータ可読媒体がデータベースとして構成される場合、データベースは、関係、階層、オブジェクト指向、及び/又は同様のもののような任意の種類のデータベースとすることができることを理解されたい。従って、本発明は、本発明のソフトウェア実施構成が格納される有形記憶媒体及び従来技術で認められている等価物及び後継媒体を含むと考えられる。
本明細書で使用する用語「決定する」、「計算する」、及び「コンピュータ計算する」、及びその変形形態は同義的に使用され、方法論、処理、数学演算、又は技術の任意の種類を含む。
本明細書で使用する用語「モジュール」は、何らかの公知の又は後々に開発されたハードウエア、ソフトウェア、ファームウエア、人工的知性、ファジー論理、又はその要素に関連付けられる機能を実行できるハードウエアとソフトウェアの組み合わせを示す。また、本発明は例示的な実施形態に関して説明されるが、本発明の個々の態様を別々に請求できることを理解されたい。
本明細書で使用する用語「〜と通信する」は、何らかのシステム、ハードウエア、ソフトウェア、プロトコル、又はフォーマットを使用して情報又はデータを交換するために電気信号を使用する何らかの結合、接続、又は対話を示す。
本明細書で使用する用語「仮想」又は「仮想化」は、物理的ディスクドライブのような一部の他の構成要素の論理的表現を示す。換言すると、「仮想」構成要素は、「仮想」構成要素が表わす物理的構成要素とは実際には同じではないが、コンピュータシステムの他の構成要素、ハードウエア、ソフトウェアなどにとっては同じに見える。
本明細書で使用する用語「ディスク」は、コンピュータシステムのためのデータを格納することができる記憶ディスク又は他のメモリを示す。
本明細書で使用する用語「クラウド」又は「クラウドコンピューティング」は、インターネットに基づくコンピューティングを示し、これによって共有される資源、ソフトウェア、及び情報が、公共施設のようにオンデマンドでコンピュータ及び他のデバイスに提供される。
クラウドコンピューティングは、広義では、コンピュータシステムの標準的な構成要素の仮想化である。これは、通常は単一のコンピュータ内に含まれるデータ及びソフトウェアの両方を用い、これら、並びに他の離れた構成要素に広げる。例えば、クライアント又はユーザは、情報が1つの位置に格納され、問合せが別の位置のソフトウェアによって処理され、クライアントが更に他の位置にいる場合に、プログラムを通じて情報を取得するためにサーバ又はデータベースにアクセスすることができる。実際には、ソフトウェアは、複数の本質的に異なる物理的位置にデータ記憶装置を維持しながら単一のサーバとして動作する仮想サーバを作成することができる。データにアクセスするために使用されるソフトウェア機構に関わらず、問合せ処理は、通常は、データ永続性のための分散ファイルシステムと共に関係データベースインスタンスとして動作するキャッシュを含む。キャッシュは、クライアントの要求に応じてより速く分散ファイルシステムにデータを格納し提供できるようにする方式で分散ファイルシステムからのデータを格納又は検索するデータ記憶構成要素である。キャッシュに格納されるデータは、システムのあらゆる場所に格納されたデータの複製とすること、又は前のクライアント要求又は問合せに応じて生成されたデータとすることができる。キャッシュ内のデータの全てが、最終的には分散ファイルシステム及びクライアントキャッシュに同期される。データセルの位置を保持するキャッシュされたデータ記憶装置マップディレクトリが、通常はキャッシュ内のデータセルと通信するための手段として使用される。
本発明の様々な実施形態は、データにアクセス及びこれを格納する場合の速度を向上させ、同時に強化された拡張可能性を提供するよう設計されている。1つの実施形態では、キャッシュアダプタが、関係データベーステーブルフォーマットにデータを格納することができるデータセルを含み、キャッシュアダプタは、分散ファイルシステム及びクライアントキャッシュと通信する。別の実施形態では、キャッシュアダプタが、関係データベーステーブルフォーマットにデータを格納することができる複数のデータベースインスタンスのデータセルを含み、キャッシュアダプタは、分散ファイルシステム及びクライアントキャッシュと通信する。キャッシュアダプタは、キャッシュを組み入れクライアントマシンに存在するフロントエンドクライアントデータベースと共に分散ファイルシステムへのバックエンド接続を維持することができると考えられる。代替えの実施形態では、キャッシュアダプタが、既存のキャッシュと、分散ファイルシステムへの仲介物としての関係データベース又は他の種類のデータベースとの間で通信することができる。キャッシュアダプタは、小さなデータセルから構成することができる。キャッシュアダプタは、キャッシュ内のデータセルと分散ファイルシステムとの間でデータを移動させることができる。
本発明の実施形態では、キャッシュアダプタが、クラウド分散ファイルシステムの前に存在する。このキャッシュアダプタは、CloudCacheを作成し、データベースにアクセスするための全ての外部クライアントのためのインタフェースを提供する。このCloudCacheは、構成ファイル内に記述される全ての利用可能な指定システム全体に広がる連続スペースである。キャッシュアダプタは、データアクセス要求をクラウド内に格納された適当なデータセルに送る。これらのデータセルは、クラウド分散ファイルシステムに加えてクラウドに分散されたキャッシュ内にデータを永久に存続させることができる。更に、キャッシュアダプタは、必要に応じて、キャッシュを通過することなく直接クラウド分散ファイルシステムに存在するデータへのアクセスを可能にすることができる。これは、大きなバルク負荷又は大きなデータ検索を実現し、単一の要求で複数のデータセルにアクセスする必要性を軽減することができる。クライアントからのデータの要求に応じて、キャッシュアダプタは最初に、データがキャッシュ内で利用可能かどうかチェックし、キャッシュが要求されたデータを本当に有する場合、システムは、キャッシュからデータを提供する。しかし、データがキャッシュ内に存在しない場合、システムは自動的に分散ファイルシステムからデータを検索し、データをクライアントに送信する前にこれをキャッシュし、これによってデータ要求を満足させる。この処理は、図3のデータ流れ図と共に以下に示す。
特定の実施形態では、クラウド分散キャッシュが、このキャッシュアダプタにインタフェース接続するアプリケーションのためのSQLインタフェースを備えた関係データベースとして機能する。例えば図11に示すように、キャッシュは、データ永続性のためにクラウドにおける完全に分散可能なファイルシステムによってバックエンドでサポートすることができる。このセットアップを使用することで、データベースは、ハードウエアの直線的な関数として成長し、潜在的に無限のスケーリングを提供する。エクサバイトを超える領域では、最終的な閾値を存在させることができる。本発明のキャッシュアダプタは、分散ファイルシステムに統合することができる。このアダプタは、構造化関係データフォーマットでキャッシュからのデータを完全に取り入れることができ、次にリアルタイムでの動的な記憶のためにこれを分散ファイルシステム又は中間データベースに変換し、戻り経路で分散ファイルシステム又は中間データベースからのデータをキャッシュ準拠フォーマットに変換する。
アダプタフレームワーク及びデータフロー
例えば図1に示すように、全ての外部クライアントは、ウェブサーバを介してキャッシュアダプタにインタフェースするが、これによりクライアントのためのゲートウエイは、標準的なセキュアhttpsインタフェースを使用してデータベースと通信することが容易になる。キャッシュアダプタ100はウェブサーバ110と双方向に通信し、ウェブサーバ110はクライアントと双方向に通信する。クライアントは、移動デバイス固有のアプリケーションクライアント120又はHTML5アプリケーションクライアント121とすることができる。プレゼンテーション層130、131及びクライアントデータベース140、141はクライアント120、121内に包含される。
キャッシュアダプタは、標準的なJavaデータベース接続性(JDBC)インタフェースを使用してデータセル及びファイルシステムに内部でインタフェースすることができる。個別のデータセルの各々は、クラウド分散ファイルシステムに永続的にデータを存続させることができる。キャッシュに存在するデータは、関係データベーステーブルフォーマットに類似の構造化形式になる。しかしながら、クラウド分散ファイルシステムに存在するデータは、非構造化フォーマットである。アダプタ処理フレームワークが、機能呼出し、読み取り/書込みの要件に応じて、1つのフォーマットから他のフォーマットにデータを変換するよう要求される。
通例、キャッシュ(代替えとして、複数のマシンにわたる1つの連続ユニットとしてのキャッシュを示す際のCloudCache)は、メモリの確保された部分である。図2に示すように、キャッシュアダプタ200は、自らの使用のために、連続スペース、CloudCacheとしてマシンのネットワーク化クラスタ(物理的及び/又は仮想的)における1つ又はそれ以上のノード260、261、262の個々のRAMの指定された部分を確保する。処理は、さらに2つの接続、つまりCloudCacheから下の分散ファイルシステムへの1つの接続、及びCloudCacheから軽量アプリケーションサーバ250及びウェブサーバ210を介したクラウドへのもう1つの接続を設定する。キャッシュアダプタは、データセルにデータを格納するためにこの指定されたメモリスペースを使用する。各データセルは、そのデータサイズの点でフレキシブルであるが、インフラストラクチャ全体の維持及び一貫した機能を容易にするために、構成ファイルで指定された上限値が存在する。外部アプリケーションは、標準的なJDBCインタフェース又は標準的なhttpsインタフェースの拡張であるインタフェースを使用して、キャッシュアダプタにインタフェースすることができる。外部アプリケーションは、データセルと直接通信することはできない。データセルは、処理の不可欠の部分である。
キャッシュアダプタは、関係データベーステーブルフォーマットでキャッシュ内のデータセルにデータを格納する。データがキャッシュに存在し分散ファイルシステムを含む標準的なオペレーティングシステムファイルシステムには存在しないという意味で、これは従来の関係データベース管理システム(RDBMS)とは異なる。キャッシュに存在するデータは永続性であり揮発性ではなく、クラウド分散ファイルシステムは永続性のために使用される。従来のRDBMSは、ディスクファイルシステムにデータを格納し、データベースによっては、データのある部分を短待ち時間でキャッシュすることができるが、2つの媒体のいずれも単一のエンティティとしてクラウドに完全に分散されない。シャーディング(区分化)が類似の機能を提供できるが、シームレスではなく、従って大幅なカスタマイゼーションを必要とし他の制限を有する。
データセルは、単一の又は複数のユーザのためのユーザデータを包含する。個別のデータセルの各々は、複数のデータテーブルを包含する。これらのテーブルは単一の又は複数のユーザのためのデータを包含する。キャッシュアダプタは、ユーザのデータスペース要件を自動的に割り出し、ユーザのためのデータを検索するか又はユーザによって入力された新しいデータを格納する。
キャッシュアダプタが外部分散ファイルシステムと通信し、図1及び2に示すようにクライアントキャッシュからのデータを分散ファイルシステムに、分散ファイルシステムからのデータをクライアントデータベースに変換する。
確定的な説明は実施形態のみを提供し、本発明の範囲、可用性、又は構成を制限するものではない。むしろ、確定的な説明は、実施形態を実施するための実施可能な説明を当業者に提供するであろう。様々な変更が請求項の精神及び範囲から逸脱することなく要素の機能及び構成に対して可能であることを理解されたい。例えば、本発明は、ソーシャルネットワーキング、クライアント/顧客管理及びサービス、金融及びビジネスサービス、ヘルスケア記録管理、トランザクション管理、販売、マーケティング、分析、セキュリティ警告、インテリジェンス収集、及びコラボレーションに関する応用分野を見つけるために考えられた。
実施例−クラウドベースのソーシャルネットワーキングインフラストラクチャのためのアーキテクチャシステム及び構成要素
本発明の特定の実施形態では、キャッシュアダプタは、性能及び拡張可能性の両方を向上させることによって、既存のソーシャルネットワーキングサイトアーキテクチャを改善する。Facebook(登録商標)、Twitter(登録商標)、LinkedIn(登録商標)等のソーシャルネットワーキングサイトは、コンタクトリレーションシップ管理(CRM)スペクトルのサブセットの一部の形式にすぎない。これらのネットワーキングサイトによって、その許可されたユーザ(個人/エンティティ)はパーソナルプロファイルを作成し、そのソーシャルリレーションシップを構築し、互いに対話する際にそれを拡張及び育成することができる。このCRMスペクトルのサブセット内の多くのサイトは、n階層化ウェブインフラストラクチャと対話するクライアントとしてインターネットブラウザを利用する。本発明は、インタラクティブ及びマッシブ拡張可能である堅牢なアーキテクチャによってサポートされる、次世代ソーシャルネットワーキングサイトを提供するために利用することができる。本発明のシステムは、バックエンドインフラストラクチャによってサポートされるクライアントから構成される。
現在の市場に存在する全ての主な提供物は、クライアントが対話するインターネットブラウザを使用する。クライアントは、このインターネットブラウザを介して新しい情報を検索又は提示する。ブラウザは要求をアプリケーションサーバに転送し、アプリケーションサーバがこれらの着信要求を処理する。処理の一部として、アプリケーション層がバックエンドでデータベースと対話する。このような多くのサイトは、バックエンドで関係データベースによってサポートされ、データの流れのボトルネックを生じる。関係データベースアプローチは、(1)アーキテクチャは連続したインターネット接続を必要とする非同期http要求及び応答システムに基づき、インターネット接続なしでは、ブラウザは応答を停止及び中止する(2)応答時間が一般的に遅い(3)追加の特徴は、アプリケーション層及びバックエンドデータベースの両方での同時変更を必要とする場合に困難なタスクである(4)ソフトウェアップグレードリリースサイクルは困難であり時間を消費する、及び(5)インフラストラクチャの維持に費用がかかるという以下の欠点を含む。
本発明は、ワークフロー及びデータフローに関して現在の提供物とは大幅に異なる特徴を提供するバックエンドと共に、現在存在する標準的なブラウザベースのクライアントから構成されるインフラストラクチャを提供することができる。本発明のクライアントは、HTML5クライアント又は元のオペレーティングシステム、特にApple社のiOS(登録商標)及びGoogle社のAndroid(登録商標)に固有の専用アプリケーションのいずれかとして、プレゼンテーション層のためのアプリケーションコードから構成することができる。クライアントがPC用のHTML5クライアント又はプロプラエタリ移動デバイスOS用の専用アプリケーションか否かに関わらず、クライアントは、常にバックエンドデータベースに直接アクセスすることはない。クライアントは、クライアントマシンに存在するローカルデータベース上のユーザデータの小さなフットプリントにほとんどの時間アクセスする。もし要求された時は、クライアントは、関係データベースとは対照的にクラウドに全てが存在するバックエンドからの付加的なデータをシームレスに検索する。更に、バックエンドは、データをクライアントに送信することに加えて、何らかのクライアントの介入なしにクライアントデータベースをバックエンドからの最新のアップデートデータに同期させ、付加的な又は更なるクライアント対話なしにデータの同期を続ける。
別の差別化は、現在の提供物が、MVC(モデルビューコントローラ)オブジェクト設計パターンでサーバ側にコンパイルされたHTMLページを配信する場合に存在する。MVCパターンモデルでは、コントローラは、クライアントからの要求の全てを受信して処理するモジュールである。次に、ビューであるプレゼンテーション層はコンパイルされ、次にブラウザにHTMLストリームを配信し、HTMLストリームがクライアントブラウザウェブサーバによって表示される。
バックエンドでは、本発明のシステムは、Apacheのようなインターネット/クラウドフェイシング工業規格ウェブサーバを開始する。
アプリケーションサーバ
古いモデルのn階層ウェブアーキテクチャでは、中間層は、WebSphere、Oracle等の専用アプリケーションサーバから構成される。ここで、本発明のアーキテクチャにおける本格的なJ2EEアプリケーションサーバ構成要素に対する必要性は存在しない。軽量アプリケーションサーバは、コントローラ/ディスパッチャとして作動し、キャッシュアダプタ内に組み込まれる。この主な理由は、本処理の実施形態において、アプリケーションコードが存在する場所にデータを転送するのとは対照的に、データが存在する場所にアプリケーションコードが送られるためである。クライアントは小さなフットプリントデータベースを有し、このデータベースは、バックエンドデータベースに常にそれ自体を同期させる。クライアントは、ユーザにデータを提示するためにローカルデータベースにアクセスする。プレゼンテーション層コードは移動デバイスクライアントのクライアントに存在するが、HTML5クライアントでは、プレゼンテーション層コードはHTML5にある。
データベースサーバ
図2に示すように、データベース層は、分散ファイルシステム270の上部に位置するキャッシュアダプタ200から構成される。上述したように、別々のアプリケーション及びデータ層を備えた真のn階層アーキテクチャとは対照的に、軽量アプリケーションサーバ250がキャッシュアダプタ200の一部として組み入れられるという意味で現在設計されているいずれとも非常に異なる。本発明のシステムには2つのデータキャッシュ構成要素が存在する。すなわち、1つはクライアントマシンに固有のクライアントデータベース(キャッシュ)240、241としてクライアントに存在し、他のデータキャッシュは、例えば、クラウドに存在するクラスタ化ノードに存在するノード260、261、262から成るCloudCacheである。CloudCacheは、分散ファイルシステム270の上部のノード、つまり図2に示すようにクラウドに存在するクラスタ化ノードに位置する。
本発明のシステムは、2つの主な構成要素、すなわち軽量ウェブサーバクラスタ210と、本発明によるデータベースサーバとして作動するキャッシュアダプタ200(軽量アプリケーションサーバ250を組み込んだ)とを有することができる。図3はシステムのデータフローを示す。クライアントは、2つの種類の要求をバックエンドに提示することができる。要求は、格納されたデータの検索又は新しいデータの提示(記憶)のいずれかとすることができる。
本発明によるデータ検索要求は簡単である。クライアント300は、クライアントマシンのローカルデータベースで利用可能である可能性のあるデータ310を要求し、利用可能である場合、要求はクライアントマシンを離れず、クライアントマシンの境界内で満たされる。データがクライアントマシンキャッシュに存在しないインスタンスでは、要求がバックエンドに提示される。要求されたデータがクライアントデータベースに存在しない場合、着信要求は、キャッシュアダプタの記憶マップ325によってインターセプトされ、要求されたデータの位置を要求に提供する。データ位置は、データがキャッシュにない場合はキャッシュされたデータのポインタであり、次にデータ(アーカイブデータ)が生の非構造化フォーマット360で分散ファイルシステムから検索される。分散ファイルシステムからのデータが最初に検索され、次にキャッシュ互換性フォーマット355に変換され最後にクライアントキャッシュに送信される。要求されたデータの受信に応じて、クライアントはクライアントのためのデータを表示する。
データ提出要求は、単純なクライアントデータ要求に比べて幾つかの付加的なステップを有する。まず、データは最初にCache Adapter(固有のCloudCache)に送信され、次にWriteCacheAdapter330によってバックエンドデータキャッシュフォーマットに変換される。バックエンドデータキャッシュ340は常にクライアントアクセスのために最新のデータを格納するが、この段階では、データは一時的でありクライアントは見ることができない。データは更に、分散ファイルフォーマット350に変換されセーブされる。ファイルシステム360におけるデータの記憶が成功すると、キャッシュ同期アダプタ370は格納されたデータを検索してこれをバックエンドキャッシュ380に送信する。ビットチェックを行ってデータがキャッシュにセーブされた一時データと一致することを確認し、チェックが成功すると、データロックが解放され、データがクライアントに利用可能になる。
上記に加えて、バックエンドシステムは、定期的に最新のバックエンドデータキャッシュによってクライアントデータキャッシュを常にアップデートする。この持続する双方向同期は、図2の太い点線で示されている。
関係データベースでは、複数のユーザのためのデータが、データベースの所与のインスタンスの単一の又は区分化された複数のテーブルに並べられる。現在のn階層アーキテクチャでは、クライアント要求がウェブサーバに、次にアプリケーションサーバに送信される。アプリケーションサーバは要求を分析し、データベースから特定のデータを要求し、要求を処理し、次に応答をクライアントに送信する。本発明の特定の実施形態のアーキテクチャでは、クライアント要求は、ウェブサーバに、次に軽量アプリケーションサーバ(LAS)に送信される。LASは要求を分析するが、データベースからデータを要求する代わりに、要求を、データが何らかのアプリケーションコードと一緒に存在するクラスタノードに送信する。
分散ファイルシステムは、永続的データのための主媒体である。全てのバルクデータに関する問合せが具体的に分散ファイルシステムに送られ、キャッシュに触れることはない。本来、キャッシュへの全てのデータに関するユーザ問合せは、クライアントインタフェースからの単一のユーザのためのデータに対してである。データセルのデータは、分散ファイルシステムクラスタ内で発生する全てのデータ処理の最終生成物であり、キャッシュからのデータは、クライアント表示及び対話目的のためにほとんどが使用される。
本発明の特定の実施形態のアーキテクチャの利点は、データを検索しアプリケーションサーバに戻す代わりに、要求がキャッシュアダプタに送られて、適当なデータが存在するクラスタの適切なノードにキャッシュアダプタが要求を送信する。
図7に示すように、単一のデータベースインスタンスにデータを格納しそこから検索することができる。複数のマシンにデータベースを区分することができるが、インスタンスは常に単数であり、要求のフローは、単一の関係データベース管理システムインスタンスを通過しなくてはならない。これは、潜在的な単一障害点である。図9に示すように、本発明の特定の実施形態では、並行してクライアントと通信することができるデータベースの複数のインスタンスを備えたバックエンドインフラストラクチャを存在させることがでる。各クライアントは、スループット及び直線拡張可能性を強化できる固有のデータベースインスタンスを持つことができるように、この設計を拡張することができる。
クライアントの数が増えてデータのサイズが指数的に大きくなり始めると、モデルは、データフロー及びロッキングを管理する単一のマシンの入力/出力制限のために、一部のポイントで維持できなくなる。インスタンスが単一のマシンに存在するので、データベースを収容するマシンのパワーに関わらず、モデルは、非常に大きなデータセットを必要として結果的に著しいコンピュータ処理ユニットチャーンニングパワーを必要とするアプリケーションからの極めて大きなデータ負荷に耐えることができない。シャーディング及びデータアーカイブのような幾つかの革新的なソリューションが存在しているが、そのほとんどすべてが、手動の介入を必要とし依然として単一障害点になる傾向がある。
システム障害の場合、障害回復に利用可能な幾つかの洗練されたソリューションが存在するが、この処理は実施するのに多くの時間がかかり、長期の機能停止に起因して大規模な影響が生じることがある。障害回復時間を短縮するためにデータ複製を使用できるが、これは付加的なコストを伴い、アーカイブテーブルに対してアクティブテーブルに存在するデータを危険にさらす。
図4に示すように、ログインした全てのユーザは、ログイン要求をシステムバックエンドに送信する。システムは、クラスタの最小ビジーノードのCloudCacheにユーザのための固有ペルソナオブジェクトを作成する。次に、システムは、ユーザが加入している各バーチカルに対するバーティカルオブジェクトグラフの空シェルを更に作成する。ユーザログイン要求の2つの種類、すなわち1つは最初のログイン及びもう1つは次のログインが存在する。
最初のログインは、ユーザプロファイルオブジェクトをインスタンス化する段階及び次に同じものを読み込む段階を必要とする。最初のログイン又は初期ユーザ登録では、ユーザペルソナオブジェクト作成の次に、ユーザが登録の時間に加入することができる各バーチカルに対するデータスキームの空シェルが作成される。次のログインで、ユーザは、付加的なバーチカルに登録する、又は必要であればこれらを切り離すことができる。バーチカルを所与のプロファイルに添付する段階を実現することができる。データセルのデータの全ては、永久記憶のために分散ファイルシステムに存続する。
次のログインに各々では、ログイン要求の受信に応じて、バックエンドは、ユーザペルソナオブジェクトを作成し、ユーザ固有のデータを検索し、ユーザペルソナオブジェクトにユーザオブジェクトに関連付けられる固有のデータを読み込む。更に、バックエンドは、ユーザが加入している全てのバーチカルの空シェルを作成し、次にバーティカルシェルに分散ファイルシステムからのデータを読み込む。
バックエンドは、分散ファイルシステムからCloudCacheにデータを検索することができる。更に、バックエンドは、データセルからのキャッシュされたデータをクライアントマシンに存在するクライアントデータベースに同期させることができる。
提案されるシステムにおける全てのユーザは、ユーザログインIDとの1対1関係を作成する固有のキーによって識別される。固有のキーは、最初にドメイン名を逆にすること(GoogleによるBigTableでのキー識別子作成に類似)、及び登録時及び最初のログイン時にユーザが作成した固有のユーザIDで終わることによって生成される。
ユーザIDを有するユーザ、UserID0に関して、キーは、次の、com:cloudcomponents:dbinstance:userid0のように見える。
バックエンドでは、本システムは、全てのユーザのための固有のデータセルを作成する。データセルは、キャッシュアダプタが全てのユーザのために確保するキャッシュの一部分である。各データセルは、ユーザに関連付けられる固有のユーザIDによって識別される。
図5は、ユーザのデータセルのグラフ図である。データセル内には、各々が対応するバーチカルに対するユーザデータを保持する埋め込みデータセルのグループがある。これらの埋め込みセルの各セルは、特定の産業バーチカル(industry vertical)に関する特定の固有の構造を有する。
従来の関係データベースでは、データは、データベースの単一のインスタンスのテーブルに並べられる。所与のテーブルは、複数のエンティティに対するデータを包含する。この場合のエンティティの単純な例は、ユーザになる。各ユーザは、固有のユーザIDによって識別される。所与のエンティティでは、そのエンティティに関係付けられるデータを、データベースインスタンス全体にわたって複数のテーブルで拡散させることができる。数百のテーブルが存在することがあるが、これは、常にオリジナルエンティティIDからキーオフ(key off)する。これによって、関係データベースの単一のテーブルは、複数のユーザのためのデータを格納することができる。従来の関係データベースを使用してデータを管理するために、インスタンスが存在し、人間が複数のマシンにおけるデータの単純な区分化及び/又は複数のマシンにおけるデータのシャーディングを使用している。これは手動の介入を必要とし、モデルは、マシンの入力/出力制限、及び地理的に多様なユーザに関する1つの中心位置のデータ位置に起因して、クラウドベース環境において維持することができない。
キャッシュアダプタは、インスタンスを自動的に作成するための能力を有する。キャッシュアダプタは、単一の連続キャッシュ(複数のマシンの確保された部分)としてCloudCacheを作成することによって始動する。キャッシュアダプタは、構成ファイル内の「最大サイズ」パラメータに基づくそのサイズに関する上限値を有するインスタンスを作成する。インスタンスの作成後、キャッシュアダプタは、アクティブ(ログインした)ユーザデータをインスタンスに読み込む段階を開始する。インスタンスがその最大サイズに達してそれ以上データを格納できない場合、キャッシュアダプタは新しいインスタンスを作成する。キャッシュアダプタが作成できるインスタンスの数に制限値はない。記憶マップは、これらのインスタンスに格納された全てのインスタンス及びユーザIDのディレクトリリストを維持する。キャッシュに格納されたデータは、クライアントの消費(クライアントのレポート)に対して準備ができている処理データである。
従来の単一のインスタンスとは対照的に、データベースの複数のインスタンスを作成することによって、本システムは、複数のインスタンス(ノード/マシン)全体に作業負荷を拡散することができる。クライアント要求が適切なデータベースインスタンスに送られると、通信は、クライアント及びインスタンスに限定される。これは、ドメイン:データベースインスタンス:インスタンス内の単純な固有のユーザIDとは異なるユーザIDから成るユーザIDを構築することによって実現される。更に、全てのユーザに対する全てのインスタンス内に、ユーザが登録された全てのバーチカルに関するデータを保持するためのオブジェクトグラフが存在する。
関係データベースでは、同じインスタンス内に全てのテーブルの作成を試みることができるが、テーブルの数及びデータのサイズが大きくなるにつれて、モデルは性能劣化に起因して維持できなくなる。障害の主な理由は、物理的システムの入力/出力制限又はデータベースが区分化される場合の複数のシステムの構成及びコラボレーションの制限である。
本発明の特定の実施形態のアーキテクチャは、データベースの複数のインスタンスを作成することによって入力/出力ボトルネックを取り除く。複数のインスタンスを作成することで、データの一貫性の点で全体としてシステムの複雑さが増すが、これは、StorageMapと呼ばれるスマートディレクトリ構造を実施することによって解決される。StorageMapは、起動又は停止される全てのインスタンスを追跡する。全てのインスタンスのリストに加えて、StorageMapは、各インスタンス内の各ユーザIDに基づくデータ分散を追跡する。図7はStorageMap及びデータセルコンテンツを示している。
更に、所与のユーザIDのためのデータセルは、全てのデータベースインスタンスにわたってそのユーザプロファイルの唯一のインスタンスだけを有する。そのユーザプロファイルに関係付けられる全てのトランザクションが列に並べられ、その単一のインスタンス内で連続して処理される。
登録又は登録後処理の一部として、ユーザは、システムに1つ又はそれ以上の産業バーチカルアプリケーションに加入することができる。各バーチカルは、産業バーチカルセグメントに関係付けられる属性を固有に取り込むデータレイアウトを有する。ユーザによる加入時のこのレイアウトは、固有のユーザプロファイルに添付される。ユーザがそのペルソナに添付できるバーチカルの数に制限はない。
図6は、異なる観点からのインスタンスの断面図を示している。ユーザペルソナは、ユーザのアイデンティティを反映する中心オブジェクトである。様々な産業バーチカル区分を、所与のユーザペルソナに添付することができる。バーチカルは、ソーシャルネットワーキング、医療記録、コンタクト関係管理、個人及び企業媒体記憶装置、個人及び企業文書アーカイブ、金融サービス、電子ゲーム、及びコラボレーションなどの文脈に関するデータを包含することができる。
図8に示すように、バックエンドは、データセルのユーザデータをクライアントマシンデータベースに同期させる。各ログイン時に、ユーザはバックエンドへのクレデンシャルとしてパスワードと共にユーザIDを提示する。ユーザIDを使用して、バックエンドはファイルシステムからデータを検索して、データセルの形式でそのユーザに対するユーザペルソナオブジェクトに対するキャッシュエントリを作成し、クライアントマシンとのデータ同期リンクを設定する。全てのクライアントマシンが以前にシステムに登録されている限り、ユーザは複数のマシンから同じユーザIDでログインすることができる。複数のマシンは、同じユーザIDでシステムにアクセスすることができ、これらのマシンがリンクされると、そのデータベースは、データセルからの最新ユーザデータと同期される。
データセルのデータは、バックエンド分散ファイルシステムに永久に存続する。クライアントからの要求を受信すると、バックエンドStorageMapは、データ要求をそのクライアントのデータを含む適切なデータベースインスタンスに送る。データセルがユーザIDに基づいて位置付けられると、接続(通信チャネル)が、その特定のユーザIDに対応するデータセルインスタンスに設定される。また、バックエンドは、応答と共にセキュリティトークンを設定して送信する。次の全ての要求には、このセキュリティトークンが添付される。セキュリティトークンが無効であるか(タイムアウト又は他の理由で)又は紛失している場合、次にバックエンドは、システムに再ログインするようクライアントに要求する。
本発明の特定の実施形態のアーキテクチャは、ソーシャルネットワーキングアプリケーション、例えばFacebookに適用することができる。2008年には、サイトがMySQL専用の1,800サーバ及びメムキャッシュ専用に805サーバを有したと推測される。しかしながら、複数のMySQLがシャードして、メムキャッシュインスタンスは単一のサーバで仮想的に実行することができるので、インフラストラクチャを実行する物理サーバの数が少なくなる。しかし最近では、4000を超えるMySQLサーバがありメムキャッシュデータ専用の類似の相応の数があるといううわさがある。そのマシンの数は、2008年からの実質的な増加を表わしており、成長予測が予定通りに進んだ場合、将来的には維持できない数が推定される。
MySQL、さらに言えば、あらゆる関係データベースは、クラウドに必要なデータサイズ及びスループットによって設計されていない。あらゆるRDBMSの主な欠点も、ACIDトランザクションコンプライアンス、バッファプール、又はメモリスワップスペースのロックに関係する過負荷と共に、シングルインスタンスであるということである。複数のインスタンスの作成を試みることができるが、アプリケーションは、インスタンス全体にわたるデータ分配及び複数のインスタンスの間の多相コミットによって設計する必要がある。これは、コミット障害、障害回復などの場合にロールバックのような多数のハードルを生じる。本発明の実施形態は、単一のRDBMSコーディネータを介するのではなくクライアントと直接通信することができる複数のインスタンスを含む。
本発明の特定の実施形態のアーキテクチャでは、互いに独立して作用するデータベースの複数のインスタンスが存在する。これは、主データベースの外側でデータ分散及び位置ディレクトリ(StorageMapに維持される)を最初に取り、単一のデータセル内に単一のユーザのためのデータを閉じ込めるデータセルを作成することによって実現される。発明者らのソリューションによって、並行して実行される複数のインスタンス全体にわたって作業負荷を分散することができる。前記の実行モードに対する要件は、データが全てのデータ書込みのための専用データセルに送られるよう各単一のユーザに要求することだけである。
ユーザデータを包含する従来の関係データベースの一般テーブルを以下に表す。これは、所与のポイントでのユーザテーブルのスナップショットである。例えば、このテーブルは、テーブルの同じ数の行によって表される500万を超えるユーザIDを包含することができる。
ユーザID ファーストネーム ラストネーム ジップコード
1 ジョン スミス 10170
2 フランク クラーク 10017



600000000 マーク ベイカー 22150
あらゆるユーザが少なくとも5人の友達を有する場合、ユーザ間のこの関係を明示するテーブル、「友情テーブル」が、実施例によって作成される。
ユーザID 友達_ユーザ_ID
1 6
1 5
1 4
1 3
1 2
2 1
2 9
2 8
2 7
2 6

500232657 1
従って、このテーブルは、全てのユーザに対する5人の友達に対応するために500,000,000×5行の最小値を必要とする。
ユーザIDが特定のジップコードに移動することを計画しており、訪問中にジップコードのユーザの友達の誰かのカレンダー上で自由時間を有するかどうか見つけたい場合、その種類の問合せは、3つのテーブル間の統合をもたらす必要がある。索引を使用することによって問合せを最適化できるが、これはほんの開始点であり、オブジェクトグラフがより複雑になるにつれて、システムはプログラムするのが難しくなる。
本発明の特定の実施形態のアーキテクチャでは、友情テーブルの実施例より100倍大きなサイズ又はこれを超える匹敵するテーブルが存在できるが、これらのテーブルは、分散ファイルシステムに存在し、データ処理のためだけに使用される。単一のユーザのための全てのユーザに関係付けられるデータが常に単一のデータセルに存在するので、ユーザ問合せは、これらのテーブルに決して問合せない。ユーザジップコード問合せの実施例では、本発明の特定の実施形態のアーキテクチャにおいて、本出願は、そのユーザのためのデータセルに要求を送信し、StorageMapを使用してそのユーザのためのデータセルを位置付ける。データセルにおいて一度、本出願は、友達の数に等しい行の数を有する友情テーブルをスキャンする(500,000,000×5行を備えたテーブルに問い合わせるより処理しやすいスキャン)。データの区分化と組み合わせたインデクシング、ロッキングは、相対的に負荷を軽減できるが、所与のマシンの物理的制限がボトルネックを生じる。このようなモデルは、多くの資源の割り当て(複数のノード/マシン)があっても経済的に耐えられない。要求されるジップコードにおけるユーザに対する友達の行をフィルタ処理すると、本出願は次に、友達(フィルタ処理されたユーザ)のカレンダーオブジェクトと対話することができる。このシナリオは、従来の関係データベースセットアップにおける数十億の行をスキャンするより効率的であり高速である。本発明の特定の実施形態のアーキテクチャは、クライアント要求のために設定される作業データのサイズを低減する。これは、区分にまたがる大きなテーブルの結合を実行する極めて大きな数の行又は問合せを備えたテーブルとは対照的に、単一のデータセルとの着信要求作業を有することによって実現される。
複数のインスタンスが、作業負荷の分散を提供する。データセルが、作業負荷の分岐を更に提供する。適切に設計されたマルチスレッディッドアプリケーションはこの特徴を活用しマルチフォールドスループットを提供することができる。データセルは、データベースコントローラからのいずれの助けもなしにクライアントに同期し、これによってバックエンドと複数のクライアント間のマルチチャネルセキュア通信を同時に可能にする。分散ファイルシステムは、障害回復のための堅牢なバックエンドを提供する。メモリのデータセルを作成及び破壊するためのキャッシュアダプタの能力によって、本システムは短待ち時間で非常に応答性が良いものとなる。
本明細書で説明した本発明の実施形態は、単に例示的なものである。当業者であれば、本開示の範囲内であることが意図される、本明細書に具体的に説明した実施形態の変形例を理解することができる。同様に、本発明は、請求項によってのみ制限される。本発明は、請求項及びその均等物の範囲内に入る場合にこれらの変形例を網羅する。
100 キャッシュアダプタ
110 ウェブサーバ
120 移動デバイス固有のアプリケーションクライアント
121 HTML5アプリケーションクライアント
130 プレゼンテーション層
131 プレゼンテーション層
140 クライアントデータベース
141 クライアントデータベース

Claims (20)

  1. 分散ファイルシステムを形成するマシンのネットワーク化クラスタの少なくとも1つのノードにメモリの指定された部分を連続スペースとして確保するよう構成されたキャッシュアダプタを備える、分散キャッシュデータシステムであって、
    前記メモリの指定された部分は、キャッシュを形成し、
    前記メモリの指定された部分は、データを格納するよう構成されたデータセルを含み、 前記キャッシュアダプタは、前記データ及び分散ファイルシステムにインタフェースするよう構成され、
    前記キャッシュアダプタは、前記データにアクセスするために外部クライアントのためのインタフェースを提供するよう構成され、
    前記キャッシュアダプタは、ウェブサーバを介してクライアントに通信するよう構成され、
    前記キャッシュアダプタは、データアクセス要求を記データセルのうちの適当なデータセルに送るよう構成され
    前記キャッシュアダプタは、前記キャッシュアダプタ内に組み込まれた軽量アプリケーションサーバを介してデータアクセス要求を処理するように構成される、
    分散キャッシュデータシステム。
  2. 前記キャッシュアダプタは、前記データを関係データベーステーブルフォーマットで格納するよう構成されている、請求項1に記載のシステム。
  3. 前記キャッシュアダプタは、ジャバデータベース接続性インタフェースを使用して前記データ及び前記分散ファイルシステムにインタフェースするよう構成されている、請求項1に記載のシステム。
  4. 前記キャッシュアダプタは、必要に応じて、前記キャッシュを通過することなく前記分散ファイルシステムに存在する前記データに直接アクセスするよう構成されている、請求項1に記載のシステム。
  5. 前記キャッシュアダプタは、前記クライアントからのデータ要求に応じて、前記データが前記キャッシュ内で利用可能かどうか最初にチェックするよう構成されており、前記キャッシュが前記要求されたデータを有する場合、前記分散キャッシュデータシステムは前記キャッシュから前記データを送出し、
    前記データが前記キャッシュ内に存在しない場合、前記分散キャッシュデータシステムは、前記分散ファイルシステムから前記データを検索し、次に前記要求されたデータを前記クライアントに直接送出するか又は前記データを前記クライアントに送信する前に前記データをキャッシュする、請求項1に記載のシステム。
  6. 前記キャッシュアダプタは、構造化関係データフォーマットで前記キャッシュから前記データを取り出し、次に前記データを分散ファイルシステム及び中間データベースの1つに変換するよう構成されており、
    前記アダプタは、散ファイルシステム、又は前記中間データベースからの前記データをキャッシュ準拠フォーマットに変換するよう更に構成されている、請求項1に記載のシステム。
  7. 前記クライアントは、移動マシン固有のアプリケーション及びHTMLアプリケーションクライアントの1つを含む、請求項1に記載のシステム。
  8. 前記クライアントは、プレゼンテーション層、クライアントデータベース、及び前記キャッシュアダプタへの永続ソケット接続を含む、請求項7に記載のシステム。
  9. 前記キャッシュは、分散ファイルシステムの上部の少なくとも1つのノードに位置する、請求項1に記載のシステム。
  10. 前記キャッシュアダプタは、前記キャッシュアダプタにインタフェースするアプリケーションのためのSQLインタフェースを備えた関係データベースとして機能する、各ユーザのためのキャッシュの固有のインスタンスを作成する、請求項1に記載のシステム。
  11. 前記キャッシュアダプタは、前記分散ファイルシステムの前に存在する、請求項1に記載のシステム。
  12. 前記キャッシュは、構成ファイル内連続スペースである、請求項1に記載のシステム。
  13. キャッシュデータを分散させるための方法であって、
    キャッシュアダプタを用いて、分散ファイルシステムを形成するマシンのネットワーク化クラスタの少なくとも1つのノードにメモリの指定された部分を連続スペースとして確保する段階と、
    データを格納するよう構成されたデータセルを含む前記メモリの指定された部分を用いてキャッシュを形成する段階と、
    ータキャッシュ及び分散ファイルシステムを前記キャッシュアダプタにインタフェースする段階と、
    前記キャッシュアダプタを用いて前記データにアクセスするために外部クライアントインタフェースる段階と、
    前記キャッシュアダプタを用いてウェブサーバを介してクライアントに通信する段階と、
    前記キャッシュアダプタを用いてアクセス要求を記データセルのうちの適当なデータセルに送る段階と、
    前記キャッシュアダプタ内に組み込まれた軽量アプリケーションサーバを介してアクセス要求を処理する段階と、
    を含む方法
  14. 関係データベーステーブルフォーマットで前記データを格納する段階を更に含む、請求項13に記載の方法
  15. ジャバデータベース接続性を使用して前記データ及び前記分散ファイルシステムをインタフェースする段階を更に含む、請求項13に記載の方法
  16. 必要に応じて、前記キャッシュを通過することなく前記分散ファイルシステムに存在する前記データに直接アクセスする段階を更に含む、請求項13に記載の方法
  17. キャッシュアダプタを用いて、分散ファイルシステムを形成するマシンのネットワーク化クラスタの少なくとも1つのノードにメモリの指定された部分を連続スペースとして確保するための手段と、
    データを格納するよう構成されたデータセルを含む前記メモリの指定された部分を用いてキャッシュを形成するための手段と、
    ータキャッシュ及び分散ファイルシステムを前記キャッシュアダプタにインタフェースするための手段と、
    前記キャッシュアダプタを用いて前記データにアクセスするために外部クライアントインタフェースるための手段と、
    前記キャッシュアダプタを用いてウェブサーバを介してクライアント通信するための手段と、
    前記キャッシュアダプタを用いてアクセス要求を記データセルのうちの適用なデータセルに送るための手段と、
    前記キャッシュアダプタ内に組み込まれた軽量アプリケーションサーバを介してアクセス要求を処理するための手段と、
    を備える、分散キャッシュデータシステム。
  18. 前記キャッシュアダプタは、関係データベーステーブルフォーマットで前記データを格納するよう構成されている、請求項17に記載のシステム。
  19. 前記キャッシュアダプタは、ジャバデータベース接続性インタフェースを使用して前記データ及び前記分散ファイルシステムにインタフェースするよう構成されている、請求項17に記載のシステム。
  20. 前記キャッシュアダプタは、必要に応じて、前記キャッシュを通過することなく前記分散ファイルシステムに存在する前記データに直接アクセスするよう構成されている、請求項17に記載のシステム。
JP2017183619A 2011-08-02 2017-09-25 クラウドベースの分散永続性及びキャッシュデータモデル Active JP6602355B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161514253P 2011-08-02 2011-08-02
US61/514,253 2011-08-02

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014524063A Division JP6552196B2 (ja) 2011-08-02 2012-08-02 クラウドベースの分散永続性及びキャッシュデータモデル

Publications (2)

Publication Number Publication Date
JP2018022514A JP2018022514A (ja) 2018-02-08
JP6602355B2 true JP6602355B2 (ja) 2019-11-06

Family

ID=47629674

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014524063A Active JP6552196B2 (ja) 2011-08-02 2012-08-02 クラウドベースの分散永続性及びキャッシュデータモデル
JP2017183619A Active JP6602355B2 (ja) 2011-08-02 2017-09-25 クラウドベースの分散永続性及びキャッシュデータモデル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014524063A Active JP6552196B2 (ja) 2011-08-02 2012-08-02 クラウドベースの分散永続性及びキャッシュデータモデル

Country Status (6)

Country Link
US (1) US10853306B2 (ja)
EP (1) EP2740041B1 (ja)
JP (2) JP6552196B2 (ja)
AU (2) AU2012290042A1 (ja)
CA (1) CA2843886C (ja)
WO (1) WO2013019913A1 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013009337A2 (en) 2011-07-08 2013-01-17 Arnold Goldberg Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
EP2740041B1 (en) 2011-08-02 2019-10-23 Jadhav, Ajay Cloud-based distributed persistence and cache data model
US9773051B2 (en) 2011-11-29 2017-09-26 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US8707330B2 (en) * 2012-04-27 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Method and system for controlled communication between applications
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US9405828B2 (en) * 2012-09-06 2016-08-02 Avaya Inc. System and method for phonetic searching of data
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US9542546B2 (en) * 2012-09-28 2017-01-10 Volusion, Inc. System and method for implicitly resolving query scope in a multi-client and multi-tenant datastore
US9374276B2 (en) 2012-11-01 2016-06-21 Microsoft Technology Licensing, Llc CDN traffic management in the cloud
US9537973B2 (en) * 2012-11-01 2017-01-03 Microsoft Technology Licensing, Llc CDN load balancing in the cloud
US8560455B1 (en) * 2012-12-13 2013-10-15 Digiboo Llc System and method for operating multiple rental domains within a single credit card domain
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
EP2755151A3 (en) 2013-01-11 2014-09-24 Box, Inc. Functionalities, features and user interface of a synchronization client to a cloud-based environment
US9536016B2 (en) * 2013-01-16 2017-01-03 Google Inc. On-disk multimap
US10599671B2 (en) 2013-01-17 2020-03-24 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US9426932B2 (en) 2013-03-13 2016-08-23 Silicon Graphics International Corp. Server with heat pipe cooling
US9342557B2 (en) * 2013-03-13 2016-05-17 Cloudera, Inc. Low latency query engine for Apache Hadoop
US9681003B1 (en) * 2013-03-14 2017-06-13 Aeris Communications, Inc. Method and system for managing device status and activity history using big data storage
US10445340B2 (en) 2013-03-15 2019-10-15 Ajay JADHAV Use of collaborative server in a cloud-based environment
US9612920B2 (en) * 2013-03-15 2017-04-04 Silicon Graphics International Corp. Hierarchical system manager rollback
US9235618B2 (en) * 2013-04-06 2016-01-12 Citrix Systems, Inc. Systems and methods for caching of SQL responses using integrated caching
US9576038B1 (en) * 2013-04-17 2017-02-21 Amazon Technologies, Inc. Consistent query of local indexes
US9922086B1 (en) 2017-01-06 2018-03-20 Amazon Technologies, Inc. Consistent query of local indexes
IN2014CH02275A (ja) * 2013-05-06 2015-07-03 Ittiam Systems Pte Ltd
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9559900B1 (en) * 2013-06-13 2017-01-31 Amazon Technologies, Inc. Dedicated endpoints for network-accessible services
US10158579B2 (en) 2013-06-21 2018-12-18 Amazon Technologies, Inc. Resource silos at network-accessible services
US9805050B2 (en) * 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9503541B2 (en) * 2013-08-21 2016-11-22 International Business Machines Corporation Fast mobile web applications using cloud caching
GB201315435D0 (en) * 2013-08-30 2013-10-16 Ibm Cache management in a computerized system
GB2519534A (en) 2013-10-23 2015-04-29 Ibm Persistent caching system and method for operating a persistent caching system
EP3063630B1 (en) 2013-10-31 2018-10-10 Hewlett-Packard Enterprise Development LP Non-blocking registration in distributed transactions
US9411862B1 (en) * 2013-12-03 2016-08-09 Google Inc. Systems and methods for dynamic sharding of hierarchical data
WO2015094179A1 (en) * 2013-12-17 2015-06-25 Hewlett-Packard Development Company, L.P. Abstraction layer between a database query engine and a distributed file system
WO2016195685A1 (en) * 2015-06-04 2016-12-08 Gamesys Ltd. Bingo game system with bingo listener and subpool bonus feature
US9993728B2 (en) 2014-01-27 2018-06-12 Gamesys Ltd. Bingo game system with bingo listener and subpool bonus feature
US10086278B2 (en) 2014-01-27 2018-10-02 Gamesys Ltd. Bingo game system with bingo listener
US9648103B2 (en) 2014-02-11 2017-05-09 Red Hat, Inc. Non-uniform file access in a distributed file system
US10325032B2 (en) 2014-02-19 2019-06-18 Snowflake Inc. Resource provisioning systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
CN103812877B (zh) * 2014-03-12 2016-10-12 西安电子科技大学 基于Bigtable分布式存储系统的数据压缩方法
US10025710B2 (en) * 2014-04-30 2018-07-17 Walmart Apollo, Llc Pattern for integrating primary and secondary data stores in a sharded data domain
CN107111615A (zh) * 2014-05-28 2017-08-29 北京大学深圳研究生院 一种用于分布式存储系统的数据缓存方法及装置
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
CN105446896B (zh) 2014-08-29 2018-05-04 国际商业机器公司 映射化简应用的缓存管理方法和装置
US10534714B2 (en) * 2014-12-18 2020-01-14 Hewlett Packard Enterprise Development Lp Allocating cache memory on a per data object basis
US20160323351A1 (en) * 2015-04-29 2016-11-03 Box, Inc. Low latency and low defect media file transcoding using optimized storage, retrieval, partitioning, and delivery techniques
JP6902579B2 (ja) * 2015-10-22 2021-07-14 オラクル・インターナショナル・コーポレイション トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法
JP6902580B2 (ja) * 2015-10-22 2021-07-14 オラクル・インターナショナル・コーポレイション トランザクション処理環境において分散型キャッシングを提供するためのシステムおよび方法
CN107615260B (zh) 2015-10-22 2021-05-07 甲骨文国际公司 用于在事务处理环境中提供分布式高速缓存的系统和方法
US20170255886A1 (en) * 2016-03-03 2017-09-07 Hewlett-Packard Development Company, L.P. Workflow execution
US10482062B1 (en) * 2016-03-30 2019-11-19 Amazon Technologies, Inc. Independent evictions from datastore accelerator fleet nodes
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10162676B2 (en) 2016-08-15 2018-12-25 International Business Machines Corporation Social objectives-based workload resolution in a cloud environment
AU2017314759B2 (en) * 2016-08-24 2022-10-06 Selfserveme Pty Ltd Customer service systems and portals
US10178045B2 (en) * 2016-09-07 2019-01-08 Sap Se Dynamic discovery and management of microservices for multi-cluster computing platforms
US11514521B1 (en) * 2017-05-12 2022-11-29 Jpmorgan Chase Bank, N.A. Method and system for implementing a consolidated limits repository
US11470131B2 (en) 2017-07-07 2022-10-11 Box, Inc. User device processing of information from a network-accessible collaboration system
US10929210B2 (en) 2017-07-07 2021-02-23 Box, Inc. Collaboration system protocol processing
US11681667B2 (en) 2017-07-30 2023-06-20 International Business Machines Corporation Persisting distributed data sets into eventually consistent storage systems
WO2019144214A1 (en) * 2017-10-10 2019-08-01 Phemi Systems Corporation Methods and systems for context-specific data set derivation from unstructured data in data storage devices
US10893120B2 (en) 2018-09-19 2021-01-12 International Business Machines Corporation Data caching and data-aware placement to accelerate machine learning applications
US20200348843A1 (en) * 2019-04-30 2020-11-05 Juniper Networks, Inc. Distributor data map for storage volume replication across multiple data centers
US11082521B2 (en) * 2019-05-24 2021-08-03 California Eastern Laboratories, Inc. Single source of information apparatuses, methods, and systems
CN110633299B (zh) * 2019-08-19 2024-07-02 中国平安财产保险股份有限公司 业务数据的缓存方法、装置、计算机设备及存储介质
CN113220795B (zh) * 2021-02-19 2022-06-24 腾讯科技(深圳)有限公司 基于分布式存储的数据处理方法、装置、设备以及介质
CN114840140B (zh) * 2022-03-28 2024-08-20 阿里巴巴(中国)有限公司 云上数据缓存方法、装置、设备及存储介质

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493692A (en) * 1993-12-03 1996-02-20 Xerox Corporation Selective delivery of electronic messages in a multiple computer system based on context and environment of a user
US6947943B2 (en) * 2001-10-26 2005-09-20 Zeosoft Technology Group, Inc. System for development, management and operation of distributed clients and servers
EP1247184B1 (en) * 1999-03-25 2018-08-15 Progress Software Corporation Method and apparatus for pointer relocation optimization for virtual memory mapping and transaction management in a database system
US6874006B1 (en) 1999-10-29 2005-03-29 Pentomics, Inc. Apparatus and method for rectangular-to-polar conversion
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
US6854115B1 (en) 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US7043538B2 (en) * 2000-07-06 2006-05-09 Nms Communication Corporation Thin instant messaging proxy interface with persistent sessions
US20020091712A1 (en) * 2000-10-28 2002-07-11 Martin Andrew Richard Data-base caching system and method of operation
JP4306152B2 (ja) 2001-06-26 2009-07-29 株式会社日立製作所 クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
US7249131B2 (en) * 2001-09-06 2007-07-24 Initiate Systems, Inc. System and method for dynamically caching dynamic multi-sourced persisted EJBs
US20030154349A1 (en) * 2002-01-24 2003-08-14 Berg Stefan G. Program-directed cache prefetching for media processors
US7765255B2 (en) * 2002-07-30 2010-07-27 Sap Ag Extended web infrastructure for business applications
EP1573550A2 (en) * 2002-11-07 2005-09-14 Koninklijke Philips Electronics N.V. Method and device for persistent-memory management
JP2004240575A (ja) * 2003-02-04 2004-08-26 Hitachi Ltd データ処理方法及びその実施装置並びにその処理プログラム
JP2004280494A (ja) 2003-03-17 2004-10-07 Mitsubishi Electric Corp データベースキャッシュ処理システムのサーバノード
JP4579501B2 (ja) 2003-03-27 2010-11-10 富士通株式会社 アプリケーションサーバおよびアプリケーションプログラム
US7085888B2 (en) * 2003-10-09 2006-08-01 International Business Machines Corporation Increasing memory locality of filesystem synchronization operations
US8069192B2 (en) * 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US7461134B2 (en) * 2004-11-19 2008-12-02 W.A. Krapf, Inc. Bi-directional communication between a web client and a web server
US20070022148A1 (en) * 2005-07-20 2007-01-25 Akers David G Reserving an area of a storage medium for a file
US7809882B1 (en) 2006-01-24 2010-10-05 Verizon Services Corp. Session independent backend data cache system
US8117153B2 (en) * 2006-03-28 2012-02-14 Oracle America, Inc. Systems and methods for a distributed cache
US7831772B2 (en) * 2006-12-12 2010-11-09 Sybase, Inc. System and methodology providing multiple heterogeneous buffer caches
US20080201549A1 (en) * 2007-02-20 2008-08-21 Raytheon Company System and Method for Improving Data Caching
WO2008149337A2 (en) * 2007-06-05 2008-12-11 Dcf Technologies Ltd. Devices for providing distributable middleware data proxy between application servers and database servers
US8065484B2 (en) * 2007-07-19 2011-11-22 Oracle International Corporation Enhanced access to data available in a cache
US8266392B2 (en) 2007-08-31 2012-09-11 Red Hat, Inc. Cache access mechanism
TWI438633B (zh) * 2007-11-29 2014-05-21 Ibm 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
US8626725B2 (en) * 2008-07-31 2014-01-07 Microsoft Corporation Efficient large-scale processing of column based data encoded structures
US8769206B2 (en) * 2009-01-20 2014-07-01 Oracle International Corporation Methods and systems for implementing transcendent page caching
US7962574B2 (en) * 2009-01-29 2011-06-14 International Business Machines Corporation Data integration in service oriented architectures
US9207984B2 (en) * 2009-03-31 2015-12-08 Amazon Technologies, Inc. Monitoring and automatic scaling of data volumes
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US9325802B2 (en) * 2009-07-16 2016-04-26 Microsoft Technology Licensing, Llc Hierarchical scale unit values for storing instances of data among nodes of a distributed store
GB2472620B (en) 2009-08-12 2016-05-18 Cloudtran Inc Distributed transaction processing
US8478725B2 (en) * 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
EP2486491A4 (en) * 2009-10-06 2013-10-23 Unwired Planet Llc MANAGING NETWORK TRAFFIC BY EDITING A MANIFEST FILE AND / OR USING A INTERMEDIATE FLOW CONTROL
US8868510B2 (en) * 2009-12-03 2014-10-21 Sybase, Inc. Managing data storage as an in-memory database in a database management system
US8447768B2 (en) * 2010-01-29 2013-05-21 Novell, Inc. Techniques for generically accessing data
US20110196887A1 (en) * 2010-02-08 2011-08-11 Google Inc. Light-Weight Network Traffic Cache
US8423517B2 (en) * 2010-02-09 2013-04-16 Google Inc. System and method for determining the age of objects in the presence of unreliable clocks
US20120042248A1 (en) * 2010-02-11 2012-02-16 David Hyman Gradual visual fading of subsequent songs to represent a streaming playlist
US20110246518A1 (en) * 2010-04-01 2011-10-06 Verizon Patent And Licensing Inc. Method and system of distributed caching
US9021229B2 (en) * 2010-04-14 2015-04-28 International Business Machines Corporation Optimizing a file system for different types of applications in a compute cluster using dynamic block size granularity
US8627065B2 (en) * 2010-11-09 2014-01-07 Cleversafe, Inc. Validating a certificate chain in a dispersed storage network
US8775737B2 (en) * 2010-12-02 2014-07-08 Microsoft Corporation Efficient cache management
US8812677B2 (en) * 2010-12-21 2014-08-19 Hitachi, Ltd. Data processing method and apparatus for remote storage system
EP2740041B1 (en) 2011-08-02 2019-10-23 Jadhav, Ajay Cloud-based distributed persistence and cache data model

Also Published As

Publication number Publication date
AU2017218964B2 (en) 2019-06-20
AU2017218964A1 (en) 2017-09-07
EP2740041B1 (en) 2019-10-23
US10853306B2 (en) 2020-12-01
CA2843886A1 (en) 2013-02-07
WO2013019913A1 (en) 2013-02-07
AU2012290042A1 (en) 2014-02-20
JP2014528114A (ja) 2014-10-23
JP2018022514A (ja) 2018-02-08
US20130110961A1 (en) 2013-05-02
EP2740041A1 (en) 2014-06-11
JP6552196B2 (ja) 2019-07-31
EP2740041A4 (en) 2015-03-18
CA2843886C (en) 2020-09-22

Similar Documents

Publication Publication Date Title
JP6602355B2 (ja) クラウドベースの分散永続性及びキャッシュデータモデル
Nayak et al. Type of NOSQL databases and its comparison with relational databases
Corbellini et al. Persisting big-data: The NoSQL landscape
Chandra BASE analysis of NoSQL database
Padhy et al. RDBMS to NoSQL: reviewing some next-generation non-relational database’s
Gorton et al. Distribution, data, deployment: Software architecture convergence in big data systems
Bailis et al. Bolt-on causal consistency
Indrawan-Santiago Database research: Are we at a crossroad? Reflection on NoSQL
Yang et al. Implementation of a big data accessing and processing platform for medical records in cloud
KR20170129114A (ko) 애플리케이션 중심의 객체 저장
WO2021184761A1 (zh) 数据访问方法和装置、数据存储方法和装置
Gajendran A survey on nosql databases
Chavan et al. Survey paper on big data
CN103312791A (zh) 物联网异构数据存储方法及系统
Srivastava et al. Analysis of various NoSql database
Gupta et al. In-memory database systems-a paradigm shift
CN105069151A (zh) HBase二级索引构建装置和方法
Yu et al. Research and implementation of massive health care data management and analysis based on hadoop
Tauro et al. A comparative analysis of different nosql databases on data model, query model and replication model
Prasad et al. NextGen data persistence pattern in healthcare: polyglot persistence
Yang et al. Implementation of data transform method into NoSQL database for healthcare data
US11803568B1 (en) Replicating changes from a database to a destination and modifying replication capacity
US11789971B1 (en) Adding replicas to a multi-leader replica group for a data set
Li et al. Research and implementation of a distributed transaction processing middleware
Wu Big data processing with Hadoop

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171025

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190405

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191008

R150 Certificate of patent or registration of utility model

Ref document number: 6602355

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