特許第6386097号(P6386097)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アリババ グループ ホウルディング リミテッドの特許一覧

特許6386097トランザクションの分散処理において残留値を管理するための方法およびシステム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6386097
(24)【登録日】2018年8月17日
(45)【発行日】2018年9月5日
(54)【発明の名称】トランザクションの分散処理において残留値を管理するための方法およびシステム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20180827BHJP
【FI】
   G06F12/00 513J
   G06F12/00 545A
【請求項の数】20
【全頁数】17
(21)【出願番号】特願2016-571243(P2016-571243)
(86)(22)【出願日】2015年7月14日
(65)【公表番号】特表2017-522654(P2017-522654A)
(43)【公表日】2017年8月10日
(86)【国際出願番号】US2015040435
(87)【国際公開番号】WO2016011067
(87)【国際公開日】20160121
【審査請求日】2017年2月6日
(31)【優先権主張番号】201410333960.X
(32)【優先日】2014年7月14日
(33)【優先権主張国】CN
(31)【優先権主張番号】14/797,577
(32)【優先日】2015年7月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】511050697
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】チュウ,シュオ
【審査官】 甲斐 哲雄
(56)【参考文献】
【文献】 特開2009−067552(JP,A)
【文献】 特開2000−062917(JP,A)
【文献】 特開2012−118709(JP,A)
【文献】 特開2013−033345(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 17/30
G06Q 50/00
(57)【特許請求の範囲】
【請求項1】
効率的残留値管理を容易にするためのコンピュータ実施方法であって、
物品またはサービスの合計量に対応する合計値を計算システム内に格納する工程と、
前記合計値を多数の副値に分割する工程と、
副値に関連付けられた残留値が閾値以下であることを判断する工程と、
前記残留値をマージ残留値にマージする工程と、
関連値による減算演算を示すトランザクションを受信する工程と、
前記減算演算を処理するために前記マージ残留値が考慮され得るようにし、それにより残留値断片化を低減する工程と
を含む、方法。
【請求項2】
前記閾値は前記減算演算に関連付けられた最小値以上である、請求項1に記載の方法。
【請求項3】
前記減算演算を行うために、前記閾値以上の前記残留値と、前記マージ残留値とから1つを選択する工程をさらに含む、請求項1に記載の方法。
【請求項4】
副値を、前記副値に関連付けられた残留値が零である場合に使用不能として示す工程をさらに含む、請求項1に記載の方法。
【請求項5】
前記残留値およびマージ残留値を格納する記録のスナップショットを取得する工程と、
適格副値または前記マージ残留値を選択する工程であって、適格副値の前記スナップショットは前記閾値以上の残留値を示す、工程と、
適格副値が選択されることに応答して、前記選択された副値に関連付けられた残留値を格納する前記記録をロックし、および前記選択された副値に関連付けられた残留値に対して前記減算演算を行う工程と
をさらに含む、請求項1に記載の方法。
【請求項6】
前記残留値およびマージ残留値を格納する記録のスナップショットのバージョン情報を維持する工程と、
残留値またはマージ残留値が更新されると前記対応するスナップショットの前記バージョン情報を更新する工程と
をさらに含む、請求項1に記載の方法。
【請求項7】
前記合計値は商品の在庫に対応し、
前記トランザクションは前記商品の注文書であり、
前記トランザクションに対応する前記減算演算は、前記注文書の結果としての前記在庫に対する差し引きを表す、請求項1に記載の方法。
【請求項8】
前記合計値は利用可能ストレージスペースの合計量に対応し、
前記トランザクションはストレージスペースをユーザへ割り振る要求であり、
前記トランザクションに対応する前記減算演算は、前記割り振りの結果としての利用可能ストレージスペースの前記合計量に対する差し引きを表す、請求項1に記載の方法。
【請求項9】
効率的残留値管理を容易にするためのシステムであって、
プロセッサと、
前記プロセッサに結合され、かつ命令を格納する記憶装置であって、前記命令は、前記プロセッサにより実行されると前記プロセッサに方法を実行させる、記憶装置と
を含み、前記方法は、
物品またはサービスの合計量に対応する合計値を計算システム内に格納する工程と、
前記合計値を多数の副値に分割する工程と、
副値に関連付けられた残留値が閾値以下であることを判断する工程と、
前記残留値をマージ残留値にマージする工程と、
関連値による減算演算を示すトランザクションを受信する工程と、
前記受信された減算演算を処理するために前記マージ残留値が考慮され得るようにし、それにより残留値断片化を低減する工程と
を含む、システム。
【請求項10】
前記閾値は前記減算演算に関連付けられた最小値以上である、請求項9に記載のシステム。
【請求項11】
前記方法は、前記減算演算を行うために、前記閾値以上の前記残留値と、前記マージ残留値とから1つを選択する工程をさらに含む、請求項9に記載のシステム。
【請求項12】
前記方法は、副値を、前記副値に関連付けられた残留値が零である場合に使用不能として示す工程をさらに含む、請求項9に記載のシステム。
【請求項13】
前記方法は、
前記残留値およびマージ残留値を格納する記録のスナップショットを取得する工程と、
適格副値または前記マージ残留値を選択する工程であって、適格副値の前記スナップショットは前記閾値以上の残留値を示す、工程と、
適格副値が選択されることに応答して、前記選択された副値に関連付けられた残留値を格納する前記記録をロックし、および前記選択された副値に関連付けられた残留値に対して前記減算演算を行う工程と
をさらに含む、請求項9に記載のシステム。
【請求項14】
前記方法は、
前記残留値およびマージ残留値を格納する記録のスナップショットのバージョン情報を維持する工程と、
残留値またはマージ残留値が更新されると前記対応するスナップショットの前記バージョン情報を更新する工程と
をさらに含む、請求項9に記載のシステム。
【請求項15】
前記合計値は商品の在庫に対応し、
前記トランザクションは前記商品の注文書であり、
前記トランザクションに対応する前記減算演算は、前記注文書の結果としての前記在庫に対する差し引きを表す、請求項9に記載のシステム。
【請求項16】
前記合計値は利用可能ストレージスペースの合計量に対応し、
前記トランザクションはストレージスペースをユーザへ割り振る要求であり、
前記トランザクションに対応する前記減算演算は、前記割り振りの結果としての利用可能ストレージスペースの前記合計量に対する差し引きを表す、請求項9に記載のシステム。
【請求項17】
命令を格納する非一時的記憶媒体であって、前記命令は、プロセッサにより実行されると前記プロセッサに方法を実行させる、媒体であって、前記方法は、
物品またはサービスの合計量に対応する合計値を計算システム内に格納する工程と、
前記合計値を多数の副値に分割する工程と、
副値に関連付けられた残留値が閾値以下であることを判断する工程と、
前記残留値をマージ残留値にマージする工程と、
関連値による減算演算を示すトランザクションを受信する工程と、
前記受信された減算演算を処理するために前記マージ残留値が考慮され得るようにし、それにより残留値断片化を低減する工程と
を含む、非一時的記憶媒体。
【請求項18】
前記閾値は前記減算演算に関連付けられた最小値以上である、請求項17に記載の非一時的記憶媒体。
【請求項19】
前記方法は、前記減算演算を行うために、前記閾値以上の前記残留値と、前記マージ残留値とから1つを選択する工程をさらに含む、請求項17に記載の非一時的記憶媒体。
【請求項20】
前記方法は、副値を、前記副値に関連付けられた残留値が零である場合に使用不能として示す工程をさらに含む、請求項17に記載の非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
分野
本出願は、コンピュータ技術の分野に関し、特に、トランザクションの分散処理における残留値を管理するための方法およびシステムに関する。
【背景技術】
【0002】
関連技術
コンピュータおよびネットワーク技術の進歩により、ますます多くのトランザクションがオンラインで行われ、データベースにより処理されている。このような演算においては、とりわけ物品の合計量、スペースの合計量、または基金の合計量を表し得る合計値がしばしば存在する。しばしば、このような合計値は短期間内に多数の減算演算を受け得る。例えば、複数のユーザが、制限時間ウインドウ内にのみ提供される促進販売中に電子商取引(e−commerce)ウェブサイト上で同時に買い物をし得る。それぞれの商品のアイテムの合計数は、しばしば様々な源から開始された同時トランザクションに基づき急速に低減され得る。別の例では、多数のユーザがクラウドサービスのための特別促進中にオンラインストレージスペースを申し込み得る。合計利用可能ストレージスペースは受信された申し込みに基づき低下するであろう。それぞれの成功した申し込みは、すべてのストレージスペースが使い果たされるまで合計利用可能ストレージスペースの低減をもたらし得る。一般的に、データベースが、このようなトランザクションを処理するために使用され、通常、トランザクションの処理は以下の2つの方法で実施され得る。
【0003】
(1)集中管理:単一データベース記録が、合計値(アイテムの合計数、基金の合計量、スペースの合計量、またはオンライントランザクションからの減算の標的である任意のタイプの合計量に対応し得る)を格納するために使用される。この合計値に対する減算などの演算および残り値の判断は例えば単一データベース内のSQL命令を実行することにより行われる。
【0004】
(2)分散管理:合計値は多くの副値に分割される。各副値は、任意選択的に異なるデータベースまたはサーバにおいて、別個の記録内に格納される。入力トランザクションに対応する減算演算は通常、ロードバランサ(load−balancer)サーバを通り、これらの異なる記録内に分散される。例えば、1000GBの利用可能ストレージスペース合計量が存在し、各ユーザは3GBの無料ストレージスペースを申し込み得ると仮定する。それに応じて、合計値は1000であり得、各トランザクション(すなわち、3GBのストレージスペースのユーザ申し込み)は3による減算の演算を生じる。1000の合計値は、それぞれが100である10個の副値に分割され、10個のデータベースの記録内に格納され得る。各3減算演算はロードバランサにより10個のデータ記録のうちの1つに送られる。例えば、入力減算演算が副値記録番号2へ転送されれば、このデータ記録の対応残留値は97になり、一方、副値データ記録の残りの値は100のままである。本開示では、副値データ記録の残り値を示す値は残留値と呼ばれ得ることに留意されたい。
【0005】
上述の第1の方法(集中管理)では、データベース命令およびI/O操作の集中実行はホットスポット問題を生じ得る。すなわち、短期間中の多数の演算がデータベースシステムに負担をかけ、待ち時間の拡張と処理効率の低減とを生じ得る。さらに、合計値の残留値を格納する単一データベース記録の集中処理は、このデータ記録を更新する際にボトルネックを引き起こし、本システムを更新エラーにさらされ易くし得る。
【0006】
上述の第2の方法(分散管理)では、入力演算は複数のデータ記録に分散される。しかし、各データ記録は独立に更新されるため、合計残留値はこれらのデータ記録間に分断化され得る。同じ上記例を使用すると、各副値データ記録の残留値が1であれば、合計残留値(すべての副値データ記録の残留値の合計)は10であるが、いずれの副値記録も別の減算演算を受容し得ない。減算演算をもはや受容し得ないこれらの残留値は、残留値断片(residual−value fragment)と呼ばれ得る。このような断片化は減算値が変化するとより顕著になり得る。例えば、ユーザが3GB、5GBまたは15GBのストレージスペースを申し込むことができれば、各トランザクションの減算の量は予測不能であるため、各副値記録は最終的に零まで減算され得ることを保証し得ない。その結果、多数の残留値断片が生成され得る。したがって、複数の副値記録内の残留値は利用され得ず、合計残留値は最小化され得ず、システム資源およびデータベースストレージスペースに無駄を生じ得る。
【発明の概要】
【0007】
概要
本発明の一実施形態は、残留値管理を容易にするためのシステムを提供する。動作中、本システムは、物品またはサービスの合計量に対応する合計値を計算システム内に格納する。本システムは、合計値を多くの副値に分割し、および副値が閾値以下であることを判断する。それに応じて、本システムは副値をマージ残留値にマージする。さらに、本システムは、関連値による減算演算を示すトランザクションを受信する。その後、本システムは、減算演算を処理するためにマージ残留値が考慮され得るようにし、それにより残留値断片化を低減する。
【0008】
この実施形態の変形形態では、閾値は減算演算に関連付けられた最小値以上である。
【0009】
この実施形態の変形形態では、本システムは、減算演算を行うために、閾値以上の副値と、マージ残留値とから1つを選択する。
【0010】
この実施形態の変形形態では、本システムは、副値を、その残留値が零である場合に使用不能として示す。
【0011】
この実施形態の変形形態では、本システムは、副値およびマージ残留値を格納する記録のスナップショットを取得する。次に、本システムは、適格(qualified)副値またはマージ残留値を選択する。適格副値のスナップショットは閾値以上の残留値を示す。適格副値が選択されることに応答して、本システムは、選択された副値を格納する記録をロックし、および選択された副値に対して減算演算を行う。
【0012】
この実施形態の変形形態では、本システムは、副値およびマージ残留値を格納する記録のスナップショットのバージョン情報を維持する。加えて、本システムは、副値またはマージ残留値が更新されると対応するスナップショットのバージョン情報を更新する。
【0013】
この実施形態の変形形態では、合計値は商品の在庫に対応する。トランザクションは商品の注文書である。さらに、トランザクションに対応する減算演算は、注文書の結果としての在庫に対する差し引き(deduction)を表す。
【0014】
この実施形態の変形形態では、合計値は利用可能ストレージスペースの合計量に対応する。トランザクションはストレージスペースをユーザへ割り振る要求である。さらに、トランザクションに対応する減算演算は、割り振りの結果としての利用可能ストレージスペースの合計量に対する差し引きを表す。
【0015】
図の簡単な説明
本明細書に援用され本明細書の一部を構成する添付図面は、本出願のいくつかの例示的実施形態を示し、本明細書と共に本出願を説明する役割を果たし、本出願に対するいかなる限定も意味するものではない。
【図面の簡単な説明】
【0016】
図1A】本出願の実施形態による、副値データ記録に基づく例示的分散残留値管理システムを示す。
図1B】本出願の実施形態による、分散残留値管理のための例示的なマージ副値データ記録(merged sub−value data record)を示す。
図2A】本出願の実施形態による、副値データ記録を生成する工程を示す。
図2B】本出願の実施形態による、副値データ記録を管理する工程を示す。
図2C】本出願の実施形態による、副値データ記録の非同期マージ工程を示す。
図3A】本出願の実施形態による、例示的残留値管理システムの概略構造図である。
図3B】本出願の実施形態による、残留値管理システムの例示的残留値マージモジュールの概略構造図である。
図3C】本出願の実施形態による、残留値管理システムの別の例示的残留値マージモジュールの概略構造図である。
図3D】本出願の実施形態による、残留値管理システムの例示的割り振りモジュールの概略構造図である。
【発明を実施するための形態】
【0017】
添付図面では、同様の参照符号は同じ要素を指す。
【0018】
詳細な説明
本発明の実施形態は、合計値を多くの副値に分割し、副値が閾値未満まで低減される場合にこのような副値をマージ副値データ記録にマージすることにより、分散トランザクション処理における残留値断片化を管理する問題を解決し、マージ副値データ記録がより多くの減算演算を受容できるようにする。このような方法は、電子商取引を処理するおよびストレージスペースを割り振るなど、様々な用途において使用され得る。動作中、トランザクションが到着すると、対応する減算演算が副値データ記録のうちの1つへ転送される。トランザクション量は、対応する副値データ記録内の残留値(例えば、残り在庫またはストレージスペース)を示すために、対応する副値から差し引かれ得る。
【0019】
副値データ記録の残留値が閾値未満に(または閾値と等しく)なれば、対応する副値データ記録の残留値はマージ副値データ記録とマージされ、副値データ記録の残留値は零に設定される。一実施形態では、副値データ記録の状態は、副値データ記録の残留値が零であると「使用不能」として設定される。マージ副値データ記録は副値データ記録とは別個のデータ記録であり得る。副値データ記録のうちの1つはまた、マージ副値データ記録としての役割を果たすように選択され得る。次に、副値データ記録の残留値は、マージに起因したマージ副値データ記録の増加利用可能量を示すために、マージ副値データ記録の残留値へ加算される。マージ副値データ記録の残留値を示す値(すなわち加算後残留値)はマージ残留値と呼ばれ得る。
【0020】
本出願の目的、技術的解決策、および利点をより明確にするために、本出願の技術的解決策は、本出願の特定の実施形態と対応する添付図面とを十分に参照して以下に詳細に説明される。明らかに、本明細書に記載される実施形態は単に例示的であり、本出願のすべての実施形態ではない。本出願の実施形態に基づき、創造的努力なしに当業者により導出されるすべての他の実施形態は、本出願の保護範囲内に入るものとする。
【0021】
図1Aは、本出願の実施形態による、副値データ記録に基づく例示的分散残留値管理を示す。この例では、計算システム101は、合計値130をデータベーステーブル120に格納するデータベース102を含む。合計値130は、1つまたは複数の商品の在庫、合計ストレージスペース、基金の合計額、またはトランザクションに付随する減算対象の任意のタイプの量を示し得る。多数のトランザクションが短期間に到着すると合計値130はそれに応じて差し引かれる。
【0022】
合計値130が集中的方法を使用することにより管理されれば、合計値130は単一データベース記録内に格納され得る。この記録の残留値はトランザクションに応答して計算される(例えば、SQLステートメントの実行を通じて)。しかし、集中管理は上に説明したようにホットスポット問題を生じ得る。
【0023】
一方、合計値130が分散的方法を使用することにより管理されれば、合計値130は様々な副値に分割され得、各副値は別個の記録内に格納される。分散的方法を使用することでホットスポット問題を低減し得る。しかし、これは残留値断片化問題を生じ得る。残留値断片化問題を解決するために、合計値130は副値132、134、136、および138に分割され、それぞれ副値データ記録122、124、126、および128内に格納される。いくつかの実施形態では、副値データ記録122、124、126、および128はデータベース102、104、106、および108内にそれぞれ格納され得る。これらのデータベースは、個別コンピュータ装置上に存在してもよく、1つまたは複数のコンピュータ装置上にホストされた様々なデータベースインスタンス内に存在してもよい。
【0024】
これらの副値の数は、合計値130とトランザクションに関連付けられた最大減算値(例えば、ユーザが申し込み得る最大ストレージスペース、またはユーザが購入し得るアイテムの最大数)とに基づき決定され得る。副値の数は、ユーザトランザクションに関連付けられた最大値により合計値130を除算することにより得られる除数より小さくなり得る。これにより副値の数を制限し、ひいては、過剰非集中化に起因する格納オーバヘッド(例えば、副値、残留値などの構成データを格納するための)を節約し、小さい副値に起因するデータ記録の著しい断片化を防止する。さらに、各副値がトランザクションに関連付けられた最大値未満となるような方法で副値が一様に分散されれば、最大値を有するトランザクションは処理されなくてもよい。一方、副値が一様に分散されなければ、少数の副値は最大値より著しく大きくなり得る。その結果、多数の空白データ記録が発生し得る。
【0025】
いくつかの実施形態では、副値の数は、副値がほぼ一様に分散され、各副値がトランザクションに関連付けられた最大値の倍数(例えば、2倍)より大きくなるような方法で決定される。したがって、副値132、134、136、および138は合計値130に基づき一様に分散され得、これらの副値のそれぞれは最大値の倍数(例えば、整数倍)より大きい。この構成により、本システムはトランザクションをそれぞれの副値データ記録へ割り当て、対応するデータ記録を複数の要求に使用できるようになる。このようにして、本システムはホットスポット問題を回避するだけでなく、多数の副値データ記録の処理を回避する。これはまた、各副値の差し引き時間を互いに近くなるようにし得、したがって副値データ記録の処理は簡潔なままである。副値の数はまた、副値が一様に分散されないがそれぞれの副値は最大値の倍数より大きくなるような方法で選択され得ることに注意すべきである。
【0026】
動作中、トランザクションが受信されると、対応する減算演算は副値データ記録のうちの1つ(副値データ記録122など)から割り振られる。関連トランザクション値は、副値データ記録122内の残留値144(例えば、残り在庫、残りストレージスペース、または任意の他のタイプの量)を示すように副値132から減じられ得る。換言すれば、副値132は、副値データ記録122の残留値を示し得、同様に残留値132と呼ばれ得る。副値データ記録122の残留値はまた残留値140などの別個の記録として維持され得ることに注意すべきである。本開示では、合計値と副値とは、特定の単位に関連付けられず、任意の好適な単位系(例えば、アイテムの数、貨幣の量、ストレージスペースの単位等)を使用して表され得る。
【0027】
図1Bは、本出願の実施形態による、分散残留値管理のための例示的マージ副値データ記録を示す。副値データ記録122の副値132が閾値未満になったと仮定する。閾値の範囲は、トランザクション値の最小値(例えば、ユーザが購入し得るアイテムの最小数、ユーザが要求し得る最小ストレージスペース、またはトランザクションに関わる基金の最小額)と合計値130との間であり得る。理想的には、閾値はトランザクションに関連付けられた最大値以上であり得る。いくつかの実施形態では、閾値は、トランザクションに関連付けられた最大値より大きく、最大値の2倍未満である。これは、最大値を有するトランザクションが本システムに到着すれば、副値データ記録の少なくとも1つの残留値が要求に応えるのに十分であることを保証する。
【0028】
副値132が、副値データ記録122へ送られた以前のトランザクションのために閾値未満となれば、副値132はマージ副値データ記録150内にマージされ得る。次に、副値132は零に設定され得る。副値データ記録122の状態は、副値132の残留値が零であれば「使用不能」として設定される。副値132はまた、副値132がトランザクションに関連付けられた値未満であれば、副値データ記録150内にマージされ得る。例えば、副値が合計値130に基づき無作為に分散されれば、1つまたは複数の副値は比較的小さくなり得、一方で他のものは大きくなり得る。その結果、副値132はトランザクションに関連付けられた値未満であり得る。それに応じて、副値132はマージ副値データ記録150とマージされ得る。
【0029】
マージ副値データ記録150は、零の初期残留値を有する追加データ記録(すなわち、副値データ記録とは別個の)または副値データ記録124などの予め選択された副値データ記録であり得る。マージ副値データ記録150としての役割を果たすために、本システムは、無作為に、または副値データ記録124が副値データ記録中の最小残留値を有するため、副値データ記録124を選択し得る。マージ副値データ記録150はトランザクションの割り当て前に一回判断され得る。副値データ記録122がマージ副値データ記録150とマージされると、副値132の残留値はマージ副値データ記録150の残留値へ加算される。マージ副値データ記録150の残留値はマージ残留値152と呼ばれ得る。加算後、マージ残留値152は副値132と副値134との合計を示す。
【0030】
いくつかの実施形態では、副値132、134、136、および138が計算および格納された後、本システムは、閾値未満の残留値を有する副値データ記録を識別するためにそれぞれの副値データ記録を走査し、識別された副値データ記録をマージ副値データ記録150内にマージする。このマージは、副値データ記録によりトランザクションを処理する前に発生し得る。様々なアプリケーションがしばしばトランザクションを同時に開始する(例えば、複数ユーザが急いで商品を同時に購入する)ため、トランザクション処理およびマージは同時に行われ得る(例えば、異なるスレッドにより)。次に、本システムは副値データ記録の残留値が閾値未満かどうかを判断し、そうであれば、副値データ記録の残留値はマージ副値データ記録150とマージされる。
【0031】
副値データ記録122および124がマージされてマージ副値データ記録150を生成すると仮定する。トランザクションが受信されると、本システムはトランザクションを処理するためにマージ副値データ記録150だけでなく副値データ記録126および128も考慮する。これにより、合計残留値断片化と残留値断片化とを低減する。本システムは最初に、トランザクションを割り当てるために副値データ記録126および128のうちの1つを考慮する。本システムがトランザクションをこれらの副値データ記録へ割り当てることができない(例えば、不十分な副値のために)または副値データ記録の残留値が零であれば(すなわち、すべての副値データ記録がすでにマージ済みであれば)、本システムは、トランザクションをマージ副値データ記録150へ割り当てることができる。しかし、これはマージ副値データ記録150からの集中的割り振りのためにホットスポット問題に繋がり得る。
【0032】
この潜在的問題を回避するために、いくつかの実施形態では、本システムは、トランザクションを割り当てるために、十分な残留値を有する(すなわち、閾値より大きい残留値を有する)副値データ記録とマージ副値データ記録150との間から無作為に選択し得る。割り当て中、本システムは、割り当てのために、閾値より大きい残留値を有する副値記録126および128のうちの1つを選択する。副値データ記録128が選択されたと仮定する。選択工程(例えば、無作為抽出)に基づき、本システムは、割り振りのために、副値データ記録128またはマージ副値データ記録150のいずれかを選択する。割り当て後、副値データ記録128の残留値が閾値未満に(または閾値に等しく)なれば、副値データ記録128の残留値はマージ副値データ記録150とマージされる。
【0033】
副値データ記録128とマージ副値データ記録150とは使用可能状態にあるべきであることに注意すべきである。通常、使用可能状態はデータ記録のデフォルト状態である。副値データ記録126および128が使用不能状態であれば、それぞれの副値データ記録の利用可能残留値がすでに使用またはマージされている。その結果、マージ副値データ記録150のみが選択され得る。マージ残留値152がトランザクションの最大値未満になると、最大値を有するこのようなトランザクションは割り当てられ得ない。最後に、マージ残留値152がトランザクションの最小値未満になれば、トランザクション割り当ては終了され得る。この時、合計残留値は最小になり得る。
【0034】
いくつかの実施形態では、トランザクション割り当て中、データ記録を選択する間、本システムは、残留値を判断するために副値データ記録128およびマージ副値データ記録150のそれぞれのスナップショットを取得する。副値データ記録のスナップショットは、対応する副値データ記録の残留値を示し得る。スナップショットはデータベーススナップショット機能により生成され得る。この例は副値データ記録128とマージ副値データ記録150とのそれぞれのスナップショットに基づき説明されることに注意すべきである。しかし、本システムは、それぞれの副値データ記録のスナップショットを生成および維持し得る。
【0035】
いくつかの実施形態では、それぞれの副値データ記録およびマージ副値データ記録150はデータ記録の現バージョンを示すバージョン番号に関連付けられ得る。さらに、スナップショットはまたバージョン番号を含み得る。バージョン番号の例は、限定するものではないが、タイムスタンプまたは単調増加整数を含む。ホットスポット問題を回避するために、スナップショットと対応するデータ記録とは通常、異なるデータベース内に格納される。その結果、スナップショットの更新シーケンスは、対応するデータ記録の更新シーケンスに一致しないことがあり得る。スナップショットのバージョン番号と対応する副値データ記録のバージョン番号(またはマージ副値データ記録)とを比較することにより、本システムはスナップショットの一貫性を保証する。
【0036】
いくつかの実施形態では、本システムは、トランザクション(例えば、残留値に対する変更)またはデータ記録のマージに応答して副値データ記録128などの副値データ記録またはマージ副値データ記録150のスナップショットを更新する。スナップショット更新工程はバージョン番号を更新する(例えば、最新タイムスタンプを追加するまたは整数値をインクリメントする)工程を含み得る。例えば、トランザクションが副値データ記録128により処理された場合、本システムは副値データ記録128のバージョン番号を更新する。スナップショット更新工程はさらに、副値データ記録128のスナップショットを更新する工程を含み得る。スナップショットのバージョン番号が副値データ記録128のバージョン番号未満であれば、本システムは副値データ記録128の新しいスナップショットを生成し、スナップショットのバージョン番号を更新する。
【0037】
トランザクションが、対応する副値データ記録128により処理されるたびに、副値データ記録128のスナップショットが更新されれば、スナップショットをホストするデータベースはホットスポット問題に直面し得る。トランザクションは、副値データ記録128の残留値が閾値以上であれば副値データ記録128により処理され得るため、スナップショットは残留値の特定の数値を有しなくてもよい。スナップショットは、残留値が「閾値以上」かどうかを示す指標(例えば、2進値)を含み得る。換言すれば、指標は副値データ記録128が「トランザクション割り当てに利用可能」かどうかを示す。副値データ記録128の残留値が閾値未満であれば、副値データ記録128はマージ副値データ記録150とマージされ、残留値は零に設定される。したがって、指標が、副値データ記録128は「トランザクション割り当てに利用可能ではない」ことを示せば、副値データ記録128の残留値は実際には零である。したがって、指標はスナップショットが更新されるべきかどうかを判断するために十分である。したがって、いくつかの実施形態では、副値データ記録128およびマージ副値データ記録150のそれぞれのスナップショットは、副値データ記録128がマージ副値データ記録150とマージされると更新される。本システムはスナップショットが更新されるべきかどうかを判断するために、スナップショットのバージョン番号と対応する副値データ記録とを依然として比較することに注意すべきである。
【0038】
以下の例はさらに、副値データ記録に基づく残留値管理を示す。副値データ記録122、124、126、および128の残留値がそれぞれ0、22、15、および17であり、閾値が10であると仮定する。したがって、副値データ記録122の状態は使用不能である。動作中、アプリケーションからの6の値を有するトランザクション(例えば、ユーザが6つのアイテムを注文するまたは6GBのストレージスペースを申し込む)が本システムに到着する。本システムは、副値データ記録のスナップショットを照会し、副値データ記録124、126、および128が使用可能であることを判断する。次に、本システムはトランザクションのために副値データ記録126を無作為に選択する。副値データ記録126のデータベース106上のいかなるトランザクションも開始する前に、本システムは、副値データ記録126の残留値記録(副値136であり得る)をロックする(例えば、分散セマフォを使用することにより)。このロックは、いかなる他のエンティティもロックが解除されるまで記録を更新することができないことを保証する。
【0039】
副値データ記録126の残留値は15であるため、本システムは残留値から6の要求値を差し引き、残留値を9に更新する。次に、本システムは、9の現在残留値が10の閾値未満であることを判断する。次に、本システムは、9のマージ値によりマージサービスを開始し、マージサービスの状態を、初期状態を示すINITとして設定する。本システムは、副値データ記録126の残留値を0に設定し、副値データ記録126の状態を使用不能に設定する。次に、任意選択的に、本システムは、対応するトランザクションをデータベース106へ指示し得る。このデータベーストランザクションは従来のデータベース操作であり得、データベース処理の基本プログラム要素である。したがって、データベーストランザクションが工程中に表されるか否かは本出願の原理および用途に影響を及ぼさない。
【0040】
この時点で、副値データ記録の残留値の合計は0+0+17+22=39であり、54の合計残留値から6の要求値を差し引いた後の結果合計残留値は48であるべきである。合計値の差54−48=9はマージサービスのパラメータとして記録される。本システムは、副値データ記録126の残留値とマージ副値データ記録150とをマージする非同期マージ工程を開始し得る。本システムはまた、図1Bに関連して説明したようにスナップショット更新工程を開始し得る。非同期マージ工程中、本システムは、9の格納能力が、副値データ記録134であるマージ副値データ記録150へ加算されるべきであることを示すパラメータを取得する。本システムは、副値データ記録134のデータベース104上の対応するトランザクションを任意選択的に開始し得る。
【0041】
マージ中、本システムは、得られた9の値(すなわち副値データ記録124の残留値)をマージ副値データ記録150の残留値22へ加算する。したがって、マージ副値データ記録150の残留値は31になる。次に、本システムは、マージサービスの状態を、マージの正常な完了を示すSUSSへ変更し得る。マージサービスがSUSS状態に達すると、副値データ記録128とマージ副値データ記録150の残留値との合計は48になる。
【0042】
図2Aは、本出願の実施形態による、副値データ記録を生成する工程を示す。動作中、残留値管理のためのシステムは、トランザクションの合計値と最大値とに基づき副値の数を判断し(工程S201)、図1Aに関連して説明したように合計値を複数の副値に分割する(工程S202)。次に、本システムは、データ記録をそれぞれの副値に対応する副値データ記録に分割する(工程S203)。本システムは、対応する副値データ記録にそれぞれの副値を格納する(工程S204)。いくつかの実施形態では、本システムは、マージ副値データ記録としての役割を果たす副値データ記録のうちの1つを選択する(工程S205)。本システムはまた、マージ副値データ記録としての役割を果たす別のデータ記録を有し得る。
【0043】
図2Bは、本出願の実施形態による、副値データ記録を管理する工程を示す。動作中、効率的残留値管理のためのシステムは、オンライントランザクションの要求(商品の量を規定する電子商取引注文書など)を受信する(工程S211)。本システムは、副値データ記録のスナップショットを照会し、使用可能状態を有する副値データ記録のうちの1つを選択する(工程S212)。閾値は通常、トランザクションの最大値より大きいため、使用可能状態を有する副値データ記録は通常、トランザクションを処理するために十分な値を有する。本システムは、限定するものではないが無作為抽出、最大(または最小)残留値ベース選択、およびラウンドロビン選択をその例として含む選択方針に基づき副値データ記録を選択し得る。本システムは、マージ副値データ記録と、選択された副値データ記録とから1つのデータ記録を選択する(工程S213)。本システムは、限定するものではないが、無作為抽出およびマージ副値データ記録最終選択(すなわち、いかなる副値データ記録も十分な値を有しなければマージ副値データ記録を選択する)をその例として含む選択方針に基づきデータ記録を選択し得る。
【0044】
次に、本システムは、マージ副値データ記録が選択されたかどうかを判断する(工程S214)。マージ副値データ記録が選択された場合、本システムはトランザクションをマージ副値データ記録へ割り当てるために割り当てサービスを開始する(工程S215)。マージ副値データ記録が選択されなかった(すなわち、副値データ記録のうちの1つが選択された)場合、本システムは、副値データ記録を有するデータベース上で、選択された副値データ記録の残留値記録をロックする(工程S216)。次に、本システムは、トランザクションを選択副値データ記録へ割り当てるために割り当てサービスを開始する(工程S217)。
【0045】
本システムは、副値データ記録の残留値が閾値以上であるかどうかを判断する(工程S218)。残留値が閾値以上であれば、本システムは、副値データ記録を有するデータベース上で、選択された副値データ記録の残留値記録をロック解除する(工程S219)。残留値が閾値未満であれば、本システムは、初期状態のマージサービスを開始し、選択された副値データ記録とマージ副値データ記録とをマージし、選択された副値データ記録の残留値をマージ値として判断する(工程S220)。次に、本システムは、図1Bに関連して説明したように、選択された副値データ記録の残留値を零に設定し、選択された副値データ記録の状態を使用不能として設定する(工程S221)。次に、本システムは、選択された副値データ記録の残留値とマージ副値データ記録とをマージするために非同期マージ工程を開始する(工程S222)。
【0046】
図2Cは、本出願の実施形態による、副値データ記録の非同期マージ工程を示す。動作中、システムは、マージサービスに関連付けられたマージ値などのパラメータを取得する(工程S231)。本システムは、マージ値を、マージ副値データ記録の残留値に加算する(工程S232)。本システムは、図2Bに関連して説明したように、選択された副値データ記録の残留値をマージ副値データ記録の残留値へ加算する、マージ副値データ記録の加算サービスを開始する(工程S233)。次に、本システムは、マージサービスの状態を「成功裡に完了した」として設定する(工程S234)。
【0047】
図3Aは、本出願の実施形態による、例示的残留値管理システムの概略構造図である。残留値管理システム300は、プロセッサ302、メモリ304、および記憶装置320を含む。記憶装置320は通常、上記方法を行うためにメモリ304内にロードされプロセッサ302により行われ得る命令を格納する。一実施形態では、記憶装置320内の命令は、すべてが様々な手段と互いに通信し得る合計値分割モジュール322、割り当てモジュール324、残留値マージモジュール326、およびマージ副値データ記録生成モジュール328を実装し得る。
【0048】
いくつかの実施形態では、モジュール322、324、326、および328は、部分的にまたは完全にハードウェアで実現され得、プロセッサ302の一部であり得る。さらに、いくつかの実施形態では、本システムは別個のプロセッサ、メモリを含まないことがあり得る。その代りに、それらの特定のタスクを行うことに加えて、モジュール322、324、326、および328は、別個にまたは協働してのいずれかで、専用計算エンジンの一部であり得る。
【0049】
記憶装置320はプロセッサ302により行われるプログラムを格納する。具体的には、記憶装置320は、効率的残留値管理のためのシステム(アプリケーション)を実現するプログラムを格納する。動作中、アプリケーションプログラムは記憶装置320からメモリ304内にロードされ、プロセッサ302により行われ得る。その結果、システム300は上記機能を行い得る。システム300はさらに、任意選択的ディスプレイ312、キーボード314、およびポインティング装置316へ結合され得、1つまたは複数のネットワークインタフェースを介しネットワーク310へ結合され得る。
【0050】
動作中、合計値分割モジュール322は合計値を多くの副値に分割し、それぞれの副値に対応する副値データ記録を生成し、対応する副値データ記録にそれぞれの副値を格納する。マージ副値データ記録生成モジュール328は副値データ記録のうちの1つをマージ副値データ記録として選択する。マージ副値データ記録生成モジュール328はまた、副値データ記録から分離したマージ副値データ記録を生成し得る。残留値マージモジュール326は、副値データ記録の残留値が閾値以下であれば、副値データ記録の残留値とマージ副値データ記録とをマージし、副値データ記録の残留値を零に設定する。割り当てモジュール324は閾値以上の残留値を有する副値データ記録のうちの1つを選択する。次に、割り振りモジュール324は、トランザクションの割り当てのために、選択された副値データ記録とマージ副値データ記録との間から選択する。
【0051】
図3Bは、本出願の実施形態による、残留値管理システムの例示的残留値マージモジュールの概略構造図である。図3Aの残留値マージモジュール326は、調停モジュール331、マージサービスモジュール332、零設定モジュール333、および非同期マージモジュール334を含み得る。調停モジュール331は副値データ記録の残留値が閾値未満(または閾値に等しい)かどうかを判断する。マージサービスモジュール332は、副値データ記録の残留値が閾値未満であれば(または閾値に等しければ)マージサービスを開始する。零設定モジュール333は副値データ記録の残留値を零に設定する。
【0052】
非同期マージモジュール334は非同期マージ工程を開始し実行する。非同期マージモジュール334は、パラメータモジュール335、残留値マージモジュール336、およびマージサービス状態設定モジュール337を含む。パラメータモジュール335はマージサービスに関連付けられたマージ値などのパラメータを取得する。残留値マージモジュール336はマージ値をマージ副値データ記録の残留値へ加算する。マージサービス状態設定モジュール337は、マージサービスが完了したことを示すためにマージサービスの状態を設定する。
【0053】
図3Cは、本出願の実施形態による、残留値管理システムの別の例示的残留値マージモジュールの概略構造図である。この例では、図3Aの残留値マージモジュール326はさらに、副値データ記録の残留値が零であれば副値データ記録の状態を使用不能として設定するデータ記録状態設定モジュール342を含む。非同期マージモジュール334はさらに、マージ値がマージ副値データ記録の残留値へ加算されるときに加算サービスを開始する加算サービスモジュール344を含む。この加算サービスは、マージ値により示された値をマージ副値データ記録の残留値へ加算する(すなわち、マージ副値データ記録の残留値能力をマージ値だけ拡大する)。
【0054】
図3Dは、本出願の実施形態による、残留値管理システムの例示的割り振りモジュールの概略構造図である。図3Aの割り振りモジュール324は、スナップショット照会モジュール351、データ記録選択モジュール352、データ記録ロックモジュール353、残留値モジュール354、および割り当てサービスモジュール355を含み得る。スナップショット照会モジュール351は、トランザクションの割り当て中に、副値データ記録とマージ副値データ記録のそれぞれのスナップショットを照会する。データ記録選択モジュール352は、トランザクション割り当てのために、マージ副値データ記録と、使用可能状態を有する副値データ記録とから選択する。データ記録ロックモジュール353は、副値データ記録が選択されれば、選択された副値データ記録の残留値記録をロックする。残留値モジュール354は、トランザクションを、選択された副値データ記録またはマージ副値データ記録へ当てる。割り当てサービスモジュール355は割り当てサービスを開始する。
【0055】
図3Aに戻って参照すると、いくつかの実施形態では、記憶装置320内の命令はさらに、すべてが様々な手段と互いに通信し得るデータベース管理モジュール362、バージョン管理モジュール364、およびスナップショット管理モジュール366のうちの1つまたは複数を実装し得る。データベース管理モジュール362は、データベースに基づき、データ制御システムに関連付けられた操作を容易にする。バージョン管理モジュール364は、それぞれの副値データ記録およびマージ副値データ記録に関連付けられたバージョン(例えば、バージョン番号)、およびその対応するスナップショットを維持し更新する。スナップショット管理モジュール366は、副値データ記録およびマージ副値データ記録のそれぞれのスナップショットを生成し更新する。
【0056】
この詳細な説明において説明されたデータ構造およびコンピュータ命令は通常、コンピュータシステムによる使用のためのコードおよび/またはデータを格納し得る任意の装置または媒体であり得るコンピュータ可読記憶媒体上に格納される。コンピュータ可読記憶媒体は、限定しないが揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタルバーサタイルディスクまたはデジタルビデオディスク)などの磁気および光学的記憶装置、または現在知られているかもしくは将来開発されるコンピュータ可読媒体を格納することができる他の媒体を含む。
【0057】
詳細な説明セクションにおいて説明された方法および工程は、上に説明したようにコンピュータ可読記憶媒体に格納され得るコードおよび/またはデータとして具現化され得る。コンピュータシステムがコンピュータ可読記憶媒体上に格納されたコードおよび/またはデータを読み実行する場合、コンピュータシステムは、データ構造およびコードとして具現化されコンピュータ可読記憶媒体内に格納される方法および工程を実行する。
【0058】
さらに、本明細書において説明される方法および工程はハードウェアモジュールまたは装置内に含まれ得る。これらのモジュールまたは装置は、限定するものではないが特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定のソフトウェアモジュールまたは1つのコードを特定時間に実行する専用または共用プロセッサ、および/または現在知られているかもしくは将来開発される他のプログラマブルロジックデバイスを含み得る。ハードウェアモジュールまたは装置が活性化されると、これらはその中に含まれる方法および工程を実行する。
【0059】
上の説明は、当業者が本実施形態をなし得るようにかつ使用できるようにするために提示され、特定の用途およびその要件に関連して提供された。開示される実施形態に対する様々な修正形態は当業者に容易に明らかになり、本明細書で定義された一般的原理は、本開示の趣旨または範囲から逸脱することなく他の実施形態および用途へ適用され得る。したがって、本発明は、示された実施形態に限定されるように意図されていないが、本明細書に開示された原理および特徴に整合する最も広い範囲を与えられるものとする。
図1A
図1B
図2A
図2B
図2C
図3A
図3B
図3C
図3D