JP2016530584A - データ操作のための、メモリ及びストレージ空間の管理 - Google Patents
データ操作のための、メモリ及びストレージ空間の管理 Download PDFInfo
- Publication number
- JP2016530584A JP2016530584A JP2016514115A JP2016514115A JP2016530584A JP 2016530584 A JP2016530584 A JP 2016530584A JP 2016514115 A JP2016514115 A JP 2016514115A JP 2016514115 A JP2016514115 A JP 2016514115A JP 2016530584 A JP2016530584 A JP 2016530584A
- Authority
- JP
- Japan
- Prior art keywords
- data
- working memory
- memory space
- stored
- information
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本出願は、2013年5月17日に出願された米国特許出願第61/824,686号明細書に対する優先権を主張するものである。
Claims (70)
- 作業メモリ空間を提供するメモリデバイスと、
オーバーフローストレージ空間を提供するストレージデバイスと、
複数のデータユニットを処理して結果情報を生成するように構成された少なくとも1つのプロセッサとを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報を前記オーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットに記憶すること、並びに、
前記第1及び第2のセットを含む、1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成することを含み、
前記データ操作の結果に関連する前記情報を1又は2以上のデータ構造のセットに記憶することが、少なくとも1つのデータユニットに対して、1又は2以上のデータ構造の前記セットに使用される前記作業メモリ空間の量を増加させずに1又は2以上のデータ構造の前記セット内の情報を変更する操作を実行することを含む、コンピューティングシステム。 - 前記作業メモリ空間に対するオーバーフロー条件が、1又は2以上のデータ構造の前記第1のセットに使用される前記作業メモリ空間の量が所定の閾値以上である場合に満たされる、請求項1に記載のコンピューティングシステム。
- 前記処理がさらに、前記オーバーフロー条件が満たされた後、且つ前記データユニットの第2のサブセットの各データユニットに対してデータ操作を実行する前に、1又は2以上のデータ構造の前記第1のセットを前記オーバーフローストレージ空間に記憶し、1又は2以上のデータ構造の前記第1のセットを前記作業メモリ空間から削除することを含む、請求項1に記載のコンピューティングシステム。
- 1又は2以上のデータ構造の複数のセットを結合することが、前記第1のセットからの少なくとも1つのデータ構造を前記第2のセットからの少なくとも1つのデータ構造とマージすることを含む、請求項1に記載のコンピューティングシステム。
- 前記第1のセットからの少なくとも1つのデータ構造を前記第2のセットからの少なくとも1つのデータ構造とマージすることが、1又は2以上のデータ構造の前記第1のセットからの前記データ構造内の第1のキーを、1又は2以上のデータ構造の前記第2のセットからの前記データ構造内の第2のキーと一致させ、前記第1のキーに関連する値と前記第2のキーに関連する値とに対して集約操作を実行することを含む、請求項4に記載のコンピューティングシステム。
- 前記処理がさらに、オーバーフロー条件が満たされた後、且つデータユニットの第2のサブセットの各データユニットに対してデータ操作を実行する前に、前記複数のデータユニットからのデータユニットの第3のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶することを含む、請求項1に記載のコンピューティングシステム。
- 前記データユニットの第2のサブセットが、前記データユニットの第3のサブセットの前記データユニットのサブセットである、請求項6に記載のコンピューティングシステム。
- 前記処理がさらに、データユニットの第3のサブセットの第1のデータユニットに対してデータ操作を実行した後で、前記データ操作の結果に関連する情報を(1)作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶するか、それとも(2)オーバーフローストレージ空間に記憶するかを決定することを含む、請求項6に記載のコンピューティングシステム。
- 1又は2以上のデータ構造のセット中の情報を変更する操作が、作業メモリ空間内の位置に記憶された値を、前記作業メモリ空間内の同じ位置に記憶された異なる値で上書きするインプレースメモリ操作を含む、請求項8に記載のコンピューティングシステム。
- データ操作の結果に関連する情報をオーバーフローストレージ空間に記憶することが、第1のデータユニットの少なくとも一部の内容を前記オーバーフローストレージ空間に記憶することを含む、請求項8に記載のコンピューティングシステム。
- 第1のデータユニットに対してデータ操作を実行することが、前記第1のデータユニット内のキーを1又は2以上のデータ構造の第1のセット中の1又は2以上のキーと比較することを含み、前記比較の結果が一致している場合は、前記データ操作の結果に関連する情報が、作業メモリ空間に記憶された1又は2以上のデータ構造の前記第1のセットに記憶され、前記比較の結果が一致していない場合は、前記データ操作の結果に関連する前記情報がオーバーフローストレージ空間に記憶される、請求項8に記載のコンピューティングシステム。
- 前記処理がさらに、データソースから複数のデータユニットを生成することを含み、各データユニットが、前記データソースのフィールドの識別子と、前記データソースのレコード内の前記フィールドに現れる値とを含む、請求項1に記載のコンピューティングシステム。
- データ操作が、複数のデータユニットに含まれる値を、情報の集約元となる一致するデータユニットを選択するためのキーとして使用して、前記データユニットからの情報を集約することを含む、請求項12に記載のコンピューティングシステム。
- メモリデバイスが揮発性メモリデバイスを含む、請求項1に記載のコンピューティングシステム。
- ストレージデバイスが不揮発性ストレージデバイスを含む、請求項1に記載のコンピューティングシステム。
- 作業メモリ空間を提供する手段と、
オーバーフローストレージ空間を提供する手段と、
複数のデータユニットを処理して結果情報を生成する手段とを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報を前記オーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットに記憶すること、並びに、
前記第1及び第2のセットを含む、1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成することを含み、
前記データ操作の結果に関連する前記情報を1又は2以上のデータ構造のセットに記憶することが、少なくとも1つのデータユニットに対して、1又は2以上のデータ構造の前記セットに使用される前記作業メモリ空間の量を増加させずに1又は2以上のデータ構造の前記セット中の情報を変更する操作を実行することを含む、コンピューティングシステム。 - 複数のデータユニットを処理して結果情報を生成する方法であって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶するステップと、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報をストレージデバイスのオーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットに記憶するステップと、
前記第1及び第2のセットを含む1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成するステップとを含み、
前記データ操作の結果に関連する前記情報を1又は2以上のデータ構造のセットに記憶するステップが、少なくとも1つのデータユニットに対して、1又は2以上のデータ構造の前記セットに使用される前記作業メモリ空間の量を増加させずに1又は2以上のデータ構造の前記セット中の情報を変更する操作を実行するステップを含む、方法。 - 複数のデータユニットを処理して結果情報を生成するための、コンピュータ可読媒体に記憶されたソフトウェアであって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報をストレージデバイスのオーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットに記憶すること、並びに、
前記第1及び第2のセットを含む1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成すること、をコンピューティングシステムに行わせるための命令を含み、
前記データ操作の結果に関連する前記情報を1又は2以上のデータ構造のセットに記憶することが、少なくとも1つのデータユニットに対して、1又は2以上のデータ構造の前記セットに使用される前記作業メモリ空間の量を増加させずに1又は2以上のデータ構造の前記セット中の情報を変更する操作を実行することを含む、ソフトウェア。 - 作業メモリ空間を提供するメモリデバイスと、
オーバーフローストレージ空間を提供するストレージデバイスと、
複数のデータユニットを処理して結果情報を生成するように構成された少なくとも1つのプロセッサとを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、及び、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を(1)前記作業メモリ空間に記憶された1又は2以上のデータ構造の前記第1のセットに記憶するか、それとも(2)前記オーバーフローストレージ空間に記憶するかを決定することを含む、コンピューティングシステム。 - 前記作業メモリ空間に対するオーバーフロー条件が、1又は2以上のデータ構造の前記第1のセットに使用される前記作業メモリ空間の量が所定閾値以上である場合に満たされる、請求項19に記載のコンピューティングシステム。
- データ操作が各データユニット内のキー値に少なくとも部分的に基づき、決定することが、第1のセットのデータ構造の少なくとも1つの中で少なくとも1つのキー値を検索して、(1)作業メモリ空間中の1又は2以上のデータ構造の前記第1のセットのデータ構造内の前記キー値に関連する情報を更新するか、それとも(2)前記キー値に関連する情報をオーバーフローストレージ空間に記憶するかを決定することを含む、請求項19に記載のコンピューティングシステム。
- データ操作が、作業メモリ空間内の位置に記憶された値を、前記作業メモリ空間内の同じ位置に記憶された異なる値で上書きするインプレースメモリ操作を含む、請求項19に記載のコンピューティングシステム。
- データ操作の結果に関連する情報をオーバーフローストレージ空間に記憶することが、前記データ操作が実行されるデータユニットの少なくとも一部の内容を前記オーバーフローストレージ空間に記憶することを含む、請求項19に記載のコンピューティングシステム。
- 第1のデータユニットに対してデータ操作を実行することが、前記第1のデータユニット内のキーを1又は2以上のデータ構造の第1のセット中の1又は2以上のキーと比較することを含み、前記比較の結果が一致している場合は、前記データ操作の結果に関連する情報が、作業メモリ空間に記憶された1又は2以上のデータ構造の前記第1のセットに記憶され、前記比較の結果が一致していない場合は、前記データ操作の結果に関連する前記情報がオーバーフローストレージ空間に記憶される、請求項19に記載のコンピューティングシステム。
- 前記処理がさらに、複数のデータユニットをデータソースから生成することを含み、各データユニットが、前記データソースのフィールドの識別子と、前記データソースのレコード内で前記フィールドに現れる値とを含む、請求項19に記載のコンピューティングシステム。
- データ操作が、複数のデータユニットに含まれる値を、情報の集約元となる一致するデータユニットを選択するためのキーとして使用して、前記データユニットからの情報を集約することを含む、請求項25に記載のコンピューティングシステム。
- 複数のデータユニットを生成することが、データソースの少なくとも第1のフィールドと、前記データソースの少なくとも第2のフィールドとについてデータユニットを生成することを含む、請求項25に記載のコンピューティングシステム。
- 第2のサブセットの各データユニットに対してデータ操作を実行することが、第1のデータユニットに対して実行された前記データ操作の結果に関連する情報を1又は2以上のデータ構造の第1のセットに記憶し、第2のデータユニットに対して実行された前記データ操作の結果に関連する情報をオーバーフローストレージ空間に記憶することを含む、請求項27に記載のコンピューティングシステム。
- 第1のデータユニット及び第2のデータユニットが、データソースの同じフィールドについての、それぞれの識別子を含む、請求項28に記載のコンピューティングシステム。
- メモリデバイスが揮発性メモリデバイスを含む、請求項19に記載のコンピューティングシステム。
- ストレージデバイスが不揮発性ストレージデバイスを含む、請求項19に記載のコンピューティングシステム。
- 作業メモリ空間を提供する手段と、
オーバーフローストレージ空間を提供する手段と、
複数のデータユニットを処理して結果情報を生成する手段とを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、及び、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を(1)前記作業メモリ空間に記憶された1又は2以上のデータ構造の前記第1のセットに記憶するか、それとも(2)前記オーバーフローストレージ空間に記憶するかを決定することを含む、コンピューティングシステム。 - 複数のデータユニットを処理して結果情報を生成する方法であって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶するステップと、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を(1)前記作業メモリ空間に記憶された1又は2以上のデータ構造の前記第1のセットに記憶するか、それとも(2)ストレージデバイスのオーバーフローストレージ空間に記憶するかを決定するステップとを含む方法。 - 複数のデータユニットを処理して結果情報を生成するための、コンピュータ可読媒体に記憶されたソフトウェアであって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、及び、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行し、前記データ操作の結果に関連する情報を(1)前記作業メモリ空間に記憶された1又は2以上のデータ構造の前記第1のセットに記憶するか、それとも(2)ストレージデバイスのオーバーフローストレージ空間に記憶するかを決定すること、をコンピューティングシステムに行わせるための命令を含むソフトウェア。 - 作業メモリ空間を提供するメモリデバイスと、
オーバーフローストレージ空間を提供するストレージデバイスと、
複数のデータユニットを処理して結果情報を生成するように構成された少なくとも1つのプロセッサとを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行することであって、前記データ操作が、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第1のセットの少なくとも1つのデータ構造内の情報を修正し、前記値が検出されなかった場合に、前記第1のセットの少なくとも1つのデータ構造に情報を追加することを含むものであること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報を前記オーバーフローストレージ空間に記憶して、前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行することであって、前記データ操作が、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第2のセットの少なくとも1つのデータ構造内の情報を修正することを含むものであること、並びに、
前記第1及び第2のセットを含む、1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成することを含む、コンピューティングシステム。 - 前記作業メモリ空間に対するオーバーフロー条件が、1又は2以上のデータ構造の前記第1のセットに使用される前記作業メモリ空間の量が所定閾値以上である場合に満たされる、請求項35に記載のコンピューティングシステム。
- 前記処理がさらに、前記オーバーフロー条件が満たされた後、且つ前記データユニットの第2のサブセットの各データユニットについて検索を実行する前に、1又は2以上のデータ構造の前記第1のセットを前記オーバーフローストレージ空間に記憶し、1又は2以上のデータ構造の前記第1のセットを前記作業メモリ空間から削除することを含む、請求項35に記載のコンピューティングシステム。
- 1又は2以上のデータ構造の複数のセットを結合することが、前記第1のセットからの少なくとも1つのデータ構造を前記第2のセットからの少なくとも1つのデータ構造とマージすることを含む、請求項35に記載のコンピューティングシステム。
- 前記第1のセットからの少なくとも1つのデータ構造を前記第2のセットからの少なくとも1つのデータ構造とマージすることが、1又は2以上のデータ構造の前記第1のセットからの前記データ構造内の第1のキーを、1又は2以上のデータ構造の前記第2のセットからの前記データ構造内の第2のキーと一致させ、前記第1のキーに関連する値と前記第2のキーに関連する値とに対して集約操作を実行することを含む、請求項38に記載のコンピューティングシステム。
- 前記処理がさらに、オーバーフロー条件が満たされた後、且つ前記データユニットの第2のサブセットの各データユニットについて検索を実行する前に、前記複数のデータユニットからのデータユニットの第3のサブセットの各データユニットに対して、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第1のセットの前記少なくとも1つのデータ構造内の情報を修正することを含む、請求項35に記載のコンピューティングシステム。
- 前記データユニットの第2のサブセットが、前記データユニットの第3のサブセットの前記データユニットのサブセットである、請求項40に記載のコンピューティングシステム。
- 前記情報を修正することが、前記作業メモリ空間内の位置に記憶された値を、前記作業メモリ空間内の同じ位置に記憶された異なる値で上書きするインプレースメモリ操作を実行することを含む、請求項35に記載のコンピューティングシステム。
- 前記処理がさらに、データソースから前記複数のデータユニットを生成することを含み、各データユニットが、前記データソースのフィールドの識別子と、前記データソースのレコード内の前記フィールドに現れる値とを含む、請求項35に記載のコンピューティングシステム。
- 1又は2以上のデータ構造の前記第1のセットが、キーと値のペアのエントリの、複数の連想配列を含む、請求項43に記載のコンピューティングシステム。
- 前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットの少なくとも1つのデータ構造内でデータユニット内の値を検索することが、キーと値のペアのエントリの連想配列のうちの選択された前記連想配列内のエントリのキーとして前記値を検索することを含む、請求項44に記載のコンピューティングシステム。
- キーと値のペアのエントリの連想配列のうちの選択された連想配列が、データユニット内の識別子に対応する、請求項45に記載のコンピューティングシステム。
- 前記第1のセットの少なくとも1つのデータ構造内の情報を修正することが、検出されたキーと値のペアのエントリの値をインクリメントすることを含む、請求項45に記載のコンピューティングシステム。
- 前記第1のセットの少なくとも1つのデータ構造に情報を追加することが、データユニット内の値をキーとして有し、1のカウントを値として有する新しいキーと値のペアのエントリを、前記選択されたアレイに追加することを含む、請求項45に記載のコンピューティングシステム。
- メモリデバイスが揮発性メモリデバイスを含む、請求項35に記載のコンピューティングシステム。
- ストレージデバイスが不揮発性ストレージデバイスを含む、請求項35に記載のコンピューティングシステム。
- 作業メモリ空間を提供する手段と、
オーバーフローストレージ空間を提供する手段と、
複数のデータユニットを処理して結果情報を生成する手段とを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行することであって、前記データ操作が、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第1のセットの少なくとも1つのデータ構造内の情報を修正し、前記値が検出されなかった場合に、前記第1のセットの少なくとも1つのデータ構造に情報を追加することを含むものであること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報を前記オーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行することであって、前記データ操作が、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第2のセットの少なくとも1つのデータ構造内の情報を修正することを含むものであること、並びに、
前記第1及び第2のセットを含む1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成することを含む、コンピューティングシステム。 - 複数のデータユニットを処理して結果情報を生成する方法であって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行するステップであって、前記データ操作が、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第1のセットの少なくとも1つのデータ構造内の情報を修正し、前記値が検出されなかった場合に、前記第1のセットの少なくとも1つのデータ構造に情報を追加することを含むものであるステップと、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報をストレージデバイスのオーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行するステップであって、前記データ操作が、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第2のセットの少なくとも1つのデータ構造内の情報を修正することを含むものであるステップと、
前記第1及び第2のセットを含む、1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成するステップとを含む方法。 - 複数のデータユニットを処理して結果情報を生成するための、コンピュータ可読媒体に記憶されたソフトウェアであって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行することであって、前記データ操作が、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第1のセットの少なくとも1つのデータ構造内の情報を修正し、前記値が検出されなかった場合に、前記第1のセットの少なくとも1つのデータ構造に情報を追加することを含むものであること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報をストレージデバイスのオーバーフローストレージ空間に記憶して前記作業メモリ空間の少なくとも一部を解放し、前記複数のデータユニットからのデータユニットの第2のサブセットの各データユニットに対して前記データ操作を実行することであって、前記データ操作が、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第2のセットの少なくとも1つのデータ構造内で前記データユニット内の値を検索して、前記値が検出された場合に、前記第2のセットの少なくとも1つのデータ構造内の情報を修正することを含むものであること、並びに、
前記第1及び第2のセットを含む1又は2以上のデータ構造の複数のセットを結合して前記結果情報を生成すること、をコンピューティングシステムに行わせるための命令を含むソフトウェア。 - 作業メモリ空間を提供するメモリデバイスと、
オーバーフローストレージ空間を提供するストレージデバイスと、
複数のデータユニットを処理して結果情報を生成するように構成された少なくとも1つのプロセッサとを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報を前記オーバーフローストレージ空間に記憶すること、及び、
前記複数のデータユニットの前記処理中にオーバーフロー処理手順を複数回繰り返すことを含み、前記オーバーフロー処理手順が、前記オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、前記作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することを含む、コンピューティングシステム。 - 作業メモリ空間に対するオーバーフロー条件が、1又は2以上のデータ構造の第1のセットに使用される前記作業メモリ空間の量が所定閾値以上である場合に満たされる、請求項54に記載のコンピューティングシステム。
- 処理がさらに、オーバーフロー条件が満たされた後、且つデータユニットの第2のサブセットの各データユニットに対してデータ操作を実行する前に、1又は2以上のデータ構造の第1のセットを移動済みセットとしてオーバーフローストレージ空間に記憶し、1又は2以上のデータ構造の前記第1のセットを作業メモリ空間から削除することを含む、請求項54に記載のコンピューティングシステム。
- オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することが、前記オーバーフローストレージ空間に記憶された1又は2以上のデータ構造の移動済みセットからの少なくとも1つのデータ構造からの情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の前記新しいセットからの少なくとも1つのデータ構造とマージすることを含む、請求項56に記載のコンピューティングシステム。
- マージすることが、1又は2以上のデータ構造の移動済みセットからのデータ構造内の第1のキーを、1又は2以上のデータ構造の新しいセットからのデータ構造内の第2のキーと一致させ、前記第1のキーに関連する値と前記第2のキーに関連する値とに対して集約操作を実行することを含む、請求項57に記載のコンピューティングシステム。
- オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することが、前記オーバーフローストレージ空間に記憶されたデータユニット内の第1のキーを、1又は2以上のデータ構造の前記新しいセットからのデータ構造内の第2のキーと一致させ、前記第2のキーに関連する値をインクリメントすることを含む、請求項54に記載のコンピューティングシステム。
- オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することが、前記作業メモリ空間内の位置に記憶された値を、前記作業メモリ空間内の同じ位置に記憶された異なる値で上書きするインプレースメモリ操作を含む、請求項54に記載のコンピューティングシステム。
- 処理がさらに、複数のデータユニットをデータソースから生成することを含み、各データユニットが、前記データソースのフィールドの識別子と、前記データソースのレコード内で前記フィールドに現れる値とを含む、請求項54に記載のコンピューティングシステム。
- データ操作が、複数のデータユニットに含まれる値を、情報の集約元となる一致するデータユニットを選択するためのキーとして使用して、前記データユニットからの情報を集約することを含む、請求項61に記載のコンピューティングシステム。
- 1又は2以上のデータ構造の第1のセットが、キーと値のペアのエントリの、複数の連想配列を含む、請求項61に記載のコンピューティングシステム。
- 第1のデータユニットに対するデータ操作が、前記第1のデータユニット内の値をキーとして使用して、キーと値のペアのエントリの連想配列のうちの選択された連想配列内で検索することを含む、請求項63に記載のコンピューティングシステム。
- キーと値のペアのエントリの連想配列のうちの選択された連想配列が、第1のデータユニット内の識別子に対応する、請求項64に記載のコンピューティングシステム。
- メモリデバイスが揮発性メモリデバイスを含む、請求項54に記載のコンピューティングシステム。
- ストレージデバイスが不揮発性ストレージデバイスを含む、請求項54に記載のコンピューティングシステム。
- 作業メモリ空間を提供する手段と、
オーバーフローストレージ空間を提供する手段と、
複数のデータユニットを処理して結果情報を生成する手段とを備えるコンピューティングシステムであって、前記処理が、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、前記作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報を前記オーバーフローストレージ空間に記憶すること、及び、
前記複数のデータユニットの前記処理中にオーバーフロー処理手順を複数回繰り返すことを含み、前記オーバーフロー処理手順が、前記オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、前記作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することを含む、コンピューティングシステム。 - 複数のデータユニットを処理して結果情報を生成する方法であって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶するステップと、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報をストレージデバイスのオーバーフローストレージ空間に記憶するステップと、
前記複数のデータユニットの前記処理中にオーバーフロー処理手順を複数回繰り返すステップとを含み、前記オーバーフロー処理手順が、前記オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、前記作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することを含む、方法。 - 複数のデータユニットを処理して結果情報を生成するための、コンピュータ可読媒体に記憶されたソフトウェアであって、
前記複数のデータユニットからのデータユニットの第1のサブセットの各データユニットに対してデータ操作を実行し、前記データ操作の結果に関連する情報を、メモリデバイスの作業メモリ空間に記憶された1又は2以上のデータ構造の第1のセットに記憶すること、
前記作業メモリ空間に対するオーバーフロー条件が満たされた後で、情報をストレージデバイスのオーバーフローストレージ空間に記憶すること、及び、
前記複数のデータユニットの前記処理中にオーバーフロー処理手順を複数回繰り返すこと、をコンピューティングシステムに行わせるための命令を含み、前記オーバーフロー処理手順が、前記オーバーフローストレージ空間に記憶された少なくとも一部の情報を使用して、前記作業メモリ空間に記憶された1又は2以上のデータ構造の新しいセットを更新することを含む、ソフトウェア。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361824686P | 2013-05-17 | 2013-05-17 | |
US61/824,686 | 2013-05-17 | ||
PCT/US2014/038345 WO2014186673A2 (en) | 2013-05-17 | 2014-05-16 | Managing memory and storage space for a data operation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016530584A true JP2016530584A (ja) | 2016-09-29 |
JP6387399B2 JP6387399B2 (ja) | 2018-09-05 |
Family
ID=50977109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016514115A Active JP6387399B2 (ja) | 2013-05-17 | 2014-05-16 | データ操作のための、メモリ及びストレージ空間の管理 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9235505B2 (ja) |
EP (2) | EP3379415B1 (ja) |
JP (1) | JP6387399B2 (ja) |
KR (1) | KR102201510B1 (ja) |
CN (1) | CN105556474B (ja) |
AU (2) | AU2014265246B2 (ja) |
CA (1) | CA2912420C (ja) |
HK (1) | HK1224050A1 (ja) |
WO (1) | WO2014186673A2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9230371B2 (en) * | 2013-09-19 | 2016-01-05 | GM Global Technology Operations LLC | Fuel control diagnostic systems and methods |
EP3594821B1 (en) | 2014-03-07 | 2023-08-16 | AB Initio Technology LLC | Managing data profiling operations related to data type |
US9805080B2 (en) * | 2014-08-22 | 2017-10-31 | Xcalar, Inc. | Data driven relational algorithm formation for execution against big data |
US9361937B2 (en) * | 2014-08-26 | 2016-06-07 | Seagate Technology Llc | Shingled magnetic recording data store |
CN106468560B (zh) * | 2016-09-13 | 2019-05-28 | Oppo广东移动通信有限公司 | 基于计步器消息的数据输出方法及装置 |
US10209913B2 (en) * | 2017-01-31 | 2019-02-19 | International Business Machines Corporation | System, method and computer program product for accelerating iterative graph algorithms by memory layout optimization |
WO2019089593A1 (en) * | 2017-10-31 | 2019-05-09 | Ab Initio Technology Llc | Managing a computing cluster using time interval counters |
US11210018B2 (en) * | 2019-05-20 | 2021-12-28 | Honeywell International Inc. | Holistic linking of data across data sources |
KR20230034695A (ko) * | 2021-09-03 | 2023-03-10 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063576A (ja) * | 1996-08-27 | 1998-03-06 | Hitachi Ltd | 階層ディスク装置およびその制御方法 |
US20120191938A1 (en) * | 2011-01-26 | 2012-07-26 | Katsuki Uwatoko | Information processing apparatus and write control method |
WO2013051129A1 (ja) * | 2011-10-06 | 2013-04-11 | 株式会社 日立製作所 | 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966072A (en) | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
WO2005029369A2 (en) | 2003-09-15 | 2005-03-31 | Ab Initio Software Corporation | Data profiling |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US8229902B2 (en) * | 2006-11-01 | 2012-07-24 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
US8762333B2 (en) * | 2009-07-08 | 2014-06-24 | Pivotal Software, Inc. | Apparatus and method for read optimized bulk data storage |
JP5663044B2 (ja) * | 2010-03-10 | 2015-02-04 | アビニシオ テクノロジー エルエルシー | 個別にアクセス可能なデータ単位の記憶の管理 |
US9785470B2 (en) * | 2011-06-20 | 2017-10-10 | Microsoft Technology Licensing, Llc | Memory management model and interface for unmodified applications |
EP3594821B1 (en) * | 2014-03-07 | 2023-08-16 | AB Initio Technology LLC | Managing data profiling operations related to data type |
-
2014
- 2014-05-16 CN CN201480040788.7A patent/CN105556474B/zh active Active
- 2014-05-16 AU AU2014265246A patent/AU2014265246B2/en active Active
- 2014-05-16 JP JP2016514115A patent/JP6387399B2/ja active Active
- 2014-05-16 EP EP18171748.9A patent/EP3379415B1/en active Active
- 2014-05-16 WO PCT/US2014/038345 patent/WO2014186673A2/en active Application Filing
- 2014-05-16 CA CA2912420A patent/CA2912420C/en active Active
- 2014-05-16 EP EP14731476.9A patent/EP2997472B1/en active Active
- 2014-05-16 KR KR1020157035823A patent/KR102201510B1/ko active IP Right Grant
- 2014-05-16 US US14/279,615 patent/US9235505B2/en active Active
-
2015
- 2015-12-09 US US14/963,584 patent/US9411531B2/en active Active
-
2016
- 2016-10-25 HK HK16112228.1A patent/HK1224050A1/zh unknown
-
2018
- 2018-08-02 AU AU2018211280A patent/AU2018211280B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063576A (ja) * | 1996-08-27 | 1998-03-06 | Hitachi Ltd | 階層ディスク装置およびその制御方法 |
US20120191938A1 (en) * | 2011-01-26 | 2012-07-26 | Katsuki Uwatoko | Information processing apparatus and write control method |
JP2012155561A (ja) * | 2011-01-26 | 2012-08-16 | Toshiba Corp | 情報処理装置及び書き込み制御方法 |
WO2013051129A1 (ja) * | 2011-10-06 | 2013-04-11 | 株式会社 日立製作所 | 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム |
US20140229452A1 (en) * | 2011-10-06 | 2014-08-14 | Hitachi, Ltd. | Stored data deduplication method, stored data deduplication apparatus, and deduplication program |
Also Published As
Publication number | Publication date |
---|---|
JP6387399B2 (ja) | 2018-09-05 |
EP2997472B1 (en) | 2018-07-11 |
CN105556474A (zh) | 2016-05-04 |
US9235505B2 (en) | 2016-01-12 |
EP3379415B1 (en) | 2019-11-06 |
AU2014265246A1 (en) | 2015-11-26 |
AU2018211280B2 (en) | 2018-11-29 |
KR20160011212A (ko) | 2016-01-29 |
CA2912420C (en) | 2020-09-15 |
EP3379415A1 (en) | 2018-09-26 |
US20160092139A1 (en) | 2016-03-31 |
US9411531B2 (en) | 2016-08-09 |
HK1224050A1 (zh) | 2017-08-11 |
AU2018211280A1 (en) | 2018-08-23 |
KR102201510B1 (ko) | 2021-01-11 |
CA2912420A1 (en) | 2014-11-20 |
EP2997472A2 (en) | 2016-03-23 |
CN105556474B (zh) | 2019-04-30 |
US20140344508A1 (en) | 2014-11-20 |
WO2014186673A2 (en) | 2014-11-20 |
AU2014265246B2 (en) | 2018-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6387399B2 (ja) | データ操作のための、メモリ及びストレージ空間の管理 | |
JP6427592B2 (ja) | データ型に関連するデータプロファイリング操作の管理 | |
US10891264B2 (en) | Distributed, scalable key-value store | |
US11461304B2 (en) | Signature-based cache optimization for data preparation | |
JP2010027058A (ja) | コンピュータによって実現される方法、コンピュータ読取可能媒体およびデータベースから情報を抽出するための装置 | |
US20090249004A1 (en) | Data caching for distributed execution computing | |
US10642815B2 (en) | Step editor for data preparation | |
CN107209707B (zh) | 基于云的分级系统保存 | |
US10740316B2 (en) | Cache optimization for data preparation | |
US11288447B2 (en) | Step editor for data preparation | |
Shkapsky | A declarative language for advanced analytics and its scalable implementation | |
Dodabelle Prakash | IncRDD: Incremental Updates for RDD in Apache Spark |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170414 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180228 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180530 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180720 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180731 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180813 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6387399 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |