JP2021051743A - データ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体 - Google Patents

データ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体 Download PDF

Info

Publication number
JP2021051743A
JP2021051743A JP2020157555A JP2020157555A JP2021051743A JP 2021051743 A JP2021051743 A JP 2021051743A JP 2020157555 A JP2020157555 A JP 2020157555A JP 2020157555 A JP2020157555 A JP 2020157555A JP 2021051743 A JP2021051743 A JP 2021051743A
Authority
JP
Japan
Prior art keywords
transaction
transactions
key value
group
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020157555A
Other languages
English (en)
Other versions
JP7495312B2 (ja
JP2021051743A5 (ja
Inventor
熙 權 朴
Heekwon PARK
熙 權 朴
好 彬 李
Ho Bin Lee
好 彬 李
一 九 洪
Ilgu Hong
一 九 洪
亮 ソク 奇
Yang Seok Ki
亮 ソク 奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2021051743A publication Critical patent/JP2021051743A/ja
Publication of JP2021051743A5 publication Critical patent/JP2021051743A5/ja
Application granted granted Critical
Publication of JP7495312B2 publication Critical patent/JP7495312B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】トランザクションと共にオーバーライトマージ作業をスムーズにし、データ格納技術を向上させ得るデータ格納方法を提供する。【解決手段】保留中のキューで複数のキーに各対応する1つ以上のキー値アップデート(以下、UD)を有する複数のトランザクション(以下、Trxn)を識別する段階、Trxnの内で異なるものに属するキー値UDに共通関連するキー値UDに関する複数のキーに共通関連するキーを識別する段階、複数のトランザクショングループ(以下、TrxnG)−IDに割当られた各々のTrxnIDに基づきTrxnG−IDをTrxnに各々割当る段階、割当られたTrxnG−IDに基づきTrxnを複数のTrxnの各々のTrxnGにグループ化する段階、TrxnGの同じ1つにあるTrxnの内のグループ化されたTrxnに対して共通関連するキーの共通関連するキー値UDに対応する競合するデータ書き込みをマージする段階を有する。【選択図】 図2

Description

本発明は、データ格納に関し、特に、オーバーライトマージで起こり得る問題を避け、競合の際にも同一のキーに対するトランザクションの書き込みを安定的にマージするトランザクショングループ化とオーバーライトマージとの結合を提供するデータ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体に関する。
キー値ストアの動作において、与えられたキーが何度も書き込まれ、多様なキーが実質的に同時にアップデートされる。
多様なキー値をアップデートするための複数のトランザクションが保留キューに配置される。
保留キュー内における異なるトランザクションは、それぞれ競合するキー値アップデートに対応し、競合するキー値アップデートはいずれも共通キーに対応する。
例えば、第1書き込み動作又は第1トランザクションは、その後、第2の書き込み動作/トランザクションが同一のキーに対して異なるキー値アップデートを行おうとする際に、キーへのキー値アップデートを行おうとする。
各トランザクションを処理する際に、各キー値アップデートを順に処理する。
従って、特定のキーは、異なるキー値ですぐに再アップデートされるようにキー値でアップデートされる。
つまり、初期のキー値アップデートが起こる前に、初期(early−in−time)トランザクションのキー値アップデートが後期(later−in−time)トランザクションと関係なくレンダリングされるが、キー値アップデートはどちらも起こり、いずれか1つは不要になる。
このようなシナリオでのさまざまなトランザクションは、一般的に、互いに比較的近い時間に発生する。
特開2006−72986号公報
本発明は上記従来のデータ格納方法における問題点に鑑みてなされたものであって、本発明の目的は、オーバーライトマージで潜在的に起こる可能性のある問題を避け、競合の際にも、同一のキーに対するトランザクションの書き込みを安定的にマージするトランザクショングループ化とオーバーライトマージとの結合を提供するデータ格納方法を提供することにある。
また、本発明の他の目的は、トランザクショングループ化とマージを実行するためのシステム及びそのシステムに実装された非一時的なコンピュータ読取可能媒体を提供することにある。
上記目的を達成するためになされた本発明によるデータ格納方法は、保留中のキューで、複数のキーにそれぞれ対応する1つ以上のキー値アップデートを有する複数のトランザクションを識別する段階と、前記トランザクションの内で異なるものに属している前記キー値アップデートに共通して関連するキー値アップデートに関する前記複数のキーに共通して関連するキーを識別する段階と、複数のトランザクショングループIDに割り当てられたそれぞれのトランザクションIDに基づいて、トランザクショングループIDを前記トランザクションにそれぞれ割り当てる段階と、前記割り当てられたトランザクショングループIDに基づいて、前記トランザクションを前記複数のトランザクションのそれぞれのトランザクショングループにグループ化する段階と、前記トランザクショングループの同じ1つにあるトランザクションの内のグループ化されたトランザクションに対して、共通して関連するキーの、共通して関連するキー値アップデートに対応する競合する(conflicting)データ書き込みをマージ(merge)する段階と、を有することを特徴とする。
衝突(crash)が、前記トランザクショングループの内の衝突したトランザクショングループ内で前記トランザクションの内の衝突したトランザクションで発生する場合、前記競合するデータ書き込みをマージすることにより、リンクされた前記衝突したトランザクショングループ内のトランザクションの内、リンクされた前記トランザクションのみを、前記衝突したトランザクションに再試行する段階をさらに有することが好ましい。
同一のそれぞれのキーに対応する1つ以上の後期(later−in−time)キー値アップデートによって、関連していない1つ以上の初期(early−in−time)キー値アップデートのみを有する前記トランザクションの内の1つを除去する段階をさらに有し、前記後期キー値アップデートは、トランザクションの内の除去されたものよりも後に発生する1つ以上の他のトランザクションであることが好ましい。
前記複数のキーの共通キーに対応する任意の共通して関連するキー値アップデートが欠如する連続的なトランザクションのペアを決定する段階と、前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる段階と、をさらに有することが好ましい。
前記複数のキーの共通キーに対応する最も少ない数の、共通して関連するキー値アップデートを有する連続的なトランザクションのペアを決定する段階と、前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる段階と、をさらに有することが好ましい。
前記トランザクショングループIDを割り当てる段階は、異なるトランザクションにわたって共通して関連するキー値アップデートの総数の分析に更に基づくことが好ましい。
前記競合するデータ書き込みのマージされた全てキー値アップデートを、前記トランザクショングループの内の1つのトランザクショングループの1つ以上のストレージデバイスに書き込む段階と、前記マージされたキー値アップデートの全てが前記1つ以上のストレージデバイスに書き込まれたことが確認された場合にのみ、前記トランザクショングループの内の1つのトランザクショングループの前記マージされたキー値アップデートに対応するメタデータをアップデートする段階と、をさらに有することが好ましい。
前記各トランザクションIDを前記各トランザクションに割り当てる段階をさらに有することが好ましい。
上記目的を達成するためになされた本発明によるシステムは、トランザクショングループ化とマージを実行するためのシステムであって、トランザクションモジュールと、マージモジュールと、を有し、前記トランザクションモジュールは、保留中のキューで、複数のキーにそれぞれ対応する1つ以上のキー値アップデートを有する複数のトランザクションを識別し、前記トランザクションの内で異なるものに属している前記キー値アップデートに共通して関連するキー値アップデートに関する前記複数のキーに共通して関連するキーを識別し、複数のトランザクショングループIDに割り当てられたそれぞれのトランザクションIDに基づいて、トランザクショングループIDを前記トランザクションにそれぞれ割り当て、前記割り当てられたトランザクショングループIDに基づいて、前記トランザクションを前記複数のトランザクションのそれぞれのトランザクショングループにグループ化する動作を行うように構成され、前記マージモジュールは、前記トランザクショングループの同じ1つにあるトランザクションの内のグループ化されたトランザクションに対して、前記共通して関連するキーの、前記共通して関連するキー値アップデートに対応する競合する(conflicting)データ書き込みをマージ(merge)する動作を行うように構成されることを特徴とする。
衝突(crash)が、前記トランザクショングループの内の衝突したトランザクショングループ内で前記トランザクションの内の衝突したトランザクションで発生する場合、前記トランザクションモジュールは、前記競合するデータ書き込みをマージすることにより、リンクされた前記衝突したトランザクショングループ内のトランザクションの内、リンクされた前記トランザクションのみを、前記衝突したトランザクションに再試行するようにさらに構成されることが好ましい。
前記マージモジュールは、同一のそれぞれのキーに対応する1つ以上の後期(later−in−time)キー値アップデートによって、関連していない1つ以上の初期(early−in−time)キー値アップデートのみを有する前記トランザクションの内の1つを除去する動作を行うように構成され、前記後期キー値アップデートは、前記トランザクションの内の除去されたものよりも後に発生する1つ以上の他のトランザクションであることが好ましい。
前記トランザクションモジュールは、複数のキーの共通キーに対応する任意の共通して関連するキー値アップデートが欠如する連続的なトランザクションのペアを決定し、前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる動作を行うようにさらに構成されることが好ましい。
前記トランザクションモジュールは、複数のキーの共通キーに対応する最も少ない数の、共通して関連するキー値アップデートを有する連続的なトランザクションのペアを決定し、前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる動作を行うようにさらに構成されることが好ましい。
前記トランザクショングループIDを前記トランザクションにそれぞれを割り当てる動作は、異なるトランザクションにわたって共通して関連するキー値アップデートの総数の分析にさらに基づくことが好ましい。
インフライト・リクエストバッファ(inflight request buffer)をさらに有し、前記インフライト・リクエストバッファは、前記競合するデータ書き込みのマージされた全てキー値アップデートを、前記トランザクショングループの内の1つのトランザクショングループの1つ以上のストレージデバイスに書き込み、前記マージされたキー値アップデートの全てが前記1つ以上のストレージデバイスに書き込まれたことが確認された場合にのみ、前記トランザクショングループの内の1つのトランザクショングループの前記マージされたキー値アップデートに対応するメタデータをアップデートする動作を行うように構成されることが好ましい。
前記トランザクションモジュールは、前記各トランザクションIDを前記各トランザクションに割り当てるようにさらに構成されることが好ましい。
上記目的を達成するためになされた本発明による非一時的なコンピュータ読取可能媒体は、トランザクショングループ化とマージを実行するためのシステム上に実装された非一時的なコンピュータ読取可能媒体であって、前記非一時的なコンピュータ読取可能媒体は、プロセッサ上で実行される際、データ格納方法を実行するコンピュータコードを有し、前記データ格納方法は、保留中のキューで、複数のキーにそれぞれ対応する1つ以上のキー値アップデートを有する複数のトランザクションを識別する段階と、前記トランザクションの内で異なるものに属している前記キー値アップデートに共通して関連するキー値アップデートに関する前記複数のキーに共通して関連するキーを識別する段階と、複数のトランザクショングループIDに割り当てられたそれぞれのトランザクションIDに基づいて、トランザクショングループIDを前記トランザクションにそれぞれ割り当てる段階と、前記割り当てられたトランザクショングループIDに基づいて、前記トランザクションを前記複数のトランザクションのそれぞれのトランザクショングループにグループ化する段階と、前記トランザクショングループの同じ1つにあるトランザクションの内のグループ化されたトランザクションに対して、共通して関連するキーの、共通して関連するキー値アップデートに対応する競合する(conflicting)データ書き込みをマージ(merge)する段階と、を有することを特徴とする。
衝突(crash)が、前記トランザクショングループの内の衝突したトランザクショングループ内でトランザクションの内の衝突したトランザクションで発生する場合、前記コンピュータコードは、前記プロセッサ上で実行される際に、前記競合するデータ書き込みをマージすることにより、リンクされた前記衝突したトランザクショングループ内のトランザクションの内、リンクされた前記トランザクションのみを、前記衝突したトランザクションに再試行する段階をさらに有する前記データ格納方法を実装することが好ましい。
前記コンピュータコードは、前記プロセッサ上で実行される際に、同一のそれぞれのキーに対応する1つ以上の後期(later−in−time)キー値アップデートによって、関連していない1つ以上の初期(early−in−time)キー値アップデートのみを有するトランザクションの内の1つを除去する段階をさらに有する前記データ格納方法を実装し、前記後期キー値アップデートは、前記トランザクションの内の除去されたものよりも後に発生する1つ以上の他のトランザクションであることが好ましい。
前記コンピュータコードは、前記プロセッサ上で実行される際に、複数のキーの共通キーに対応する任意の共通して関連するキー値アップデートが欠如する連続的なトランザクションのペアを決定する段階と、前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる段階と、をさらに有する前記データ格納方法を実装することが好ましい。
本発明に係るデータ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体によれば、データの一貫性を保証するために、システム障害後にロールバック(システムにより再試行)しなければならないトランザクションの数を減らすことにより、データ格納が改善できる。
本発明の一実施形態によるオーバーライトマージ及びそれから発生するトランザクションの依存性を説明するための図である。 本発明の一実施形態によるトランザクショングループ化とのオーバーライトマージを説明するための図である。 本発明の一実施形態によるトランザクショングループ化とのオーバーライトマージを説明するためのフローチャートである。 本発明の一実施形態によるシステムでのワークフローを説明するための概略構成ブロック図である。
次に、本発明に係るデータ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体を実施するための形態の具体例を図面を参照しながら説明する。
特に明示しない限り、同様の図面符号は、多様な図面全体において同様の部分を示す。
対応する参照符号は、様々な図面にわたって対応する構成要素を示す。
当業者は、図面の要素が単純性や明瞭性のために示しており、必ずしも正確な比率で示していないことを理解するであろう。
例えば、図面において、一部の構成要素、層、領域の面積は、明瞭性や多様な実施形態の理解を助けるために、他の構成要素、層、領域に比べて誇張される。
また、実施形態の説明に関連していない、一般的であるがよく理解される構成要素及び部分は、多様な実施形態の図面が影響を受けないように、且つ説明を明確にするために図示しない場合もある。
本発明の特徴及びこれを達成するための方法は、実施形態の詳細な説明及び添付図面を参照してより容易に理解できる。
以下では、実施形態について添付図面を参照してより詳細に説明する。
しかし、説明する実施形態は、多様な他の形態で実施することができ、本明細書で開示する実施形態に限定して解釈すべきではない。
むしろ、このような実施形態は、本発明が徹底的且つ完全なものになるように例示として提供し、当業者に本発明の態様や特徴を十分に伝える。
よって、本発明の態様や特徴の完全な理解のために、当業者に不要なプロセス、要素、及び技術を説明しないことがあり得る。
特に言及しない限り、同様の参照符号は、添付の図面及び記載する説明全体にわたって同様の要素を示しているため、その説明は繰り返さない。
また、実施形態の説明と関連のない部分は、説明を明確にするために示さない。
図面において、構成要素、層、領域の相対的なサイズは、明確性のために誇張することがある。
詳細な説明において、説明の目的として、多様な実施形態の徹底した理解のために多数の特定の詳細な説明を提示する。
しかし、多様な実施形態は、このような特定の詳細な説明がなくても実施してもよく、或いは、1つ以上の同等な配列を有して実施してもよいということは明らかである。
他方、よく知られている構造及び装置は、多様な実施形態をむやみに曖昧にすることを避けるために、ブロック図の形で示す。
本明細書において、「第1」、「第2」、「第3」などの用語を多様な構成要素、部分品(components)、領域、層及び/又はセクションを説明するために用いるが、このような構成要素、部分品、領域、層及び/又はセクションは、これらの用語によって限定してはならないことが理解できる。
これらの用語は、単に1つの構成要素、部分品、領域、層又はセクションを他の構成要素、部分品、領域、層又はセクションと区別するために用いる。
従って、以下で説明する第1構成要素、部分品、領域、層又はセクションは、本発明の思想や範囲を逸脱することなく、第2構成要素、部分品、領域、層又はセクションとしてもよい。
本明細書で用いる用語は、単に特定の実施形態を説明するために用いており、本発明を限定するものではない。単数形の表現は、文脈上明らかに異なるように示さない限り、複数形の表現を含む。
本明細書において、「含む」又は「有する」などの用語は、開示する特徴、数字、段階、動作、構成要素、部分品、及び/又はこれらの組み合わせが存在することを指すものであって、1つ以上の他の特徴、数字、段階、動作、構成要素、部分品及び/又はこれらの組み合わせの存在や付加の可能性を排除するものではないことを理解すべきである。
本明細書で用いる「及び/又は」、「及び/若しくは」という用語は、1つ以上の関連して挙げられた項目の任意且つ全ての組み合わせを含む。
本明細書で用いる「実質的に」、「約」、「およそ」、及びこれと似た用語は、程度の用語ではなく、近似値の用語として用い、当業者が認識する測定値又は計算値の固有偏差を説明するためのものである。
本明細書で用いる「約」又は「およそ」は、特定量の測定に関する誤差(即ち、測定システムの限界)を考慮して、当業者によって決定される明示された値を含み、特定値の許容可能な偏差範囲内を意味する。
例えば、「約」は、1つ以上の標準偏差又は明示された値の±30%、20%、10%、5%内を意味する。
更に、本発明の実施形態を説明する際に用いる「し得る」は、本発明の1つ以上の実施形態を指すものである。
ある実施形態を異なって実施する場合、特定のプロセスの順序は、説明する順序と異なって行ってもよい。
例えば、連続して説明する2つのプロセスは、実質的に同時に行ってもよく、或いは、説明する順序と反対の順序で行ってもよい。
本明細書で説明する本発明の実施形態による電子又は電気装置及び/又は他の関連装置又は部分品は、任意の適切なハードウェア、ファームウェア(例えば、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、ソフトウェア、又は、ソフトウェア、ファームウェア及びハードウェアの組み合わせを利用して実装される。
例えば、これらの装置の多様な部分品は、1つの集積回路(IC)チップ又は別のICチップ上に形成される。
また、これらの装置の多様な部分品は、フレキシブル印刷回路フィルム、テープキャリアパッケージ(Tape Carrier Package:TCP)、印刷回路基板(Printed Circuit Board:PCB)上に実装されるか、又は1つの基板上に形成される。
更に、これらの装置の多様な部分品は、コンピュータプログラム命令を実行し、本明細書で説明する多様な機能を行うために他のシステムの部分品と相互作用する1つ以上のコンピューティング装置内における1つ以上のプロセッサ上で実行するプロセス又はスレッド(thread)である。
コンピュータプログラム命令は、例えば、ランダムアクセスメモリ(Random Access Memory:RAM)などの標準メモリ装置を用いてコンピューティング装置内に実装されるメモリに格納される。
また、コンピュータプログラム命令は、例えば、CD−ROM、フラッシュドライブなどの他の非一時的なコンピュータ読取可能記録媒体(non−transitory computer readable media)に格納される。
更に、当業者は、本発明の実施形態の思想や範囲を逸脱することなく、多様なコンピューティング装置の機能が単一のコンピューティング装置に結合若しくは統合されるか、又は特定のコンピューティング装置の機能が1つ以上の他のコンピューティング装置に分散されるということを認識すべきである。
特に定義しない限り、本明細書で用いる技術用語及び科学用語を含む全ての用語は、本発明が属する技術分野の通常の知識を有する者が一般的に理解するものと同様の意味を有する。
また、通常用いられる辞典に定義されているような用語は、関連技術及び/又は本明細書の文脈上の意味と一致すると解釈すべきであり、本明細書で明らかに定義しない限り、理想的又は過度に公式的な意味に解釈してはならないことが理解される。
キー値アップデートの数を減らすことにより、ストレージデバイスにおける書き込みの効率性を向上させるために、「インライン・オーバーライトマージ」又は「オーバーライトマージ」(「インプレースアップデート」ともいう)は、共通キーに対応し、与えられたタイムフレーム内で発生する競合する書き込みのマージ(merging)を可能にする。
競合する書き込みは、与えられたタイムフレーム内で発生する互いに異なるそれぞれのトランザクションに対応するため、トランザクションは全て実質的に同時に保留キューに存在する。
従って、オーバーライトマージは、同一のキーの最新キー値アップデートのために、特定のキーの過去のキー値アップデートを廃棄できるようにする。
つまり、与えられたタイムフレーム内に発生する共通キーへの競合する保留書き込みは、最後の書き込みのために、関連のない初期の書き込みを廃棄することにより、「マージ(併合)」される。
従って、キー値アップデート/書き込みの総数が減ることにより、システムオーバーヘッドが減る。
オーバーライトマージの概念は、多様なKVストレージ方法に関して書き込み縮小(write reduction)方法として適用される(例えば、既存の永久的なキー値ストアと互換するキー値ソリッドステートドライブ(KVSSD)と共に用いる、FACEBOOK(登録商標)により開発されたRocksDB、及びMyRocksと互換するRocksDBストレージエンジン等のキー値ストアに関して)。
例えば、あるベンチマークは、マルチスレッドのシーケンシャル書き込み能力であり、各スレッドは、他のスレッドのキーと重複するキーを生成する。
従って、簡単なオーバーライトマージ能力を追加することが有利であり、フラッシュメモリをストレージ媒体空間に適用することにより、書き込み増幅(write amplification)の減少は有利になる。
オーバーライトマージを使用することにより、書き込み増幅は減るが、一般に、オーバーライトマージはトランザクションシステムにのみ使用するものではない。
例えば、オーバーライトマージ/インプレースアップデートは、トランザクションの一括処理と共に使用する際に望ましくない影響を与える。
このような望ましくない影響は、トランザクションの依存性による保留中のトランザクションのロングテールが原因であり、そのため、潜在的にデータの不一致が発生し、オーバーライトマージを非実用的にしてしまう。
また、衝突(crash)の一貫性が潜在的に損なわれる。
つまり、オーバーライトマージを使用すると、書き込み増幅を減らし、性能を向上させることができるが(例えば、IOPS(秒あたり入出力動作)の向上)、多数のトランザクションがある場合、オーバーライトマージは行わない。
例えば、多数のトランザクションがある場合、複数のカスケード接続された/リンクされたトランザクションの内の1つで衝突が発生すると、データの一貫性が損なわれる。
また、オーバーライトが複数回発生する場合、保留中のトランザクションのロングテールが発生する。
従って、本発明の実施形態は、インライン・オーバーライトマージを許可することにより、カスケード接続されたトランザクションのグループ化(例えば、トランザクショングループの使用)を可能にする。
本発明の実施形態を達成するために、対応するメタデータの書き込みは、グループ内の全てのトランザクション動作がデバイスに書き込まれるまで遅延する。
記載の通り、本発明の実施形態によるインライン・オーバーライトマージを、書き込み増幅を減らすことに使用するが、インライン・オーバーライトマージはトランザクションシステムに単独では使用しない。
フラッシュメモリ技術で本発明の実施形態を行うことにより、一部のフラッシュデバイスは、改善した書き込み耐久性及び性能(例えば、IOPS)を示す。
図1は、オーバーライトマージ及びそれから発生するトランザクションの依存性を説明するための図である。
図1を参照すると、第1トランザクション(Trxn1)は、第2トランザクション(Trxn2)のキー値アップデート(V3)と、オーバーライトマージされるキー値アップデート(V2)と、を有する。
第2トランザクション(Trxn2)は、それぞれ第3及び第4トランザクション(Trxn3及びTrxn4)のキー値アップデート(V5及びV6)と、オーバーライトマージされるキー値アップデート(V4)と、を有する。
第3トランザクション(Trxn3)は、第4トランザクション(Trxn4)のキー値アップデート(V8)と、オーバーライトマージされるキー値アップデート(V7)と、を有する。
更に、第4トランザクション(Trxn4)は、第5トランザクション(Trxn5)のキー値アップデート(V10)と、オーバーライトマージされるキー値アップデート(V9)と、を有する。
従って、オーバーライトマージ能力を有するキー値アップデートによる多様なトランザクションの相互依存性によって、トランザクションは、それから生成される相互依存性のチェーンにより互いにリンクされる。
そのため、衝突又は予期しない停電が発生した場合、オーバーライトマージにより望ましくない影響が生じる。
本発明の実施形態によると、図1に示す通り、第4トランザクション(Trxn4)のキー値アップデート(V9)後、そして、第5トランザクション(Trxn5)のキー値アップデート(V10)前に衝突が発生すると、リンクされた全てのトランザクション(Trxn1〜Trxn5)がロールバックされる(つまり、有効性及びデータの一貫性を保証するためにシステムにより再試行される)。
即ち、衝突により、第4トランザクション(Trxn4)のキー値アップデート(V9)が有効と判断されない。
第4トランザクション(Trxn4)のキー値アップデート(V9)が有効と判断されないため、第4トランザクション(Trxn4)の完了が有効と判断されない。
また、第4トランザクション(Trxn4)のキー値アップデート(V6)が、第2及び第3トランザクション(Trxn2及びTrxn3)のキー値アップデート(V4及びV5)とマージされてオーバーライトされるため、キー値アップデート(V4及びV5)のいずれも有効に書き込まれていることが確認されない。
従って、第2及び第3トランザクション(Trxn2及びTrxn3)も同様に有効と判断されない。
最後に、第1及び第2トランザクション(Trxn1及びTrxn2)のキー値アップデート(V2及びV3)がマージされ、第2トランザクション(Trxn2)が有効と判断されないため、第1トランザクション(Trxn1)は有効と判断されず、また、ロールバックされなければならない。
従って、オーバーライトマージから発生するトランザクションの依存性により、衝突はシステムにおけるデータの一貫性を達成するために比較的多数のトランザクションを要求する。
また、トランザクションが復旧不可能な衝突後のシナリオが存在する。
例えば、キー値アップデート(V1)のメタデータがストレージデバイスに既に書き込まれており、且つ、任意のキー値ストアの実行における前回のメタデータの記録がないため(例えば、下記で更に説明する図3のステップS380及び図4のテーブル460参照)、第1トランザクション(Trxn1)がロールバックされない状況が存在する。
本発明の実施形態は、オーバーライトマージを、本明細書で「トランザクショングループ化(transaction grouping)」という概念と結合することにより、オーバーライトマージで潜在的に起こる可能性のある問題を避ける。
つまり、トランザクショングループ化を通じてトランザクションをグループ化することにより、衝突の際にも、同一のキーに対するトランザクションの書き込みを安定的にマージするため、書き込みの効率性が向上する。
図2は、本発明の一実施形態によるトランザクショングループ化とのオーバーライトマージを説明するための図である。
例えば、図2を参照すると、それぞれのトランザクショングループID(例えば、Group1又はGroup2)をトランザクションに割り当てることにより、異なるトランザクションがグループ化される。
トランザクショングループIDは、1つ以上の対応するトランザクションIDから生成される。
また、オーバーライトマージが発生しなければ、新たなトランザクショングループIDがスタートする。
例えば、複数のアップデートが臨界値を超えれば、新たなトランザクショングループIDがスタートする。
それぞれのトランザクションのトランザクションIDに基づき、それぞれのトランザクションに対するそれぞれのトランザクショングループIDを生成することにより、それぞれのトランザクショングループを分離する1つ以上のトランザクショングループの境界を決定する。
例えば、本実施形態の実行において、トランザクショングループIDは、トランザクションIDの最上位59ビットである。
新たなトランザクショングループIDを使用する場合、次のトランザクションIDが増加する。
図2に示すように、連続的なトランザクションは単一のトランザクショングループに含まれるが、本発明の実施形態は、これに制限されない。
また、トランザクショングループ当たりのトランザクションの具体的な数は、特に制限されない。
図2に示すように、第1〜第3トランザクション(Trxn1、Trxn2、及びTrxn3)はそれぞれ、第1グループ「Group1」内に配置される第1グループのトランザクションIDが割り当てられる一方、第4及び第5トランザクション(Trxn4及びTrxn5)は、第2グループ「Group2」内に配置される第2グループのトランザクションIDが割り当てられる。
従って、第3及び第4トランザクション(Trxn3及びTrxn4)は、それぞれ、それぞれの同じキーに対応するそれぞれのキー値アップデートを含んでいても(例えば、キー「C」に対応するキー値アップデート(V5及びV6)、及びキー「D」に対応するキー値アップデート(V7及びV8))、このようなキー値アップデートは、第3及び第4トランザクション(Trxn3及びTrxn4)が互いに異なるトランザクショングループ(Group1及びGroup2)にそれぞれ属するため、オーバーライトマージされない。
また、上述のように、グループ化は、一方でトランザクションが復旧不可能な衝突後のシナリオを解決する。
つまり、従来は、キー値アップデート(V1)のメタデータがストレージデバイスに既に書き込まれており、どのキー値ストアの実行でも前回のメタデータの記録がないため、第1トランザクション(Trxn1)がロールバックされない場合、トランザクションは復旧不可能である。
しかし、本発明の実施形態によるグループ化は、復旧不可能な衝突を避けることができるが、衝突が発生した際に(例えば、下記で更に説明する図3のステップS380及び図4のテーブル460参照)、データの一貫性を保証するために、アップデートされたキー値に対するメタデータがストレージデバイスに書き込まれる場合にのみ、アップデートされたキー値に対するメタデータがアップデートされるからである。
従って、図1に関して、上述の実施形態と異なり、図1において、第4トランザクション(Trxn4)のキー値アップデート(V9)後、そして、第5トランザクション(Trxn5)のキー値アップデート(V10)前に衝突が発生すると、同じトランザクショングループ(Group2)の一部であるTrxn4及びTrxn5のリンクされたトランザクションのみがロールバックされる。
第1トランザクショングループ(Group1)のトランザクション(Trxn1、Trxn2、及びTrxn3)が有効と確認されたため、衝突によりロールバックする必要はない。
つまり、連続的なトランザクション(Trxn3及びTrxn4)を異なるトランザクショングループに分離することにより、オーバーライトマージにより発生する他の連続的なトランザクション(Trxn3及びTrxn4)の間のリンクは、欠如/除去される。
従って、第3トランザクション(Trxn3)が有効と判断され、衝突による非効率性が減る。
一般に、本発明の実施形態によりオーバーライトマージを用いたトランザクショングループ化のメリットは、衝突が発生する場合、書き込みの効率性を向上させることを含む。
上述のように、衝突が発生すると、システムは衝突と関連する与えられたトランザクショングループの開始を過ぎてロールバックする必要がない。
また、本発明の実施形態によりオーバーライトマージを用いたトランザクショングループ化のメリットは、互いに異なるそれぞれのトランザクショングループに属する互いに異なる隣接するトランザクション間のオーバーライトマージを防止することができると同時に、与えられたトランザクショングループIDに共通して割り当てられる異なるトランザクションにわたるオーバーライトマージが、依然としてそれぞれのトランザクショングループ内に存在することである。
従って、システムは、トランザクショングループ化のない限り、ロールバックしなくてもよい。
しかし、システムは、キー値アップデートの一部をオーバーライトマージすることにより、オーバーライトマージに関するメリットを依然としてある程度まで達成する。
図2に示すように、キーC及びDにそれぞれ2回書き込むことは非効率的である(キーCに対するキー値アップデート(V5及びV6)、キーDに対するキー値アップデート(V7及びV8))。
従って、一実施形態において、トランザクショングループの境界は、連続的なトランザクションがあったとしても、互いにオーバーライトマージされるキー値アップデートがない場合に評価することで割り当てられる。
他の実施形態において、トランザクショングループの境界は、どの連続的なトランザクションが互いにオーバーライトマージするのに適格であるキー値アップデートが最も少ないかを評価することで割り当てられる。
また、本発明の他の実施形態において、システムは、異なるトランザクションにわたるキー値アップデートに対応する共通のそれぞれのキーに対する分析に基づき、トランザクショングループIDの生成が調整される。
例えば、図2に示すように、第3トランザクション(Trxn3)からのキー値アップデートは、使用しない(Trxn3のV5及びV7は、Trxn4のV6及びV8により関係なく両方ともレンダリングされる)。
従って、システムは、第1トランザクショングループ(Group1)からTrxn3を除去する。
例えば、キー対象は、キー値アップデートに対するリンクを有し、各キー値アップデートの対象は、トランザクションIDを含む。
バックグラウンドスレッド、又は「書き込み作業者」によりキー値アップデートを検査し、可能なオーバーライトマージを見つける。
このようなバックグラウンドスレッドは、新たなトランザクショングループIDを生成する(例えば、複数のアップデートが臨界値を超える場合)。
図3は、本発明の実施形態によるトランザクショングループ化とのオーバーライトマージを説明するためのフローチャートである。
図3を参照すると、本発明の実施形態によるシステムは、入ってくるトランザクションが、トランザクショングループとのオーバーライトマージを正しく行うにあたって、大きすぎるものが可能か否かを初期に判断する(ステップS310)。
もし大きすぎれば、トランザクションID及びそれに続くトランザクショングループIDがトランザクションに割り当てられる(ステップS320)。
もしそうでなければ、トランザクションID及び現在のトランザクショングループIDがトランザクションに割り当てられる(ステップS330)。
トランザクションID及びトランザクショングループIDがトランザクションに割り当てられた後、トランザクションの動作カウントがグループに追加される(ステップS340)。
次に、インライン・オーバーライトマージが、入ってくるトランザクションである対象を含むトランザクションに対して行われる(ステップS350)。
その後、トランザクションに対応するデータを1つ以上の装置に書き込むための書き込み動作が行われる(ステップS360)。
そして、本発明のシステムは、グループ内の全ての動作が完了したか判断する(ステップS370)。
グループ内の全ての動作が完了した場合、それに対応するメタデータは、アップデートされ、そしてフラッシュされる(ステップS380)。
グループ内の全ての動作が完了していない場合、次のトランザクションが処理される(ステップS390)(例えば、グループ内の全ての動作が完了するまで)。
図4は、本発明の実施形態によるシステムでのワークフローを説明するための概略構成ブロック図である。
図4を参照すると、トランザクショングループ化とのオーバーライトマージを行うために、トランザクション410がシステム400により受信され、トランザクションモジュール420に送られる。
トランザクションモジュール420は、トランザクションID及びトランザクショングループIDをそれぞれのトランザクション410に割り当てる。
トランザクションモジュール420は、直近に受信したトランザクションを最新のグループに追加する。
直近のグループがフルになると、トランザクションモジュール420は、それに続くトランザクション410のための新たなグループを生成する。
再び図2を参照すると、Group1は、それぞれのキー(A、B、C、及びD)に対応するキー値アップデート(V1、V2、V3、V4、V5、及びV7)を含むトランザクション(Trxn1、Trxn2、及びTrxn3)を含む。
トランザクショングループ(例えば、Group1)を生成した後、マージモジュール430は、キー値アップデートのオーバーライトマージを行う。
その後、インフライト・リクエストバッファ(inflight request buffer)440は、オーバーライトマージされたキー値をデバイス(例えば、KVSSD)450に書き込む。
トランザクショングループにおけるマージされたキー値が全てデバイス450に正しく書き込まれると、デバイスメタデータを含むテーブル460がアップデートされる。
最後に、メタデータは、テーブル460からデバイス450に書き込まれる(フラッシュされる)。
上記によれば、本発明の実施形態は、インライン・オーバーライトマージを使用してカスカード接続されたトランザクションをグループ化し、これにより、関連するトランザクショングループにおける全ての動作が対応するデバイスに書き込まれるまで、メタデータの書き込み動作が遅延することにより、関連するメタデータのフラッシュを遅延させる。
従って、本発明の実施形態は、衝突の復旧を達成する。
また、本発明の実施形態は、メタデータの書き込み動作に関する不適切な遅延を避け、また、カスカード接続されていないトランザクションを異なるそれぞれのトランザクショングループに分離して、できる限り多くのカスカード接続されたトランザクションを有するトランザクショングループを形成することを目標とする。
従って、本発明の実施形態によるトランザクショングループの実現は、衝突の一貫性を可能にし、保留中のトランザクションを減らすと同時に、トランザクションと共にオーバーライトマージ作業をスムーズにし、これによりデータ格納技術を向上させることができる。
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
400 システム
410 トランザクション
420 トランザクションモジュール
430 マージモジュール
440 インフライト・リクエストバッファ
450 デバイス
460 テーブル

Claims (20)

  1. データ格納方法であって、
    保留中のキューで、複数のキーにそれぞれ対応する1つ以上のキー値アップデートを有する複数のトランザクションを識別する段階と、
    前記トランザクションの内で異なるものに属している前記キー値アップデートに共通して関連するキー値アップデートに関する前記複数のキーに共通して関連するキーを識別する段階と、
    複数のトランザクショングループIDに割り当てられたそれぞれのトランザクションIDに基づいて、トランザクショングループIDを前記トランザクションにそれぞれ割り当てる段階と、
    前記割り当てられたトランザクショングループIDに基づいて、前記トランザクションを前記複数のトランザクションのそれぞれのトランザクショングループにグループ化する段階と、
    前記トランザクショングループの同じ1つにあるトランザクションの内のグループ化されたトランザクションに対して、共通して関連するキーの、共通して関連するキー値アップデートに対応する競合する(conflicting)データ書き込みをマージ(merge)する段階と、を有することを特徴とするデータ格納方法。
  2. 衝突(crash)が、前記トランザクショングループの内の衝突したトランザクショングループ内で前記トランザクションの内の衝突したトランザクションで発生する場合、
    前記競合するデータ書き込みをマージすることにより、リンクされた前記衝突したトランザクショングループ内のトランザクションの内、リンクされた前記トランザクションのみを、前記衝突したトランザクションに再試行する段階をさらに有することを特徴とする請求項1に記載のデータ格納方法。
  3. 同一のそれぞれのキーに対応する1つ以上の後期(later−in−time)キー値アップデートによって、関連していない1つ以上の初期(early−in−time)キー値アップデートのみを有する前記トランザクションの内の1つを除去する段階をさらに有し、
    前記後期キー値アップデートは、トランザクションの内の除去されたものよりも後に発生する1つ以上の他のトランザクションであることを特徴とする請求項1に記載のデータ格納方法。
  4. 前記複数のキーの共通キーに対応する任意の共通して関連するキー値アップデートが欠如する連続的なトランザクションのペアを決定する段階と、
    前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる段階と、をさらに有することを特徴とする請求項1に記載のデータ格納方法。
  5. 前記複数のキーの共通キーに対応する最も少ない数の、共通して関連するキー値アップデートを有する連続的なトランザクションのペアを決定する段階と、
    前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる段階と、をさらに有することを特徴とする請求項1に記載のデータ格納方法。
  6. 前記トランザクショングループIDを割り当てる段階は、異なるトランザクションにわたって共通して関連するキー値アップデートの総数の分析に更に基づくことを特徴とする請求項1に記載のデータ格納方法。
  7. 前記トランザクショングループの内の1つの前記競合するデータ書き込みにおけるマージされたキー値アップデートを全て1つ以上のストレージデバイスに書き込む段階と、
    前記マージされたキー値アップデートの全てが前記1つ以上のストレージデバイスに書き込まれたことが確認された場合にのみ、前記トランザクショングループの内の1つのトランザクショングループの前記マージされたキー値アップデートに対応するメタデータをアップデートする段階と、をさらに有することを特徴とする請求項1に記載のデータ格納方法。
  8. 前記各トランザクションIDを前記各トランザクションに割り当てる段階をさらに有することを特徴とする請求項1に記載のデータ格納方法。
  9. トランザクショングループ化とマージを実行するためのシステムであって、
    トランザクションモジュールと、
    マージモジュールと、を有し、
    前記トランザクションモジュールは、保留中のキューで、複数のキーにそれぞれ対応する1つ以上のキー値アップデートを有する複数のトランザクションを識別し、
    前記トランザクションの内で異なるものに属している前記キー値アップデートに共通して関連するキー値アップデートに関する前記複数のキーに共通して関連するキーを識別し、
    複数のトランザクショングループIDに割り当てられたそれぞれのトランザクションIDに基づいて、トランザクショングループIDを前記トランザクションにそれぞれ割り当て、
    前記割り当てられたトランザクショングループIDに基づいて、前記トランザクションを前記複数のトランザクションのそれぞれのトランザクショングループにグループ化する動作を行うように構成され、
    前記マージモジュールは、前記トランザクショングループの同じ1つにあるトランザクションの内のグループ化されたトランザクションに対して、前記共通して関連するキーの、前記共通して関連するキー値アップデートに対応する競合する(conflicting)データ書き込みをマージ(merge)する動作を行うように構成されることを特徴とするシステム。
  10. 衝突(crash)が、前記トランザクショングループの内の衝突したトランザクショングループ内で前記トランザクションの内の衝突したトランザクションで発生する場合、
    前記トランザクションモジュールは、前記競合するデータ書き込みをマージすることにより、リンクされた前記衝突したトランザクショングループ内のトランザクションの内、リンクされた前記トランザクションのみを、前記衝突したトランザクションに再試行するようにさらに構成されることを特徴とする請求項9に記載のシステム。
  11. 前記マージモジュールは、同一のそれぞれのキーに対応する1つ以上の後期(later−in−time)キー値アップデートによって、関連していない1つ以上の初期(early−in−time)キー値アップデートのみを有する前記トランザクションの内の1つを除去する動作を行うように構成され、
    前記後期キー値アップデートは、前記トランザクションの内の除去されたものよりも後に発生する1つ以上の他のトランザクションであることを特徴とする請求項9に記載のシステム。
  12. 前記トランザクションモジュールは、複数のキーの共通キーに対応する任意の共通して関連するキー値アップデートが欠如する連続的なトランザクションのペアを決定し、
    前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる動作を行うようにさらに構成されることを特徴とする請求項9に記載のシステム。
  13. 前記トランザクションモジュールは、複数のキーの共通キーに対応する最も少ない数の、共通して関連するキー値アップデートを有する連続的なトランザクションのペアを決定し、
    前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる動作を行うようにさらに構成されることを特徴とする請求項9に記載のシステム。
  14. 前記トランザクショングループIDを前記トランザクションにそれぞれを割り当てる動作は、異なるトランザクションにわたって共通して関連するキー値アップデートの総数の分析にさらに基づくことを特徴とする請求項9に記載のシステム。
  15. インフライト・リクエストバッファ(inflight request buffer)をさらに有し、
    前記インフライト・リクエストバッファは、前記トランザクショングループの内の1つの前記競合するデータ書き込みにおけるマージされたキー値アップデートを全て1つ以上のストレージデバイスに書き込み、
    前記マージされたキー値アップデートの全てが前記1つ以上のストレージデバイスに書き込まれたことが確認された場合にのみ、前記トランザクショングループの内の1つのトランザクショングループの前記マージされたキー値アップデートに対応するメタデータをアップデートする動作を行うように構成されることを特徴とする請求項9に記載のシステム。
  16. 前記トランザクションモジュールは、前記各トランザクションIDを前記各トランザクションに割り当てるようにさらに構成されることを特徴とする請求項9に記載のシステム。
  17. トランザクショングループ化とマージを実行するためのシステム上に実装された非一時的なコンピュータ読取可能媒体であって、
    前記非一時的なコンピュータ読取可能媒体は、プロセッサ上で実行される際、データ格納方法を実行するコンピュータコードを有し、
    前記データ格納方法は、保留中のキューで、複数のキーにそれぞれ対応する1つ以上のキー値アップデートを有する複数のトランザクションを識別する段階と、
    前記トランザクションの内で異なるものに属している前記キー値アップデートに共通して関連するキー値アップデートに関する前記複数のキーに共通して関連するキーを識別する段階と、
    複数のトランザクショングループIDに割り当てられたそれぞれのトランザクションIDに基づいて、トランザクショングループIDを前記トランザクションにそれぞれ割り当てる段階と、
    前記割り当てられたトランザクショングループIDに基づいて、前記トランザクションを前記複数のトランザクションのそれぞれのトランザクショングループにグループ化する段階と、
    前記トランザクショングループの同じ1つにあるトランザクションの内のグループ化されたトランザクションに対して、共通して関連するキーの、共通して関連するキー値アップデートに対応する競合する(conflicting)データ書き込みをマージ(merge)する段階と、を有することを特徴とする非一時的なコンピュータ読取可能媒体。
  18. 衝突(crash)が、前記トランザクショングループの内の衝突したトランザクショングループ内でトランザクションの内の衝突したトランザクションで発生する場合、
    前記コンピュータコードは、前記プロセッサ上で実行される際に、前記競合するデータ書き込みをマージすることにより、リンクされた前記衝突したトランザクショングループ内のトランザクションの内、リンクされた前記トランザクションのみを、前記衝突したトランザクションに再試行する段階をさらに有する前記データ格納方法を実装することを特徴とする請求項17に記載の非一時的なコンピュータ読取可能媒体。
  19. 前記コンピュータコードは、前記プロセッサ上で実行される際に、同一のそれぞれのキーに対応する1つ以上の後期(later−in−time)キー値アップデートによって、関連していない1つ以上の初期(early−in−time)キー値アップデートのみを有するトランザクションの内の1つを除去する段階をさらに有する前記データ格納方法を実装し、
    前記後期キー値アップデートは、前記トランザクションの内の除去されたものよりも後に発生する1つ以上の他のトランザクションであることを特徴とする請求項17に記載の非一時的なコンピュータ読取可能媒体。
  20. 前記コンピュータコードは、前記プロセッサ上で実行される際に、複数のキーの共通キーに対応する任意の共通して関連するキー値アップデートが欠如する連続的なトランザクションのペアを決定する段階と、
    前記連続的なトランザクションが異なるそれぞれのトランザクショングループに位置するように、前記トランザクショングループIDを前記連続的なトランザクションにそれぞれ割り当てる段階と、をさらに有する前記データ格納方法を実装することを特徴とする請求項17に記載の非一時的なコンピュータ読取可能媒体。
JP2020157555A 2019-09-20 2020-09-18 データ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体 Active JP7495312B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962903662P 2019-09-20 2019-09-20
US62/903,662 2019-09-20
US16/834,231 US11429628B2 (en) 2019-09-20 2020-03-30 Transaction grouping for overwrite merge
US16/834,231 2020-03-30

Publications (3)

Publication Number Publication Date
JP2021051743A true JP2021051743A (ja) 2021-04-01
JP2021051743A5 JP2021051743A5 (ja) 2023-09-27
JP7495312B2 JP7495312B2 (ja) 2024-06-04

Family

ID=

Also Published As

Publication number Publication date
KR20210034481A (ko) 2021-03-30
US11429628B2 (en) 2022-08-30
TW202113621A (zh) 2021-04-01
US20210089549A1 (en) 2021-03-25
CN112540859A (zh) 2021-03-23
KR102613518B1 (ko) 2023-12-13

Similar Documents

Publication Publication Date Title
CN113778785A (zh) 分布式硬件跟踪
JP2012533796A5 (ja)
CN111125040A (zh) 管理重做日志的方法、装置及存储介质
US10310909B2 (en) Managing execution of computer operations with non-competing computer resource requirements
EP3933639B1 (en) Transaction processing method, apparatus, and electronic device for blockchain
CN105138308B (zh) 一种更新寄存器的方法及装置
TW201820169A (zh) 多工處理器及多工處理器系統
JP2021051743A (ja) データ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体
JP7495312B2 (ja) データ格納方法及びシステム並びに非一時的なコンピュータ読取可能媒体
TWI834912B (zh) 資料儲存方法、於執行具有事務分組的合併的系統及非暫時性電腦可讀媒體
CN108509154B (zh) 一种根据坏块分布动态重组raid的方法和装置
US10970204B2 (en) Reducing read-write interference by adaptive scheduling in NAND flash SSDs
CN108491546A (zh) 一种页面切换方法及电子设备
US9886411B2 (en) Data transfer device and data transfer method
KR20130021637A (ko) 멀티 코어 시스템의 인터럽트 할당 방법 및 장치
CN115348276A (zh) 数据存储方法、装置、计算机设备及存储介质
JP4900680B2 (ja) 半導体メモリ試験装置
CN113360448A (zh) 数据包处理方法及装置
CN113342698A (zh) 一种测试环境调度方法、计算设备及存储介质
US8473705B2 (en) Memory access apparatus
CN108572881A (zh) 一种在运算器中校验数据的方法
CN109885402B (zh) 测试函数输出数据溢出的方法、终端设备及存储介质
EP4009191A1 (en) Dag-awtc ledger system using bft verification consensus mechanism
RU2427900C1 (ru) Устройство для оценки предпочтительного уровня унификации технических систем
DE112022003379T5 (de) Testfehlerszenario-erzeugung

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230919

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230919

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240220

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240523