(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022141957
(43)【公開日】2022-09-29
(54)【発明の名称】メタデータのスナップショット方法及びそのスナップ装置
(51)【国際特許分類】
G06F 16/11 20190101AFI20220921BHJP
G06F 16/17 20190101ALI20220921BHJP
【FI】
G06F16/11
G06F16/17 200
【審査請求】有
【請求項の数】15
【出願形態】OL
【公開請求】
(21)【出願番号】P 2022120757
(22)【出願日】2022-07-28
(31)【優先権主張番号】202110865000.8
(32)【優先日】2021-07-29
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100118913
【弁理士】
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【弁理士】
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【弁理士】
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】シー, テン
(72)【発明者】
【氏名】ヂャン, ガン
(57)【要約】 (修正有)
【課題】データベースのメタデータの管理ノードのスナップショットデータを迅速、且つ、効率的に取得する方法、装置及び記憶媒体を提供する。
【解決手段】方法は、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成し、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内のメタデータが更新される度に、更新されたメタデータに基づいて二分探索木を更新し、更新された二分探索木毎に更新バージョン番号を生成し、次のスナップショット時刻になったことに応答して、現在のスナップショット時刻と次のスナップショット時刻との間に生成された全てのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、スナップショット情報を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、前記現在のスナップショット時刻の第2の基本バージョン番号を生成するステップと、
前記現在のスナップショット時刻から次のスナップショット時刻までの間に、前記データベース内のメタデータが更新される度に、更新されたメタデータに基づいて前記二分探索木を更新し、前記第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成するステップと、
前記次のスナップショット時刻になったことに応答して、前記現在のスナップショット時刻と前記次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、前記現在のスナップショット時刻に対応するスナップショット情報を生成するステップと、
を含む、メタデータのスナップショット方法。
【請求項2】
前記第2の基本バージョン番号に基づいて、更新された前記二分探索木ごとに更新バージョン番号を生成するステップが、
メタデータが更新される度に、前記現在のスナップショット時刻と前記次のスナップショット時刻との間の現在の更新回数を取得するステップと、
前記第2の基本バージョン番号及び前記現在の更新回数に基づいて、更新された前記二分探索木の更新バージョン番号を生成するステップと、
を含む、請求項1に記載のメタデータのスナップショット方法。
【請求項3】
前記現在のスナップショット時刻のスナップショット情報を生成するステップの後に、
前記現在のスナップショット時刻と前記次のスナップショット時刻との間に生成された前記更新バージョン番号に対応する二分探索木を削除するステップを含む、請求項1に記載のメタデータのスナップショット方法。
【請求項4】
前記現在のスナップショット時刻のスナップショット情報を生成するステップの後に、
前記データベースに障害が発生したことに応答して、前記データベースの、復元する必要のある目標バージョン番号を取得するステップと、
前記目標バージョン番号を索引とし、前記データベースの候補スナップショット情報から、前記目標バージョン番号にマッチングする目標スナップショット情報を索引付けするステップと、
前記目標スナップショット情報に基づいてメタデータ復元を行うステップと、
を含む、請求項1に記載のメタデータのスナップショット方法。
【請求項5】
前記更新されたメタデータに基づいて前記二分探索木を更新するステップが、
前記メタデータが新しく追加されたメタデータであることに応答して、前記新しく追加されたメタデータを前記二分探索木の1つのノードとして更新するステップと、
前記メタデータが修正されたメタデータであることに応答して、前記二分探索木から前記修正されたメタデータに対応する第1のノードを決定し、前記第1のノードのマッピング内容を更新するステップと、
前記メタデータが削除されたメタデータであることに応答して、前記二分探索木から前記削除されたメタデータに対応する第2のノードを決定し、前記二分探索木から第2のノードを削除するステップと、
を含む、請求項1に記載のメタデータのスナップショット方法。
【請求項6】
前記新しく追加されたメタデータを前記二分探索木の1つのノードとして更新するステップが、
前記新しく追加されたメタデータのキー値に基づいて、前記二分探索木における前記新しく追加されたメタデータの分岐方向を決定し、前記分岐方向に従って前記二分探索木を更新するステップを含む、請求項5に記載のメタデータのスナップショット方法。
【請求項7】
現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、前記現在のスナップショット時刻の第2の基本バージョン番号を生成するように構成される取得モジュールと、
前記現在のスナップショット時刻から次のスナップショット時刻までの間に、前記データベース内のメタデータが更新される度に、前記更新されたメタデータに基づいて前記二分探索木を更新し、前記第2の基本バージョン番号に基づいて、更新された前記二分探索木ごとに更新バージョン番号を生成するように構成される更新モジュールと、
前記次のスナップショット時刻になったことに応答して、前記現在のスナップショット時刻と前記次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、前記現在のスナップショット時刻に対応するスナップショット情報を生成するように構成される操作モジュールと、
を備える、メタデータのスナップショット装置。
【請求項8】
前記更新モジュールが、
メタデータが更新される度に、前記現在のスナップショット時刻と前記次のスナップショット時刻との間の現在の更新回数を取得し、
前記第2の基本バージョン番号及び前記現在の更新回数に基づいて、更新された前記二分探索木の更新バージョン番号を生成するように構成される、請求項7に記載のメタデータのスナップショット装置。
【請求項9】
前記操作モジュールが、
前記現在のスナップショット時刻と前記次のスナップショット時刻との間に生成された前記更新バージョン番号に対応する二分探索木を削除するように構成される、請求項7に記載のメタデータのスナップショット装置。
【請求項10】
前記操作モジュールが、
前記データベースに障害が発生したことに応答して、前記データベースの、復元する必要のある目標バージョン番号を取得し、
前記目標バージョン番号を索引とし、前記データベースの候補スナップショット情報から、前記目標バージョン番号にマッチングする目標スナップショット情報を索引付けし、
前記目標スナップショット情報に基づいてメタデータ復元を行うように構成される、請求項7から9のいずれか一項に記載のメタデータのスナップショット装置。
【請求項11】
前記更新モジュールが、
前記メタデータが新しく追加されたメタデータであることに応答して、前記新しく追加されたメタデータを前記二分探索木の1つのノードとして更新し、
前記メタデータが修正されたメタデータであることに応答して、前記二分探索木から前記修正されたメタデータに対応する第1のノードを決定し、前記第1のノードのマッピング内容を更新し、
前記メタデータが削除されたメタデータであることに応答して、前記二分探索木から前記削除されたメタデータに対応する第2のノードを決定し、前記二分探索木から第2のノードを削除するように構成される、請求項7から9のいずれか一項に記載のメタデータのスナップショット装置。
【請求項12】
前記更新モジュールが、
前記新しく追加されたメタデータのキー値に基づいて、前記二分探索木における前記新しく追加されたメタデータの分岐方向を決定し、前記分岐方向に従って前記二分探索木を更新するように構成される、請求項11に記載のメタデータのスナップショット装置。
【請求項13】
少なくとも1つのプロセッサと、
該少なくとも1つのプロセッサと通信可能に接続されるメモリと、
を備え、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される、前記少なくとも1つのプロセッサが請求項1から6のいずれか一項に記載のメタデータのスナップショット方法を実行できる電子機器。
【請求項14】
コンピュータに請求項1から6のいずれか一項に記載のメタデータのスナップショット方法を実行させるためのコンピュータ命令を記憶した、非一時的コンピュータ読み取り可能な記憶媒体。
【請求項15】
プロセッサによって実行される場合、請求項1から6のいずれか一項に記載のメタデータのスナップショット方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クラウドコンピューティング技術の分野に関し、具体的にはクラウドストレージ技術の分野に関し、特にメタデータのスナップショット方法及びそのスナップ装置に関する。
【背景技術】
【0002】
関連技術では、データベースのメタデータの管理ノードをスナップショットする際に、通常、状態データをストレージに記憶して、読み取り/書き込みロックをかけてデータをコピーして、非同期データを永続化してスナップショットファイルを生成する方法が用いられるが、この方法では、スナップショットデータの量が大きい時、ストレージが閉塞しやすく、且つストレージのデータのコピー時間が長くなる。
【発明の概要】
【0003】
本開示は、メタデータのスナップショット方法、メタデータのスナップショット装置、電子機器及び記憶媒体を提供する。
【0004】
本開示の第1の態様によれば、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、前記現在のスナップショット時刻の第2の基本バージョン番号を生成するステップと、前記現在のスナップショット時刻から次のスナップショット時刻までの間に、前記データベース内のメタデータが更新される度に、前記更新されたメタデータに基づいて前記二分探索木を更新し、前記第2の基本バージョン番号に基づいて、更新された前記二分探索木ごとに更新バージョン番号を生成するステップと、前記次のスナップショット時刻になったことに応答して、前記現在のスナップショット時刻と前記次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、前記現在のスナップショット時刻に対応するスナップショット情報を生成するステップとを含む、メタデータのスナップショット方法が提供される。
【0005】
本出願によって提供されるメタデータのスナップショット方法は、マルチバージョン同時実行制御の二分探索木という方式を用いることにより、前のバージョンのデータに影響することなく、データを修正することができるとともに、データの精度及び一致性を確保し、スナップショットデータを迅速且つ効率的に取得し、ユーザが知らないうちに完成することができる。
【0006】
本開示の第2の態様によれば、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、前記現在のスナップショット時刻の第2の基本バージョン番号を生成するように構成される取得モジュールと、前記現在のスナップショット時刻から次のスナップショット時刻までの間に、前記データベース内のメタデータが更新される度に、前記更新されたメタデータに基づいて前記二分探索木を更新し、前記第2の基本バージョン番号に基づいて、更新された前記二分探索木ごとに更新バージョン番号を生成するように構成される更新モジュールと、前記次のスナップショット時刻になったことに応答して、前記現在のスナップショット時刻と前記次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、前記現在のスナップショット時刻に対応するスナップショット情報を生成するように構成される操作モジュールとを備える、メタデータのスナップショット装置が提供される。
【0007】
本出願によって提供されるメタデータのスナップショット装置は、マルチバージョン同時実行制御の二分探索木という方式を用いることにより、前のバージョンのデータに影響することなく、データを修正することができるとともに、データの精度及び一致性を確保し、スナップショットデータを迅速且つ効率的に取得し、ユーザが知らないうちに完成することができる。
【0008】
本開示の第3の態様によれば、少なくとも1つのプロセッサと、該少なくとも1つのプロセッサと通信可能に接続されるメモリとを備え、前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶されており、前記命令が前記少なくとも1つのプロセッサによって実行される場合、前記少なくとも1つのプロセッサが上記メタデータのスナップショット方法を実行できる、電子機器が提供される。
【0009】
本開示の第4の態様によれば、コンピュータに上記メタデータのスナップショット方法を実行させるためのコンピュータ命令を記憶した、非一時的コンピュータ読み取り可能な記憶媒体が提供される。
【0010】
本開示の第5の態様によれば、プロセッサによって実行される場合、上記メタデータのスナップショット方法を実現するコンピュータプログラムが提供される。
【0011】
なお、この概要部分で説明された内容は本開示の実施例の肝心又は重要な特徴を特定することを意図するものではなく、本開示の範囲を限定することを意図するものでもないことを理解されたい。本開示の他の特徴は以下の明細書によって容易に理解される。
【図面の簡単な説明】
【0012】
図面は本解決案をよりよく理解するためのものであり、本開示を限定するものではない。
【
図1】本開示の例示的な一実施例に係るメタデータのスナップショット方法の概略図である。
【
図2A】本開示の例示的な一実施例に係る現在のスナップショット時刻の第2の基本バージョン番号がV2である場合の概略図である。
【
図2B】本開示の例示的な一実施例に係る現在のスナップショット時刻のバージョン番号がV2-1である場合の概略図である。
【
図3】本開示の例示的な一実施例に係る更新された二分探索木ごとにバージョン番号を更新する概略図である。
【
図4】本開示の例示的な一実施例に係る目標スナップショット情報に基づいてメタデータ復元を行うステップの概略図である。
【
図5】本開示の例示的な一実施例に係る更新されたメタデータに基づいて二分探索木を更新するステップの概略図である。
【
図6】本開示の例示的な一実施例に係るメタデータのスナップショット方法の概略図である。
【
図7】本開示の例示的な一実施例に係るメタデータのスナップショット装置の概略図である。
【
図8】本開示の例示的な一実施例に係る電子機器の概略図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら本開示の例示的な実施例を説明し、ここで、理解を助けるために、本開示の実施例の様々な詳細が含まれており、それらを単なる例示的なものと見なすべきある。したがって、当業者であれば、本開示の範囲と精神から逸脱しない限り、ここで説明された実施例に対して様々な修正と変更を行うことができる。同様に、明確且つ簡潔にするために、以下の説明では、公知機能及び構造への説明が省略されている。
【0014】
クラウドコンピューティング(cloud computing)は、分散コンピューティングの一種であり、ネットワークの「クラウド」を利用して、巨大なデータコンピューティング処理プログラムを無数の小さいプログラムに分解した後、複数のサーバで構成されるシステムによりこれらの小さいプログラムを処理分析して結果を得てユーザに返すことを指す。
【0015】
クラウドストレージは、オンラインストレージ(Cloud storage)のモードであり、即ち、専用サーバではなく、通常サードパーティによってホストされる複数の仮想サーバにデータを記憶する。
【0016】
図1は、本出願の実施例によって提供されるメタデータのスナップショット方法の例示的な実施形態であり、
図1に示すように、当該メタデータのスナップショット方法は、以下のS101~S103を含む。
【0017】
S101において、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成する。
【0018】
本出願の実施例では、マルチバージョン同時実行制御(Multi-Version Concurrency Control、MVCC)をサポートする二分探索木(Binary Search Tree)を用いてメタデータを記憶する。MVCCはマルチバージョン同時実行制御の方法であり、通常、データベース管理システムにおいてデータベースへの同時アクセスを実現し、プログラミング言語においてトランザクションストレージを実現する。二分探索木は1つの二分木で構成され、リンクリストデータ構造で表することができ、各ノードは1つのオブジェクトであり、一般に、データ内容と、子又は親を指すポインタプロパティとが含まれる。ある子ノード又は親ノードが存在しない場合、そのポインタプロパティ値はヌル(null)である。
【0019】
データベースにおける二分探索木の1つ前のスナップショット時刻のバージョン番号を第1の基本バージョン番号とし、スナップショット時刻になると、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成する。例えば、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号をV1として記述すれば、現在のスナップショット時刻の第2の基本バージョン番号をV2として記述する。
【0020】
選択可能に、スナップショット時刻は、予め設定された時刻であってもよいし、手動に開始されたスナップショット時刻であってもよい。
【0021】
S102において、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内のメタデータが更新される度に、更新されたメタデータに基づいて二分探索木を更新し、第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成する。
【0022】
本出願の実施例では、二分探索木のノードはメタデータである。メタデータは、中間データ、中継データとも呼ばれ、データを記述するためのデータであり、主にデータの属性を記述する情報であり、記憶位置、履歴データ、リソース検索、ファイル記録を示すなどの機能をサポートする。
【0023】
現在のスナップショット時刻から次のスナップショット時刻までの時間範囲内に、データベース内のメタデータが更新されると、更新されたメタデータに基づいて二分探索木を更新する。選択可能に、更新は、メタデータの追加、メタデータの修正、及びメタデータの削除などであってもよい。
【0024】
二分探索木が更新される度に、現在のスナップショット時刻の第2の基本バージョン番号に基づいて、二分探索木の対応するバージョン番号を更新する。例えば、
図2A及び
図2Bは、現在のスナップショット時刻の第2の基本バージョン番号がV2である場合の概略図であり、
図2Aに示すように、二分探索木は1、2、3、4、5、8の合計6つのノードを有し、現在のスナップショット時刻から次のスナップショット時刻までの時間範囲内に、データベース内のノード5のメタデータが修正された場合、二分探索木を更新し、修正されたノードをノード6で表し、更新された二分探索木は
図2Bに示すとおりであり、更新された二分探索木をV2-1として記述する。現在のスナップショット時刻から次のスナップショット時刻までの時間範囲内に、データベース内の1つのメタデータが修正された場合、二分探索木を更新し、更新された二分探索木をV2-2として記述する。
【0025】
同様に、現在のスナップショット時刻の第2の基本バージョン番号がV3である場合、現在のスナップショット時刻から次のスナップショット時刻までの時間範囲内に、データベースに1つのメタデータが新しく追加されると、二分探索木を更新し、更新された二分探索木をV3-1として記述する。現在のスナップショット時刻から次のスナップショット時刻までの時間範囲内に、データベースの1つのメタデータが修正された場合、二分探索木を更新し、更新された二分探索をV3-2として記述する。
【0026】
S103において、次のスナップショット時刻になったことに応答して、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成する。
【0027】
例えば、現在のスナップショット時刻の第2の基本バージョン番号がV2である場合、その次のスナップショット時刻に対応する基本バージョン番号がV3になり、次のスナップショット時刻になると、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、即ち、V2、V2-1、V2-2…V2-Nに対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成する。
【0028】
同様に、現在のスナップショット時刻の第2の基本バージョン番号がV3である場合、その次のスナップショット時刻に対応する基本バージョン番号がV4になり、次のスナップショット時刻になると、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、即ち、V3、V3-1、V3-2…V3-Nに対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成する。
【0029】
スナップショット情報には、コピーグループのメタデータ情報、コピーのメタデータ情報、トランザクションのメタデータ情報など、多くのメタデータ情報が含まれる。データベースに障害が発生した場合、スナップショット情報に含まれるこれらのメタデータ情報に基づいてその時点のデータベースの状態を復元することができる。
【0030】
本出願の実施例に係るメタデータのスナップショット方法は、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成し、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内のメタデータが更新される度に、更新されたメタデータに基づいて二分探索木を更新し、第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成し、次のスナップショット時刻になったことに応答して、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成する。本出願は、マルチバージョン同時実行制御の二分探索木という方式を用いることにより、前のバージョンのデータに影響することなく、データを修正することができるとともに、データの精度及び一致性を確保し、スナップショットデータを迅速且つ効率的に取得し、ユーザが知らないうちに完成することができる。
【0031】
図3は本出願の実施例によって提供されるメタデータのスナップショット方法の例示的な実施形態であり、
図3に示すように、上記実施例のもとに、第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成するステップは、以下のS301~S302を含む。
【0032】
S301において、メタデータが更新される度に、現在のスナップショット時刻と次のスナップショット時刻との間の現在の更新回数を取得する。
【0033】
データベース内のメタデータが更新される度に、現在のスナップショット時刻と次のスナップショット時刻との間の現在の更新回数を取得する。例えば、現在のスナップショット時刻に、メタデータの追加が一回あると、これを一回目の更新とし、さらにメタデータの修正が一回あると、これを二回目の更新とし、さらにメタデータの削除が一回あると、これを三回目の更新とし、…その後も同様である。
【0034】
S302において、第2の基本バージョン番号及び現在の更新回数に基づいて、更新された二分探索木の更新バージョン番号を生成する。
【0035】
第2の基本バージョン番号及び現在の更新回数に基づいて、更新された二分探索木の更新バージョン番号を生成する。例えば、現在のスナップショット時刻に対応する第2の基本バージョン番号がV2であり、現在の更新回数が三回目の更新である場合、更新された二分探索木の更新バージョン番号はV2-3として記述することができ、現在の更新回数がN回目の更新である場合、更新された二分探索木の更新バージョン番号はV2-Nとして記述することができる。
【0036】
同様に、現在のスナップショット時刻に対応する第2の基本バージョン番号がV3であり、現在の更新回数が三回目の更新である場合、更新された二分探索木の更新バージョン番号はV3-3として記述することができ、現在の更新回数がN回目の更新である場合、更新された二分探索木の更新バージョン番号はV3-Nとして記述することができる。
【0037】
本出願の実施例は、第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成し、これにより、更新する度に生成されたバージョン番号が順番に配列されて、後続のスナップショット取得の際に、スナップショットデータを迅速かつ効率的に取得することができる。
【0038】
図4は本出願の実施例によって提供されるメタデータのスナップショット方法の例示的な実施形態であり、
図4に示すように、上記実施例のもとに、現在のスナップショット時刻のスナップショット情報を生成するステップの後に、以下のS401~S403をさらに含む。
【0039】
S401において、データベースに障害が発生したことに応答して、データベースの、復元する必要のある目標バージョン番号を取得する。
【0040】
現在のスナップショット時刻のスナップショット情報が生成された後にデータベースに障害が発生した場合、データベースの、復元する必要のある目標バージョン番号を取得する。例えば、データベースのバージョン番号V2-3において障害が発生した場合、データベースの、復元する必要のある目標バージョン番号はバージョン番号V2-3である。
【0041】
S402において、目標バージョン番号を索引とし、データベースの候補スナップショット情報から、目標バージョン番号にマッチングする目標スナップショット情報を索引付けする。
【0042】
データベースによって取得られたすべてのスナップショット情報を候補スナップショット情報とし、バージョン番号を索引とし、データベースの候補スナップショット情報から、目標バージョン番号にマッチングする候補スナップショット情報を目標スナップショット情報として索引付けする。引き続き上記復元する必要のある目標バージョン番号がバージョン番号V2-3であることを例として、バージョン番号V2-3を索引とし、データベースの候補スナップショット情報から、目標バージョン番号にマッチングする候補スナップショット情報であるV2、V2-1、V2-2、V2-3…V2-Nを索引付けし、V2、V2-1、V2-2、V2-3…V2-Nを目標スナップショット情報とする。
【0043】
S403において、目標スナップショット情報に基づいてメタデータ復元を行う。
【0044】
上記取得された目標スナップショット情報に基づいて、目標バージョン番号に対応するメタデータを復元する。
【0045】
選択可能に、ストレージを節約するために、現在のスナップショット時刻に対応するスナップショット情報を生成した後、現在のスナップショット時刻と次のスナップショット時刻との間に生成された更新バージョン番号に対応する二分探索木を削除し、生成されたスナップショット情報のみを保持することができる。例えば、上記V2、V2-1、V2-2…V2-Nに対してスナップショット操作を行って、現在のスナップショット時刻に対応するスナップショット情報を生成した後、V2、V2-1、V2-2…V2-Nに対応する二分探索木を削除することができる。
【0046】
本出願の実施例は、データベースに障害が発生した場合、目標バージョン番号に基づいてスナップショット情報を索引付けし、メタデータを復元することができ、メタデータを復元する効率を向上させ、メタデータを復元する時間を短縮することができる。
【0047】
図5は本出願の実施例によって提供されるメタデータのスナップショット方法の例示的な実施形態であり、
図5に示すように、上記実施例のもとに、更新されたメタデータに基づいて二分探索木を更新するステップは、以下のS501~S504を含む。
【0048】
S501において、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内の更新されたメタデータを取得する。
【0049】
現在のスナップショット時刻から次のスナップショット時刻までの時間範囲内に、データベース内のメタデータが更新されると、データベース内の更新されたメタデータを取得する。
【0050】
S502において、メタデータが新しく追加されたメタデータであることに応答して、追加されたメタデータを二分探索木の1つのノードとして更新する。
【0051】
メタデータが新しく追加された場合、追加されたメタデータのキー値に基づいて、二分探索木における新しく追加されたメタデータの分岐方向を決定し、分岐方向に従って、新しく追加されたメタデータを二分探索木の1つのノードとして更新する。
【0052】
S503において、メタデータが修正されたメタデータであることに応答して、二分探索木から修正されたメタデータに対応する第1のノードを決定し、第1のノードのマッピング内容を更新する。
【0053】
既存のメタデータが修正された場合、二分探索木から修正されたメタデータに対応するノードを第1のノードとして決定し、修正されたメタデータに基づいて第1のノードのマッピング内容を更新する。
【0054】
S504において、メタデータが削除されたメタデータであることに応答して、二分探索木から削除されたメタデータに対応する第2のノードを決定し、二分探索木から第2のノードを削除する。
【0055】
既存のメタデータが削除された場合、二分探索木から削除されたメタデータに対応するノードを第2のノードとして決定し、二分探索木から第2のノードを削除する。
【0056】
本出願の実施例は、メタデータの追加、修正、削除という3つの場合を例として、二分探索木をそれぞれ更新し、これにより、二分探索木はメタデータの変化をよりよく反映することができ、より柔軟かつ正確である。
【0057】
図6は本出願の実施例によって提供されるメタデータのスナップショット方法の例示的な実施形態の全体的な概略図であり、
図6に示すように、当該メタデータのスナップショット方法は以下のS601~S611を含む。
【0058】
S601において、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成する。
【0059】
S602において、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内の更新されたメタデータを取得する。
【0060】
S603において、メタデータが新しく追加されたメタデータであることに応答して、新しく追加されたメタデータを二分探索木の1つのノードとして更新する。
【0061】
S604において、メタデータが修正されたメタデータであることに応答して、二分探索木から修正されたメタデータに対応する第1のノードを決定し、第1のノードのマッピング内容を更新する。
【0062】
S605において、メタデータが削除されたメタデータであることに応答して、二分探索木から削除されたメタデータに対応する第2のノードを決定し、二分探索木から第2のノードを削除する。
【0063】
ステップS603~S605について、すでに上記実施例において具体的に説明されたため、ここでは詳しい説明を省略する。
【0064】
S606において、メタデータが更新される度に、現在のスナップショット時刻と次のスナップショット時刻との間の現在の更新回数を取得する。
【0065】
S607において、第2の基本バージョン番号及び現在の更新回数に基づいて、更新された二分探索木の更新バージョン番号を生成する。
【0066】
S608において、次のスナップショット時刻になったことに応答して、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成する。
【0067】
S609において、データベースに障害が発生したことに応答して、データベースの、復元する必要のある目標バージョン番号を取得する。
【0068】
S610において、目標バージョン番号を索引とし、データベースの候補スナップショット情報から、目標バージョン番号にマッチングする目標スナップショット情報を索引付けする。
【0069】
S611において、目標スナップショット情報に基づいてメタデータ復元を行う。
【0070】
ステップS606~S611について、すでに上記実施例において具体的に説明されたため、ここでは詳しい説明を省略する。
【0071】
本出願の実施例に係るメタデータのスナップショット方法は、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成し、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内のメタデータが更新される度に、更新されたメタデータに基づいて二分探索木を更新し、第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成し、次のスナップショット時刻になったことに応答して、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成する。本出願は、mvccバージョン制御の二分探索木という方式を用いることにより、前のバージョンのデータに影響することなく、データを修正することができるとともに、データの精度及び一致性を確保し、スナップショットデータを迅速且つ効率的に取得することができる。
【0072】
図7は本出願によって提供されるメタデータのスナップショット装置の概略図であり、
図7に示すように、当該メタデータのスナップショット装置700は、取得モジュール701、更新モジュール702、及び操作モジュール703を備える。
【0073】
取得モジュール701は、現在のスナップショット時刻になったことに応答して、データベースにおける二分探索木の1つ前のスナップショット時刻の第1の基本バージョン番号に基づいて、現在のスナップショット時刻の第2の基本バージョン番号を生成するように構成される。
【0074】
更新モジュール702は、現在のスナップショット時刻から次のスナップショット時刻までの間に、データベース内のメタデータが更新される度に、更新されたメタデータに基づいて二分探索木を更新し、第2の基本バージョン番号に基づいて、更新された二分探索木ごとに更新バージョン番号を生成するように構成される。
【0075】
操作モジュール703は、次のスナップショット時刻になったことに応答して、現在のスナップショット時刻と次のスナップショット時刻との間に生成されたすべてのバージョン番号に対応する二分探索木に対してスナップショット操作を行い、現在のスナップショット時刻に対応するスナップショット情報を生成するように構成される。
【0076】
さらに、更新モジュール702はさらに、メタデータが更新される度に、現在のスナップショット時刻と次のスナップショット時刻との間の現在の更新回数を取得し、第2の基本バージョン番号及び現在の更新回数に基づいて、更新された二分探索木の更新バージョン番号を生成するように構成される。
【0077】
さらに、操作モジュール703はさらに、現在のスナップショット時刻と次のスナップショット時刻との間に生成された更新バージョン番号に対応する二分探索木を削除するように構成される。
【0078】
さらに、操作モジュール703はさらに、データベースに障害が発生したことに応答して、データベースの、復元する必要のある目標バージョン番号を取得し、目標バージョン番号を索引とし、データベースの候補スナップショット情報から、目標バージョン番号にマッチングする目標スナップショット情報を索引付けし、目標スナップショット情報に基づいてメタデータ復元を行う。
【0079】
さらに、更新モジュール702はさらに、メタデータが新しく追加されたメタデータであることに応答して、新しく追加されたメタデータを二分探索木の1つのノードとして更新し、メタデータが修正されたメタデータであることに応答して、二分探索木から修正されたメタデータに対応する第1のノードを決定し、第1のノードのマッピング内容を更新し、メタデータが削除されたメタデータであることに応答して、二分探索木から削除されたメタデータに対応する第2のノードを決定し、二分探索木から第2のノードを削除するように構成される。
【0080】
さらに、更新モジュール702はさらに、新しく追加されたメタデータのキー値に基づいて、二分探索木における新しく追加されたメタデータの分岐方向を決定し、分岐方向に従って二分探索木を更新するように構成される。
【0081】
本開示の実施例に基づいて、本開示は、電子機器、読み取り可能な記憶媒体及びコンピュータプログラム製品をさらに提供する。
【0082】
図8は本開示の例示的な実施例を実施可能な電子機器800の例示的なブロック図を示す。電子機器800はラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを目的とする。電子機器800は、パーソナルデジタルプロセッサ、携帯電話、スマートフォン、ウェアラブルデバイス、他の類似するコンピューティングデバイスなどの様々な形態のモバイル装置を表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は単なる例であり、本明細書の説明及び/又は要求される本出願の実現を制限することを意図したものではない。
【0083】
図8に示すように、電子機器800は、リードオンリーメモリ(ROM)802に記憶されるコンピュータプログラム又は記憶ユニット807からランダムアクセスメモリ(RAM)803内にロードされるコンピュータプログラムに基づいて様々な適切な動作と処理を実行できる計算ユニット801を備える。RAM 803は、電子機器800の操作に必要な様々なプログラム及びデータを含むことができる。計算ユニット801、ROM 802及びRAM 803はバスを介して804互いに接続される。入力/出力(I/O)インターフェース805は同様にバス804に接続される。
【0084】
キーボード、マウスなどの入力ユニット806と、各種類のタイプのモニタ、スピーカーなどの出力ユニット807と、磁気ディスク、光ディスクなどの記憶ユニット808と、ネットワークカード、モデム、無線通信送受信機などの通信ユニット809とを備える電子機器800の複数の部品はI/Oインターフェース805に接続される。通信ユニット809は、電子機器800がインターネットなどのコンピュータネットワーク及び/又は様々なテレコムネットワークを介して他の機器と情報/データを交換することを許容する。
【0085】
計算ユニット801処理と計算能力を有する様々な汎用及び/又は専用処理コンポーネントであってもよい。計算ユニット801の一部の例は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、様々な専用の人工知能(AI)計算チップ、機械学習モデルアルゴリズムを実行する様々な計算ユニット、デジタル信号プロセッサ(DSP)、及び任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット801は以上で説明された各方法及び処理、例えば、メタデータのスナップショット方法を実行する。例えば、いくつかの実施例では、メタデータのスナップショット方法は、記憶ユニット808などの機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現することができる。一部の実施例では、コンピュータプログラムの一部又はすべてはROM 802及び/又は通信ユニット809を介して電子機器800にロード及び/又はインストールされる。コンピュータプログラムがRAM 803にロードされ且つ計算ユニット801によって実行される際に、上記で説明されたメタデータのスナップショット方法の1つ又は複数のステップを実行することができる。代替的に、他の実施例では、計算ユニット801は他の任意の適切な方法(例えば、ファームウェアを介して)を介して、メタデータのスナップショット方法を実行するように構成されてもよい。
【0086】
本明細書の上述したシステム及び技術の様々な実施形態はデジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施されてもよく、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを備えるプログラム可能なシステムで実行及び/又は解釈することができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
【0087】
本出願の方法を実行するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。これらのプログラムコードは、プロセッサ又がコントローラによって実行された際に、フローチャート及び/又はブロック図によって規定された機能/動作が実施されるように、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供されてもよい。プログラムコードは、完全に機械上で実行され、部分的に機械上で実行され、スタンドアロンソフトウェアパッケージとして、部分的に機械上で実行され、かつ部分的にリモート機械上で実行され、又は完全にリモート機械又はサーバ上で実行されてもよい。
【0088】
本出願の文脈では、機械読み取り可能な媒体は、命令実行システム、装置、またはデバイスによって使用されたり、又は命令実行システム、装置、またはデバイスと組み合わせて使用されたりするプログラムを含むか、又は記憶できる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体または機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、又は半導体システム、装置又はデバイス、または上記内容の任意の適切な組み合わせを備えることができるが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のラインに基づく電気接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、または上記内容のいずれかの適切な組み合わせを含む。
【0089】
ユーザとのインタラクションを提供するために、ここで説明されたシステム及び技術をコンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)、並びにキーボードとポインティングデバイス(例えば、マウス又はトラックボール)を有し、ユーザは、当該キーボード及び当該ポインティングデバイスを介して入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力または、触覚入力とを含む)でユーザからの入力を受信することができる。
【0090】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを備えるコンピューティングシステム(例えば、データサーバとして)、又はミドルウェアコンポーネントを備えるコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを備えるコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されたシステム及び技術の実施形態とインタラクションを行う)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを備えるコンピューティングシステムで実施することができる。任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、及びインターネットを含む。
【0091】
コンピュータシステムは、クライアントとサーバを備えることができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、分散システムのサーバであってもよく、或いはブロックチェーンと組み合わせたサーバであってもよい。
【0092】
なお、上記様々な形式のフローを用いて、ステップを並べ替え、追加又は削除することができる。例えば、本発明開示に記載される各ステップは、本開示で開示された技術案の所望の結果を実現できる限り、並列的に実行されても良いし、順次実行されてもよく、異なる順序で実行されてもよいが、本明細書では限定されない。
【0093】
本開示の技術案では、関わるユーザ個人情報の収集、記憶、使用、加工、伝送、提供及び開示などの処理は、いずれも関連する法規制の規定に合致し、かつ公序良俗に反しない。
【0094】
上記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者であれば、設計要件や他の要因に応じて、様々な修正、組み合せ、一部の組み合せ及び代替を行うことができることを理解されたい。本開示の精神及び原則内で行われる修正、同等の置き換え及び改善などは、いずれも本開示の保護範囲内に含まれるべきである。