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

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

▶ 天翼電子商務有限公司の特許一覧

特表2023-545894高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法
<>
  • 特表-高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法 図1
  • 特表-高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法 図2
  • 特表-高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法 図3
  • 特表-高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-01
(54)【発明の名称】高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法
(51)【国際特許分類】
   G06F 16/22 20190101AFI20231025BHJP
【FI】
G06F16/22
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023513537
(86)(22)【出願日】2021-12-30
(85)【翻訳文提出日】2023-02-22
(86)【国際出願番号】 CN2021142963
(87)【国際公開番号】W WO2023035504
(87)【国際公開日】2023-03-16
(31)【優先権主張番号】202111051105.6
(32)【優先日】2021-09-08
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】523065052
【氏名又は名称】天翼電子商務有限公司
(74)【代理人】
【識別番号】100145470
【弁理士】
【氏名又は名称】藤井 健一
(72)【発明者】
【氏名】李寧
(72)【発明者】
【氏名】李真
(72)【発明者】
【氏名】張栄燕
(72)【発明者】
【氏名】楊富安
(72)【発明者】
【氏名】徐冬冬
(72)【発明者】
【氏名】趙新浪
(72)【発明者】
【氏名】楊章春
(72)【発明者】
【氏名】王維龍
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA07
5B175FB04
(57)【要約】
本発明は、高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法を開示しており、スライスを必要とする指標のシャーディング単位を配置するための配置プラットフォームを含み、シャーディングは、丸め操作を行い、各データが統計に入るたびにサービス属性を持つタイムスタンプがあり、該タイムスタンプは、long型データであり、さらにスライス単位をミリ秒、秒、分、時間、日で定義し、これらの単位に対応する時間スパンは、それぞれ1、1000、60000、360000、86400000であり、さらに時間スパン(シャーディング)duration=入力パラメータのタイムスタンプ/スライス単位であり、各durationは、時間スパン全体の一部であり、且つ各durationは、交わらない。本発明により、非リレーショナルデータベースにおける大valueの記憶問題を解決できるようになり、初歩的な集約計算を行い、後期値の取得計算を減少させるとともに、データの記憶空間を減少させ、
タイムスタンプで区切って記憶し、値を取得する場合直接に区間を取ることができ、キャッシュとのインタラクションを減らし、期限切れのデータをキャッシュから消去するLuaアルゴリズムをサポートする。
【選択図】図2
【特許請求の範囲】
【請求項1】
以下を含むことを特徴とする高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法である。
スライスを必要とする指標のシャーディング単位を配置するための配置プラットフォームと、
シャーディングは、丸め操作を行い、各データが統計に入るたびにサービス属性を持つタイムスタンプがあり、該タイムスタンプは、long型データであり、さらにスライス単位をミリ秒、秒、分、時間、日で定義し、これらの単位に対応する時間スパンは、それぞれ1、1000、60000、360000、86400000であり、さらに時間スパン(シャーディング)duration=入力パラメータのタイムスタンプ/スライス単位であり、各durationは、時間スパン全体の一部であり、且つ各durationは、交わらなく、
データを分割してシャーディングすることと、
データストリームはシステムに入ったとき、まずシャーディングが必要かどうかを判断し、シャーディングを必要とする場合、所属スライスの値sortを計算した後、次元_実データ_スライス単位をキャッシュのkeyとし、まず該key下に該スライスが存在するかどうかを判断し、存在しない場合新規に構築し、存在する場合新しい値をmergeし、所属スライスの値をzsetし、順序はsortを使用し、
高い同時実行性下において値をmergeすることと、
高い同時実行性下においてキャッシュから値を取得するたびに異なる数が発生し、データが歪む可能性があるため、ここで、スナップショットにスピンロックをかける方法を提案し、データの一貫性を確保し、データ計算待ち時間を短縮させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はコンピュータソフトウェアの応用分野に関し、特に高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法に関する。
【背景技術】
【0002】
従来技術では、非リレーショナルデータベース(キー-バリュー型データベース)のアクセスの効率性のため、よく用いられており、記憶されているvalueは無限大ではなく、valueが直列化されていれば、データが10Mを超えると直列化エラーが発生し、valueが直列化されていなければ、valueを取得する際にioのブロックが発生し、他のスレッドの読み書きの効率に影響を与える。現在の業務では、大きな商家の取引情報のように、同じ商家は短時間で百万の取引数量を持つ可能性があり、あるホットスポットIPの下にあるすべての個人の携帯電話番号や、売れ筋商品の取引分布など、時効性の要求のため、これらのデータは一般的にシステムにキャッシュされ、規則的に使用されている。この背景に基づいて、非リレーショナルデータベースの正常な使用、および規則の正確性を保証するために、大きな記憶valueをスライスしてセグメント化して記憶し、各セグメントのデータが一致しないことを保証すると同時に、データを直列化し、記憶空間を減少させ、セグメント内のデータを集約計算し、データの多回抽出を減少させることもできるが、スライス-集約モードによるデータの処理は、高い同時実行性下におけるデータの一貫性を保証する必要がある。
【発明の概要】
【課題を解決するための手段】
【0003】
本発明が解決しようとする技術的課題は、従来技術の不足を克服し、高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法を提案する。
【0004】
本発明は以下の技術手段を提供し、
本発明は、以下を含む高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法を提案し、
スライスを必要とする指標のシャーディング単位を配置するための配置プラットフォームと、
シャーディングは、丸め操作を行い、各データが統計に入るたびにサービス属性を持つタイムスタンプがあり、該タイムスタンプは、long型データであり、且つスライス単位をミリ秒、秒、分、時間、日で定義し、これらの単位に対応する時間スパンは、それぞれ1、1000、60000、360000、86400000であり、さらに時間スパン(シャーディング)duration=入力パラメータのタイムスタンプ/スライス単位であり、各durationは、時間スパン全体の一部であり、且つ各durationは、交わらなく、
データを分割してシャーディングすることと、
データストリームはシステムに入ったとき、まずシャーディングが必要かどうかを判断し、シャーディングを必要とする場合、所属スライスの値sortを計算した後、次元_実データ_スライス単位をキャッシュのkeyとし、まず該key下に該スライスが存在するかどうかを判断し、存在しない場合新規に構築し、存在する場合、新しい値をmergeし、所属スライスの値をzsetし、順序はsortを使用し、
高い同時実行性下において値をmergeすることと、
高い同時実行性下においてキャッシュから値を取得するたびに異なる数が発生し、データが歪む可能性があるため、ここで、スナップショットにスピンロックをかける方法を提案し、データの一貫性を確保し、データ計算待ち時間を短縮させる。
【発明の効果】
【0005】
従来技術と比較して、本発明の有益な効果は以下の通りであり、
第一に、非リレーショナルデータベースにおける大valueの記憶問題を解決できるようになることと、
第二に、初歩的な集約計算を行い、後期値の取得計算を減少させるとともに、データの記憶空間を減少させることと、
第三に、タイムスタンプで区切って記憶し、値を取得する場合直接に区間を取ることができ、キャッシュとのインタラクションを減らすことができること、
第四に、期限切れのデータをキャッシュから消去するLuaアルゴリズムをサポートすること。
【図面の簡単な説明】
【0006】
図面は、本発明のさらなる理解を提供するためのものであり、本発明の実施形態とともに本発明を説明するための明細書の一部を構成するためのものであり、本発明の制限を構成するものではない。図面について、
図1】本発明の高い同時実行性下における値をmergeする見取図である。
図2】本発明の時間単位スライスの見取図である。
図3】本発明のデータフローチャートである。
図4】本発明の集約制御方法の見取図である。
【発明を実施するための最良の形態】
【0007】
以下、添付図面を用いて本発明の好適な実施形態を説明するが、本明細書に記載された好適な実施形態は本発明の説明及び説明にのみ使用され、本発明を限定するためには使用されないことを理解すべきである。図面中の同一の符号はすべて同一の部品を指す。
【0008】
(実施形態1)
大きなvalueのkeyは様々な指標データであってもよく、後に指標と呼ばれ、例えば同じ商家、同じIPなど、これらの指標は、往々にして該次元の下で統計期間内のデータが多すぎるため、大きなvalueの出現を招くので、これらの時間帯をシャーディングしなければならない。各時間帯は1つのシャーディングであり、シャーディング合計はこの大きなvalueである。各シャーディングはデータ全体の一部であり、ここでは実際には大きなvalueの問題を解決しているが、ほとんどの統計はすべてのデータノードを記憶する必要はないため、記憶空間を節約するとともに、後続の計算に時間を節約するために、各シャーディング内のデータを集約し、該シャーディング区間内の統計値を計算し、高い同時実行性下においてデータの統計が正確ではない可能性があるため、データベースmvccのようなメカニズムを導入し、スナップショットとバージョン番号を加え、データの一貫性を制御し、スピンロックを利用し、データの待ち時間を減らし、再統計をする。
【0009】
図1-4に示すように、本発明は、以下を含む高い同時実行性下におけるビッグデータストレージのシャーディング及び集約制御方法を提案し、
スライスを必要とする指標のシャーディング単位を配置するための配置プラットフォームと、
シャーディングは、丸め操作を行い、各データが統計に入るたびにサービス属性を持つタイムスタンプがあり、該タイムスタンプは、long型データであり、且つスライス単位をミリ秒、秒、分、時間、日で定義し、これらの単位に対応する時間スパンは、それぞれ1、1000、60000、360000、86400000であり、さらに時間スパン(シャーディング)duration=入力パラメータのタイムスタンプ/スライス単位であり、各durationは、時間スパン全体の一部であり、且つ各durationは、交わらなく、
データを分割してシャーディングすることと、
データストリームはシステムに入ったとき、まずシャーディングが必要かどうかを判断し、シャーディングを必要とする場合、所属スライスの値sortを計算した後、次元_実データ_スライス単位をキャッシュのkeyとし、まず該key下に該スライスが存在するかどうかを判断し、存在しない場合新規に構築し、存在する場合、新しい値をmergeし、所属スライスの値をzsetし、順序はsortを使用し、
高い同時実行性下において値をmergeすることと、
高い同時実行性下においてキャッシュから値を取得するたびに異なる数が発生し、データが歪む可能性があるため、ここで、スナップショットにスピンロックをかける方法を提案し、データの一貫性を確保し、データ計算待ち時間を短縮させる。
【0010】
本発明の核心は、タイムフローを自然スライスすることで、ビッグデータの集約記憶を実現し、さらにデータ量を減らすとともに、後の集約計算のために時間を節約できるようになり、具体的な実施ステップは、以下の通りであり、
1、時間単位に基づくスライス方法
データがプロセッサに入ると、該データが属する次元を判断すると同時に、メモリから該次元の配置単位を読み取る(自然な日、時間、分、秒などに基づいたスライスで、なければスライスせず、本例ではスライスのみを検討する)S1と、
配置からスライス配置を取り出し、データが所在するタイムスタンプを丸めて所属のスライスを判断し、次元-key-スライスの3つの値からなる新しいキャッシュのkeyは唯一であるため、繰り返してスライスすることはなく、且つタイムスタンプが唯一であるため、データは何回に統計されることはないS2と、
規則計算については、例えば、商戸aの2時間の取引量合計については、商戸は1つの次元であり、aは具体的な次元下のkeyであり、スライスは時間単位に基づく場合、二つのkeyまですべてのデータの集約値を記憶することができるが、同時にデータの精度は時間の粒度までしかなく、粒度が分であれば、最大120個のkeyまですべての集約値を記憶することができ、同様に粒度が秒であれば、7200個までの値を記憶する。同時に検索を容易にするために、ソートされたキューを提供し、これらのスライスデータを記憶し、スライス値に基づいてソートするとともに、時間帯に基づいてソートされたデータを取得することができるS3。
【0011】
2、高い同時実行性下における集約計算方法
S2でスライスを取得する際には、まず、スライスによる結合されたkeyに基づいて、キャッシュに該値が存在するかどうかを調べ、存在しない場合には、該値が該当するスライスにsetし、値が存在する場合には、同じスライスに値をmergeする必要があるが、高い同時実行性下においてデータの統計が正確ではない可能性があるS21。
【0012】
S21において、スナップショットのバージョンとスピンロックを使用して高い同時実行性下におけるデータの計算問題を解決し、高い同時実行性下において、主メモリから取り出したデータはライトバックされた時点で主メモリが変更されている可能性があり、強制的にライトバックされると、データ計算が不適切になる可能性がある。この問題に基づいて、データベースのMVCC原理を参考にして、スナップショットバージョンを提案した。つまり、主メモリからデータを取得するたびに、一つのバージョン番号とタイムスタンプが生じ、取得したデータの一貫性を記憶し、ライトバック時にそのスナップショットバージョンが変更されたかどうかを比較し、変更した場合は、一つのスピンロックを追加し、ロック期間に主メモリデータの再取得を待って、計算が終わったら、バージョン番号が一致するまで上記のステップを繰り返する。スピンロック方法の原理は、自己循環関数が自発的に生成し、循環中にS3で書き込まれたデータがロックされているかどうかを取得し、ロックされていなければ、主メモリデータを取り出す。
【0013】
S3において、CASの原理を利用して記憶するデータをロックし、期間中にデータが汚染されないことを確保し、データが書き込んだ後にバージョン番号をアップグレードし、データの正確さを確保する。
【0014】
最後に、上述は本発明の好適な実施形態にすぎず、本発明を限定するためには使用されないが、上述の実施形態を参照して本発明を詳細に説明したが、当業者にとっては、上述の各実施形態に記載された技術的態様を修正したり、技術的特徴の一部を同等に置き換えたりすることができる。本発明の精神と原則の中で、行ったいかなる修正、等価置換、改良などは、本発明の保護範囲に含まれるべきである。
図1
図2
図3
図4
【国際調査報告】