(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-28
(54)【発明の名称】データ処理方法、装置、及びエッジデバイス
(51)【国際特許分類】
G06F 11/14 20060101AFI20220421BHJP
G06F 16/28 20190101ALI20220421BHJP
【FI】
G06F11/14 641D
G06F16/28
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021518887
(86)(22)【出願日】2020-03-13
(85)【翻訳文提出日】2021-04-06
(86)【国際出願番号】 IB2020052288
(87)【国際公開番号】W WO2021130547
(87)【国際公開日】2021-07-01
(31)【優先権主張番号】10201913065Q
(32)【優先日】2019-12-23
(33)【優先権主張国・地域又は機関】SG
(81)【指定国・地域】
(71)【出願人】
【識別番号】520238082
【氏名又は名称】商▲湯▼国▲際▼私人有限公司
【氏名又は名称原語表記】SENSETIME INTERNATIONAL PTE. LTD.
【住所又は居所原語表記】7500A Beach Road, #05-318,The Plaza 199591 Singapore Singapore
(74)【代理人】
【識別番号】110000729
【氏名又は名称】特許業務法人 ユニアス国際特許事務所
(72)【発明者】
【氏名】▲劉▼ 祖希
(72)【発明者】
【氏名】▲張▼ ▲帥▼
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
(57)【要約】
本明細書の実施例は、データ処理方法、装置、及びエッジデバイスを提供し、当該方法は、現在受信したメッセージをローカルディスクの第1領域に書き込み、前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングする。エッジデバイスを再起動するときに、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元することができる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
データ処理方法であって、
現在受信したメッセージをローカルディスクの第1領域に書き込むことと、
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングすることと、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元することと、を含む
ことを特徴とするデータ処理方法。
【請求項2】
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことは、
前記現在受信したメッセージを先読みロギング(WAL)ログに書き込むことを含む
ことを特徴とする請求項1に記載のデータ処理方法。
【請求項3】
前記メモリから番号がk+1であるメッセージのデータを読み取ることであって、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数であることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む
ことを特徴とする請求項1または2に記載のデータ処理方法。
【請求項4】
所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアすることをさらに含む
ことを特徴とする請求項1乃至3の中のいずれか1項に記載のデータ処理方法。
【請求項5】
前記メモリ内のすべてのデータを前記ローカルディスクの前記第2領域に格納することは、
前記メモリ内のすべての前記データを圧縮することと、
前記圧縮した後のデータを前記ローカルディスクの前記第2領域に格納することを含む
ことを特徴とする請求項4に記載のデータ処理方法。
【請求項6】
前記所定の条件は、
前記メモリの占用スペースが前記メモリスペースの設定値に達したことと、
現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む
ことを特徴とする請求項4または5に記載のデータ処理方法。
【請求項7】
前記メモリをクリアするたびに、前記メモリをクリアした後に受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことによって、前記メモリをクリアする前に前記ローカルディスクの前記第1領域に記憶されているデータを上書きすることと、
前記メモリをクリアした後に受信した前記メッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記メモリをクリアした後に受信した前記メッセージを前記メモリにバッファリングすることと、をさらに含む
ことを特徴とする請求項4または5に記載のデータ処理方法。
【請求項8】
前記メモリ内のすべてのデータを前記ローカルディスクの前記第2領域に格納し、前記メモリをクリアした後に、
前記データ処理方法は、
番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取ることであって、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数であることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む
ことを特徴とする請求項7に記載のデータ処理方法。
【請求項9】
前記番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの前記第2領域から前記番号がm+1であるメッセージのデータを読み取ることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む
ことを特徴とする請求項8に記載のデータ処理方法。
【請求項10】
データ処理装置であって、
現在受信したメッセージをローカルディスクの第1領域に書き込むための第1書込みモジュールと、
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングするための第1バッファリングモジュールと、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元するためのデータ復元モジュールと、を備える
ことを特徴とするデータ処理装置。
【請求項11】
前記第1書込みモジュールは、
前記現在受信したメッセージをWALログに書き込む
ことを特徴とする請求項10に記載のデータ処理装置。
【請求項12】
前記メモリから番号がk+1であるメッセージのデータを読み取るための第1読取りモジュールであって、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数である第1読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第1送信モジュールと、をさらに備える
ことを特徴とする請求項10または11に記載のデータ処理装置。
【請求項13】
所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアするための格納モジュールをさらに備える
ことを特徴とする請求項10乃至12の中のいずれか1項に記載のデータ処理装置。
【請求項14】
前記格納モジュールは、
前記メモリ内のすべてのデータを圧縮し、
前記圧縮した後のデータを前記ローカルディスクの前記第2領域に格納する
ことを特徴とする請求項13に記載のデータ処理装置。
【請求項15】
前記所定の条件は、
前記メモリの占用スペースが前記メモリスペースの設定値に達したことと、
現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む
ことを特徴とする請求項13または14に記載のデータ処理装置。
【請求項16】
前記メモリをクリアするたびに、前記メモリをクリアした後に受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことによって、前記メモリをクリアする前に前記ローカルディスクの前記第1領域に記憶されているデータを上書きするための第2書込みモジュールと、
前記メモリをクリアした後に受信した前記メッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記今回メモリをクリアした後に受信した前記メッセージを前記メモリにバッファリングするための第2バッファリングモジュールと、をさらに備える
ことを特徴とする請求項13または14に記載のデータ処理装置。
【請求項17】
番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取るための第2読取りモジュールであって、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数である第2読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第2送信モジュールと、をさらに備える
ことを特徴とする請求項16に記載のデータ処理装置。
【請求項18】
前記番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの前記第2領域から前記番号がm+1であるメッセージのデータを読み取るための第3読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第3送信モジュールと、をさらに備える
ことを特徴とする請求項17に記載のデータ処理装置。
【請求項19】
コンピュータプログラムが記憶されているコンピュータ可読記録媒体であって、
当該プログラムがプロセッサによって実行されるときに、プロセッサが請求項1乃至9の中のいずれか1項に記載の方法を実現するようにする
ことを特徴とするコンピュータ可読記録媒体。
【請求項20】
プロセッサと、前記プロセッサ上で実行できるコンピュータプログラムを記憶するためのメモリと、を備える、エッジデバイスであって、
前記プロセッサは、前記プログラムを実行することによって、請求項1乃至9の中のいずれか1項に記載のデータ処理方法を実現する
ことを特徴とするエッジデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エッジコンピューティング技術の分野に関し、特に、データ処理方法、装置、及びエッジデバイスに関する。
<関連出願の相互引用>
本願は、出願番号が10201913065Qであり、出願日が2019年12月23日であり、出願名称が「データ処理方法、装置、及びエッジデバイス」であるシンガポール特許出願に基づいて提出されたものであり、当該特許出願の優先権を主張し、当該特許出願の全ての内容が参照のために本願に援用される。
【背景技術】
【0002】
インターネットオブシングス事業の継続的な拡大およびインターネットオブシングス端末データの爆発的な増加により、リアルタイムのデータ処理を実現するために、一部のデータをデータソースに近いエッジデバイスに配布して処理を実行することになり、もう一部の重要なデータを依然としてクラウドに送り返す必要がある。この一部のデータをクラウドに信頼的に送り返すように保証するために、ネットワークの切断と電源障害などの異常な状況でのデータ処理方式を改善する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明は、データ処理方法、装置、及びエッジデバイスに関する。
【課題を解決するための手段】
【0004】
具体的に、本発明は、以下の技術的解決策によって実現される。
【0005】
本発明の実施例の第1態様によると、データ処理方法を提供し、前記方法は、
現在受信したメッセージをローカルディスクの第1領域に書き込むことと、
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングすることと、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元することと、を含む。
【0006】
いくつかの実施例において、現在受信したメッセージをローカルディスクの第1領域に書き込むことは、
前記現在受信したメッセージを先読みロギング(WAL)ログに書き込むことを含む。
【0007】
いくつかの実施例において、前記方法は、
前記メモリから番号がk+1であるメッセージのデータを読み取ることであって、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数であることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む。
【0008】
いくつかの実施例において、前記方法は、
所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアすることをさらに含む。
【0009】
いくつかの実施例において、前記メモリ内のすべてのデータを前記ローカルディスクの前記第2領域に格納することは、
前記メモリ内のすべての前記データを圧縮することと、
前記圧縮した後のデータを前記ローカルディスクの前記第2領域に格納することを含む。
【0010】
いくつかの実施例において、前記所定の条件は、
前記メモリの占用スペースが前記メモリスペースの設定値に達したことと、
現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む。
【0011】
いくつかの実施例において、前記方法は、
前記メモリをクリアするたびに、前記メモリをクリアした後に受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことによって、前記メモリをクリアする前に前記ローカルディスクの前記第1領域に記憶されているデータを上書きすることと、
前記メモリをクリアした後に受信した前記メッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記メモリをクリアした後に受信した前記メッセージを前記メモリにバッファリングすることと、をさらに含む。
【0012】
いくつかの実施例において、前記メモリ内のすべてのデータを前記ローカルディスクの前記第2領域に格納し、前記メモリをクリアした後に、前記方法は、
番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取ることであって、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数であることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む。
【0013】
いくつかの実施例において、前記方法は、
前記番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの前記第2領域から前記番号がm+1であるメッセージのデータを読み取ることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む。
【0014】
本発明の実施例の第2態様によると、データ処理装置を提供し、前記装置は、
現在受信したメッセージをローカルディスクの第1領域に書き込むための第1書込みモジュールと、
前記現在受信したメッセージを前記ローカルディスクの第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングするための第1バッファリングモジュールと、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元するためのデータ復元モジュールと、を備える。
【0015】
いくつかの実施例において、前記第1書込みモジュールは、
前記現在受信したメッセージをWALログに書き込む。
【0016】
いくつかの実施例において、前記装置は、
前記メモリから番号がk+1であるメッセージのデータを読み取るための第1読取りモジュールであって、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数である第1読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第1送信モジュールと、をさらに備える。
【0017】
いくつかの実施例において、前記装置は、
所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアするための格納モジュールをさらに備える。
【0018】
いくつかの実施例において、前記格納モジュールは、
前記メモリ内のすべての前記データを圧縮し、
前記圧縮した後のデータを前記ローカルディスクの前記第2領域に格納する。
【0019】
いくつかの実施例において、前記所定の条件は、
前記メモリの占用スペースが前記メモリスペースの設定値に達したことと、
現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む。
【0020】
いくつかの実施例において、前記装置は、
前記メモリをクリアするたびに、前記メモリをクリアした後に受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことによって、前記メモリをクリアする前に前記ローカルディスクの前記第1領域に記憶されているデータを上書きするための第2書込みモジュールと、
前記メモリをクリアした後に受信した前記メッセージをローカルディスクの前記第1領域に書き込むときに、前記メモリをクリアした後に受信した前記メッセージを前記メモリにバッファリングするための第2バッファリングモジュールと、をさらに備える。
【0021】
いくつかの実施例において、前記装置は、
番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取るための第2読取りモジュールであって、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数である第2読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第2送信モジュールと、をさらに備える。
【0022】
いくつかの実施例において、前記装置は、
前記番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの前記第2領域から前記番号がm+1であるメッセージのデータを読み取るための第3読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第3送信モジュールと、をさらに備える。
【0023】
本発明の実施例の第3態様によると、コンピュータプログラムが記憶されているコンピュータ可読記録媒体を提供し、当該プログラムがプロセッサによって実行されるときに、前記プロセッサが第1態様に記載のデータ処理方法を実現するようにする。
【0024】
本発明の実施例の第4態様によると、プロセッサと、前記プロセッサ上で実行できるコンピュータプログラムを記憶するためのメモリと、を備える、エッジデバイスを提供し、前記プロセッサは、前記プログラムを実行することによって、第1態様に記載の方法を実現する。
【発明の効果】
【0025】
本発明の実施例は、現在受信したメッセージをローカルディスクの第1領域に書き込み、現在受信したメッセージをローカルディスクの第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングする。エッジデバイスが異常にハングアップして、サービスを再起動するときに、前記ローカルディスクの第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元して、エッジデバイスが受信するデータソースのデータが失われないように保証することができる。
【0026】
上記の一般的な説明および以下の詳細な説明は、例示的および解釈的なものに過ぎず、本発明を限定するものではないことを理解すべきである。
【図面の簡単な説明】
【0027】
ここでの図面は、明細書に組み込まれて本明細書の一部を構成し、これら図面は本発明に一致する実施例を示し、明細書とともに本発明の技術的解決策を説明する。
【
図1】本発明の実施例の適用シーンの模式図である。
【
図2】本発明の実施例のデータ処理方法のフローチャートである。
【
図3】本発明の実施例のエッジデバイスとクラウドデバイスとの間のデータ伝送過程の模式図である。
【
図4】本発明の実施例のデータ処理装置のブロック図である。
【
図5】本発明の実施例の本発明の方法を実施するためのエッジデバイスのブロック図である。
【発明を実施するための形態】
【0028】
ここで、例示的な実施例を詳細に説明し、その例を図面に示す。以下の説明が図面を言及している場合、特に明記しない限り、異なる図面での同じ符号は同じまたは類似の要素を表す。以下の例示的な実施例で説明する実施形態は、本発明と一致するすべての実施形態を表すわけではない。逆に、それらは、添付の特許請求の範囲に詳述されているように、本発明のいくつかの態様と一致する装置と方法の単なる例である。
【0029】
本発明で使用する用語は、特定の実施例を説明することのみを目的としており、本発明を限定することを意図するものではない。本発明および添付の特許請求の範囲で使用される「1種」、「前記」、および、「当該」の単数形も、文脈が他の意味を明確に示さない限り、複数形を含むことを意図する。本明細書で使用される「および/または」という用語は、1つまたは複数の関連するリストされた項目の任意またはすべての可能な組み合わせを指すことをさらに理解すべきである。また、本明細書における「少なくとも1つ」という用語は、複数種類の中の任意の1種または複数種類の中の少なくとも2種類の任意の組み合わせを意味する。
【0030】
本発明では、第1、第2、第3などの用語を使用してさまざまな情報を説明することができるが、これら情報はこれら用語に限定されるべきではないことを理解すべきである。これら用語は、同じタイプの情報を互いに区別するためにのみ使用される。たとえば、本発明の範囲から逸脱することなく、第1情報はまた第2情報と呼ばれ得、同様に、第2情報もまた第1情報と呼ばれ得る。文脈に応じて、ここで使用される「もし」という単語は、「……と」または「……場合」または「確定されたことに応答して」と解釈することができる。
【0031】
本発明の実施例の技術的解決策を当業者がよりよく理解することを可能にし、本発明の実施例の上記の目的、特徴、および利点をより明白かつ理解可能にするために、以下、図面を参照して本発明の実施例の技術的解決策さらに詳細に説明する。
【0032】
エッジコンピューティングとは、物またはデータのソースに近い側でネットワーク、コンピューティング、ストレージ、およびアプリケーションのコア機能を統合したオーブンプラットフォームを使用して、近いところで最も近い側のサービスを提供することを指す。そのアプリケーションは、エッジ側で開始され、より速いネットワークサービス応答を提供し、リアルタイムビジネス、アプリケーションインテリジェンス、セキュリティ、プライバシー保護などの方の業界の基本的なニーズを満たす。インターネットオブシングスは、エッジコンピューティング技術の重要な適用の1つである。インターネットオブシングスの適用のシーンでは、データのリアルタイムの処理を実現するために、一部のデータをデータソースに近いエッジデバイスに配布して処理を実行し、もう一部の重要なデータを依然としてクラウドに送り返す必要がある。
【0033】
図1に示すように、本発明の実施例の適用シーンの模式図である。当該適用シーンは、本発明の実施例の可能な1適用シーンに過ぎず、本発明を限制するために使用されないことを理解できる。ここで、エッジデバイスは、車載サーバ131、監視制御システム132、ノートブックコンピュータ133、携帯電話134などのデバイスであり得、各々のエッジデバイスは、ネットワーク120を介してクラウド110に接続できる。たとえば、車載サーバ131の場合、さまざまな車載センサが収集した道路情報と車両情報に対して処理を実行することによって、アシスト運転または自動運転を実現できる。また、たとえば、監視制御システム132の場合、監視制御カメラが収集した監視制御対象を取得することによって、監視制御対象に対する追跡を実現できる。これらデータは、リアルタイム性に対する要求がより高いため、データソースに近いエッジデバイスを使用してこれらデータを処理する。一方、一部のより複雑で重要なデータ統合、データ分析などの過程は、エッジデバイスによりデータをクラウドデバイスに送信して、クラウドデバイスによって処理を実行する必要がある。
【0034】
しかしながら、インターネットオブシングスのシーンで、ネットワーク環境が比較的に複雑であり、ネットワークが切断される状況が頻繁に発生される可能性が大きく、ネットワークが切断された状況が長時間続くことがあり、いくつかのより重要なデータをクラウドに信頼的に送り返すことができなくなる。これに基づいて、本発明の実施例は、データ処理方法を提供する。
図2に示すように、前記方法は、
S201:現在受信したメッセージをローカルディスクの第1領域に書き込むことと、
S202:現在受信したメッセージをローカルディスクの第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングすることと、
S203:前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元することと、を含み得る。
【0035】
S201において、現在受信したメッセージは、制御メッセージ、要求メッセージ、または応答メッセージなどのさまざまなタイプのメッセージであり得る。当該メッセージは、クラウドデバイスに送信する必要がある重要なデータであり得る。エッジデバイスは、クライアントデバイスなどのデータソースからメッセージを受信するたびに、当該メッセージに番号を割り当て、番号は当該メッセージを受信した時点に応じて厳密に逓増される。つまり、各メッセージは、いずれも、当該メッセージを一意に認識するための1つの番号、すなわちseqID(Sequence Identifier、シーケンス識別子)を有する。seqIDは、厳密に逓増される。たとえば、T1時点でseqIDがnであるメッセージを受信したと仮定すると、受信する次のメッセージのseqIDはn+1であり、受信するさらに次のメッセージのseqIDはn+2であり、等々。メッセージを受信するたびに、当該メッセージをローカルディスクの第1領域に書き込むことによって、当該メッセージに対する永続化処理を実現できる。
【0036】
永続化は、プログラムデータを一時的な状態から永続的な状態に変換するメカニズムである。メモリは、揮発性メモリである。ローカルディスクは、不揮発性メモリである。通俗的に言えば、永続的に格納できない一時的なデータ(たとえばメモリ内のデータ)を長期間格納できる永続的なデータ(たとえばローカルディスク中のデータ)として永続化することである。永続化により、電源障害、ネットワークの切断などの異常な状態でデータが失われることはない。
【0037】
いくつかの実施例において、前記現在受信したメッセージをWALログに書き込むことができる。WALとは、Write-Ahead Loggingであり、すなわち、先読みロギングシステムを指す。現在受信したメッセージをWALログに書き込む役割は、受信したメッセージをバックアップすることである。エッジデバイスが電源障害またはその他の原因によって再起動された後に、前記WALから前記現在受信したメッセージを読み取ってから、読み取った前記現在受信したメッセージをメモリにバッファリングすることによって、データが失われないように保証することができる。
【0038】
S202において、現在受信したメッセージをローカルディスクの第1領域に書き込み、前記現在受信したメッセージをメモリにバッファリングするため、メモリ内の現在受信したメッセージに対して、ローカルディスクにおいてバックアップ(データ)を見つけることができる。電源障害による再起動などの異常な状況が発生した場合、ローカルディスクの第1領域から対応するメッセージを検索して、メモリ内のデータを復元するため、メモリ内のデータが失われないように保証することができる。エッジデバイスが正常に作業すると、メモリから直接データを読み取ることができる。
【0039】
いくつかの実施例において、1つのメッセージがクラウドデバイスに正常に送信されると、エッジデバイスはメッセージの番号であるメッセージのシーケンス識別子を記録することができる。前記メモリから番号がk+1であるメッセージのデータを読み取り、読み取ったデータをクラウドデバイスに送信することができ、ここで、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数である。番号がk+1であるメッセージを送信する過程で、エッジデバイスとクラウドデバイスとの間でネットワークの切断などの異常な状況が発生すると、ネットワークが復元された後に、メモリから、たとえば番号がk+1であるデータおよびその後のメッセージなどを読み取って、再度クラウドデバイスに送信することによって、受信したデータの中でクラウドデバイスに送信する必要があるメッセージが失われないように保証することができる。
【0040】
いくつかの実施例において、前記現在受信したメッセージをメモリにバッファリングした後に、さらに、前記メモリ内の前記現在受信したメッセージに対してデータ圧縮処理を実行することができる。データ圧縮を通じて、メモリ内のデータ量を減少することができ、メモリの利用率を向上させることができる。
【0041】
いくつかの実施例において、所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアすることができる。本実施例において、所定の条件を満たすと、メモリ内の全部のメッセージをローカルディスクに永続化処理し、前記メモリをクリアすることができる。現在メモリ内にメッセージ1、メッセージ2、……、メッセージnが含まれていると仮定すると、メッセージ1、メッセージ2、……、メッセージnをすべて前記ローカルディスクの第2領域に格納し、前記メモリをクリアすることができる。
【0042】
ここで、前記所定の条件は、前記メモリの占用スペースがメモリスペースの設定値に達したことと、現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む。メモリの容量が限られているため、上記所定の条件に従ってメモリをクリーンアップすることによって、メモリオーバーフローによってデータが失われることを回避することができる。同時に、メモリ内のメッセージをローカルディスクの第2領域に永続化することによって、メモリ内のデータをバックアップして、データが失われることを防止することができる。
【0043】
同時に、ローカルディスク中のデータ量を減少して、ローカルディスクの利用率を向上させるために、前記メモリ内のデータを圧縮し、圧縮した後のデータを前記ローカルディスクの第2領域に格納することができる。
【0044】
メモリ内のメッセージを前記ローカルディスクの第2領域に格納するたびに、ローカルディスクの第2領域にファイルを生成し、メモリ内のメッセージを当該ファイルに記憶することができる。ファイルは、メモリ内の1番目のメッセージのseqIDに従ってファイル名を付けることができる。たとえば、T1時点にメモリ内にseqIDが000000~000199であるメッセージをバッファリングする場合、この200個のメッセージをローカルディスク中の1つのファイルに記憶し、当該ファイルに対して000000に従ってファイル名を付けることができる。T2時点(T2時点はT1時点の後の時点である)にメモリ内にseqIDが000200~000399であるメッセージをバッファリングする場合、この200個のメッセージをローカルディスク中のもう1つのファイルに記憶し、当該ファイルに対して000200に従ってファイル名を付けることができる。
【0045】
メッセージを検索する場合、ローカルディスク中のメモリメッセージを永続化するためのファイルのファイル名に基づいて検索することができる。検索する際に、各々のファイルのファイル名をソートしてから、当該メッセージのseqIDおよび各々のファイル名に対応する開始seqIDに基づいて、二分法を使用して当該メッセージのseqIDがどのファイル内にあるかを確定することができる。
【0046】
いくつかの実施例において、メモリをクリアするたびに、さらに、メモリをクリアした後に受信したメッセージを前記ローカルディスクの第1領域に書き込むことによって、メモリをクリアする前に前記ローカルディスクの第1領域に記憶されているデータを上書きし、今回メモリをクリアした後に受信したメッセージをローカルディスクの第1領域に書き込むときに、前記今回メモリをクリアした後に受信したメッセージをメモリにバッファリングすることができる。このようにして、ローカルディスクの第1領域内のメッセージとメモリ内のメッセージとが一致するように維持できる。ローカルディスクの第1領域は、メモリをバックアップするために使用されるため、ローカルディスクの第1領域に、最も新しいメッセージをのみ格納することができる。
【0047】
メモリをクリアした後に受信した新たなメッセージでローカルディスクの第1領域中の原のデータを上書きすることによって、ローカルディスクに格納するデータ量を減少することができる。いくつかの実施例において、ローカルディスクの第1領域で1つのWALログを新に作成し、新に作成したWALログのファイル名は、原のWALログのファイル名と同一にして、原のWALファイルを上書きして削除することができる。
【0048】
前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアした後に、番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取って、読み取ったデータをクラウドデバイスに送信することができる。ここで、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数である。
【0049】
さらに、番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの第2領域から前記番号がm+1であるメッセージのデータを読み取って、読み取ったデータをクラウドデバイスに送信することができる。
【0050】
実際の適用において、現在受信したメッセージを継続的なメモリに送信することになる。正常(エッジデバイスがオンラインである)の場合、メモリから前記現在受信したメッセージを直接読み取って、クラウドデバイスに送信することができる。ネットワークの切断が発生したが、ネットワークが切断されたオフライン時間がより短いと、メモリ内にネットワークの切断過程で発生された各メッセージをオーバーフローすることなく記憶することができる。したがって、ネットワークが復元された後に、依然としてメモリからクラウドデバイスに正常に送信された最後のメッセージ(たとえば、番号がmであるのメッセージ)の次のメッセージ(たとえば、番号がm+1であるメッセージ)を直接読み取ってクラウドデバイスに送信することによって、受信したデータの中でクラウドデバイスに送信する必要があるメッセージが失われないように保証することができる。
【0051】
ネットワークが切断されたオフライン時間がより長いと、メモリ内にネットワークの切断過程で発生されたすべてのメッセージを記憶することができない。データが失われることを回避するために、メモリ内のメッセージをローカルディスクの第2領域に維持することになる。このような場合、ネットワークが復元された後に、メモリからクラウドデバイスに正常に送信された最後のメッセージの次のメッセージが読み取られないと、ローカルディスク中の第2領域からクラウドデバイスに正常に送信された最後のメッセージの次のメッセージを読み取って、クラウドデバイスに送信することによって、受信したデータの中でクラウドデバイスに送信する必要があるメッセージが失われないように保証することができる。
【0052】
本発明の実施例は、インターネットオブシングスのシーンに適用可能であり、重要なデータの伝送信頼性を向上させることができる。メモリとローカルディスクリソースが限られている場合、メッセージをローカルディスクに永続化することによって、長時間のデータ格納を保証することができる。本発明の実施例は、長時間オフラインであるときのデータ伝送の信頼性を保証できるだけでなく、短時間オフラインであるときにメモリからデータを直接読み取って、データ伝送性能を損失しない。
【0053】
本発明の実施例のエッジデバイスとクラウドデバイスとの間のデータ伝送過程の模式図は、
図3に示したようである。エッジデバイス320では、データソース310によって生成されたメッセージをWALログファイルに格納して、ローカルディスク(disk)321に永続化し、正常に永続化された後に、メッセージをメモリ(cache)322に格納し、cache322がいっぱいになると、cache322内のデータを圧縮してローカルディスク321に記憶し、cacheをクリアする。エッジデバイス320中の送信装置(sender)323は、cache322からメッセージを検索して、クラウドデバイス330に送信することができる。エッジデバイス320が正常である場合または短時間オフラインされた場合には、cache322内で該当するメッセージを検索できるが、エッジデバイス320が長時間オフラインされた場合には、cache322内で該当するメッセージが検索されなく、この場合、sender323はローカルディスク321で該当するメッセージを検索して、クラウドデバイス330に送信する。
【0054】
本発明の実施例によると、データ処理方法は、エッジデバイスを利用して実施することができる。ここで、エッジデバイスは、
図1に示した適用シーンでの車載サーバ、監視制御システム、ノートブックコンピュータ、携帯電話などのデバイスであり得る。本発明の実施例によって、エッジデバイスに異常な電源障害が発生されたとき、またはエッジデバイスとクラウドデバイスとの間のネットワーク接続が切断されたときに、データが失われることを防止することができる。
【0055】
当業者は、具体的な実施形態の上記方法での各ステップの書き順序は、厳密な実行順序を意味して実施過程を限定することではなく、各ステップの具体的な実行順序はその機能と可能な内部ロジックによって決定されることを理解できる。
【0056】
図4に示すように、本発明は、データ処理装置をさらに提供し、前記装置は、
現在受信したメッセージをローカルディスクの第1領域に書き込むための第1書込みモジュール401と、
現在受信したメッセージをローカルディスクの第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングするための第1バッファリングモジュール402と、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元するためのデータ復元モジュール403と、を備える。
【0057】
いくつかの実施例において、前記第1書込みモジュールは、
前記現在受信したメッセージをWALログに書き込む。
【0058】
いくつかの実施例において、前記装置は、
前記メモリから番号がk+1であるメッセージのデータを読み取るための第1読取りモジュールであって、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数である第1読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第1送信モジュールと、をさらに備える。
【0059】
いくつかの実施例において、前記装置は、
所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアするための格納モジュールをさらに備える。
【0060】
いくつかの実施例において、前記格納モジュールは、
前記メモリ内のすべてのデータを圧縮し、前記圧縮した後のデータを前記ローカルディスクの前記第2領域に格納する。
【0061】
いくつかの実施例において、前記所定の条件は、
前記メモリの占用スペースが前記メモリスペースの設定値に達したことと、
現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む。
【0062】
いくつかの実施例において、前記装置は、
前記メモリをクリアするたびに、前記メモリをクリアした後に受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことによって、前記メモリをクリアする前に前記ローカルディスクの前記第1領域に記憶されているデータを上書きするための第2書込みモジュールと、
前記メモリをクリアした後に受信した前記メッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記メモリをクリアした後に受信した前記メッセージを前記メモリにバッファリングするための第2バッファリングモジュールと、をさらに備える。
【0063】
いくつかの実施例において、前記装置は、
番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取るための第2読取りモジュールであって、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数である第2読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第2送信モジュールと、をさらに備える。
【0064】
いくつかの実施例において、前記装置は、
前記番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの前記第2領域から前記番号がm+1であるメッセージのデータを読み取るための第3読取りモジュールと、
前記読み取ったデータを前記クラウドデバイスに送信するための第3送信モジュールと、をさらに備える。
【0065】
いくつかの実施例において、本発明の実施例によって提供される装置が有する機能または含むモジュールは、上記の方法の実施例で説明した方法を実行することができ、その具体的な実現は上記の方法の実施例の説明を参照することができ、簡潔にするために、ここでは繰り返して説明しない。
【0066】
上記で説明した装置の実施例は、単に模式的なものであり、ここで前記の分離された構成要素として説明されたモジュールは、物理的に分離されていてもされなくてもよい。モジュールとして表した構成要素は、物理的なモジュールであってもなくてもよい。すなわち、1つの場所に位置されてもよいし、複数のネットワークモジュールに分散されてもよい。実際のニーズによってここでの一部または全部のモジュールを選択して本明細書の解決策の目的を実現することができる。当業者は、創造的な作業なしで理解して実行することができる。
【0067】
本発明の装置の実施例は、サーバまたは端末デバイスなどの、エッジデバイスに適用されることができる。装置の実施例は、ソフトウェアによって実現されてもよいし、ハードウェアまたはソフトウェアとハードウェアの組み合わせの方式によって実現されてもよい。ソフトウェアによって実現される例を挙げると、1つの論理的な意味での装置として、それは、それが位置するファイルを処理するプロセッサによって、不揮発性メモリ内の対応するコンピュータプログラム命令をメモリに読み込んで、プロセッサが装置のデータ処理を実行するようにする。ハードウェアの観点から、
図5に示すように、本発明の装置が位置するエッジデバイスのハードウェアの構成図である。
図5に示したプロセッサ501、メモリ502、および、ローカルディスク503に加えて、ネットワークインターフェース504およびバス505をさらに含んでもよく、実施例の装置が位置するサーバまたは電子デバイスは、一般的に、当該エッジデバイスの実際の機能に従ってその他のハードウェアをさらに含むことができ、これに対して限定しない。
【0068】
これに応じて、本発明の実施例は、コンピュータプログラムが記憶されているコンピュータ記録媒体をさらに提供し、当該プログラムがプロセッサによって実行されるときに、前記プロセッサが任意の実施例に記載のデータ処理方法を実現するようにする。
【0069】
これに応じて、本発明の実施例は、プロセッサと、前記プロセッサ上で実行できるコンピュータプログラムを記憶するためのメモリと、を備える、エッジデバイスを提供し、前記プロセッサは、前記プログラムを実行することによって、任意の実施例に記載の方法を実現する。
【0070】
本発明は、プログラムコードが含まれた1つまたは複数の記録媒体(ディスクメモリ、CD-ROM、光学メモリなどを含むが、これらに限定されない)上で実施されるコンピュータプログラム製品の形態を採用することができる。コンピュータ可読記録媒体は、永続的および非永続的、リムーバブルおよび非リムーバブル媒体が含まれ、情報の記憶は任意の方法または技術で実現できる。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または、その他のデータであり得る。コンピュータの記録媒体の例は、位相変化メモリ(PRAM)、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、その他のタイプのランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、フラッシュメモリまたはその他のメモリ技術、読み取り専用光ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途光ディスク(DVD)またはその他の光学メモリ、磁気カセットテープを含むが、これらに限定されない。磁気テープ式磁気ディスクメモリ、その他の磁気記憶デバイスまたは任意のその他の非伝送媒体は、計算デバイスによってアクセスできる情報を記憶することができる。
【0071】
当業者は、本明細書を検討し、本明細書に開示された本明細書を実施した後、本発明の他の実施形態を容易に考えることができる。本発明は、本発明の任意の変形、用途変化、または適応変化をカバーすることを意図している。これら変形、用途変化、または適応変化は、本発明の一般的な原理に従い、本発明に開示されていない本技術分野の周知の常識または通常の技術的手段を含む。明細書と実施例は、例示的なものとしてのみ見なされ、本発明の真の範囲および精神は、以下の特許請求の範囲によって指摘される。
【0072】
本発明は、上記に記載されており、また、図面で示されている精確な構成に限定されず、その範囲から逸脱することなく、様々な修正および変更を行うことができることを理解すべきである。本発明の範囲は、添付の特許請求の範囲によってのみ制限される。
【0073】
上記の説明は、本発明の好ましい実施例に過ぎず、本発明を限定することを意図するものではない。本発明の精神と原則の範囲内で行われるいかなる修改、同等の置換、改善などは、いずれも本発明が保護する範囲内に含まれるべきである。
【0074】
上記の各々の実施例の説明は、各々の実施例間の違いを強調する傾向があり、同じまたは類似なところは互いに参考すればよく、簡潔にするために、本明細書では繰り返して説明しない。
【手続補正書】
【提出日】2021-04-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理方法であって、
現在受信したメッセージをローカルディスクの第1領域に書き込むことと、
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングすることと、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元することと、を含む
ことを特徴とするデータ処理方法。
【請求項2】
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことは、
前記現在受信したメッセージを先読みロギング(WAL)ログに書き込むことを含む
ことを特徴とする請求項1に記載のデータ処理方法。
【請求項3】
前記メモリから番号がk+1であるメッセージのデータを読み取ることであって、kは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、kは、正の整数であることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む
ことを特徴とする請求項1または2に記載のデータ処理方法。
【請求項4】
所定の条件を満たすと、前記メモリ内のすべてのデータを前記ローカルディスクの第2領域に格納し、前記メモリをクリアすることをさらに含む
ことを特徴とする請求項1乃至3の中のいずれか1項に記載のデータ処理方法。
【請求項5】
前記メモリ内のすべてのデータを前記ローカルディスクの前記第2領域に格納することは、
前記メモリ内のすべての前記データを圧縮することと、
前記圧縮した後のデータを前記ローカルディスクの前記第2領域に格納することを含む
ことを特徴とする請求項4に記載のデータ処理方法。
【請求項6】
前記所定の条件は、
前記メモリの占用スペースが前記メモリスペースの設定値に達したことと、
現在時点と前回前記メモリをクリアした時点との間の時間間隔が所定の時間閾値に達したことと、の中の少なくとも1つを含む
ことを特徴とする請求項4または5に記載のデータ処理方法。
【請求項7】
前記メモリをクリアするたびに、前記メモリをクリアした後に受信したメッセージを前記ローカルディスクの前記第1領域に書き込むことによって、前記メモリをクリアする前に前記ローカルディスクの前記第1領域に記憶されているデータを上書きすることと、
前記メモリをクリアした後に受信した前記メッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記メモリをクリアした後に受信した前記メッセージを前記メモリにバッファリングすることと、をさらに含む
ことを特徴とする請求項4または5に記載のデータ処理方法。
【請求項8】
前記メモリ内のすべてのデータを前記ローカルディスクの前記第2領域に格納し、前記メモリをクリアした後に、
前記データ処理方法は、
番号がm+1であるメッセージを前記メモリに記憶されている場合、前記メモリから前記番号がm+1であるメッセージのデータを読み取ることであって、mは、クラウドデバイスに正常に送信された最後のメッセージの番号であり、メッセージの番号は、当該メッセージを受信した順序に基づいて確定され、mは、正の整数であることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む
ことを特徴とする請求項7に記載のデータ処理方法。
【請求項9】
前記番号がm+1であるメッセージが前記メモリに記憶されていない場合、前記ローカルディスクの前記第2領域から前記番号がm+1であるメッセージのデータを読み取ることと、
前記読み取ったデータを前記クラウドデバイスに送信することと、をさらに含む
ことを特徴とする請求項8に記載のデータ処理方法。
【請求項10】
データ処理装置であって、
現在受信したメッセージをローカルディスクの第1領域に書き込むための第1書込みモジュールと、
前記現在受信したメッセージを前記ローカルディスクの前記第1領域に書き込むときに、前記現在受信したメッセージをメモリにバッファリングするための第1バッファリングモジュールと、
前記ローカルディスクと前記メモリと含むデバイスが再起動された後に、前記ローカルディスクの前記第1領域に記憶されているデータに基づいて前記メモリ内のデータを復元するためのデータ復元モジュールと、を備える
ことを特徴とするデータ処理装置。
【請求項11】
コンピュータプログラムが記憶されているコンピュータ可読記録媒体であって、
当該プログラムがプロセッサによって実行されるときに、プロセッサが請求項1乃至9の中のいずれか1項に記載の方法を実現するようにする
ことを特徴とするコンピュータ可読記録媒体。
【請求項12】
プロセッサと、前記プロセッサ上で実行できるコンピュータプログラムを記憶するためのメモリと、を備える、エッジデバイスであって、
前記プロセッサは、前記プログラムを実行することによって、請求項1乃至9の中のいずれか1項に記載のデータ処理方法を実現する
ことを特徴とするエッジデバイス。
【国際調査報告】