(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-27
(45)【発行日】2023-11-07
(54)【発明の名称】データ処理方法及び関連装置、並びにコンピュータプログラム
(51)【国際特許分類】
G06F 16/176 20190101AFI20231030BHJP
G06F 16/23 20190101ALI20231030BHJP
【FI】
G06F16/176 100
G06F16/23
(21)【出願番号】P 2022515069
(86)(22)【出願日】2020-09-03
(86)【国際出願番号】 CN2020113108
(87)【国際公開番号】W WO2021068689
(87)【国際公開日】2021-04-15
【審査請求日】2022-03-07
(31)【優先権主張番号】201910959838.6
(32)【優先日】2019-10-10
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】李 ▲海▼翔
(72)【発明者】
【氏名】▲盧▼ ▲衛▼
(72)【発明者】
【氏名】杜 小勇
(72)【発明者】
【氏名】王 童童
(72)【発明者】
【氏名】潘 安群
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特開2015-191307(JP,A)
【文献】米国特許出願公開第2007/0219999(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/10-16/29
(57)【特許請求の範囲】
【請求項1】
電子機器が実行するデータ処理方法であって、
操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得するステップと、
前記操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリするステップであって、前記データグループ集合は少なくとも一つのデータグループを含み、前記データグループは少なくとも一つのデータユニットを含む、ステップと、
前記目標データグループのロッキング状態情報を取得するステップと、
前記ロッキング状態情報と前記操作タイプ情報に基づき前記操作対象データユニットに対してロック検出を行い、検出結果を得るステップと、
前記検出結果に基づき前記操作対象データユニットに対してロック処理を行うステップと、
前記ロック処理が完了した後に、前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように、前記操作命令を実行するステップと、を含む、データ処理方法。
【請求項2】
前記操作タイプ情報は第1操作タイプと第2操作タイプとを含み、前記ロック検出は第1ロック検出と第2ロック検出とを含み、前記検出結果は第1ロック検出結果と第2ロック検出結果とを含み、
前記ロッキング状態情報と前記操作タイプ情報に基づき前記操作対象データユニットに対してロック検出を行い、検出結果を得るステップは、
前記操作タイプ情報が第1操作タイプである場合、前記ロッキング状態情報に基づき前記操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得るステップと、
前記操作タイプ情報が第2操作タイプである場合、前記ロッキング状態情報に基づき前記操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得るステップと、を含み、
前記ロック処理は第1ロック処理と第2ロック処理とを含み、前記検出結果に基づき前記操作対象データユニットに対してロック処理を行うステップは、
前記第1ロック検出結果に基づき前記操作対象データユニットに対して第1ロック処理を行うステップ、又は、
前記第2ロック検出結果に基づき前記操作対象データユニットに対して第2ロック処理を行うステップを含む
請求項1に記載のデータ処理方法。
【請求項3】
前記ロッキング状態情報は前記目標データグループにおけるデータユニットのデータロックを含み、前記データロックは第1データロックと第2データロックとを含み、
前記ロッキング状態情報に基づき前記操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得るステップは、
前記ロッキング状態情報に基づき前記操作対象データユニットに対応する全てのデータロックを決定するステップと、
前記全てのデータロックには第1データロックも第2データロックも含まれない場合、第1ロック検出結果を得るステップと、を含み
前記第1ロック検出結果に基づき前記操作対象データユニットに対して第1ロック処理を行うステップは、
前記第1ロック検出結果に基づき、前記操作対象データユニットのために、前記操作命令の第1データロックを前記ロッキング状態情報に追加するステップを含む
請求項2に記載のデータ処理方法。
【請求項4】
前記ロッキング状態情報は前記目標データグループにおけるデータユニットのデータロックを含み、前記データロックは第1データロックと第2データロックとを含み、
前記ロッキング状態情報に基づき前記操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得るステップは、
前記目標データグループのロッキング状態情報に基づき前記操作対象データユニットに対応する全てのデータロックを決定するステップと、
前記操作対象データユニットに対応するデータロックには第2データロックのみが含まれる場合、第2ロック検出結果を得るステップと、
前記操作対象データユニットに対応するデータロックには第1データロックも第2データロックも含まれない場合、第2ロック検出結果を得るステップと、を含み、
前記第2ロック検出結果に基づき前記操作対象データユニットに対して第2ロック処理を行うステップは、
前記第2ロック検出結果に基づき、前記操作対象データユニットのために、前記操作命令の第2データロックを前記ロッキング状態情報に追加するステップを含む
請求項2に記載のデータ処理方法。
【請求項5】
前記操作命令を取得する前に、さらに、
予め設定された数値範囲、データユニットの履歴操作情報を取得するステップと、
前記履歴操作情報に基づきデータユニット毎の履歴操作回数を集計するステップと、
前記履歴操作回数と前記予め設定された数値範囲に基づき前記データユニットに対してグループ化処理を行い、前記データグループ集合を得るステップと、を含む
請求項1に記載のデータ処理方法。
【請求項6】
前記データグループ集合は一つの第1データグループと複数の第2データグループとを含み、
前記履歴操作回数と前記予め設定された数値範囲に基づき前記データユニットに対してグループ化処理を行い、前記データグループ集合を得るステップは、
前記履歴操作回数に基づき各データユニットの履歴操作確率を算出するステップと、
第1データグループを生成するステップと、
前記データユニットの履歴操作確率が前記予め設定された数値範囲に属しない場合、前記データユニットを前記第1データグループに追加するステップと、
前記データユニットの履歴操作確率が前記予め設定された数値範囲に属する場合、前記データユニットに対応する第2データグループを生成し、前記データユニットを前記データユニットに対応する第2データグループに追加するステップと、を含む
請求項5に記載のデータ処理方法。
【請求項7】
前記データユニットは複数のデータサブユニットを含み、
前記データユニットに対応する第2データグループを生成し、前記データユニットを前記データユニットに対応する第2データグループに追加するステップは、
前記データユニットに対応する第2データグループを生成するステップと、
前記複数のデータサブユニットを前記データユニットに対応する第2データグループに追加するステップと、を含む
請求項6に記載のデータ処理方法。
【請求項8】
前記操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリする前に、さらに、
グループ化更新命令を取得するステップと、
前記グループ化更新命令の命令タイプがユーザグループ化タイプである場合、前記グループ化更新命令で前記データグループ集合におけるデータユニットを改めてグループ化するステップと、
前記グループ化更新命令の命令タイプが自動グループ化タイプである場合、前記データグループ集合におけるデータユニットを改めて自動グループ化するステップと、を含む
請求項1に記載のデータ処理方法。
【請求項9】
前記データグループ集合におけるデータユニットを改めて自動グループ化するステップは、
予め設定された数値範囲、データユニットの履歴操作情報を取得するステップと、
前記履歴操作情報に基づきデータグループ集合におけるデータユニット毎の履歴操作回数を集計するステップと、
前記履歴操作回数と前記予め設定された数値範囲に基づき前記データユニットに対してグループ化処理を行い、改めて自動グループ化されたデータグループ集合を得るステップと、を含む
請求項8に記載のデータ処理方法。
【請求項10】
前記グループ化更新命令はグループ化の数を含み、
前記グループ化更新命令で前記データグループ集合におけるデータユニットを改めてグループ化するステップは、
前記データグループ集合におけるデータユニットを前記グループ化の数のデータグループに等分し、グループ化されたデータグループ集合を得るステップを含む
請求項8に記載のデータ処理方法。
【請求項11】
前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行した後に、さらに、
データユニットの履歴操作情報を取得するステップと、
前記操作命令に応じて前記データユニットの履歴操作情報を更新するステップと、を含む
請求項1に記載のデータ処理方法。
【請求項12】
前記ロッキング状態情報は前記目標データグループにおけるデータユニットのデータロックを含み、
前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行した後に、さらに、
前記操作対象データユニットのために、前記ロッキング状態情報から前記操作命令に対応するデータロックを削除するステップを含む
請求項1に記載のデータ処理方法。
【請求項13】
操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得するように構成される取得ユニットと、
前記操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリするように構成されるクエリユニットであって、前記データグループ集合は少なくとも一つのデータグループを含み、前記データグループは少なくとも一つのデータユニットを含む、クエリユニットと、
前記目標データグループのロッキング状態情報を取得するように構成されるデータロックユニットと、
前記ロッキング状態情報と前記操作タイプ情報に基づき前記操作対象データユニットに対してロック検出を行い、検出結果を得るように構成される検出ユニットと、
前記検出結果に基づき前記操作対象データユニットに対してロック処理を行うように構成されるロックユニットと、
前記ロック処理が完了した後に、前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行するように構成される実行ユニットと、を備える、データ処理装置。
【請求項14】
コンピュータに請求項1~12のいずれかに記載のデータ処理方法
を実行させるコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項15】
複数の命令が記憶されたメモリと、請求項1~12のいずれかに記載のデータ処理方法におけるステップを実行するように前記メモリから命令をロード
して実行するプロセッサと、を備える、サーバ。
【請求項16】
コンピュータに、請求項1~12のいずれかに記載のデータ処理方
法を実行
させる、コンピュータプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年10月10日に中国特許局に出願され、出願番号が201910959838.6であり、発明の名称が「データ処理方法及び関連装置」である中国特許出願に基づく優先権を主張するものであり、該中国特許出願の全内容を参照として本願に援用する。
本願はデータ処理分野に関し、具体的にはデータ処理方法、装置、サーバ及び記憶媒体に関する。
【背景技術】
【0002】
リレーショナルデータベースにおけるデータはタプル(tuple)として記憶されており、テーブルと見なされることができ、このテーブルにおける各行(即ち、データベースにおける各データ記録)はいずれもタプルであり、各列はそれぞれ1つの属性である。
トランザクション処理とは、データベースにおけるデータを処理する技術であり、コンピュータはトランザクションを実行する際には、常に1つ以上のタプルに対してアクセスなどを行う必要がある。並行アクセス制御技術はコンピュータが複数のトランザクションを同時に実行中に、同一タプルに同時にアクセスすることで生じうる衝突問題を解消するためのものである。例えば、トランザクションAはタプルを読み取る必要があり、トランザクションBは同時にこのタプルを修正する必要がある場合、衝突が生じる可能性があり、衝突問題を解消するために、トランザクションAとトランザクションBの実行時間をずらすことはよく使われる方法である。
【0003】
しかしながら、従来の並行アクセス制御技術では、衝突誤判定が発生しやすいので、それでこれらの衝突と誤判定された複数の並行トランザクションは実行時間をずらさなければならず、同時に実行することができず、トランザクションの実行の並行性が低くなるため、従来の並行アクセス制御技術に基づくデータ処理方法は効率が低下する。
【発明の概要】
【課題を解決するための手段】
【0004】
本願の実施例は、データ処理の効率を向上させることができるデータ処理方法、装置、サーバ及び記憶媒体を提供する。
【0005】
本願の実施例は、
操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得するステップと、
前記操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリするステップであって、前記データグループ集合は少なくとも一つのデータグループを含み、前記データグループは少なくとも一つのデータユニットを含む、ステップと、
前記目標データグループのロッキング状態情報を取得するステップと、
前記ロッキング状態情報と前記操作タイプ情報に基づき前記操作対象データユニットに対してロック検出を行い、検出結果を得るステップと、
前記検出結果に基づき前記操作対象データユニットに対してロック処理を行うステップステップと、
前記ロック処理が完了した後に、前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行するステップと、を含むデータ処理方法を提供する。
【0006】
いくつかの実施例において、前記操作タイプ情報は第1操作タイプと第2操作タイプとを含み、前記ロック検出は第1ロック検出と第2ロック検出とを含み、前記検出結果は第1ロック検出結果と第2ロック検出結果とを含み、
前記ロッキング状態情報と前記操作タイプ情報に基づき前記操作対象データユニットに対してロック検出を行い、検出結果を得るステップは、
前記操作タイプ情報が第1操作タイプである場合、前記ロッキング状態情報に基づき前記操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得るステップと、
前記操作タイプ情報が第2操作タイプである場合、前記ロッキング状態情報に基づき前記操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得るステップと、を含み、
前記ロック処理は第1ロック処理と第2ロック処理とを含み、前記検出結果に基づき操作対象データユニットに対してロック処理を行うステップは、
前記第1ロック検出結果に基づき前記操作対象データユニットに対して第1ロック処理を行うステップ、又は、
前記第2ロック検出結果に基づき前記操作対象データユニットに対して第2ロック処理を行うステップを含む。
【0007】
いくつかの実施例において、前記ロッキング状態情報は前記目標データグループにおけるデータユニットのデータロックを含み、前記データロックは第1データロックと第2データロックとを含み、
前記ロッキング状態情報に基づき前記操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得るステップは、
前記ロッキング状態情報に基づき前記操作対象データユニットに対応する全てのデータロックを決定するステップと、
前記全てのデータロックには第1データロックも第2データロックも含まれない場合、第1ロック検出結果を得るステップと、を含む。
【0008】
前記第1ロック検出結果に基づき前記操作対象データユニットに対して第1ロック処理を行うステップは、
前記第1ロック検出結果に基づき、前記操作対象データユニットのために、前記操作命令の第1データロックを前記ロッキング状態情報に追加するステップを含む。
【0009】
いくつかの実施例において、前記ロッキング状態情報は前記目標データグループにおけるデータユニットのデータロックを含み、前記データロックは第1データロックと第2データロックとを含み、
前記ロッキング状態情報に基づき前記操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得るステップは、
前記目標データグループのロッキング状態情報に基づき前記操作対象データユニットに対応する全てのデータロックを決定するステップと、
前記操作対象データユニットに対応するデータロックには第2データロックのみが含まれる場合、第2ロック検出結果を得るステップと、
前記操作対象データユニットに対応するデータロックには第1データロックも第2データロックも含まれない場合、第2ロック検出結果を得るステップと、を含む。
【0010】
前記第2ロック検出結果に基づき前記操作対象データユニットに対して第2ロック処理を行うステップは、
前記第2ロック検出結果に基づき、前記操作対象データユニットのために、前記操作命令の第2データロックを前記ロッキング状態情報に追加するステップを含む。
【0011】
いくつかの実施例において、前記操作命令を取得する前に、さらに、
予め設定された数値範囲、データユニットの履歴操作情報を取得するステップと、
前記履歴操作情報に基づきデータユニット毎の履歴操作回数を集計するステップと、
前記履歴操作回数と前記予め設定された数値範囲に基づき前記データユニットに対してグループ化処理を行い、前記データグループ集合を得るステップと、を含む。
【0012】
いくつかの実施例において、前記データグループ集合は一つの第1データグループと複数の第2データグループとを含み、
前記履歴操作回数と前記予め設定された数値範囲に基づき前記データユニットに対してグループ化処理を行い、データグループ集合を得るステップは、
前記履歴操作回数に基づきデータユニット毎の履歴操作確率を算出するステップと、
第1データグループを生成するステップと、
前記データユニットの履歴操作確率が前記予め設定された数値範囲に属しない場合、前記データユニットを第1データグループに追加するステップと、
前記データユニットの履歴操作確率が前記予め設定された数値範囲に属する場合、前記データユニットに対応する第2データグループを生成し、前記データユニットを前記データユニットに対応する第2データグループに追加するステップと、を含む。
【0013】
いくつかの実施例において、前記データユニットは複数のデータサブユニットを含み、
前記データユニットに対応する第2データグループを生成し、前記データユニットを前記データユニットに対応する第2データグループに追加するステップは、
前記データユニットに対応する第2データグループを生成するステップと、
前記複数のデータサブユニットを前記データユニットに対応する第2データグループに追加するステップと、を含む。
【0014】
いくつかの実施例において、前記操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリする前に、さらに、
グループ化更新命令を取得するステップと、
前記グループ化更新命令の命令タイプがユーザグループ化タイプである場合、前記グループ化更新命令で前記データグループ集合におけるデータユニットを改めてグループ化するステップと、
前記グループ化更新命令の命令タイプが自動グループ化タイプである場合、前記データグループ集合におけるデータユニットを改めて自動グループ化するステップと、を含む。
【0015】
いくつかの実施例において、前記データグループ集合におけるデータユニットを改めて自動グループ化するステップは、
予め設定された数値範囲、データユニットの履歴操作情報を取得するステップと、
前記履歴操作情報に基づきデータグループ集合におけるデータユニット毎の履歴操作回数を集計するステップと、
前記履歴操作回数と前記予め設定された数値範囲に基づき前記データユニットに対してグループ化処理を行い、改めて自動グループ化されたデータグループ集合を得るステップと、を含む。
【0016】
いくつかの実施例において、前記グループ化更新命令は、グループ化の数量を含み、
前記グループ化更新命令で前記データグループ集合におけるデータユニットを改めてグループ化するステップは、
前記データグループ集合におけるデータユニットを前記グループ化の数のデータグループに等分し、グループ化されたデータグループ集合を得るステップを含む。
【0017】
いくつかの実施例において、前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行した後に、さらに、
データユニットの履歴操作情報を取得するステップと、
前記操作命令に応じて前記データユニットの履歴操作情報を更新するステップと、を含む。
【0018】
いくつかの実施例において、前記ロッキング状態情報は前記目標データグループにおけるデータユニットのデータロックを含み、
前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行した後に、さらに、
前記操作対象データユニットのために、前記目標データグループ的ロッキング状態情報から前記操作命令に対応するデータロックを削除するステップをさらに含む。
【0019】
本願の実施例は、
操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得するように構成される取得ユニットと、
前記操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリするように構成されるクエリユニットであって、前記データグループ集合は少なくとも一つのデータグループを含み、前記データグループは少なくとも一つのデータユニットを含む、クエリユニットと、
前記目標データグループのロッキング状態情報を取得するように構成されるデータロックユニットと、
前記ロッキング状態情報と前記操作タイプ情報に基づき前記操作対象データユニットに対してロック検出を行い、検出結果を得るように構成される検出ユニットと、
前記検出結果に基づき前記操作対象データユニットに対してロック処理を行うように構成されるロックユニットと、
前記ロック処理が完了した後に、前記操作対象データユニットに対して前記操作タイプ情報に対応する操作を行うように前記操作命令を実行するように構成される実行ユニットと、を備えるデータ処理装置をさらに提供する。
【0020】
本願の実施例は、複数の命令が記憶されたコンピュータ読み取り可能な記憶媒体をさらに提供し、前記命令は本願の実施例に係るいずれかのデータ処理方法におけるステップを実行するようにプロセッサによりロードされる。
【0021】
本願の実施例は、メモリ及びプロセッサを備えるサーバをさらに提供し、前記メモリは複数の命令を記憶し、前記プロセッサは本願の実施例に係るいずれかのデータ処理方法におけるステップを実行するように、前記メモリから命令をロードする。
【0022】
本願の実施例は、コンピュータプログラム製品をさらに提供し、前記コンピュータプログラム製品は実行されるときに、本願の実施例に係るいずれかの処理方法におけるステップを実行する。
【0023】
本願の実施例によれば、操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得することができ、操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリすることができ、データグループ集合は少なくとも一つのデータグループを含むことができ、データグループは少なくともひとつのデータユニットを含むことができ、目標データグループのロッキング状態情報を取得し、ロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得、検出結果に基づき操作対象データユニットに対してロック処理を行い、ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行する。
【0024】
本願において、操作対象データユニットが属する目標データグループに基づき操作対象データユニットに対して対応するロック処理を行うことで、この操作命令を実行することができる。これにより、本願はロッキング状態情報の取得及びロック処理際の演算量を低減して、安全を確保するとともに、データ処理の効率を向上させることができる。
【図面の簡単な説明】
【0025】
【
図1a】本願の実施例に係るデータ処理方法の応用シーンの概略図である。
【
図1b】本願の実施例に係るデータ処理方法の第1種類のフローチャートである。
【
図1c】本願の実施例に係るデータ処理方法のデータグループの構成概略図である。
【
図1d】本願の実施例に係るデータ処理方法のロック状態情報の概略図である。
【
図2a】本願の実施例に係るデータ処理方法の第2種類のフローチャートである。
【
図2b】本願の実施例に係るデータ処理方法の具体的なロック状態情報の概略図である。
【
図2c】本願の実施例に係るデータ処理方法の分散データサーバのアーキテクチャ概略図である。
【
図3】本願の実施例に係るデータ処理装置の構成概略図である。
【
図4】本願の実施例に係る電子機器の構成概略図である。
【発明を実施するための形態】
【0026】
本願の実施例の態様をより明確に説明するために、以下は実施例の説明に用いる必要がある図面を簡単に説明し、無論、以下の説明における図面は本願のいくつかの実施例に過ぎなく、当業者にとって、創造的な労働を費やすことなく、これらの図面に基づいて他の図面を得ることができる。
【0027】
以下は本願の実施例における図面を参照しながら、本願の実施例における態様を明確で且つ完全に説明し、無論、説明された実施例は本願の一部の実施例に過ぎなく、全ての実施例ではない。本願の実施例に基づき、当業者が創造的な労働を費やすことなく得られた全ての他の実施例は、いずれも本願の保護範囲に属する。
【0028】
表1はユーザデータテーブルを以下のように示す。
【0029】
【0030】
表1には、タプルAとタプルBとが含まれ、各タプルにはそれぞれユーザの番号、ユーザ名、ユーザの年齢、ユーザの所属グループであるユーザの四つの属性のデータが含まれる。
【0031】
コンピュータはトランザクションを実行するとき、常に1つ以上のタプルにアクセスする必要があり、アクセスの方式が多種あり、第1種類のアクセス、第2種類のアクセスなどを含み、例えば、第1種類のアクセスがデータの読み取りを指し、第2種類のアクセスがデータの書き込みを指すことができ、また例えば、第1種類のアクセスがデータの書き込みを指し、第2種類のアクセスがデータの読み取りを指すことなどができる。
関連技術において、衝突を防止するために、トランザクションがアクセスする前に、タプルにデータロックをかけ、アクセスが完了した後にタプルにデータロックを解除する必要があり、これでタプルがロック解除されるまで他のトランザクションがロックされたタプルにアクセスすることができないようにし、データの誤処理によるデータ処理効率の低下を回避する。
【0032】
例えば、表2におけるトランザクションAとトランザクションBを参照し、トランザクションAとトランザクションBはこのユーザデータテーブルを以下のように操作することができる。
【0033】
【0034】
してみれば、トランザクションAはまず実行開始し、トランザクションAがタプルAのユーザ名の読み取りを実行する前に、まずタプルAをロックする必要があり、トランザクションAのロックが成功し且つ読み取りが完了した後に、トランザクションBは実行開始し、トランザクションBはタプルAにデータロックがなくなるまで待機しなければタプルAのユーザの所属グループを書き込むことができないため、トランザクションBはt10時点まで待機しなければタプルAをロックすることができない。
【0035】
しかし既知のように、トランザクションAによるタプルAのユーザ名の読み取りとトランザクションBによるタプルAのユーザの所属グループの書き込みとには衝突が発生しないが、現在の衝突検出メカニズムは依然としてこのような状況を衝突と誤判定する。
【0036】
本願の実施例は、上記衝突誤判定の状況を解決し、データ処理効率を向上させることができるデータ処理方法及び関連装置を提供する。
【0037】
このデータ処理装置は具体的には電子機器に集積することができ、この電子機器は端末、サーバなどの機器であってもよい。端末は携帯電話、タブレット、スマートブルートゥース(登録商標)機器、ノートパソコン、パーソナルコンピュータ(Personal Computer:PC)などの機器であってもよい。サーバは、単一のサーバであってもよく、複数のサーバからなるサーバクラスタであってもよい。
【0038】
いくつかの実施例において、このデータ処理装置は複数の電子機器に集積することもでき、例えば、このデータ処理装置は複数のサーバに集積し、複数のサーバによって本願のデータ処理方法を実現することができる。
【0039】
図1aを参照し、この電子機器はサーバに集積することができ、このサーバは、操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得し、操作対象データユニット情報に基づき、少なくとも一つのデータユニットを含むデータグループを少なくとも一つ含むデータグループ集合において目標データグループをクエリし、目標データグループのロッキング状態情報を取得し、ロッキング状態情報と操作タイプ情報に基づき、操作対象データユニットに対してロック検出を行い、検出結果を得、検出結果に基づき操作対象データユニットに対してロック処理を行い、ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行することができる。
【0040】
これにより、本態様は操作対象データユニットに対応する目標データグループのロッキング状態情報に基づきロックの可否を判断するとともに、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行することができ、本態様は衝突をより正確に判断し、上記衝突誤判定によるデータ処理効率の低下という課題を解決することができる。
【0041】
以下、それぞれについて詳述する。なお、以下の実施例の番号は、実施例の好適な順序を限定するものではない。
【0042】
本実施例において、
図1bに示すように、具体的なフローが下記通りであるデータ処理方法を提供する。
ステップ101において、操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得する。
操作命令はデータベースにおけるデータに対する操作命令であってもよく、この操作命令の操作タイプ情報とこの操作命令が操作する操作対象データユニットに対応する操作対象データユニット情報とを含んでもよい。
【0043】
実現可能な態様において、操作命令を取得する方法はネットワークを介してネットワークサーバから取得することであってもよく、データ処理装置が集積された電子機器により決まったタイミングで生成されることであってもよく、また技術者がこの電子機器を操作し、データ処理装置はこの電子機器で生成された操作命令を取得することなどであってもよい。
例えば、いくつかの実施例において、データ処理装置は技術者が発した操作命令を取得することができ、データベース更新のシーンにおいて、技術者は更新ファイルをデータベースサーバに取り込むことができ、更新ファイルの取り込み中に、データベースサーバは更新ファイル及び技術者の更新操作に基づき複数の操作命令を生成することができる。
操作タイプ情報には、例えばデータの読み取り、データの削除、データの更新、データの修正、データの書き込みなどのデータに対する具体的な操作方法を記録することができる。
【0044】
操作対象データユニット情報には、操作命令が操作するデータユニットを記録することができ、データユニットはデータベースにおけるデータ情報を保存するデータ粒子からなり、粒度(granularity)はデータベースに保存されたデータ粒子の細かさの程度を示すことができ、データベースにおけるデータ粒子の粒度が細かいほど、このデータベースの細かさの程度が高く、データベースにおけるデータ粒子の粒度が粗いほど、このデータベースの細かさの程度が低い。
【0045】
データ粒子とは、データベースにおけるデータ情報を保存するための最小単位である。
例えば、表1を参照し、表1には、それぞれが0001(タプルAのユーザの番号)、Alan(タプルAのユーザ名)、18(タプルAのユーザの年齢)、student(タプルAのユーザの所属グループ)、0002(タプルBのユーザの番号)、Bryan(タプルBのユーザ名)、26(タプルBのユーザの年齢)、lawyer(タプルBのユーザの所属グループ)である8つのデータがある。
【0046】
データユニットは1つ以上のデータ粒子で構成することができ、例えば、表1に、それぞれがタプルA及びタプルBである2つのデータユニットが含まれることができる。一つのデータユニット(即ちタプルA)はそれぞれが0001、Alan、18、studentである4つのデータ粒子を有し、もう一つのデータユニット(すなわちタプルB)はそれぞれが0002、Brian、26、lawyerである4つのデータ粒子を有する。
【0047】
また例えば、表1にはそれぞれがユーザの番号、ユーザ名、ユーザの年齢、ユーザの所属グループ(lawyer)である4つのデータユニットが含まれることができる。1つのデータユニット(即ちユーザの番号)はそれぞれが001及び0002である2つのデータ粒子を有し、もう1つのデータユニット(即ちユーザ名)はそれぞれがAlan及びBryanである2つのデータ粒子を有し、またもう一つのデータユニット(即ちユーザの年齢)はそれぞれが18及び26である2つのデータ粒子を有し、最後のデータユニット(即ちユーザの所属グループ)はそれぞれがstudent及びlawyerである2つのデータ粒子を有する。
【0048】
なお、現在データベースのデータユニットは複数のデータ粒子で構成されるタプルであり、タプル(tuple)はデータベースに記憶されたデータテーブル構造における一行のデータであり、例えば、表1を参照し、データベースに表1に示すデータテーブルが記憶されている場合、タプルとはこの表1における各行を指し、即ち表1はそれぞれがタプルA及びタプルBである2つのタプルを含む。タプルAは4つのデータ粒子で構成され、タプルA(0001、Alan、18、student)と表記することができ、タプルBは4つのデータ粒子で構成され、タプルB(0002、Bryan、26、lawyer)と表記することができる。
【0049】
本態様において、データユニットがデータ粒子で構成される方式はデータベースの初期設定に基づき決定することができるし、このデータベースに対する技術者の設定に基づき修正し、即ちデータユニットの粒度の大きさをタプルの粒度の大きさより小さくするように修正することができる。
【0050】
データグループ集合に一つ以上のデータグループが含まれることができ、データグループごとに一つ以上のデータユニットが含まれることができる。例えば、表1は1つのデータグループ集合であり、このデータグループ集合にデータグループが1つしかなく、このデータグループはタプルA及びタプルBであり、このデータグループはそれぞれがタプルAのユーザの番号、ユーザ名、ユーザの年齢、ユーザの所属グループ、及びタプルBのユーザの番号、ユーザ名、ユーザの年齢、ユーザの所属グループである8つのデータユニットを有することができる。
【0051】
いくつかの実施例において、データユニットの割り当てを合理的にし、衝突誤判定の確率をさらに低下させるように、データユニットをデータグループに予め自動的に割り当てておくことができ、ステップ101の後に、
予め設定された数値範囲、データユニットの履歴操作情報を取得するステップと、
履歴操作情報に基づきデータユニット毎の履歴操作回数を集計するステップと、
履歴操作回数と予め設定された数値範囲に基づき、データユニットに対してグループ化処理を行い、データグループ集合を得るステップと、を含むことができる。
【0052】
予め設定された数値範囲は当業者が設定することができ、ネットワークを介して取得することもでき、また従来算出された誤判定確率に基づき取得することなどもできる。
【0053】
データユニットの履歴操作情報とは履歴時間内に記録された操作命令を指し、即ち履歴時間内の操作対象データユニットに対する操作タイプ情報を記録している。これらの履歴操作情報に基づき、データユニット毎の過去時点から現時点までの操作された回数である履歴操作回数を集計することができる。
【0054】
いくつかの実施例において、データグループ集合は一つの第1データグループと複数の第2データグループとを含むことができ、「履歴操作回数と予め設定された数値範囲に基づき、データユニットに対してグループ化処理を行い、データグループ集合を得る」ステップは、
履歴操作回数に基づきデータユニット毎の履歴操作確率を算出するステップと、
第1データグループを生成するステップと、
データユニットの履歴操作確率が予め設定された数値範囲に属しない場合、データユニットを第1データグループに追加するステップと、
データユニットの履歴操作確率が予め設定された数値範囲に属する場合、データユニットに対応する第2データグループを生成し、データユニットをデータユニットに対応する第2データグループに追加するステップと、を含むことができる。
【0055】
例えば、履歴操作確率が高いデータユニットについて、コンピュータがそれらのデータユニットを処理する際に衝突が発生しやすいと考えられるため、それらの衝突が発生しやすいデータユニットを個別に一つのグループに括って、衝突が発生しにくいデータユニットをもう一つのグループに括ることで、衝突誤判定率を効果的に低減するとともに、演算量を低減することができ、特にデータユニットが多すぎる場合に有効である。
【0056】
いくつかの実施例において、データグループの数をできるだけ減らすことでメモリの占用を低減するために、データユニットは複数のデータサブユニットを含むことができ、「データユニットに対応する第2データグループを生成し、データユニットをデータユニットに対応する第2データグループに追加する」ステップは、具体的に、
データユニットに対応する第2データグループを生成するステップと、
複数のデータサブユニットをデータユニットに対応する第2データグループに追加するステップと、を含むことができる。
【0057】
第2データグループの方式について、各第2データグループの履歴操作確率が予め設定された数値範囲に属する同時に、その履歴操作確率がこの第2データグループにおける全てのデータユニットの履歴操作確率の和に等しい。
【0058】
例えば、下記の式を参照し、
【数1】
ただし、nは第2データグループにおけるデータユニットの数である。
【0059】
ステップ102において、操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリする。
【0060】
図1cを参照し、データグループ集合には複数のデータグループが含まれることができ、データグループ毎に複数のデータユニットが含まれることができる。
操作対象データユニット情報に基づきデータグループ集合において操作対象データユニットに対応する目標データグループをクエリすることができる。
例えば、操作対象データユニット情報に基づき
図1cに示すデータグループ集合において操作対象データユニットに対応する目標データグループをクエリすることができる。例えば、操作対象データユニット情報が操作対象データユニットとしてデータユニットcをとると仮定すると、データグループ2を目標データグループとして決定することができる。
【0061】
いくつかの実施例において、本態様は、衝突の判定をより正確にするように、常にデータグループ集合を自動的に更新することができるので、衝突漏れを防止するように、毎回ステップ102の前に、さらに、
グループ化更新命令を取得するステップと、
グループ化更新命令の命令タイプがユーザグループ化タイプである場合、グループ化更新命令でデータグループ集合におけるデータユニットを改めてグループ化するステップと、
グループ化更新命令の命令タイプが自動グループ化タイプである場合、データグループ集合におけるデータユニットを改めて自動グループ化するステップと、を含むことができる。
【0062】
グループ化更新命令はデータグループ集合を更新するための命令であってもよく、このグループ化更新命令は、ユーザにより設定されて発されてもよく、自らで周期的に生成してもよく、ネットワークから取得されてもよい。
【0063】
グループ化更新命令は多種のタイプがあり、例えば、グループ化更新命令はユーザグループ化タイプであってもよく、自動グループ化タイプであってもよく、いくつかの実施例において、グループ化更新命令は混合グループ化タイプであってもよい。
【0064】
ユーザグループ化タイプのグループ化更新命令とは、このグループ化更新命令がユーザにより発されるグループ化更新命令であることを指し、自動グループ化タイプのグループ化更新命令とは、このグループ化更新命令がコンピュータで自動的に生成されるグループ化更新命令であることを指す。
【0065】
いくつかの実施例において、「データグループ集合におけるデータユニットを改めて自動グループ化する」ステップは、
予め設定された数値範囲、データユニットの履歴操作情報を取得するステップと、
履歴操作情報に基づきデータグループ集合におけるデータユニット毎の履歴操作回数を集計するステップと、
履歴操作回数と予め設定された数値範囲に基づき、データユニットに対してグループ化処理を行い、改めて自動グループ化されたデータグループ集合を得るステップと、を含むことができる。
【0066】
いくつかの実施例において、グループ化更新命令はグループ化の数を含むことができ、「グループ化更新命令でデータグループ集合におけるデータユニットを改めてグループ化する」ステップは
データグループ集合におけるデータユニットをグループ化の数のデータグループに等分し、グループ化されたデータグループ集合を得るステップを含むことができる。
ユーザグループ化タイプのグループ化更新命令はユーザにより設定されたグループ化の数を含むことができる。
例えば、ユーザがグループ化の数を5に設定し、合計100個のデータユニットがあるとすると、この100個のデータユニットは5グループに分けられ、グループ化ごとに20個のデータユニットが含まれる。
【0067】
いくつかの実施例において、衝突検出の正確性を向上させ、ユーザの操作難易度を低減するために、混合グループ化タイプのグループ化更新命令をさらに提供することができ、具体的な混合グループ化の方式は上記のユーザグループ化方式とコンピュータ自動グループ化方式との混合体である。
例えば、ユーザグループ化タイプのグループ化更新命令を取得し、このユーザグループ化タイプのグループ化更新命令に基づき予めデータユニットのグループ化を行っておくとともに、その後のデータ処理シーンにおいて、これらの予めユーザグループ化されておいたデータをさらに自動グループ化することができる。
【0068】
ステップ103において、目標データグループのロッキング状態情報を取得する。
ロッキング状態情報とはデータグループにおける全てのデータユニットのデータロックの状態情報を指し、データロックは仮想概念であり、データユニット又はデータグループのロッキング状態を示すために用いられる。
【0069】
データロックの状態情報とはデータロックのタイプを表すことができ、データロックは多種のタイプを含むことができ、例えば、データロックは読み取りロック(共有ロック)タイプのデータロック及び書き込みロック(排他ロック)タイプのデータロックなどを含むことができる。
【0070】
ロッキング状態情報は、標識、文字、符号などで表現することができ、例えば、0はデータロックがないことを表し、1は読み取りロックタイプのデータロックを表し、2は書き込みロックタイプのデータロックを表すことなどである。
例えば、いくつかの実施例において、データロックは、第1データロックと第2データロックに分けることができ、
図1dを参照し、データグループAはロッキング状態情報Aとマッピング関係を有することができ、データグループBはロッキング状態情報Bとマッピング関係を有することができる。
【0071】
ロッキング状態情報AにはデータグループAにおけるデータユニットのデータロックの状態情報があり、例えば、トランザクションAがデータグループAにおけるデータユニットxにかけた第1データロックとトランザクションBがデータグループAにおけるデータユニットyにかけた第2データロックである。
【0072】
ステップ104において、ロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得る。
操作タイプ情報は第1操作タイプと第2操作タイプとを含むことができ、ロック検出は第1ロック検出と第2ロック検出とを含むことができ、検出結果は第1ロック検出結果と第2ロック検出結果とを含むことができる。
【0073】
ステップ104は、さらに以下のようなステップを含むことができる。
ロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得るステップは 、
操作タイプ情報が第1操作タイプである場合、ロッキング状態情報に基づき操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得るステップと、
操作タイプ情報が第2操作タイプである場合、ロッキング状態情報に基づき操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得るステップと、を含む。
【0074】
データロックは第1データロックと第2データロックとを含むことができ、「ロッキング状態情報に基づき操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得る」ステップは、
目標データグループのロッキング状態情報に基づき操作対象データユニットに対応する全てのデータロックを決定するステップと、
全てのデータロックには第1データロックも第2データロックも含まれない場合、第1ロック検出結果を得るステップと、を含むことができる。
【0075】
「ロッキング状態情報に基づき操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得る」ステップは、
目標データグループのロッキング状態情報に基づき操作対象データユニットに対応する全てのデータロックを決定するステップと、
全てのデータロックに第2データロックのみが含まれる場合、第2ロック検出結果を得るステップと、
全てのデータロックには第1データロックも第2データロックも含まれない場合、第2ロック検出結果を得るステップと、を含むことができる。
ステップ105において、検出結果に基づき操作対象データユニットに対してロック処理を行う。
【0076】
ロック処理は第1ロック処理と第2ロック処理とを含むことができ、ステップ105は、
第1ロック検出結果に基づき操作対象データユニットに対して第1ロック処理を行うステップ、又は、
第2ロック検出結果に基づき操作対象データユニットに対して第2ロック処理を行うステップを含むことができる。
【0077】
「第1ロック検出結果に基づき操作対象データユニットに対して第1ロック処理を行う」ステップは、
第1ロック検出結果に基づき、操作対象データユニットのために、操作命令の第1データロックを目標データグループのロッキング状態情報に追加するステップを含むことができる。
【0078】
「第2ロック検出結果に基づき操作対象データユニットに対して第2ロック処理を行う」ステップは、
第2ロック検出結果に基づき、操作対象データユニットのために、操作命令の第2データロックを目標データグループのロッキング状態情報に追加するステップを含むことができる。
【0079】
データロックは多種のタイプを含むことができ、例えば、データロックは読み取りロック(共有ロック)と書き込みロック(排他ロック)とを含むことができる。書き込みロックは第1データロックと呼び、読み取りロックは第2データロックと呼ぶことができ、この2種類のロック同士の関係は、操作対象データユニットの読み取りロックと読み取りロックが共存可能であり、操作対象データユニットの読み取りロックと書き込みロックが相互排他的であり、操作対象データユニットの書き込みロックと書き込みロックが相互排他的である。
【0080】
例えば、データユニットQが操作命令Aに対応するトランザクションAに処理される場合には、データユニットQがすでにトランザクションAの読み取りロックを有したことを仮定すると、トランザクションBはデータユニットQにトランザクションBの読み取りロックをかけることができるが、データユニットQにトランザクションBの書き込みロックをかけることができず、データユニットQがすでにトランザクションAの書き込みロックを有したことを仮定すると、トランザクションBはデータユニットQにトランザクションBの読み取りロックをかけることもできないし、データユニットQにトランザクションBの書き込みロックをかけることもできない。
【0081】
いくつかの実施例において、読み書き操作をさらに区別することで衝突検出の精度を向上させるために、操作タイプ情報は第1操作タイプと第2操作タイプとを含むことができ、ロック処理は第1ロック処理と第2ロック処理とを含み、ステップ104は、
操作タイプ情報が第1操作タイプである場合、ロッキング状態情報に基づき操作対象データユニットに対して第1ロック処理を行うステップと、
操作タイプ情報が第2操作タイプである場合、ロッキング状態情報に基づき操作対象データユニットに対して第2ロック処理を行うステップと、を含むことができる。
例えば、第1操作タイプが書き込みタイプであってもよく、第2操作タイプが読み取りタイプであってもよい。
例えば、第1ロック処理とは、操作対象データユニットに対して書き込みロックをかけることを指すことができ、第2ロック処理とは、操作対象データユニットに対して読み取りロックをかけることができる。
【0082】
操作対象データユニットは複数のトランザクションにより追加されたトランザクションロックを有することができ、いくつかの実施例において、ロッキング状態情報は目標データグループにおけるデータユニットのデータロックを含むことができ、データロックは第1データロックと第2データロックとを含むことができ、「ロッキング状態情報に基づき操作対象データユニットに対して第1ロック処理を行う」ステップは、
目標データグループのロッキング状態情報に基づき操作対象データユニットに対応する全てのデータロックを決定するステップと、
全てのデータロックには第1データロックも第2データロックも含まれない場合、操作対象データユニットのために、操作命令の第1データロックを目標データグループのロッキング状態情報に追加するステップと、を含むことができる。
【0083】
操作対象データユニットは複数のトランザクションにより追加されたトランザクションロックを有することができ、いくつかの実施例において、ロッキング状態情報は目標データグループにおけるデータユニットのデータロックを含むことができ、データロックは第1データロックと第2データロックとを含むことができ、「ロッキング状態情報に基づき操作対象データユニットに対して第2ロック処理を行う」ステップは、
目標データグループのロッキング状態情報に基づき操作対象データユニットに対応する全てのデータロックを決定するステップと、
全てのデータロックには第2データロックのみが含まれる場合、操作対象データユニットのために、操作命令の第2データロックを目標データグループのロッキング状態情報に追加するステップと、
操作対象データユニットに対応するデータロックには第1データロックも第2データロックも含まれない場合、操作対象データユニットのために、操作命令の第2データロックを目標データグループのロッキング状態情報に追加するステップと、を含むことができる。
【0084】
ステップ106において、ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行する。
ロックが完了しなければ、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行することができない。
ロックが失敗した場合、衝突が存在するか否かを再検出することで、衝突がなくなるまで、他のトランザクションのロック解除を待機する必要があり、ロックが完了した後に操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行する。
【0085】
いくつかの実施例において、毎回操作対象データユニットに対して操作タイプ情報に対応する操作を行うように操作命令を実行した後に、今回の実行を履歴操作情報に保存することができ、これにより自動グループ化によりデータグループ集合を更新するために便宜を与え、その後のデータ処理の演算量を低減し、データ処理の効率を向上させるので、ステップ105の後に、
データユニットの履歴操作情報を取得するステップと、
操作命令に応じてデータユニットの履歴操作情報を更新するステップと、をさらに含むことができる。
【0086】
いくつかの実施例において、ロッキング状態情報は目標データグループにおけるデータユニットのデータロックを含むことができ、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行し後に、タイムリーにロック解除すれば、他のトランザクションがデータを処理する効率を向上させることができるため、ステップ105の後に、
操作対象データユニットのために、目標データグループのロッキング状態情報から操作命令に対応するデータロックを削除するステップをさらに含むことができる。
【0087】
以上から分かるように、本願の実施例は操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令と、少なくとも一つのデータユニットを含むデータグループを少なくとも一つ含むデータグループ集合とを取得し、操作対象データユニット情報に基づきデータグループ集合において操作対象データユニットに対応する目標データグループをクエリし、目標データグループのロッキング状態情報を取得し、ロッキング状態情と操作タイプ情報報に基づき操作対象データユニットに対してロック処理を行い、ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行することができる。これにより、本態様は操作対象ユニットが所属する目標データグループに基づき操作対象ユニットのために対応するロック処理を行うことでこの操作命令を実行することができる。これで、本願はロッキング状態情報とロック処理を取得する時の演算量を低減して、安全を確保するとともにデータ処理の効率を向上させることができる。
【0088】
上記実施例に記載の方法に基づき、以下でさらに詳述する。
本実施例において、データ処理装置がデータベースサーバに集積されている場合を例として、本願の実施例の方法を詳細に説明する。
図2aに示すように、具体的なフローが下記のようなデータ処理方法である。
ステップ201において、データグループ集合を自動的に更新し、この更新されたデータグループ集合は少なくとも一つのデータグループを含み、データグループは少なくとも一つのデータユニットを含む。
【0089】
本実施例において、データグループ集合を自動的に更新する前に、ユーザはどのようにデータユニットをデータ集合に割り当てるかを指定することができる。
例えば、表1を参照し、ユーザは表1における奇数列における全てのデータユニットを一つのデータグループに括り、偶数列における全てのデータユニットをもう一つのデータグループに括るように指定することができ、また例えば、表1の奇数行(即ち、1、3、5、・・・番目のタプル)の全てのデータユニットを1つのデータグループに括り、偶数行(即ち、2、4、6、・・・番目のタプル)の全てのデータユニットをもう1つのデータグループに括る。
【0090】
また例えば、表1を参照し、ユーザはグループ化の数を4に設定し、表1における全てのデータユニットを4グループに等分するように指定することができる。
また例えば、表1を参照し、ユーザはグループ化の数を2に設定し、表1における2列おきのデータユニットを1グループに括るように指定することなどができる。
具体的なユーザグループ化の原理が同じであり、方式が多様であり、ここで詳述しない。
【0091】
ユーザグループ化方式では、粒度をタプルからユーザが設定したデータグループに縮小させるように、衝突検出の粒度の大きさを調整することができ、情報のメンテナンス量の減少が図れる。例えば、トランザクションT1がタプルのデータユニットx及びデータユニットyにアクセスしたと仮定し、ユーザがデータユニットx及びデータユニットyを同一のデータグループに分けると、トランザクションT1の実行が完了した後(即ちステップ207)に、トランザクションT1がこのデータグループにアクセスしたことを記録すればよい。
いくつかの実施例において、ユーザは適切な衝突検出の粒度の大きさの設定(即ちデータグループのグループ化)をしにくい場合があり、衝突誤判定の確率を低減するために、本実施例はデータグループ集合を自動的に更新することができる。
【0092】
コンピュータがデータグループ集合を自動的に更新する方式は、データユニットにおける衝突が発生しやすいデータユニットを判断することにより、ここではこれらの衝突が発生しやすいデータユニットを衝突しやすいユニットと呼び、衝突が発生しにくいデータユニットを衝突しにくいユニットと呼ぶことができ、そしてそれぞれの衝突しやすいユニットを個別で1つのデータグループとし、衝突しにくいユニットをn個のデータグループに追加する。
ただし、nは正の整数であり、nの具体的な大きさはユーザにより指定されてもよく、当業者により設定されてもよく、さらに衝突しにくいユニットの数に基づき決定されてもよい。
【0093】
実現可能な態様において、衝突しやすいユニットと衝突しにくいユニットを判断する方式は以下通りである。
まず、予め設定された数値範囲、データユニットの履歴操作情報を取得し、
履歴操作情報に基づきデータグループ集合におけるデータユニット毎の履歴操作回数を集計し
履歴操作回数と予め設定された数値範囲に基づき、データユニットに対してグループ化処理を行い、改めて自動グループ化されたデータグループ集合を得る。
例えば、予め設定された数値範囲は10から正の無限数までの範囲であり、履歴操作情報に基づきデータグループ集合における各データユニットの履歴操作回数を集計することができ、履歴操作回数が10から正の無限数までの範囲に属するデータユニットを衝突しやすいユニットと判定し、そうでなければ衝突しにくいユニットである。
【0094】
ステップ202において、操作タイプ情報と操作対象データユニット情報とを含む操作命令を取得するとともに、操作対象データユニット情報に基づきデータグループ集合において操作対象データユニットに対応する目標データグループをクエリし、目標データグループのロッキング状態情報を取得する。
操作タイプ情報は読み取りタイプと書き込みタイプであってもよく、操作対象データユニットがデータユニットcであると仮定すると、
図1cを参照し、この操作対象データユニットが所属する目標データグループはデータグループ2である。
すると、データグループ2のロッキング状態情報を取得する。
例えば、
図2bを参照し、現在のトランザクションAがデータユニットaにかけた書き込みロックと現在のトランザクションBがデータユニットcにかけた読み取りロックとが記録されたデータグループ2のロッキング状態情報を取得することができる。
ステップ203において、ロッキング状態情と操作タイプ情報報に基づき操作対象データユニットに対してロック処理を行う。
【0095】
このとき、操作対象データユニットはデータユニットcであり、データユニットcに現在トランザクションBのかけた読み取りロックがあり、この読み取りロックと操作タイプ情報に基づき操作対象データユニットに対してロック処理を行うことができる。
読み取りロックと読み取りロックが共存することができ、読み取りロックと書き込みロックが相互排他的であり、書き込みロックと書き込みロックが相互排他的であるため、データユニットcに現在トランザクションBのかけた読み取りロックがある場合、操作タイプ情報が読み取りタイプを示すと、操作対象データユニットに今回のトランザクションの読み取りロックをかけることができ、操作タイプ情報が書き込みタイプを示すと、ロックが失敗する。
【0096】
例えば、トランザクションTがあるタプルのあるデータユニットに書き込みロックをかける場合、
このタプルのロッキング状態情報を取得するステップと、
ロッキング状態情報にはデータロックがないと、ロックが成功するステップと、
そうではなれば、ロックが失敗するステップと、を参照することができる。
例えば、トランザクションTがあるタプルのあるデータユニットに読み取りロックをかける場合、
このタプルのロッキング状態情報を取得するステップと、
ロッキング状態情報にはデータロックがないと、ロックが成功するステップと、
ロッキング状態情報にデータロックがあると、操作対象データユニットが有するデータロックをチェックするステップと、
操作対象データユニットが有するデータロックに書き込みロックがないと、ロックが成功するステップと、
そうではなければ、ロックが失敗するステップと、を参照することができる。
【0097】
ステップ204において、ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行し、また操作命令に応じてデータユニットの履歴操作情報を更新するとともに、操作対象データユニットのために、目標データグループのロッキング状態情報から操作命令に対応するデータロックを削除する。
ロックが失敗した場合、トランザクションBが操作対象データユニットに対してロック解除を行うまで待機した後に、ロック処理を完了し、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行し、また操作命令に応じてデータユニットの履歴操作情報を更新し、操作対象データユニットのために、目標データグループのロッキング状態情報から操作命令に対応するデータロックを削除する。
ロックが成功した場合、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行し、また操作命令に応じてデータユニットの履歴操作情報を更新し、操作対象データユニットのために、目標データグループのロッキング状態情報から操作命令に対応するデータロックを削除する。
例えば、
図2cを参照し、
図2cにおける分散データベースアーキテクチャはこのデータ処理方法を用いて、この分散データベースはデータベースのサブトレジャリーや、データのサブテーブルの方式でデータの記憶と処理を行う。
【0098】
協調システムはZookeeper(分散計算システム)、Spark(分散計算システム)などであってもよい。
データベースをMグループに分けてM個のデータベースグループを得、各グループには一つのメインデータベースサーバとN個の予備データベースサーバとが含まれ、負荷均衡が図れる。
ユーザがデータを入力するたびに、ユーザが発した操作命令は協調システムにより対応するデータベースグループに割り当てられ、ユーザが書き込んだデータは異なるデータベースグループに分散して格納される。
例えば、ユーザにより入力された一つのデータテーブルを複数のテーブルに分割し、異なるデータベースグループに分散して記憶させ、また例えば、ユーザにより入力された一つのデータテーブルにおけるデータの論理関係に基づき、ある条件に従ってこのデータテーブルを複数のテーブルに分割し、分割論理に従って異なるデータベースグループに分散して記憶させる。
【0099】
ユーザがデータテーブルを入力するたびに、ゲートウェイ例えばゲートウェイ1、ゲートウェイ2・・・ゲートウェイnはデータテーブルを協調システムにプッシュ(push)することができ、協調システムはデータテーブルをタスクとして保存し、またデータベースにおけるメインデータベースサーバ又は予備データベースサーバに送信し、そして、各グループのデータベースにおけるメインデータベースサーバから戻された結果を収集し、結果をユーザに戻すことができる。
データベースは協調システムからタスクをプル(pull)し、各グループのデータベースにおけるメインデータベースサーバと予備データベースサーバを切り替え、データベースの状態を監視し、それを協調システムにアップロードすることができる。
【0100】
これにより、
図2cに示すこのデータ処理方法を用いた分散データベースアーキテクチャにおいて、データを読み書きする時にデータの原子性及び一致性を保証し、衝突検出の正確性を保証した上にトランザクションの並行性及びデータベースのスループットを向上させ、データ処理の効率を向上させることができる。
上記により分かるように、本願の実施例によれば、データグループ集合を自動的に更新し、この更新されたデータグループ集合が少なくとも一つのデータグループを含み、データグループが少なくとも一つのデータユニットを含み、操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得し、操作対象データユニット情報に基づきデータグループ集合において操作対象データユニットに対応する目標データグループをクエリし、目標データグループのロッキング状態情報を取得し、ロッキング状態情と操作タイプ情報報に基づき操作対象データユニットに対してロック処理を行い、ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行し、操作命令に応じてデータユニットの履歴操作情報を更新し、操作対象データユニットのために、目標データグループのロッキング状態情報から操作命令に対応するデータロックを削除することができる。これにより、本願の実施例は衝突検出の正確性を保証した上にトランザクションの並行性及びデータベースのスループットを向上させ、データ処理の効率を向上させることができる。
【0101】
また、本願の実施例はさらに様々なグループ化の方法を提供し、衝突検出の粒度の大きさはユーザにより変更されるか又は自動的に変更することができるので、衝突検出の正確性を保証した上に演算量をさらに低減することができる。
【0102】
以上の方法をよりよく行うために、本願の実施例はさらにデータ処理装置を提供し、このデータ処理装置は具体的に電子機器に集積することができ、この電子機器は端末やサーバなどの機器であってもよい。端末は携帯電話、タブレット、スマートブルートゥース機器、ノートパソコン、又はパーソナルコンピュータ(PersonalComputer、PC)などの機器であってもよい。サーバは、単一のサーバであってもよく、複数のサーバからなるサーバクラスタであってもよい。いくつかの実施例において、このデータ処理装置はさらに複数の電子機器に集積することができ、例えば、データ処理装置は複数のサーバに集積し、複数のサーバで分散サーバクラスタを構成することで本願のデータ処理方法を実現することができる。
【0103】
本願の実施例はデータ処理装置を提供し、このデータ処理装置は具体的に電子機器に集積することができ、この電子機器は端末やサーバなどの機器であってもよい。端末は携帯電話、タブレット、スマートブルートゥース機器、ノートパソコン、パーソナルコンピュータなどの機器であってもよい。サーバは、単一のサーバであってもよく、複数のサーバからなるサーバクラスタであってもよい。
【0104】
本実施例において、データ処理装置を分散サーバクラスタに集積することを例として、本願の実施例に係る方法について詳細に説明する。
例えば、
図3に示すように、このデータ処理装置は以下のように、取得ユニット301と、クエリユニット302と、データロックユニット303と、検出ユニット304と、ロックユニット305と、実行ユニット306とを備えることができる。
【0105】
(一)取得ユニット301について
取得ユニット301は操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得するように構成されることができる。
いくつかの実施例において、取得ユニット301は「操作タイプ情報と操作対象データユニット情報とを含む操作命令を取得する」ステップを実行する前に、以下のように、取得サブユニットと集計サブユニットとグループ化サブユニットと、をさらに備えることができる。
(1)取得サブユニットについて
取得サブユニットは予め設定された数値範囲、データユニットの履歴操作情報を取得するように構成されることができる。
(2)集計サブユニットについて
集計サブユニットは履歴操作情報に基づきデータユニット毎の履歴操作回数を集計するように構成されることができる。
(3)グループ化サブユニットについて
グループ化サブユニットは履歴操作回数と予め設定された数値範囲に基づき、データユニットに対してグループ化処理を行い、データグループ集合を得るように構成されることができる。
【0106】
いくつかの実施例において、データグループ集合は一つの第1データグループと複数の第2データグループとを含むことができ、このグループ化サブユニットは以下のように、確率サブモジュールと、第1データグループ生成サブモジュールと、第1データグループ追加サブモジュールと、第2データグループ追加サブモジュールとをさらに備えることができる。
【0107】
確率サブモジュールは履歴操作回数に基づきデータユニット毎の履歴操作確率を算出するように構成されることができ、
第1データグループ生成サブモジュールは第1データグループを生成するように構成されることができ、
第1データグループ追加サブモジュールは、データユニットの履歴操作確率が予め設定された数値範囲に属しない場合、データユニットを第1データグループに追加するように構成されることができる。
第2データグループ追加サブモジュールは、データユニットの履歴操作確率が予め設定された数値範囲に属する場合、データユニットに対応する第2データグループを生成し、データユニットをデータユニットに対応する第2データグループに追加するように構成されることができる。
【0108】
いくつかの実施例において、データユニットは複数のデータサブユニットを含むことができ、第1データグループ追加サブモジュールは具体的に、
データユニットに対応する第2データグループを生成し、
複数のデータサブユニットをデータユニットに対応する第2データグループに追加するように構成されることができる。
【0109】
(二)クエリユニット302について
クエリユニット302は操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリすることができ、データグループ集合は少なくとも一つのデータグループを含み、データグループは少なくとも一つのデータユニットを含む。
いくつかの実施例において、クエリユニット302は操作対象データユニット情報に基づきデータグループ集合において操作対象データユニットに対応する目標データグループをクエリするように構成される前に、
グループ化更新命令を取得し、
グループ化更新命令の命令タイプがユーザグループ化タイプである場合、グループ化更新命令でデータグループ集合におけるデータユニットを改めてグループ化し、
グループ化更新命令の命令タイプが自動グループ化タイプである場合、データグループ集合におけるデータユニットを改めて自動グループ化するように、
更新サブユニットとユーザ更新サブユニットと自動更新サブユニットと、をさらに備えることができる。
【0110】
更新サブユニットはグループ化更新命令を取得するように構成される。
ユーザ更新サブユニットは、グループ化更新命令の命令タイプがユーザグループ化タイプである場合、グループ化更新命令でデータグループ集合におけるデータユニットを改めてグループ化するように構成されることができる。
【0111】
自動更新サブユニットは、グループ化更新命令の命令タイプが自動グループ化タイプである場合、データグループ集合におけるデータユニットを改めて自動グループ化するように構成されることができる。
【0112】
いくつかの実施例において、自動更新サブユニットは、具体的に、
予め設定された数値範囲、データユニットの履歴操作情報を取得し、
履歴操作情報に基づきデータグループ集合におけるデータユニット毎の履歴操作回数を集計し、
履歴操作回数と予め設定された数値範囲に基づき、データユニットに対してグループ化処理を行い、改めて自動グループ化されたデータグループ集合を得るように構成されることができる。
【0113】
いくつかの実施例において、ユーザ更新サブユニットは、具体的に、
データグループ集合におけるデータユニットをグループ化の数のデータグループに等分し、グループ化されたデータグループ集合を得るように構成されることができる。
【0114】
(三)データロックユニット303について
データロックユニット303は目標データグループのロッキング状態情報を取得するように構成されることができる。
【0115】
(四)検出ユニット304について
検出ユニット304はロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得るように構成されることができる。操作タイプ情報は第1操作タイプと第2操作タイプとを含み、ロック検出は第1ロック検出と第2ロック検出とを含み、検出結果は第1ロック検出結果と第2ロック検出結果とを含む。
【0116】
いくつかの実施例において、検出ユニット304は、具体的に、
操作タイプ情報が第1操作タイプである場合、ロッキング状態情報に基づき操作対象データユニットに対して第1ロック検出を行い、第1ロック検出結果を得、
操作タイプ情報が第2操作タイプである場合、ロッキング状態情報に基づき操作対象データユニットに対して第2ロック検出を行い、第2ロック検出結果を得るように構成されることができる。
【0117】
(五)ロックユニット305について
ロックユニット305は検出結果に基づき操作対象データユニットに対してロック処理を行うように構成されることができる。
【0118】
ロック処理は第1ロック処理と第2ロック処理とを含むことができ、ロックユニット305は、具体的に、
第1ロック検出結果に基づき操作対象データユニットに対して第1ロック処理を行うか、又は、
第2ロック検出結果に基づき操作対象データユニットに対して第2ロック処理を行うように構成されることができる。
【0119】
(六)実行ユニット306について
実行ユニット306はロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行するように構成されることができる。
いくつかの実施例において、実行ユニット306は、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行した後に、さらに
データユニットの履歴操作情報を取得し、
操作命令に応じてデータユニットの履歴操作情報を更新するように構成されることができる。
【0120】
いくつかの実施例において、ロッキング状態情報は目標データグループにおけるデータユニットのデータロックを含むことができ、実行ユニット306は、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行した後に、実行ユニット306は、さらに、
操作対象データユニットのために、目標データグループのロッキング状態情報から操作命令に対応するデータロックを削除するように構成されることができる。
【0121】
実施時に、以上の各データユニットは独立したエンティティとして実現してもよく、任意に組み合わせて同一又は複数のエンティティとして実現してよく、以上の各データユニットの具体的な実施は前述の方法実施例を参照することができ、ここでは説明を省略する。
【0122】
以上から分かるように、本実施例に係るデータ処理装置において、取得ユニットは操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得し、クエリユニットは操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリし、データグループ集合は少なくとも一つのデータグループを含み、データグループは少なくとも一つのデータユニットを含み、データロックユニットは目標データグループのロッキング状態情報を取得し、検出ユニットはロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得、ロックユニットは検出結果に基づき操作対象データユニットに対してロック処理を行い、実行ユニットはロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行する。
【0123】
本態様の実施例は演算量を低減することができるため、本態様の実施例はデータ処理の効率を向上させることができる。
本願の実施例はさらに電子機器を提供し、この電子機器は端末やサーバなどの機器であってもよい。端末は携帯電話、タブレット、スマートブルートゥース機器、ノートパソコン、パーソナルコンピュータなどの機器であってもよい。サーバは、単一のサーバであってもよく、複数のサーバからなるサーバクラスタであってもよい。
【0124】
本実施例において、本実施例の電子機器がサーバであることを例として詳述し、例えば、
図4は本願の実施例に係るサーバの構造概略図を示す。
【0125】
このサーバは一つ以上の処理コアを有するプロセッサ401と、一つ以上のコンピュータ読み取り可能な記憶媒体のメモリ402と、電源403と、入力モジュール404と、通信モジュール405などの部材を備えることができる。当業者であれば理解されるように、
図4に示すサーバ構造はサーバを限定するものではなく、図示より多い又は少ない部材、又はいくつかの部材の組み合わせ、又は異なる部材配置を含むことができる。
【0126】
プロセッサ401は、このサーバのコントロールセンタであり、各種のインタフェースや回線を利用してサーバ全体の各部を接続し、メモリ402に記憶されたソフトウェアプログラム及び/又はモジュールを運行又は実行し、またメモリ402に記憶されたデータを呼び出すことにより、サーバの各種機能を実行し、またデータを処理し、サーバ全体を監視する。いくつかの実施例において、プロセッサ401は1つ以上の処理コアを備えることができ、いくつかの実施例において、プロセッサ401はアプリケーションプロセッサ及び変復調プロセッサを集積することができ、アプリケーションプロセッサは主にオペレーティングシステム、ユーザインタフェース及びアプリケーションプログラムなどを処理し、変復調プロセッサは主に無線通信を処理する。上記変復調プロセッサはプロセッサ401に集積しなくてもよいと理解できる。
【0127】
メモリ402は、ソフトウェアプログラム及びモジュールを記憶するように構成されてもよく、プロセッサ401は、メモリ402に記憶されたソフトウェアプログラム及びモジュールを運行することにより、各種機能のアプリケーション及びデータ処理を実行する。メモリ402は主にプログラム記憶領域とデータ記憶領域とを含むことができ、プログラム記憶領域はオペレーティングシステム、少なくとも一つの機能に必要なアプリケーションプログラム(例えば音声再生機能、画像再生機能など)などを記憶することができ、データ記憶領域は、サーバの利用に応じて作成されたデータなどを記憶することができる。また、メモリ402は、高速ランダムアクセスメモリを含んでもよく、少なくとも一つの磁気ディスク記憶デバイス、フラッシュメモリデバイスなどの不揮発性メモリ又は他の揮発性固体記憶デバイスを備えてもよい。相応に、メモリ402は、プロセッサ401によるメモリ402へのアクセスを提供するように、メモリコントローラをさらに備えることができる。
【0128】
サーバは各部材に電力を供給する電源403をさらに備え、いくつかの実施例において、電源403は電源管理システムを介してプロセッサ401と論理的に接続することができ、電源管理システムを介して充電・放電の管理及び消費電力管理などの機能を実現する。また電源403は1つ以上の直流電源又は交流電源、再充電システム、電源故障検出回路、電源コンバータ又はインバータ、電源状態指示器などの任意のコンポーネントを備えることができる。
【0129】
このサーバは入力モジュール404をさらに備えることができ、この入力モジュール404は入力された数字や文字情報を受信し、またユーザ設定及び機能制御に関するキーボード、マウス、操作レバー、光学又はトラックボールの信号入力を生成するように構成されることができる。
【0130】
このサーバは通信モジュール405をさらに備えることができ、いくつかの実施例において通信モジュール405は無線モジュールを備えることができ、サーバはこの通信モジュール405の無線モジュールにより近距離無線伝送を行うことができ、ユーザに無線のブロードバンドインターネットアクセスを提供する。例えば、この通信モジュール405はユーザが電子メールを送受信し、ウェブページを閲覧し、ストリーミングメディアにアクセスすることを支援するように構成される。
図示しないが、サーバはデータ表示ユニットなどをさらに備えることができ、ここで説明を省略する。具体的に本実施例において、以下のように、サーバにおけるプロセッサ401は以下の命令に応じて、1つ以上のアプリケーションプログラムのプロセスに対応する実行可能なファイルをメモリ402にロードし、プロセッサ401によりメモリ402に記憶されたアプリケーションプログラムを運行することで、各種機能を実現する。
【0131】
操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得し、
操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリし、データグループ集合は少なくとも一つのデータグループを含み、データグループは少なくとも一つのデータユニットを含み、
目標データグループのロッキング状態情報を取得し、
ロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得、
検出結果に基づき操作対象データユニットに対してロック処理を行い、
ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行する。
【0132】
以上の各操作の具体的な実施は前述の実施例を参照することができ、ここで説明を省略する。
以上から分かるように、本態様の実施例は演算量を低減すし、データ処理の効率を向上させることができる。
当業者であれば理解されるように、上記実施例の各種方法におけるステップの全部又は一部は命令に応じて完成することができ、又は命令により関連するハードウェアを制御して完成することができ、この命令はコンピュータの読み取り可能な記憶媒体に記憶され、プロセッサによりロードされて実行されることができる。
【0133】
そのため、本願の実施例は複数の命令が記憶されているコンピュータの読み取り可能な記憶媒体を提供し、この命令は本願の実施例に係るいずれかのデータ処理方法におけるステップを実行するようにプロセッサによりロードされることができる。例えば、この命令は
操作タイプ情報と操作対象データユニットに対応する操作対象データユニット情報とを含む操作命令を取得するステップと、
操作対象データユニット情報に基づきデータグループ集合において目標データグループをクエリするステップであって、データグループ集合は少なくとも一つのデータグループを含み、データグループは少なくとも一つのデータユニットを含む、ステップと、
目標データグループのロッキング状態情報を取得するステップと、
ロッキング状態情報と操作タイプ情報に基づき操作対象データユニットに対してロック検出を行い、検出結果を得るステップと、
検出結果に基づき操作対象データユニットに対してロック処理を行うステップと、
ロック処理が完了した後に、操作対象データユニットに対して操作タイプ情報に対応する操作を行うように、操作命令を実行するステップと、を実行することができる。
【0134】
この記憶媒体は読み取り専用メモリ(ROM:Read Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスク又は光ディスクなどを含むことができる。
この記憶媒体に記憶された命令は、本願の実施例に係るいずれかのデータ処理方法におけるステップを実行することができるため、本願の実施例に係るいずれかのデータ処理方法が実現できる有益な効果を実現することができ、詳細は前記の実施例を参照し、ここで説明を省略する。
【0135】
本願の実施例はコンピュータプログラム製品をさらに提供し、前記コンピュータプログラム製品は実行されると、いずれかのデータ処理方法におけるステップを実行するように構成される。
【0136】
以上は本願の実施例に係るデータ処理方法、装置、サーバ及びコンピュータの読み取り可能な記憶媒体について詳細に説明し、本明細書において具体的な個別例を用いて本願の原理及び実施形態について説明し、以上の実施例の説明は本願の方法及びその主旨を理解することに役立つ同時に、当業者にとって、本願の思想に基づき、発明を実施するための形態及び適用範囲について変わるところがあり、以上をまとめると、本明細書の内容は本願を限定するものと理解すべきではない。
【符号の説明】
【0137】
301 取得ユニット
302 クエリユニット
303 データロックユニット
304 検出ユニット
305 ロックユニット
306 実行ユニット
401 プロセッサ
402 メモリ
403 電源
404 入力モジュール
405 通信モジュール