(57)【要約】  本発明は、データキャッシング方法及び装置を開示しており、これらの方法及び装置は、インターネット技術の分野に関係し、且つ、多数のユーザがページにアクセスするが、ページのキャッシュデータが失効している際に、それぞれの要求との関係においてデータベース内のデータについて個別にサーチする必要があり、この結果、多数の要求を同時にデータベースにアクセスさせるという問題点をもたらす、という問題点を解決する能力を有する。方法は、主には、クライアントによって送信されたデータ要求を受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するステップと、残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するステップと、残存有効キャッシュ持続時間が更新閾値以下である場合に、データベースを通じてキャッシュデータを更新するステップと、を有する。本発明は、主に、データのキャッシングに基づいてクライアントに応答するシナリオに適用可能である。
2019512819.tif 000002
【特許請求の範囲】
【請求項１】
データキャッシング方法であって、
クライアントによって送信されたデータ要求を受け取った後に、前記データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するステップと、
前記残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するステップと、
前記残存有効キャッシュ持続時間が前記更新閾値以下である場合に、データベースを通じて前記キャッシュデータを更新するステップと、
を有する方法。
【請求項２】
別のデータ要求が前記キャッシュデータの更新期間において受け取られた場合に、前記残存有効キャッシュ持続時間が前記予め設定された更新閾値を上回っているかどうかの前記判定をキャンセルするステップ、を更に有する、請求項１に記載の方法。
【請求項３】
前記保存されているキャッシュデータが失効した際に、クライアントによって送信されると共に前記キャッシュデータに対応するデータ要求が受け取られたかどうかをチェックするステップと、
前記クライアントによって送信されると共に前記キャッシュデータに対応するデータ要求が受け取られない場合に、前記データベースを通じて前記キャッシュデータを更新するステップと、
前記クライアントによって送信されると共に前記キャッシュデータに対応するデータ要求が受け取られた場合に、前記データ要求に対応するデータについて前記データベースをサーチし、取得されたデータを前記クライアントに対して返し、且つ、前記取得されたデータに基づいて前記キャッシュデータを更新するステップと、
を更に有する、請求項２に記載の方法。
【請求項４】
データリソースが最初にアクセスされた際に、リソースタイプ及び予め設定された規則に従って、前記データリソース内に含まれているデータを少なくとも２つのデータセットに分割するステップと、
前記データセットのそれぞれを別個にキャッシングし、且つ、前記データセットのそれぞれに対応するキーを生成し、これにより、前記キャッシュデータが前記キーに基づいて後からサーチされるようにするステップであって、前記データセットのそれぞれは、異なる失効時点を有する、ステップと、
を更に有する、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
リソースタイプ及び予め設定された規則に従って、前記データリソース内に含まれているデータを少なくとも２つのデータセットに分割する前記ステップは、
前記データリソースが、固定データを提示するための第１ページである際に、前記第１ページのページレイアウトに従って、前記第１ページ内に含まれている且つ前記データベースから取得される前記データを前記少なくとも２つのデータセットに分割するステップと、
前記データリソースが、条件クエリ機能を有する第２ページである際に、前記第２ページが関与しているクエリ条件の組合せに従って、前記第２ページ内に含まれている且つ前記データベースから取得される前記データを前記少なくとも２つのデータセットに分割するステップであって、前記第２ページは、クエリ条件の複数の組を有し、クエリ条件の１つの組に対応する結果データは、データセットであり、且つ、クエリ条件の１つの組は、少なくとも１つのクエリ条件を有する、ステップと、
を有する、請求項４に記載の方法。
【請求項６】
前記残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかの前記判定ステップは、
前記データ要求に対応するデータセットの前記残存有効キャッシュ持続時間が前記更新閾値を上回っているかどうかを判定するステップ、
を有する、請求項４に記載の方法。
【請求項７】
データキャッシング装置であって、
クライアントによって送信されたデータ要求を受け取った後に、前記データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するように構成された確認ユニットと、
前記確認ユニットによって取得された前記残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するように構成された判定ユニットと、
前記判定ユニットの判定結果が、前記残存有効キャッシュ持続時間が前記更新閾値以下である、というものである場合に、データベースを通じて前記キャッシュデータを更新するように構成された更新ユニットと、
を有する装置。
【請求項８】
別のデータ要求が前記キャッシュデータの更新期間において受け取られた場合に、前記残存有効キャッシュ持続時間が前記予め設定された更新閾値を上回っているかどうかの前記判定をキャンセルするように構成されたキャンセルユニット、
を更に有する、請求項７に記載の装置。
【請求項９】
前記キャッシュデータが失効した際に、クライアントによって送信されると共に前記キャッシュデータに対応するデータ要求が、受け取られたかどうかをチェックするように構成されたクエリユニットであって、
前記更新ユニットは、前記クライアントによって送信されると共に前記キャッシュデータに対応するデータ要求が、受け取られない際に、前記データベースを通じて前記キャッシュデータを更新するように更に構成されている、クエリユニットと、
前記クライアントによって送信されると共に前記キャッシュデータに対応するデータ要求が、受け取られた場合に、前記データ要求に対応するデータについて前記データベースをサーチし、且つ、取得されたデータを前記クライアントに返すように構成された送信ユニットであって、
前記更新ユニットは、前記取得されたデータに基づいて前記キャッシュデータを更新するように更に構成されている、送信ユニットと、
を更に有する、請求項８に記載の装置。
【請求項１０】
データリソースが最初にアクセスされた際に、リソースタイプ及び予め設定された規則に従って、前記データリソース内に含まれているデータを少なくとも２つのデータセットに分割するように構成された分割ユニットと、
キーに基づいて前記キャッシュデータを後からサーチするべく、前記分割ユニットによって取得された前記データセットのそれぞれを別個にキャッシングし、且つ、前記データセットのそれぞれに対応する前記キーを生成するように構成されたキャッシングユニットであって、前記データセットのそれぞれは、異なる失効時点を有する、キャッシングユニットと、
を更に有する、請求項７〜９のいずれか一項に記載の装置。
【請求項１１】
前記分割ユニットは、
前記データリソースが、固定データを提示するための第１ページである際に、前記第１ページの前記ページレイアウトに従って、前記第１ページ内に含まれている且つ前記データベースから取得される前記データを前記少なくとも２つのデータセットに分割するように構成された第１分割モジュールと、
前記データリソースが、条件クエリ機能を有する第２ページである際に、前記第２ページが関与しているクエリ条件の組合せに従って、前記第２ページ内に含まれている且つ前記データベースから取得される前記データを前記少なくとも２つのデータセットに分割するように構成された第２分割モジュールであって、前記第２ページは、クエリ条件の複数の組を有し、クエリ条件の１つの組に対応する結果データは、データセットであり、且つ、クエリ条件の１つの組は、少なくとも１つのクエリ条件を有する、第２分割モジュールと、
を有する、請求項１０に記載の装置。
【請求項１２】
前記判定ユニットは、前記データ要求に対応するデータセットの前記残存有効キャッシュ持続時間が更新閾値を上回っているかどうかを判定するように構成されている、請求項１１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１６年４月１日付けで出願されると共に「Data Caching Method and Apparatus」という名称を有する中国特許出願第 201610204539.8 号の優先権を主張するものであり、この特許文献の内容は、引用により、そのすべてが本明細書に包含される。
【０００２】
本明細書は、インターネット技術の分野に関し、且つ、更に詳しくは、データキャッシング方法及び装置に関する。
【背景技術】
【０００３】
例示用の用途においては、大規模なウェブサイト又はアプリケーションの同一のページに対して、ほとんど一秒ごとに、数万人ものユーザがアクセスしている。従って、ユーザ要求に対して迅速に応答するべく、キャッシング技術が導入されている。現時点の技術においては、ページが最初にアクセスされた際に、システムは、まず、そのページに対応するデータについてデータベースをサーチし、次いで、取得されたデータをクライアントに返し、且つ、同時に、ページが、再度、後からアクセスされた際に、データがキャッシュサーバ側から直接的に取得されることにより、大量のデータを有するデータベースをクエリする際に消費される顕著な時間を未然に防ぐことができるように、且つ、これにより、ユーザ要求に応答する効率を改善することができるように、取得されたデータをキャッシュサーバにキャッシングしている。
【０００４】
データベース内のデータは、常に更新されていることから、キャッシュサーバにキャッシングされたデータは、永久的にではなく、一時的にのみ、キャッシングされる。このようなケースにおいて、ページのキャッシュデータが失効している間に多数のユーザがページにアクセスした場合には、システムは、それぞれの要求ごとに、データベース内のデータについて個別にサーチする必要がある。従って、同時にデータベースにアクセスする多数の要求が存在する可能性があり、データベースに対してデータをクエリする効率が低下し、且つ、データベースに対するアクセスの数が制限されることになる。この結果、いくつかのユーザのインタフェースが、ページコンテンツの閲覧において、一時的なシステム異常及び障害を経験し得る。
【発明の概要】
【０００５】
この点に鑑み、本発明は、多数のユーザがページにアクセスしているが、ページのキャッシュデータが失効している際に、それぞれの要求ごとに、データベース内のデータについて個別にサーチする必要があり、その結果、同時に多数の要求をデータベースにアクセスさせるという問題が生じ、これにより、いくつかのユーザインタフェースが、ページコンテンツの閲覧において、一時的なシステム異常及び障害を経験することになる、という問題点を解決し得る、データキャッシング方法及び装置を提供している。
【０００６】
本発明の一態様によれば、データキャッシング方法が、提供され、且つ、方法は、
クライアントによって送信されたデータを受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するステップと、
残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するステップと、
残存有効キャッシュ持続時間が更新閾値以下である場合に、データベースを通じてキャッシュデータを更新するステップと、
を有する。
【０００７】
本発明の別の態様によれば、データキャッシング装置が提供され、且つ、装置は、
クライアントによって送信されたデータ要求を受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するように構成された確認ユニットと、
確認ユニットによって取得された残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するように構成された判定ユニットと、
判定ユニットの判定結果が、残存有効キャッシュ持続時間が更新閾値以下である、というものである場合に、データベースを通じてキャッシュデータを更新するように構成された更新ユニットと、
を有する。
【０００８】
上述の技術的解決策により、本発明によるデータキャッシング方法及び装置は、クライアントによって送信されたデータ要求を受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定し、残存有効キャッシュ持続時間が更新閾値を上回っている際に、キャッシュデータをクライアントに直接的に返し、且つ、残存有効キャッシュ持続時間が、正の数であり、且つ、更新閾値以下である際に、キャッシュデータをクライアントに返し、且つ、データベースを通じてキャッシュデータを更に更新する能力を有する。従って、キャッシュデータが失効した際にのみキャッシュデータが更新されている現時点の技術との関係において、本発明は、キャッシュデータが失効する前に、キャッシュデータを更新することができる。多数のクライアントが後からキャッシュデータを要求した際に、キャッシュデータは、依然として有効な状態にあり、且つ、キャッシュデータは、クライアントのそれぞれに対して直接的に返されており、これにより、失効したキャッシュデータに起因して、多数の要求を並行的にデータベースにアクセスさせるという問題点を軽減することができる。
【０００９】
上述の説明は、本発明の技術的解決策の概要であるに過ぎない。本発明の技術的意味と、説明による実装形態と、の更に明瞭な理解を可能にするべく、且つ、本発明の上述の及びその他の目的、特徴、及び利点を更に理解可能なものとするべく、以下、本発明の実装方式について説明することとする。
【図面の簡単な説明】
【００１０】
以下の好適な実装方式の詳細な説明を参照した際に、当業者には、本発明の様々なその他の利益及び利点について明らかとなろう。添付図面は、以下の好適な実装方式の例示を目的として使用されるに過ぎず、且つ、本発明に対する限定として解釈してはならない。更には、添付図面においては、同一の部分を表すべく、同一の参照符号が使用されている。添付図面には、以下のものが含まれる。
【００１１】
【図１】図１は、本発明のいくつかの実施形態によるデータキャッシング方法のフローチャートである。
【図２】図２は、本発明のいくつかの実施形態によるデータキャッシング装置の構成のブロック図である。
【図３】図３は、本発明のいくつかの実施形態による別のデータキャッシング装置の構成のブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本開示の例示用の実施形態について更に詳述することとする。添付図面は、本開示の例示用の実施形態を示しているが、本開示は、様々な方式によって実装されてもよく、従って、本明細書において記述されている実施形態によって限定されものではないことを理解されたい。逆に、これらの実施形態は、本開示の更に十分な理解を可能にするべく、且つ、本開示の完全な範囲を当業者に対して伝達するべく、提供されるものである。
【００１３】
本開示のいくつかの実施形態は、主にサーバ側において適用される、データキャッシング方法を提供している。図１に示されているように、方法は、主に、以下のステップを含む。
【００１４】
１０１：クライアントによって送信されたデータ要求を受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定する。
【００１５】
サーバがクライアントによって送信されたデータ要求を受け取った後に、サーバは、データ要求に対応するキャッシュデータについてキャッシュをサーチすることができると共に、キャッシュデータの更新の必要性を残存有効キャッシュ持続時間に従って後から判定し得るように、キャッシュデータの残存有効キャッシュ持続時間を判定することができる。ここで、キャッシュデータのそれぞれの断片をキャッシングする際には、キャッシュデータの断片のキャッシング開始時刻及び全体有効キャッシュ持続時間を記録することができる。キャッシュ時間が全体有効キャッシュ持続時間に到達した際に、キャッシュデータは失効する。或いは、この代わりに、全体有効キャッシュ持続時間用のカウントダウンタイマを提供することもできる。カウントが０になった際に、キャッシュデータは失効する。従って、サーバは、キャッシュデータの時間属性に従ってキャッシュデータの残存有効キャッシュ持続時間を判定することができる。
【００１６】
１０２：残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定する。
【００１７】
ここでは、残存有効キャッシュ持続時間は、正の数であり、且つ、更新閾値は、キャッシュデータの全体有効キャッシュ持続時間未満である。残存有効キャッシュ持続時間が正の数である場合には、それは、キャッシュデータが有効なデータであることを示している。このケースにおいては、キャッシュデータを早期に更新する必要があるかどうかを判定するべく、ステップ１０２を実行することが可能であり、残存有効キャッシュ持続時間が０である場合には、それは、キャッシュデータが失効したことを示している。このケースにおいては、ステップ１０２は、キャンセルされ、データが、それぞれのデータ要求との関係においてデータベースに対して直接的にクエリされ、取得されたデータがクライアントに返され、且つ、失効したキャッシュデータが、取得されたデータに従って更新される。
【００１８】
１０３：残存有効キャッシュ持続時間が更新閾値以下である場合には、データベースを通じてキャッシュデータを更新する。
【００１９】
例えば、残存有効キャッシュ持続時間が更新閾値以下である場合には、キャッシュデータは、クライアントに返され、且つ、キャッシュデータは、データベースを通じて更新され、残存有効キャッシュ持続時間が更新閾値を上回っている場合には、キャッシュデータは、クライアントに対して直接的に返され、これにより、データベースを通じたキャッシュデータに対する更新が未然に防止される。ここで、キャッシュデータのクライアントへの返送とデータベースを通じたキャッシュデータの更新とは、同時に、又は異なる時点において、実行することが可能であり、これは、本明細書においては、制限されていない。
【００２０】
キャッシュデータの残存有効キャッシュ持続時間が更新閾値に等しい際にクライアントによって送信されたデータ要求を受け取った場合には、サーバは、データベースを通じてキャッシュデータを更新する必要がある。このケースにおいて、更新閾値が、データベース内のデータのクエリからキャッシュ内への取得されたデータの書き込みまでに必要とされる平均時間である場合には、更新動作は、ちょうど、キャッシュデータが失効する瞬間において完了することになる。更新閾値が平均時間未満である場合には、更新動作は、キャッシュデータが失効した瞬間において完了しない。多数のクライアントが、キャッシュデータの失効から更新動作の完了までの期間において、データ要求を送信した場合には、クエリ要求をそれぞれのデータ要求との関係においてデータベースに送信する必要があり、この結果、システム異常をもたらし得る。更新閾値が平均時間を上回っている場合には、更新動作は、キャッシュデータが失効する前に、完了することになる。従って、失効したキャッシュに起因して、それぞれのデータ要求ごとに、クエリ要求をデータベースに送信する必要はない。この結果、例示用の用途において、更新閾値が、データベース内におけるデータのクエリからキャッシュ内への取得されたデータの書き込みまでに必要とされる平均時間以上である場合には、多数の要求をデータベースにアクセスさせるという問題点を更に軽減することができる。
【００２１】
本発明のいくつかの実施形態によるデータキャッシング方法によれば、クライアントによって送信されたデータ要求が受け取られ後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定することが可能であり、残存有効キャッシュ持続時間が更新閾値を上回っている際には、キャッシュデータがクライアントに直接的に返されており、且つ、残存有効キャッシュ持続時間が、正の数であり、且つ、更新閾値以下である際には、キャッシュデータがクライアントに返され、且つ、更には、キャッシュデータが、データベースを通じて更新されている。キャッシュデータが失効した際にのみキャッシュデータが更新される現時点の技術との関係において、本発明は、キャッシュデータが失効する前にキャッシュデータを更新することができる。多数のクライアントがキャッシュデータを後から要求した際に、キャッシュデータは、依然として有効な状態にあり、且つ、キャッシュデータは、クライアントのそれぞれに対して直接的に返され、これにより、失効したキャッシュデータに起因して、多数の要求をデータベースに並行的にアクセスさせるという問題点を軽減することができる。
【００２２】
更には、クライアントによって送信されたデータ要求は、キャッシュデータがデータベースを通じて更新される期間において受け取られる場合があり、データ要求に対応するキャッシュデータは、この期間において失効していない場合があり、従って、更新条件（即ち、キャッシュデータの残存有効キャッシュ持続時間が更新閾値以下である）が充足されることになる。従って、キャッシュデータは、キャッシュデータが失効していない際に、且つ、キャッシュデータがデータベース通じて更新されている際に、更新条件を常に充足している。この期間においては、キャッシュデータに対応するデータ要求が受け取られた際には常に、キャッシュデータを更新するように、データクエリ要求をデータベースに対して送信する必要がある。この結果、キャッシュデータが頻繁に更新されると共にデータベースに頻繁にアクセスされるという現象が発生する。
【００２３】
上述の技術的な問題点を解決するべく、本発明のいくつかの実施形態は、別のデータ要求がキャッシュデータの更新期間において受け取られた場合には、残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかの判定が、もはや、実行されない、という、上述実施形態に対する改善を実施することができる。即ち、キャッシュデータは、受け取られたデータ要求が最初に更新条件を充足した際にのみ、更新される。更新が完了する前に別のデータ要求が受け取られた際には、キャッシュデータは、データベースにアクセスしてキャッシュデータを更新する必要性を伴うことなしに、対応するクライアントに対して直接的に返される。
【００２４】
更には、上述の実施形態に伴う解決策の場合に、キャッシュデータに対応するデータ要求が、キャッシュデータの残存有効キャッシュ持続時間が更新閾値から０（０を除く）まで徐々に変化するプロセスにおいて受け取られない場合には、キャッシュデータを更新するためのなんらの動作もトリガされない。この結果、失効したキャッシュデータの問題点が依然として存在しており、且つ、その結果、多数の要求が同時にデータベースにアクセスするという可能性が存在している。失効したキャッシュデータに起因して、多数の要求を並行的にデータベースにアクセスさせるという問題点を更に軽減するべく、本発明のいくつかの実施形態は、上述の実施形態のうちのいずれか１つに基づいて、以下の改善を実施することができる。
【００２５】
保存されているキャッシュデータが失効した際に、クライアントによって送信されると共にキャッシュデータに対応しているデータ要求が、受け取られたかどうかをチェックし、且つ、クライアントによって送信されると共にキャッシュデータに対応するデータ要求が受け取られていない場合には、データベースを通じてキャッシュデータを更新し、クライアントによって送信されると共にキャッシュデータに対応するデータ要求が受け取られた場合には、データ要求に対応するデータについてデータベースをサーチし、取得されたデータをクライアントに返し、且つ、取得されたデータに基づいてキャッシュデータを更新する。
【００２６】
クライアントによって送信されたデータ要求が受け取られた後のみにおける、キャッシュデータを更新する必要があるかどうかの判定との比較において、本発明のいくつかの実施形態は、保存されているキャッシュデータが失効したかどうかをリアルタイムにおいて判定している。キャッシュデータが失効した際に、クライアントによって送信されると共にキャッシュデータに対応するデータ要求が受け取られない場合には、キャッシュデータは、データベースを通じて直接的に更新される。この結果、キャッシュデータが更新された後に、クライアントによって送信されたデータ要求が受け取られた場合には、更新されたキャッシュデータが、それぞれのデータ要求ごとにデータベースにアクセスする必要性を伴うことなしに、クライアントに対して直接的に返され、これにより、多数の要求を同時にデータベースにアクセスさせるという問題点を更に軽減することができる。
【００２７】
更には、本発明のいくつかの実施形態は、上述の実施形態のうちのいずれか１つに基づいて以下の改善を実施することができる。
【００２８】
データリソースが最初にアクセスされた際に、データリソース内に含まれているデータが、リソースタイプ及び予め設定された規則に従って、少なくとも２つのデータセットに分割される。それぞれのデータセットは、別個にキャッシングされ、且つ、データセットのそれぞれに対応するキーが生成され、且つ、キーに基づいて、キャッシュデータを後からサーチすることが可能であり、この場合に、データセットのそれぞれは、異なる失効時点を有し、且つ、キー値は、キャッシュデータの主キー値である。ここで、データリソースは、ブラウザページ、その他のアプリケーションソフトウェア上のページ、及びダウンロード対象のファイルを有する。
【００２９】
これに加えて、データリソース内に含まれているデータが、少なくとも２つのデータセットに分割され、且つ、キャッシングされた後に、上述のステップ１０２の例示用の実装方式は、データ要求に対応するデータセットの残存有効キャッシュ持続時間が更新閾値を上回っているかどうかを判定する、というものであってもよい。
【００３０】
例示用の一用途においては、データリソースがページである際には、異なるタイプのページは、異なるページデータ分割方法を有することができる。説明のための例として、以下の状況を使用することとする。
【００３１】
第１の状況：固定データを提示するための第１ページに含まれているデータが現時点の技術においてキャッシングされた際には、すべてのデータが完全にキャッシングされることになる、即ち、第１ページ内に含まれているすべてのデータが１つのキーに対応している。従って、第１ページに対応するキャッシングされたデータが更新された際には、第１ページ内に含まれているすべてのデータについてデータベースをサーチする必要がある。クエリ対象のデータの量が大きく、且つ、クエリ効率が低い。従って、上述の技術的問題点を解決するべく、本発明のいくつかの実施形態は、データリソースが、固定データを提示するための第１ページである際には、第１ページのページレイアウトに従って、第１ページ内に含まれている且つデータベースから取得されるデータを少なくとも２つのデータセットに分割することができる、という分割を第１ページに対して実施することができる。更には、第１ページが分割された際には、データセットは、別個にキャッシングされ、且つ、それぞれのデータセットに対応するキーが生成され、且つ、キーに基づいて、キャッシュデータを後からサーチすることが可能であり、この場合に、データセットのそれぞれは、異なる失効時点を有する。
【００３２】
例えば、第１ページは、固定データを提示するためのページである。即ち、クライアントが第１ページにアクセスした際に、サーバは、第１ページ内に含まれているすべてのデータをクライアントに返し、これにより、第１ページがクライアント上において完全に表示されるようにする必要があり、この場合に、第１ページによって表示される固定データは、テキスト、リンク、画像、及びこれらに類似したものを含む。
【００３３】
例示用の一用途においては、１つのページは、しばしば、表示用の少なくとも２つの領域に分割されており、且つ、領域内において表示されるデータは、しばしば、同一のフォーマットを有する。従って、第１ページ内に含まれているデータは、ページレイアウトに従って、少なくとも２つのデータセットに分割することが可能であり、且つ、それぞれのデータセットは、ページレイアウトの１つの領域に対応するか、又はそれぞれデータセットは、１つの領域の一部分に対応しており、或いは、この代わりに、第１ページは、その他の分割規則に従って分割することも可能であり、これは、本明細書においては、制限されていない。
【００３４】
データリソースが、固定データを提示するための第１ページであり、且つ、データが、上述の第１の状況に基づいてキャッシングされる場合には、クライアントがページのデータを要求した際に、データ要求に対応するそれぞれのデータセットの残存有効キャッシュ持続時間が更新閾値を上回っているかどうかを別個に判定すると共に更新閾値以下である残存有効キャッシュ持続時間を有するデータセットをデータベースを通じて更新する必要がある。
【００３５】
データセットのそれぞれは、異なる失効時点を有することから、同一の瞬間において、いくつかのデータセットのみが、更新閾値以下の残存有効キャッシュ持続時間を有する可能性がある。従って、現時点の技術においてページが完全にキャッシングされる（即ち、ページ内に含まれているすべてのデータが１つのキーに対応している）場合との比較において、本発明のいくつかの実施形態は、更新閾値以下である残存有効キャッシュ持続時間を有するデータセットを更新する必要があるのみであり、且つ、ページに対応するその他のデータセットを更新する必要はなく、これにより、ページデータの更新に必要とされるデータ量が低減され、且つ、その結果、更新効率が改善される。
【００３６】
第２の状況：条件クエリ機能を有する第２ページ内に含まれているデータが現時点の技術においてキャッシングされる際には、すべてのデータが完全にキャッシングされることになる、即ち、第２ページ内に含まれているすべてのデータが１つのキーに対応している。従って、ユーザが第２ページに基づいて条件クエリを実行する際には、条件を充足するデータについて第２ページに対応するすべてのキャッシュデータをサーチすると共に取得されたデータをクライアントに返す必要がある。従って、クライアント要求に応答する効率が低い。上述の技術的問題点を解決するべく、本発明のいくつかの実施形態は、第２ページに対して以下の分割を実施することができる。
【００３７】
データリソースが、条件クエリ機能を有する第２ページである際には、第２ページが関与しているクエリ条件の組合せに従って、第２ページ内に含まれている且つデータベースから取得されるデータを少なくとも２つのデータセットに分割することができる。第２ページは、クエリ条件の複数の組を有し、クエリ条件の１つの組に対応する結果データは、データセットであり、且つ、クエリ条件の１つの組は、少なくとも１つのクエリ条件を有する。更には、第２ページが分割される際には、データセットが別個にキャッシングされ、且つ、それぞれのデータセットに対応するキーが生成され、且つ、キーに基づいて、キャッシュデータを後からサーチすることができる。
【００３８】
ここで、第２ページは、すべてのクエリ条件と、クエリ条件の１つの組に対応する結果データと、を有する。ユーザが最初に第２ページを入力する際には、クエリ条件は、しばしば、制限されておらず、且つ、従って、すべてのデータをページ上において表示することが可能であり、ユーザが、第２ページに基づいてクエリ条件の組を選択することにより、クエリを実行した際に、このクエリ条件の組に対応する結果データをページ上において表示することができる。
【００３９】
例えば、第２ページに対するクエリ条件は、「期間（限定を伴うことなしに、３か月以内、３〜６か月、６〜１２か月を含む）」、「最小購入金額（限定を伴うことなしに、１００〜１０００、１０００〜１００００、１００００〜５００００、５００００超を含む）」、「製品タイプ（限定を伴うことなしに、ファンド製品、保険製品、その他の製品を含む）」を有する。ユーザが最初に第２ページを入力する際には、期間、最小購入金額、及び製品タイプは、制限されておらず、従って、すべてのデータが表示され、且つ、ユーザが、第２ページに基づいて、「期間は、３か月以内であり、最小購入金額は、１００００〜５００００であり、且つ、製品タイプは、ファンド製品である」を選択した際には、第２ページは、この条件を充足するデータを表示することになる。
【００４０】
データリソースが、条件クエリ機能を有する第２ページであり、且つ、データが、上述の第２の状況に基づいてキャッシングされる場合には、ユーザがページに基づいて条件クエリを実行する際に、クエリ条件の組に対応するデータセットの残存有効キャッシュ持続時間が更新閾値を上回っているかどうか、を判定すると共に、残存有効キャッシュ持続時間が更新閾値以下である際にデータベースを通じてデータセットを更新する必要がある。
【００４１】
クエリ条件の組に対応するデータセットが別個にキャッシングされていることから、クエリ条件下のデータセットは、ユーザがページに基づいて条件クエリを実行する際に、キーを通じて直接的にサーチすることが可能であり、且つ、取得されたデータセットは、ページ内に含まれているすべてのデータ内においてクエリ条件に従って第２のクエリを実行する必要性なしに、クライアントに返され、これにより、クライアント要求に応答する効率が改善される。
【００４２】
更には、上述の方法実施形態に従って、本発明の別の実施形態は、データキャッシング装置をも提供している。図２に示されているように、装置は、主には、確認ユニット２１と、判定ユニット２２と、更新ユニット２３と、を有しており、この場合に、
確認ユニット２１は、クライアントによって送信されたデータ要求を受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するように構成されており、
判定ユニット２２は、確認ユニット２１によって取得された残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するように構成されており、且つ、
更新ユニット２３は、判定ユニット２２の判定結果が、残存有効キャッシュ持続時間が更新閾値以下である、というものである場合に、データベースを通じてキャッシュデータを更新するように構成されている。
【００４３】
本発明のいくつかの実施形態によるデータキャッシング装置によれば、クライアントによって送信されたデータ要求が受け取られた後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定することが可能であり、残存有効キャッシュ持続時間が更新閾値を上回っている際には、キャッシュデータがクライアントに直接的に返され、且つ、残存有効キャッシュ持続時間が正の数であり、且つ、更新閾値以下である際には、キャッシュデータがクライアントに返され、且つ、更には、キャッシュデータがデータベースを通じて更新される。従って、キャッシュデータが失効した際にのみ、キャッシュデータが更新される現時点の記述との関係において、本発明は、キャッシュデータが失効する前に、キャッシュデータを更新することができる。多数のクライアントがキャッシュデータを後から要求した際に、キャッシュデータは、依然として有効な状態にあり、且つ、キャッシュデータは、クライアントのそれぞれに対して直接的に返されており、これにより、失効したキャッシュデータに起因して、多数の要求を並行的にデータベースにアクセスさせるという問題点を軽減することができる。
【００４４】
更には、図３に示されているように、装置は、
別のデータ要求がキャッシュデータの更新期間において受け取られた場合に、残存有効キャッシュ持続時間が、予め設定された閾値を上回っているかどうかの判定をキャンセルするように構成されたキャンセルユニット２４、
を更に有する。
【００４５】
更には、図３に示されているように、装置は、
保存されたキャッシュデータが失効した際に、クライアントによって送信されると共にキャッシュデータに対応するデータ要求が受け取られたかどうかをチェックするように構成されたクエリユニット２５であって、
更新ユニット２３は、クライアントによって送信されると共にキャッシュデータに対応するデータが受け取られない際に、データベースを通じてキャッシュデータを更新するように更に構成されている、クエリユニットと、
クライアントによって送信されると共にキャッシュデータに対応するデータ要求が受け取られた場合に、データ要求に対応するデータについてデータベースをサーチすると共に取得されたデータをクライアントに返すように構成された送信ユニット２６であって、
更新ユニット２３は、取得されたデータに基づいてキャッシュデータを更新するように更に構成されている、送信ユニットと、
を更に有する。
【００４６】
更には、図３に示されているように、装置は、
データリソースが最初にアクセスされた際に、リソースタイプ及び予め設定された規則に従って、データリソース内に含まれているデータを少なくとも２つのデータセットに分割するように構成された分割ユニット２７と、
キーに基づいてキャッシュデータを後からサーチするべく、分割ユニット２７によって取得されたそれぞれのデータセットを別個にキャッシングすると共にそれぞれのデータセットに対応するキーを生成するように構成されたキャッシングユニット２８であって、データセットのそれぞれは、異なる失効時点を有する、キャッシングユニットと、
を更に有する。
【００４７】
更には、図３に示されているように、分割ユニット２７は、
データリソースが、固定されたデータを提示するための第１ページである際に、第１ページのページレイアウトに従って、第１ページ内に含まれている且つデータベースから取得されるデータを少なくとも２つのデータセットに分割するように構成された第１分割モジュール２７１と、
データリソースが、条件クエリ機能を有する第２ページである際に、第２ページが関与しているクエリ条件の組合せに従って、第２ページ内に含まれている且つデータベースから取得されるデータを少なくとも２つのデータセットに分割するように構成された第２分割モジュール２７２であって、第２ページは、クエリ条件の複数の組を有し、クエリ条件の１つの組に対応する結果データは、データセットであり、且つ、クエリ条件の１つの組は、少なくとも１つのクエリ条件を有する、第２分割モジュールと、
を有する。
【００４８】
更には、判定ユニット２２は、データ要求に対応するデータセットの残存有効キャッシュ持続時間が更新閾値を上回っているかどうかを判定するように構成されている。
【００４９】
装置実施形態は、上述の方法実施形態に対応している。読解を促進するべく、装置実施形態は、上述の方法実施形態における詳細事項を１つずつ反復してはいない。但し、本実施形態における装置は、上述の方法実施形態におけるすべての内容に対応し得ることに留意されたい。
【００５０】
データキャッシング装置は、プロセッサ及びメモリを有し、上述の確認ユニット、判定ユニット、更新ユニット、及びこれらに類似したものは、いずれも、メモリ内においてプログラムユニットとして保存されており、且つ、対応する機能は、メモリ内において保存されている上述のプログラムユニットの実行を通じて、プロセッサにより、実現される。
【００５１】
プロセッサは、コアを有し、且つ、コアは、メモリ内の対応するプログラムユニットを起動する。１つ又は複数のコアが提供されてもよく、且つ、キャッシュの失効に起因して、多数の要求を並行的にデータベースにアクセスさせるという問題点は、コアパラメータを調節することにより、軽減することができる。
【００５２】
メモリは、揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ：Random Access Memory）、並びに／又は、例えば、読み出し専用メモリ（ＲＯＭ：Read-Only Memory）又はフラッシュＲＡＭなどの、不揮発性メモリなどの、コンピュータ可読媒体を含むことができる。メモリは、少なくとも１つのメモリチップを有する。
【００５３】
本出願は、データ処理装置上において実行された際に、
クライアントによって送信されたデータ要求を受け取った後に、データ要求に対応するキャッシュデータの残存有効キャッシュ持続時間を判定するステップと、
残存有効キャッシュ持続時間が、予め設定された更新閾値を上回っているかどうかを判定するステップであって、残存有効キャッシュ持続時間は、正の数であり、且つ、更新閾値は、キャッシュデータの全体有効キャッシュ持続時間未満である、ステップと、
残存有効キャッシュ持続時間が更新閾値以下である場合に、キャッシュデータをデータベースを通じ更新するステップと、
という方法ステップのプログラムコードの初期化を実行するように適合されたコンピュータプログラムプロダクトを更に提供する。
【００５４】
上述のそれぞれの実施形態の説明は、個別の焦点を有する。一実施形態において詳細に記述されていない任意の部分について、その他の実施形態における関連する説明を参照することができる。
【００５５】
上述の実施形態における「第１の（first）」及び「第２の（second）」は、実施形態の利点又は欠点の通知ではなく、実施形態の弁別のために使用されていることを理解されたい。
【００５６】
本明細書において提供されているアルゴリズム及び提示は、本質的に、任意の特定のコンピュータ、仮想システム、又はその他の装置に関係付けられたものではない。又、本明細書における教示と共に、様々な汎用システムが使用されてもよい。このようなシステムを構築するべく必要とされる構造については、上述の説明により、明らかとなろう。これに加えて、本発明は、任意の特定のプログラミング言語を対象としたものではない。本明細書において記述されている本発明の内容を実装するべく、様々なプログラミング言語が使用されてもよく、且つ、特定の言語における上述の説明は、本発明の好ましい実装方式の開示を意図したものであることを理解されたい。
【００５７】
本明細書には、多数の例示用の詳細事項が記述されている。但し、本発明の実施形態は、これらの例示用の詳細を伴うことなしに、実装され得ることを理解されたい。いくつかの例においては、本発明の理解を混乱させることがないように、既知の方法、構造、及び技術については、詳述されていない。
【００５８】
同様に、本開示を単純化べく、且つ、様々な発明の態様の１つ又は複数についての理解を支援するべく、本発明の特徴は、本発明の例示用の実施形態の上述の説明においては、しばしば、単一の実施形態において、或いは、単一の実施形態の図において、或いは、単一の実施形態の説明において、グループ化されていることを理解されたい。但し、開示された方法は、相応する意図を有するものとして解釈してはならず、即ち、本発明は、それぞれの請求項において明示的に記述されているものを上回る特徴を特許請求している。更に詳しくは、添付の請求項において示されているように、発明の態様は、以上において開示されている個々の実施形態のすべての特徴よりも少ない。従って、「発明を実施するための形態」と一貫性を有する請求項は、これにより、「発明を実施するための形態」において明示的に包含されており、この場合に、それぞれの請求項は、本発明の別個の実施形態として機能する。
【００５９】
当業者は、一実施形態における装置内のモジュールは、実施形態とは異なる１つ又は複数の装置内において、自己適応的に変更及び構成され得ることを理解するであろう。一実施形態におけるモジュール、ユニット、又はコンポーネントは、１つのモジュール、ユニット、又はコンポーネントとして組み合わせることが可能であり、且つ、これに加えて、これらは、複数のサブモジュール、サブユニット、又はサブコンポーネントに分割することもできる。このような特徴及び／又はプロセス又はユニットにおける少なくともいくつかの相互的な排他を除いて、（添付の請求項、要約、及び図面を含む）本説明において開示されているすべての特徴のみならず、このような方式によって開示されている任意の方法又は装置のすべてのプロセス又はユニットは、任意の組合せにおいて組み合わせることができる。（添付図面、要約、及び図面を含む）本明細書において開示されているそれぞれの特徴は、そうではない旨が明示的に記述されていない限り、同一の、等価な、又は類似の、目的を提供する代替特徴によって置換することができる。
【００６０】
これに加えて、当業者は、本明細書において記述されているいくつかの実施形態は、その他の実施形態に含まれている、その他の特徴ではない、いくつかの特徴を有するが、異なる実施形態の特徴の組合せは、それが本発明の範囲に含まれており、且つ、異なる実施形態が形成される、ことを意味していることを理解するであろう。例えば、添付の請求項においては、任意の組合せ方式により、特許請求されている実施形態の任意のものを使用することができる。
【００６１】
本発明のすべてのコンポーネント実施形態は、ハードウェア、１つ又は複数のプロセッサ上において稼働するソフトウェアモジュール、或いは、これらの組合せとして実装することができる。当業者は、本発明が、本明細書において記述されている方法のいくつか又はすべてを実行するための装置又は（例えば、コンピュータプログラム及びコンピュータプログラムプロダクトなどの）装置プログラムとして実装され得ることを理解するであろう。本発明を実装するためのこのようなプログラムは、コンピュータ可読媒体上において保存することが可能であり、或いは、１つ又は複数の信号の形態を有することもできる。このような信号は、インターネット上のウェブサイトからダウンロードすることによって取得することが可能であり、搬送波信号によって提供することが可能であり、或いは、任意のその他の形態において提供することもできる。
【００６２】
上述の実施形態は、本発明の限定の代わりに、本発明の説明のために使用されていることに留意されたい。更には、当業者は、添付の請求項の範囲を逸脱することなしに、代替実施形態を設計することもできる。請求項においては、括弧内の任意の参照符号は、請求項に対する限定として使用されているものではない。「有する（comprising）」という用語は、請求項内において列挙されてはいない要素又はステップを排除するものではない。要素の前の「１つの（one）」又は「一片（one piece）」という用語は、複数のこのような要素の存在を排除するものではない。本発明は、いくつかの異なる要素及び適切なプログラミングを有するコンピュータを有するハードウェアにより、実装することができる。いくつかの装置を列挙した装置請求項においては、これらの装置のいくつかは、同一のハードウェア品目を通じて実施することができる。第１の（first）、第２の（second）、第３の（third）、並びにこれに類似したものなどの用語の使用は、なんらの順序をも示すものではない。これらの用語は、名称として解釈されたい。
【図１】
2019512819.tif 000003
【図２】
2019512819.tif 000004
【図３】
2019512819.tif 000005
【国際調査報告】
2019512819.tif 000006
2019512819.tif 000007
2019512819.tif 000008
2019512819.tif 000009