IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 京▲東▼科技信息技▲術▼有限公司の特許一覧 ▶ 京▲東▼科技控股股▲フン▼有限公司の特許一覧

<>
  • 特表-データ読み書き方法及び装置 図1
  • 特表-データ読み書き方法及び装置 図2
  • 特表-データ読み書き方法及び装置 図3
  • 特表-データ読み書き方法及び装置 図4
  • 特表-データ読み書き方法及び装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-28
(54)【発明の名称】データ読み書き方法及び装置
(51)【国際特許分類】
   G06F 16/27 20190101AFI20230721BHJP
【FI】
G06F16/27
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022581690
(86)(22)【出願日】2021-06-21
(85)【翻訳文提出日】2022-12-29
(86)【国際出願番号】 CN2021101193
(87)【国際公開番号】W WO2022001718
(87)【国際公開日】2022-01-06
(31)【優先権主張番号】202010623609.X
(32)【優先日】2020-06-30
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】522021952
【氏名又は名称】京▲東▼科技信息技▲術▼有限公司
(71)【出願人】
【識別番号】521507084
【氏名又は名称】京▲東▼科技控股股▲フン▼有限公司
(74)【代理人】
【識別番号】110000914
【氏名又は名称】弁理士法人WisePlus
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】唐振田
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
(57)【要約】
本発明はデータ読み書き方法及び装置を開示し、前記方法は、読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することと、前記ターゲットデータブロッククラスタ空間の開始アドレス、前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズ及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定することと、前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うことと、を含む。
【特許請求の範囲】
【請求項1】
指定された物理記憶空間が少なくとも1つのデータブロッククラスタ空間に分割され、各データブロッククラスタ空間が複数のブロックノードを含み、各ブロックノードが1つのデータブロックを記憶するための電子機器に応用されるデータ読み書き方法であって、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することと、
前記ターゲットデータブロッククラスタ空間の空間情報及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定し、前記ターゲットデータブロックがブロックチェーンを含むことと、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うことと、を含むデータ読み書き方法。
【請求項2】
前記データブロッククラスタ空間の空間情報を前記指定された記憶空間の指定位置に記録することを更に含み、前記空間情報はデータブロッククラスタ空間のクラスタインデックス、開始アドレス、データブロッククラスタ空間におけるブロックノードの空間サイズ、データブロッククラスタ空間に含まれるブロックノードの数を少なくとも含む請求項1に記載の方法。
【請求項3】
前記の読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することは、
ユーザーが指定したデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定し、又は、ユーザーが指定したデータブロッククラスタ空間が存在しない場合、予め指定されたデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定することを含む請求項1又は2に記載の方法。
【請求項4】
前記のターゲットデータブロッククラスタ空間の空間情報に基づいて前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定することは、
前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズと前記ターゲットデータブロックのブロックインデックスとの積を計算することと、
前記ターゲットデータブロッククラスタ空間の開始アドレスと前記積との和を計算し、計算結果を前記ターゲットデータブロックに対応するターゲット記憶アドレスとして決定することと、を含む請求項1~3のいずれか1項に記載の方法。
【請求項5】
各データブロッククラスタ空間に含まれるブロックノードの数が同じであり、又は各データブロッククラスタ空間に含まれるブロックノードの数が異なり、且つ
各データブロッククラスタ空間に含まれるブロックノードの空間サイズが同じである請求項1~4のいずれか1項に記載の方法。
【請求項6】
同一データブロッククラスタ空間におけるブロックノードは同一収集ポイントのデータブロックを記憶するためのものである請求項1~5のいずれか1項に記載の方法。
【請求項7】
指定された物理記憶空間が少なくとも1つのデータブロッククラスタ空間に分割され、各データブロッククラスタ空間が複数のブロックノードを含み、各ブロックノードが1つのデータブロックを記憶するための電子機器に応用されるデータ読み書き装置であって、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定するように構成される第1決定モジュールと、
前記ターゲットデータブロッククラスタ空間の開始アドレス、前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズ及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定するように構成される第2決定モジュールと、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うように構成される操作モジュールと、を備えるデータ読み書き装置。
【請求項8】
前記データブロッククラスタ空間の空間情報を前記指定された記憶空間の指定位置に記録するように構成される記録モジュールを更に備え、前記空間情報はデータブロッククラスタ空間のクラスタインデックス、開始アドレス、データブロッククラスタ空間におけるブロックノードの空間サイズ、データブロッククラスタ空間に含まれるブロックノードの数を少なくとも含む請求項7に記載の装置。
【請求項9】
前記第1決定モジュールは、
ユーザーが指定したデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定し、又は、ユーザーが指定したデータブロッククラスタ空間が存在しない場合、予め指定されたデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定するように構成される請求項7又は8に記載の装置。
【請求項10】
前記第2決定モジュールは、
前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズと前記ターゲットデータブロックのブロックインデックスとの積を計算するように構成される第1計算サブモジュールと、
前記ターゲットデータブロッククラスタ空間の開始アドレスと前記積との和を計算し、計算結果を前記ターゲットデータブロックに対応するターゲット記憶アドレスとして決定するように構成される第2計算サブモジュールと、を備える請求項7~9のいずれか1項に記載の装置。
【請求項11】
各データブロッククラスタ空間に含まれるブロックノードの数が同じであり、又は各データブロッククラスタ空間に含まれるブロックノードの数が異なり、且つ
各データブロッククラスタ空間に含まれるブロックノードの空間サイズが同じである請求項7~10のいずれか1項に記載の装置。
【請求項12】
同一データブロッククラスタ空間におけるブロックノードは同一収集ポイントのデータブロックを記憶するためのものである請求項7~11のいずれか1項に記載の装置。
【請求項13】
電子機器であって、
プロセッサ及びメモリを備え、請求項1~6のいずれか1項に記載のデータ読み書き方法を実現するように、前記プロセッサは前記メモリに記憶されるデータ読み書きプログラムを実行するように構成される電子機器。
【請求項14】
コンピュータ可読記憶媒体であって、
1つ又は複数のプログラムが記憶され、請求項1~6のいずれか1項に記載のデータ読み書き方法を実現するように、前記1つ又は複数のプログラムが1つ又は複数のプロセッサにより実行され得るコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は基本的にデータ記憶の技術分野に関し、より具体的に、データ読み書き方法及び装置に関する。
【0002】
本開示は、2020年6月30日に中華人民共和国国家知識産権局に提出した特許出願第202010623609.X号、名称「データ読み書き方法及び装置」の優先権を主張し、且つその全ての内容が参照により本明細書に取り込まれる。
【背景技術】
【0003】
現在、ブロックチェーン型記憶はメモリブロックデータ方式を用いて、ブロックチェーンデータをKVデータベース又はファイルに記憶することが多い。KVデータベースを例とし、KVデータベースはキー値(Key-Value)形式で組織、索引、記憶するデータベースである。ブロックチェーンデータの記憶を行うとき、各ブロックに1つのキー値対を確立し、Keyが該ブロックのハッシュ値を記憶し、Valueが該ブロックのデータを記憶する。ブロックチェーンデータの検索を行うとき、検索対象のブロックチェーンデータのハッシュ値に基づいてキー値対を走査し、対応するValue即ちブロックチェーンデータを検索する。以上から分かるように、現在の方式において、ブロックチェーンデータ検索の効率が比較的低い。
【発明の概要】
【課題を解決するための手段】
【0004】
一態様では、本開示はデータ読み書き方法に関し、前記方法は電子機器に応用され、前記電子機器の指定された物理記憶空間が少なくとも1つのデータブロッククラスタ空間に分割され、各データブロッククラスタ空間が複数のブロックノードを含み、各ブロックノードが1つのデータブロックを記憶するためのものであり、前記方法は、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することと、
前記ターゲットデータブロッククラスタ空間の空間情報及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定することと、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うことと、を含む。
【0005】
いくつかの実施形態では、前記方法は、
前記データブロッククラスタ空間の空間情報を前記指定された記憶空間の指定位置に記録することを更に含み、前記空間情報はデータブロッククラスタ空間のクラスタインデックス、開始アドレス、データブロッククラスタ空間におけるブロックノードの空間サイズ、データブロッククラスタ空間に含まれるブロックノードの数を少なくとも含む。
【0006】
いくつかの実施形態では、前記の読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することは、
ユーザーが指定したデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定し、又は、ユーザーが指定したデータブロッククラスタ空間が存在しない場合、予め指定されたデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定することを含む。
【0007】
いくつかの実施形態では、前記のターゲットデータブロッククラスタ空間の開始アドレス、前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズ及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定することは、
前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズと前記ターゲットデータブロックのブロックインデックスとの積を計算することと、
前記ターゲットデータブロッククラスタ空間の開始アドレスと前記積との和を計算し、計算結果を前記ターゲットデータブロックに対応するターゲット記憶アドレスとして決定することと、を含む。
【0008】
いくつかの実施形態では、各データブロッククラスタ空間に含まれるブロックノードの数が同じであり、又は各データブロッククラスタ空間に含まれるブロックノードの数が異なり、且つ
各データブロッククラスタ空間に含まれるブロックノードの空間サイズが同じである。
【0009】
いくつかの実施形態では、同一データブロッククラスタ空間におけるブロックノードは同一収集ポイントのデータブロックを記憶するためのものである。
【0010】
他の態様では、本開示はデータ読み書き装置に関し、前記装置は電子機器に応用され、前記電子機器の指定された物理記憶空間が少なくとも1つのデータブロッククラスタ空間に分割され、各データブロッククラスタ空間が複数のブロックノードを含み、各ブロックノードが1つのデータブロックを記憶するためのものであり、前記装置は、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定するように構成される第1決定モジュールと、
前記ターゲットデータブロッククラスタ空間の空間情報及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定するように構成される第2決定モジュールと、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うように構成される操作モジュールと、を備える。
【0011】
いくつかの実施形態では、前記装置は、
前記データブロッククラスタ空間の空間情報を前記指定された記憶空間の指定位置に記録するように構成される記録モジュールを更に備え、前記空間情報はデータブロッククラスタ空間のクラスタインデックス、開始アドレス、データブロッククラスタ空間におけるブロックノードの空間サイズ、データブロッククラスタ空間に含まれるブロックノードの数を少なくとも含む。
【0012】
いくつかの実施形態では、前記第1決定モジュールは、
ユーザーが指定したデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定し、又は、ユーザーが指定したデータブロッククラスタ空間が存在しない場合、予め指定されたデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定するように構成される。
【0013】
いくつかの実施形態では、前記第2決定モジュールは、
前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズと前記ターゲットデータブロックのブロックインデックスとの積を計算するように構成される第1計算サブモジュールと、
前記ターゲットデータブロッククラスタ空間の開始アドレスと前記積との和を計算し、計算結果を前記ターゲットデータブロックに対応するターゲット記憶アドレスとして決定するように構成される第2計算サブモジュールと、を備える。
【0014】
いくつかの実施形態では、各データブロッククラスタ空間に含まれるブロックノードの数が同じであり、又は各データブロッククラスタ空間に含まれるブロックノードの数が異なり、且つ
各データブロッククラスタ空間に含まれるブロックノードの空間サイズが同じである。
【0015】
いくつかの実施形態では、同一データブロッククラスタ空間におけるブロックノードは同一収集ポイントのデータブロックを記憶するためのものである。
【0016】
別の態様では、本開示は電子機器に関し、該電子機器はプロセッサ及びメモリを備え、本開示に記載のデータ読み書き方法を実現するように、前記プロセッサは前記メモリに記憶されるデータ読み書きプログラムを実行するように構成される。
【0017】
更に別の態様では、本開示はコンピュータ可読記憶媒体に関し、該コンピュータ可読記憶媒体に1つ又は複数のプログラムが記憶され、本開示に記載のデータ読み書き方法を実現するように、前記1つ又は複数のプログラムが1つ又は複数のプロセッサにより実行され得る。
【発明の効果】
【0018】
いくつかの実施形態では、電子機器の指定された物理記憶空間における各ブロックノードが1つのデータブロックを記憶するためのものであり、即ちブロックノードとデータブロックが1対1でマッピングする関係を有し、且つ、各データブロッククラスタ空間がクラスタインデックスを有し、各ブロックノードがブロックインデックスを有し、従って、これに基づいて、ターゲットデータブロックを読み書きするとき、ターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することにより、ターゲットデータブロッククラスタ空間の開始アドレス、ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズ及びターゲットデータブロックのブロックインデックスに基づいてターゲットデータブロックに対応するターゲット記憶アドレスを決定することができる。この過程において1つのセクタを検索してターゲットデータブロッククラスタ空間の開始アドレス等の空間情報を取得すれば、アドレッシングを実現することができ、それによりアドレッシング効率を向上させ、更にデータの記憶及び検索効率を向上させることができる。これに基づいて、ブロックチェーンシーンにおいて本開示のいくつかの実施形態に係るデータ読み書き方法を応用することは、ブロックチェーンデータの記憶及び検索効率を向上させることができる。
【図面の簡単な説明】
【0019】
図1】物理記憶媒体の「ブロック」とデータブロックとのマッピング関係の一例を示す図である。
図2】本開示の一実施例に係るデータ読み書き方法を示すフローチャートである。
図3】本開示の一実施例に係るデータ読み書き装置を示すブロック図である。
図4】本開示の一実施例に係る他のデータ読み書き装置を示すブロック図である。
図5】本開示の一実施例に係る電子機器を示す構造模式図である。
【発明を実施するための形態】
【0020】
本開示の実施例の目的、技術案及び利点をより明確にするために、以下に本開示の実施例の図面を参照しながら、本開示の実施例の技術案を明確且つ完全に説明し、明らかに、説明される実施例は本開示の実施例の一部であり、実施例のすべてではない。本開示の実施例に基づいて、当業者が進歩性のある労働を必要とせずに取得する他のすべての実施例は、いずれも本開示の保護範囲に属する。
【0021】
本開示に係るデータ読み書き方法は電子機器に応用され得る。いくつかの実施形態では、ここでの電子機器は様々なタイプの装置、例えばスマートフォン、タブレットコンピュータ、ラップトップポータブルコンピュータ、デスクトップコンピュータ、サーバ等であってもよく、本開示はこれを具体的に限定しない。本開示の実施例を理解しやすくするために、以下にまず電子機器の物理記憶空間の記憶構造を説明する。
【0022】
本開示では、ファイルシステムを用いて電子機器の物理記憶空間を組織し及び割り当てて、且つデータ記憶及びデータ検索を担当する。いくつかの実施形態では、ここでのファイルシステムはユーザー空間ファイルシステム(FUSE、Filesystem in Userspace)であってもよく、カーネルモジュールFUSEによるサポートにより実現される。これに基づいて、アプリケーション層において電子機器の物理記憶空間におけるデータの管理及び操作を実現することができる。
【0023】
現在、ファイルシステムの最小管理単位は物理記憶空間の「ブロック」であり、各「ブロック」に設定数のセクタが含まれ、例えば2つ、4つ、8つ、16個のセクタ等が含まれる。
【0024】
いくつかの実施形態では、ここでの設定数は電子機器における物理記憶媒体例えば磁気ディスクの総容量の大きさに関連し、即ち、各「ブロック」に含まれるセクタ数は電子機器における磁気ディスクの総容量の大きさに関連する。
【0025】
いくつかの実施形態では、ここでの設定数はユーザーが実際のサービスニーズに応じて設定されてもよく、例えば、ユーザーは管理及び操作対象のデータブロックのサイズに応じて設定されてもよい。ブロックチェーンを例とし、1つのブロックチェーン(理解されるように、ブロックチェーンが1つのデータブロックであり、以下にブロックと称される)のサイズが1Kであると仮定し、且つ1つのセクタのサイズが512バイトであると仮定し、これは、1つのブロックの記憶空間が2つのセクタの物理記憶媒体を必要とすることを意味する。従って、上記設定数を2として設定してもよく、即ち、各「ブロック」に2つのセクタが含まれる。図1はブロックとセクタとのマッピング関係の一例である。
【0026】
以上から分かるように、このような処理によって、各「ブロック」が1つのデータブロックを記憶することに用いられることを実現することができ、換言すれば、このような処理によって、物理記憶媒体の「ブロック」とデータブロックを1対1でマッピングすることを実現することができる。
【0027】
現在のいくつかの記憶構造例えば関係型データベース、ブロックチェーンKVデータベースにおいて、同一の収集ポイントのデータの物理記憶媒体における連続性を確保することが困難である。この問題を解決するために、本開示は、いくつかの実施形態では、電子機器の指定された物理記憶空間を少なくとも1つのデータブロッククラスタ空間に分割し、各データブロッククラスタ空間が複数のブロックノード(即ち、上記説明される「ブロック」)を含むことを提案する。同一のデータブロッククラスタ空間におけるブロックノードは同一の収集ポイントのデータブロックを記憶するためのものであり、これにより、同一の収集ポイントのデータの物理記憶媒体における連続性を確保することができる。
【0028】
いくつかの実施形態では、異なるデータブロッククラスタ空間におけるブロックノードは異なる収集ポイントのデータブロックを記憶するためのものであってもよく、又は同一収集ポイントのデータブロックを記憶するためのものである。
【0029】
いくつかの実施形態では、各データブロッククラスタ空間に含まれるブロックノードの数が同じであり、又は各データブロッククラスタ空間に含まれるブロックノードの数が異なる。例えば、電子機器の指定された物理記憶空間を100個のデータブロッククラスタ空間に分割し、各データブロッククラスタ空間が100万個のブロックノードを含む。更に例えば、電子機器の指定された物理記憶空間を100個のデータブロッククラスタ空間に分割し、そのうち、50個のデータブロッククラスタ空間が100万個のブロックノードを含み、残りの50個のデータブロッククラスタ空間が50万個のブロックノードを含む。
【0030】
いくつかの実施形態では、各データブロッククラスタ空間に含まれるブロックノードの空間サイズが同じである。即ち、各データブロッククラスタ空間におけるブロックノードに含まれるセクタの数が同じである。
【0031】
いくつかの実施形態では、アドレッシングしやすくするために、各データブロッククラスタ空間にインデックス(以下にクラスタインデックスと称される)を設定し、且つ各データブロッククラスタ空間に含まれるブロックノードにインデックス(以下にブロックインデックスと称される)を設定する。
【0032】
いくつかの実施形態では、上記クラスタインデックスの値は0から始め、即ち、1番目のデータブロッククラスタ空間のクラスタインデックスは0であり(以下にデータブロッククラスタ空間0と称される)、他のデータブロッククラスタ空間のクラスタインデックスは0から逓増する。例えば、2番目のデータブロッククラスタ空間のクラスタインデックスは1であり(以下にデータブロッククラスタ空間1と称される)、3番目のデータブロッククラスタ空間のクラスタインデックスは2であり(以下にデータブロッククラスタ空間2と称される)、これによって類推し、本開示はこれを1つ1つ詳しく説明しない。
【0033】
なお、上記クラスタインデックスが0から始めることは例示的なものに過ぎず、限定するためのものではない。
【0034】
いくつかの実施形態では、上記ブロックインデックスの値は0から始め、即ち、1つの具体的なデータブロッククラスタ空間の場合、それに含まれる1番目のブロックノードのブロックインデックスは0であり(以下にブロックノード0と略称され、Block0と記される)、他のブロックノードのブロックインデックスは0から逓増する。例えば、2番目のブロックノードのブロックインデックスは1であり(以下にブロックノード1と略称され、Block1と記される)、3番目のブロックノードのブロックインデックスは2であり(以下にブロックノード2と略称され、Block2と記される)、これによって類推し、本開示はこれを1つ1つ詳しく説明しない。
【0035】
なお、上記ブロックインデックスが0から始めることは例示的なものに過ぎず、限定するためのものではない。
【0036】
いくつかの実施形態では、アドレッシングしやすくするために、各データブロッククラスタ空間の場合、該データブロッククラスタ空間の空間情報を指定された物理記憶空間の指定位置に記録することができる。いくつかの実施形態では、ここでの指定位置とは、指定された物理記憶空間の開始セクタからの複数のセクタのヘッダ空間を指す。例えば、指定された物理記憶空間の開始セクタが10000番目のセクタであると仮定し、且つ指定された物理記憶空間が100個のデータブロッククラスタ空間に分割されると仮定する場合、データブロッククラスタ空間0の空間情報を10000番目のセクタのヘッダ空間に記録し、データブロッククラスタ空間1の空間情報を10001番目のセクタのヘッダ空間に記録し、データブロッククラスタ空間2の空間情報を10002番目のセクタのヘッダ空間に記録することができ、これによって類推し、データブロッククラスタ空間99の空間情報を10099番目のセクタのヘッダ空間に記録する。同時に、これは、データブロッククラスタ空間0の開始セクタが10100番目のセクタであることも意味する。
【0037】
いくつかの実施形態では、ここでの空間情報はデータブロッククラスタ空間のクラスタインデックス、開始アドレス、データブロッククラスタ空間におけるブロックノードの空間サイズ、データブロッククラスタ空間に含まれるブロックノードの数を少なくとも含む。例えば、データブロッククラスタ空間0を例とし、10000番目のセクタのヘッダ空間に記録される空間情報は、
ClusterIndex=0;//クラスタインデックスが0であることを示す;
ClusterBeginAddr=10100;//開始アドレスが10100番目のセクタに対応するアドレスであることを示す;
BlockSize=1024バイト;//ブロックノードの空間サイズが1024バイトであることを示す;
ClusterBlockNumeber=100万;//100万個のブロックノードを含むことを示すことである。
【0038】
ここに至って、分かるように、データブロッククラスタ空間0におけるBlock0が10100番目及び10101番目のセクタにマッピングされ、Block1が10102番目及び10103番目のセクタにマッピングされ、Block2が10104番目及び10105番目のセクタにマッピングされ、これによって類推し、本開示はこれを1つ1つ詳しく説明しない。
【0039】
以上から分かるように、1つの具体的なデータブロッククラスタ空間の場合、ブロックノードのブロックインデックスによりブロックノードとセクタとのマッピング関係を確立することができ、該マッピング関係は下記公式(1)に示される。
【0040】
Block(N)=(ClusterBeginAddr+2N,ClusterBeginAddr+2N+1) 公式(1)
上記公式(1)は、Block(N)が(ClusterBeginAddr+2N)番目及び(ClusterBeginAddr+2N+1)番目のセクタにマッピングされることを示す。
【0041】
いくつかの実施形態では、更にブロックノードのブロックインデックスにより各ブロックノードの開始アドレスBlockAddr(N)を決定することができ、下記公式(2)によって決定される。
【0042】
BlockAddr(N)=ClusterBeginAddr+N*BlockSize 公式(2)
以上は本開示の実施例に係る電子機器の物理記憶空間の記憶構造を説明した。以下に以上の説明を基に、図面を参照しながら具体的な実施例によって本開示に係るデータ読み書き方法を更に解釈・説明する。なお、以下の実施例は本開示の実施例を限定するものではない。
【0043】
図2は本開示の一実施例に係るデータ読み書き方法のフローチャートである。図2に示すように、該プロセスは、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定する201と、
ターゲットデータブロッククラスタ空間の空間情報及びターゲットデータブロックのブロックインデックスに基づいて、ターゲットデータブロックに対応するターゲット記憶アドレスを決定する202と、
ターゲット記憶アドレスに基づいてターゲットデータブロックに対して読み取り操作又は書き込み操作を行う203と、を含む。
【0044】
本開示では、読み書き対象のターゲットデータブロックとは、電子機器の指定された物理記憶空間から読み取る対象のデータブロック、又は電子機器の指定された物理記憶空間に書き込む対象のデータブロックを指す。
【0045】
いくつかの実施形態では、ターゲットデータブロックがブロックチェーンを含む。
【0046】
いくつかの実施形態では、電子機器の指定された物理記憶空間からデータブロックを読み取る場合、ユーザーは実際のサービスニーズに応じて電子機器にデータ検索命令を送信することができる。ここで、電子機器にデータ検索命令を送信することは、ユーザーが電子機器によって提供されるデータ検索ページに検索情報を入力して、データ検索ページ上のデータ検索を行うようにトリガーするためのボタンをクリックすることであってもよい。電子機器は該ボタンがクリックされることを検出した場合には、電子機器がデータ検索命令を受信したことを意味する。
【0047】
いくつかの実施形態では、上記検索情報はクラスタインデックス及びターゲットデータブロックのブロックインデックスを含んでもよい。これらの実施形態では、検索情報に含まれるクラスタインデックスに対応するデータブロッククラスタ空間をターゲットデータブロックが属するデータブロッククラスタ空間(以下にターゲットデータブロッククラスタ空間と称される)として決定してもよく、即ち、ユーザーが指定したデータブロッククラスタ空間をターゲットデータブロッククラスタ空間として決定する。
【0048】
いくつかの実施形態では、上記検索情報はターゲットデータブロックのブロックインデックスを含んでもよい。これらの実施形態では、予め指定されたデータブロッククラスタ空間をターゲットデータブロッククラスタ空間として決定してもよく、即ち、ユーザーが指定したデータブロッククラスタ空間が存在しない場合、予め指定されたデータブロッククラスタ空間をターゲットデータブロッククラスタ空間として決定する。例を挙げて言えば、電子機器の指定された物理記憶空間が1つだけのデータブロッククラスタ空間を含む場合、ユーザーはターゲットデータブロックのブロックインデックスのみを入力してもよく、即ち上記検索情報がターゲットデータブロックのブロックインデックスのみを含む。
【0049】
いくつかの実施形態では、電子機器の指定された物理記憶空間にデータブロックを書き込む場合、電子機器にデータ書き込み命令を送信してもよい。
【0050】
いくつかの実施形態では、ここで、電子機器にデータ書き込み命令を送信することは、ユーザーが実際のサービスニーズに応じて電子機器にデータ書き込み命令を送信することであってもよい。
【0051】
いくつかの実施形態では、ここで、電子機器にデータ書き込み命令を送信することは、電子機器自体がデータ書き込み命令の生成をトリガーすることであってもよい。いくつかの実施形態では、電子機器自体がデータ書き込み命令の生成をトリガーすることは、電子機器がデータ書き込み命令の生成を周期的にトリガーすることであってもよく、即ち、電子機器がデータ書き込み命令を受信した場合、最近の所定の設定時間間隔内に取得されたデータブロックを指定された物理記憶空間に書き込むように、電子機器が設定時間間隔おきにデータ書き込み命令の生成をトリガーする。いくつかの実施形態では、電子機器がデータ書き込み命令を受信した場合、取得されたばかりの設定数のデータブロックを指定された物理記憶空間に書き込むように、電子機器は取得されたデータブロックの数が設定数例えば1000に達する場合、データ書き込み命令の生成をトリガーしてもよい。
【0052】
いくつかの実施形態では、上記データ書き込み命令はクラスタインデックスを含んでもよい。これらの実施形態では、データ書き込み命令に含まれるクラスタインデックスに対応するデータブロッククラスタ空間を書き込み対象のターゲットデータブロックが属するデータブロッククラスタ空間(以下にターゲットデータブロッククラスタ空間と称される)として決定してもよい。
【0053】
いくつかの実施形態では、データ書き込み命令におけるデータブロッククラスタ空間を含むクラスタインデックスはユーザーにより設定されてもよく、即ち、ユーザーが指定したデータブロッククラスタ空間をターゲットデータブロッククラスタ空間として決定する。
【0054】
いくつかの実施形態では、データ書き込み命令に含まれるデータブロッククラスタ空間のクラスタインデックスは電子機器により設定されてもよい。いくつかの実施形態では、電子機器には収集ポイントとデータブロッククラスタ空間との対応関係が予め記憶されてもよく、これに基づいて、電子機器は書き込み対象のターゲットデータブロックに対応する収集ポイントに基づいて対応するデータブロッククラスタ空間を決定し、決定されたデータブロッククラスタ空間のクラスタインデックスをデータ書き込み命令に設定することができる。
【0055】
いくつかの実施形態では、上記データ書き込み命令にはデータブロッククラスタ空間のクラスタインデックスが含まれなくてもよい。これらの実施形態では、予め指定されたデータブロッククラスタ空間をターゲットデータブロッククラスタ空間として決定してもよい。例を挙げて言えば、電子機器の指定された物理記憶空間が1つだけのデータブロッククラスタ空間を含む場合、上記データ書き込み命令にはデータブロッククラスタ空間のクラスタインデックスが含まれなくてもよい。
【0056】
以上の説明から分かるように、いくつかの実施形態では、ターゲットデータブロッククラスタ空間が知られる場合、上記指定された物理記憶空間の指定位置から記録済みの該ターゲットデータブロッククラスタ空間の空間情報を取得することができる。
【0057】
いくつかの実施形態では、以下の公式(3)によってターゲットデータブロッククラスタ空間の空間情報が記録される記憶アドレスを決定することができる。
【0058】
Cluster(N)=BeginAddr+N 公式(3)
上記公式(3)において、BeginAddrが上記指定された物理記憶空間の開始セクタ例えば10000番目のセクタを示し、Cluster(N)がデータブロッククラスタ空間Nの開始セクタを示す。例を挙げて言えば、ターゲットデータブロッククラスタ空間がデータブロッククラスタ空間5であると仮定し、公式(3)に基づいて、ターゲットデータブロッククラスタ空間5の空間情報が10005番目のセクタのヘッダ空間に記録されることが取得される。これに基づいて、10005番目のセクタのヘッダ空間からターゲットデータブロッククラスタ空間5の空間情報を取得することができる。
【0059】
いくつかの実施形態では、以上の公式(2)の関連説明から分かるように、本ステップ202において、ターゲットデータブロックが属するターゲットデータブロッククラスタ空間が知られる場合、ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズとターゲットデータブロックのブロックインデックスとの積を計算し、次にターゲットデータブロッククラスタ空間の開始アドレスと前記積との和を計算することにより、ターゲットデータブロックに対応する記憶アドレス(以下にターゲット記憶アドレスと称される)を取得することができる。
【0060】
以上から分かるように、1つのセクタを検索することによりターゲットデータブロックに対応する記憶アドレスを取得することができ、これはアドレッシング効率を向上させる。
【0061】
いくつかの実施形態では、電子機器の指定された物理記憶空間からデータブロックを読み取る場合、ユーザー空間ファイルシステムを例とし、電子機器はFUSEカーネルモジュールを呼び出し、FUSEカーネルモジュールはread操作関数を呼び出し、ターゲット記憶アドレスに対応する物理記憶媒体からデータブロックを抽出し、且つ抽出されたデータブロックをFUSEに戻す。FUSEは再びカーネル操作を呼び出し、抽出されたデータブロックをユーザープロセスに戻す。
【0062】
いくつかの実施形態では、電子機器の指定された物理記憶空間にデータブロックを書き込む場合、ユーザー空間ファイルシステムを例とし、電子機器はFUSEカーネルモジュールを呼び出し、FUSEカーネルモジュールはwrite操作関数を呼び出し、ターゲットデータブロックをターゲット記憶アドレスに対応する物理記憶媒体に書き込む。
【0063】
ここに至って、図2に示されるプロセスの説明が完了する。
【0064】
上記実施例から分かるように、電子機器の指定された物理記憶空間における各ブロックノードが1つのデータブロックを記憶するためのものであり、即ち、ブロックノードとデータブロックが1対1でマッピングする関係を有し、且つ、各データブロッククラスタ空間がクラスタインデックスを有し、各ブロックノードがブロックインデックスを有し、従って、これに基づいて、ターゲットデータブロックを読み書きするとき、ターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することにより、ターゲットデータブロッククラスタ空間の開始アドレス、ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズ及びターゲットデータブロックのブロックインデックスに基づいて、ターゲットデータブロックに対応するターゲット記憶アドレスを決定することができる。この過程において1つのセクタを検索してターゲットデータブロッククラスタ空間の開始アドレス等の空間情報を取得すれば、アドレッシングを実現することができ、それによりアドレッシング効率を向上させ、更にデータの記憶及び検索効率を向上させることができる。これに基づいて、ブロックチェーンシーンにおいて本開示のいくつかの実施形態に係るデータ読み書き方法を応用することは、ブロックチェーンデータの記憶及び検索効率を向上させることができる。
【0065】
上記データ読み書き方法の実施例に対応し、本開示は更にデータ読み書き装置の実施例を提供する。
【0066】
図3は本開示の一実施例に係るデータ読み書き装置のブロック図である。図3に示すように、該装置は、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定するように構成される第1決定モジュール31と、
前記ターゲットデータブロッククラスタ空間の空間情報及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定するように構成される第2決定モジュール32と、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うように構成される操作モジュール33と、を備える。
【0067】
いくつかの実施形態では、図4に示すように、前記装置は、
前記データブロッククラスタ空間の空間情報を前記指定された記憶空間の指定位置に記録するように構成される記録モジュール34を更に備え、前記空間情報はデータブロッククラスタ空間の開始アドレス、データブロッククラスタ空間におけるブロックノードの空間サイズ、データブロッククラスタ空間に含まれるブロックノードの数を少なくとも含む。
【0068】
いくつかの実施形態では、図4に示すように、前記第2決定モジュール32は、
前記ターゲットデータブロッククラスタ空間におけるブロックノードの空間サイズと前記ターゲットデータブロックのブロックインデックスとの積を計算するように構成される第1計算サブモジュール321と、
前記ターゲットデータブロッククラスタ空間の開始アドレスと前記積との和を計算し、計算結果を前記ターゲットデータブロックに対応するターゲット記憶アドレスとして決定するように構成される第2計算サブモジュール322と、を備える。
【0069】
いくつかの実施形態では、前記第1決定モジュール31は、
ユーザーが指定したデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定し、又は、ユーザーが指定したデータブロッククラスタ空間が存在しない場合、予め指定されたデータブロッククラスタ空間を読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間として決定するように構成される。
【0070】
いくつかの実施形態では、各データブロッククラスタ空間に含まれるブロックノードの数が同じであり、又は各データブロッククラスタ空間に含まれるブロックノードの数が異なり、且つ
各データブロッククラスタ空間に含まれるブロックノードの空間サイズが同じである。
【0071】
いくつかの実施形態では、同一データブロッククラスタ空間におけるブロックノードは同一収集ポイントのデータブロックを記憶するためのものである。
【0072】
図5は本開示の一実施例に係る電子機器の構造模式図であり、図5に示される電子機器500は少なくとも1つのプロセッサ501、メモリ502、少なくとも1つのネットワークインターフェース504及び他のユーザーインターフェース503を備える。電子機器500内の各コンポーネントはバスシステム505により一体に結合される。バスシステム505はこれらのコンポーネント間の接続通信を実現するためのものである。バスシステム505はデータバスに加えて、電源バス、制御バス及び状態信号バスを含む。しかしながら、明確に説明するために、図5において様々なバスがいずれもバスシステム505と記される。
【0073】
いくつかの実施形態では、ユーザーインターフェース503はディスプレイ、キーボード又はクリック装置(例えば、マウス、トラックボール(trackball)、タッチパッド又はタッチパネル等を備えてもよい。
【0074】
いくつかの実施形態では、メモリ502は揮発性メモリ又は不揮発性メモリであってもよく、又は、揮発性メモリ及び不揮発性メモリの両方を含んでもよい。不揮発性メモリは読み出し専用メモリ(ROM、Read-Only Memory)、プログラム可能読み出し専用メモリ(PROM、Programmable ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM、Erasable PROM)、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM、Electrically EPROM)又はフラッシュメモリであってもよい。揮発性メモリは外部キャッシュメモリとして使用されるランダムアクセスメモリ(RAM、Random Access Memory)であってもよい。例示的な説明であって制限的ではないが、多くの形式のRAM、例えばスタティックランダムアクセスメモリ(SRAM、Static RAM)、ダイナミックランダムアクセスメモリ(DRAM、Dynamic RAM)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM、Synchronous DRAM)、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(DDRSDRAM、Double Data Rate SDRAM)、拡張型シンクロナスダイナミックランダムアクセスメモリ(ESDRAM、Enhanced SDRAM)、シンクリンクダイナミックランダムアクセスメモリ(SLDRAM、Synchlink DRAM)及びダイレクトラムバスランダムアクセスメモリ(DRRAM、Direct Rambus RAM)は利用可能である。本明細書に説明されるメモリ502はこれらのメモリ及び任意の他の適切なタイプのメモリを含んでもよいが、それらに限らないように意図されるものである。
【0075】
いくつかの実施形態では、メモリ502には実行可能ユニット又はデータ構造、又はそれらのサブセット、あるいは、それらの拡張セット即ちオペレーティングシステム5021及びアプリケーションプログラム5022の要素が記憶される。
【0076】
いくつかの実施形態では、オペレーティングシステム5021は様々なシステムプログラム、例えばフレーム層、コアライブラリ層、駆動層等を含み、様々な基本サービスを実現し及びハードウェアに基づくタスクを処理するためのものである。アプリケーションプログラム5022は様々なアプリケーションプログラム、例えばメディアプレーヤ(Media Player)、ブラウザ(Browser)等を含み、様々なアプリケーションサービスを実現するためのものである。本開示の方法を実現するプログラムはアプリケーションプログラム5022に含まれてもよい。
【0077】
いくつかの実施形態では、メモリ502に記憶されるプログラム又は命令を呼び出し、該プログラム又は命令はアプリケーションプログラム5022に記憶されるプログラム又は命令であってもよく、これにより、プロセッサ501は本開示に係る方法を実行するように構成され、該方法は例えば、
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定することと、
前記ターゲットデータブロッククラスタ空間の空間情報及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定することと、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うことと、を含む。
【0078】
上記本開示の実施例に開示される方法はプロセッサ501に応用され、又はプロセッサ501により実現されてもよい。プロセッサ501は信号処理機能を有する集積回路チップでありうる。実現過程において、上記方法の各ステップはプロセッサ501におけるハードウェアの集積論理回路又はソフトウェア形式の命令で行われてもよい。上記プロセッサ501は汎用プロセッサ、デジタルシグナルプロセッサ(DSP、Digital Signal Processor)、特定用途向け集積回路(ASIC、Application Specific Integrated Circuit)、フィールドプログラマブルゲートアレイ(FPGA、Field Programmable Gate Array)又は他のプログラマブルロジックデバイス、個別ゲート又はトランジスタロジックデバイス、個別ハードウェアコンポーネントであってもよい。本開示の実施例に開示される各方法、ステップ及び論理ブロックを実現又は実行することができる。汎用プロセッサはマイクロプロセッサであってもよく、又は該プロセッサはいかなる通常のプロセッサ等であってもよい。本開示の実施例に開示される方法のステップはハードウェア復号プロセッサで遂行し、又は復号プロセッサにおけるハードウェア及びソフトウェアユニットの組み合わせで遂行するように直接具現されてもよい。ソフトウェアユニットはランダムアクセスメモリ、フラッシュメモリ、読み出し専用メモリ、プログラム可能読み出し専用メモリ又は電気消去可能プログラム可能メモリ、レジスタ等の本分野で成熟している記憶媒体に位置してもよい。該記憶媒体はメモリ502に位置し、プロセッサ501はメモリ502における情報を読み取り、そのハードウェアと組み合わせて上記方法のステップを行う。
【0079】
理解されるように、本明細書に説明されるこれらの実施例はハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード又はそれらの組み合わせで実現されてもよい。ハードウェアで実現される場合、処理ユニットは1つ又は複数の特定用途向け集積回路(ASIC、Application Specific Integrated Circuits)、デジタルシグナルプロセッサ(DSP、Digital Signal Processor)、デジタル信号処理デバイス(DSPD、DSP Device)、プログラマブルロジックデバイス(PLD、Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA、Field-Programmable Gate Array)、汎用プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、本開示に記載の機能を実行するための他の電子ユニット又はそれらの組み合わせにおいて実現されてもよい。
【0080】
ソフトウェアで実現される場合、本明細書に記載の機能を実行するユニットにより本明細書に記載の技術を実現することができる。ソフトウェアコードはメモリに記憶されてプロセッサにより実行されてもよい。メモリはプロセッサ又はプロセッサの外部で実現されてもよい。
【0081】
本開示に係る電子機器は図5に示される電子機器であってもよく、図2に示されるデータ読み書き方法を実行することができ、更に図2に示されるデータ読み書き方法の技術的効果を実現し、図2の関連説明を参照してもよく、説明を簡潔にするため、ここで詳細な説明は省略する。
【0082】
本開示は更にコンピュータ可読記憶媒体を提供する。ここでの記憶媒体に1つ又は複数のプログラムが記憶される。記憶媒体は揮発性メモリ例えばランダムアクセスメモリを含んでもよく、メモリも不揮発性メモリ例えば読み出し専用メモリ、フラッシュメモリ、ハードディスク又はソリッドステートドライブを含んでもよく、メモリは更に上記種類のメモリの組み合わせを含んでもよい。
【0083】
上記した電子機器側に実行するデータ読み書き方法を実現するように、記憶媒体において1つ又は複数のプログラムが1つ又は複数のプロセッサにより実行され得る。
【0084】
読み書き対象のターゲットデータブロックが属するターゲットデータブロッククラスタ空間を決定すること、
前記ターゲットデータブロッククラスタ空間の空間情報及び前記ターゲットデータブロックのブロックインデックスに基づいて、前記ターゲットデータブロックに対応するターゲット記憶アドレスを決定すること、
前記ターゲット記憶アドレスに基づいて前記ターゲットデータブロックに対して読み取り操作又は書き込み操作を行うことを、電子機器側において実行するデータ読み書き方法を実現するように、前記プロセッサはメモリに記憶されるデータ読み書きプログラムを実行するように構成される。
【0085】
当業者であれば更に意識できるように、本明細書に開示される実施例を参照して説明した各例のユニット及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア又はそれらの組み合わせで実現でき、ハードウェアとソフトウェアとの互換性を明確に説明するために、上記説明において既に機能に基づいて各例の構成及びステップを一般的に説明した。これらの機能をハードウェアそれともソフトウェア方式で実行するかは、技術案の特定応用及び設計制約条件によって決定される。当業者は各特定応用に対して異なる方法で説明される機能を実現することができるが、このような実現は本開示の範囲を超えるものと見なされるべきではない。
【0086】
本明細書に開示される実施例を参照して説明した方法又はアルゴリズムのステップはハードウェア、プロセッサが実行するソフトウェアモジュール、又はそれらの組み合わせで実施できる。ソフトウェアモジュールはランダムアクセスメモリ(RAM)、メモリ、読み出し専用メモリ(ROM)、電気的プログラム可能ROM、電気消去可能プログラム可能ROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、又は技術分野における公知のいかなる他の形式の記憶媒体に置かれてもよい。
【0087】
以上に説明される具体的な実施形態は、本開示の目的、技術案及び有益な効果を更に詳しく説明したが、理解されるように、以上の説明は本開示の具体的な実施形態に過ぎず、本開示の保護範囲を限定するためのものではなく、本開示の趣旨及び原則内で行われたいかなる修正、等価置換、改良等は、いずれも本開示の保護範囲内に含まれるべきである。
図1
図2
図3
図4
図5
【国際調査報告】