JP6881579B2 - データロードプログラム、データロード方法およびデータロード装置 - Google Patents
データロードプログラム、データロード方法およびデータロード装置 Download PDFInfo
- Publication number
- JP6881579B2 JP6881579B2 JP2019528274A JP2019528274A JP6881579B2 JP 6881579 B2 JP6881579 B2 JP 6881579B2 JP 2019528274 A JP2019528274 A JP 2019528274A JP 2019528274 A JP2019528274 A JP 2019528274A JP 6881579 B2 JP6881579 B2 JP 6881579B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- records
- write
- data loading
- tuple
- 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.)
- Active
Links
Images
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/16—General purpose computing application
- G06F2212/163—Server or database system
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In host system
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/465—Structured object, e.g. database record
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)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
図1は、実施形態のシステム1の一例を示す。システム1は、サーバ2と高速ローダ3とデータベース4とを含む。図1の例において、サーバ2と高速ローダ3とは、ネットワークを介して、接続される。また、高速ローダ3とデータベース4とは他のネットワークを介して接続される。高速ローダ3は、データロード装置の一例である。
図2は、高速ローダ3に搭載されるGPUアーキテクチャの一例を示す。GPU21は、Random Access Memory(RAM)22に接続される。GPU21は、チップ23とL2キャッシュメモリ24とグローバルメモリ25とを含む。
次に、図3および図4を参照して、データベースへのロード処理の一例について説明する。図3の例におけるCSVは、サーバ2から受け付けたインプットデータである。該インプットデータには、複数のレコードが含まれる。
次に、図5乃至図8の例を参照して、ページをロックしたタプル書き込みの一例について説明する。図5乃至図7の例において、共有メモリ34に記憶されたページに対して、1つのプロセスがアクセスすると、該ページがロックされ、他のプロセスによるアクセスは規制されるものとする。
次に、図9を参照して、共有メモリ34に記憶されているページをロックすることなく、複数のページ作成プロセスが並列にタプルをページに書き込む際の不具合の一例について説明する。
次に、実施形態における共有メモリ34のページに対するタプル書き込みの一例について、図10乃至図15を参照して説明する。図10乃至図15の例におけるページは、共有メモリ34に記憶される。従って、複数のプロセスによるページに対する同時アクセスは許容される。また、共有メモリ34中のページはロックされることなく、複数のプロセスが該ページに、並列に書き込みを行なう。
図15乃至図18のフローチャートを参照して、実施形態の処理の流れの一例について説明する。上述したように、高速ローダ3は、1または複数のページを生成する。高速ローダ3は、ページごとに、データ変換プロセスを生成する(ステップS1)。
次に、図19の例を参照して、高速ローダ3のハードウェア構成の一例を説明する。図19の例に示すように、バス100に対して、GPU21とRAM22とRead Only Memory(ROM)113とが接続される。また、該バス100に対して、補助記憶装置114と媒体接続部115と通信インタフェース116とが接続される。
上述した実施形態では、高速ローダ3にGPU21が搭載されている例を説明したが、高速ローダ3に、Central Processing Unit(CPU)が搭載されていてもよい。該CPUが複数のCPUコアを持つことで、上述した実施形態の処理が実現される。GPU21およびCPUは、プロセッサの一例である。
2 サーバ
3 高速ローダ
4 データベース
11 割り当て部
12 データ変換部
13 書き込み部
14 反映部
15 通信部
21 GPU
22 RAM
31 GPUコア
32 レジスタ
33 L1キャッシュメモリ
34 共有メモリ
Claims (13)
- 複数のレコードを含むデータをデータベースにロードするデータロードプログラムであって、
複数のプロセスから同時にアクセス可能な共有メモリ中のページに、前記複数のレコードを割り当て、
前記複数のレコードのそれぞれについて、前記レコードの書き込み領域に関する制御情報を前記ページに書き込むとともに、前記複数のレコードのそれぞれに対応した書き込みプロセスを生成し、
生成された複数の前記書き込みプロセスにより、それぞれ対応するレコードを、該レコードに対応する前記書き込み領域に書き込み、
複数の前記レコードが書き込まれた前記ページを、前記データベースに反映させる、
処理をデータロード装置に実行させることを特徴とするデータロードプログラム。 - 前記複数のレコードを、前記データベースに適合した形式に変換し、
前記複数の書き込みプロセスにより、変換された前記複数のレコードを、前記ページに書き込む、
処理を前記データロード装置に実行させることを特徴とする請求項1記載のデータロードプログラム。 - 前記ページに対応して、前記制御情報を書き込む1つの制御プロセスを生成し、
該1つの制御プロセスが、変換された前記レコードの取得に応じて、複数の前記書き込みプロセスを生成する、
処理を前記データロード装置に実行させることを特徴とする請求項2記載のデータロードプログラム。 - 前記レコードの取得に応じて、前記制御プロセスにより、前記ページに、前記制御情報を書き込む、
処理を前記データロード装置に実行させることを特徴とする請求項3記載のデータロードプログラム。 - 前記制御プロセスにより前記書き込みプロセスが生成された際、該書き込みプロセスに対応する前記制御情報を、該書き込みプロセスに渡す、
処理を前記データロード装置に実行させることを特徴とする請求項3記載のデータロードプログラム。 - 前記複数の書き込みプロセスは、相互に、非同期且つ並列に動作する、
ことを特徴とする請求項1乃至5のうち何れか1項に記載のデータロードプログラム。 - 前記複数の書き込みプロセスは、相互に、非同期且つ並列に動作し、前記複数の書き込みプロセスと前記制御プロセスとは、非同期且つ並列に動作する、
ことを特徴とする請求項3乃至5のうち何れか1項に記載のデータロードプログラム。 - 前記制御プロセスが前記ページに書き込む前記制御情報の情報量は、前記書き込みプロセスが前記ページに書き込む前記レコードの情報量より小さい、
ことを特徴とする請求項3乃至5および請求項7のうち何れか1項に記載のデータロードプログラム。
- 前記制御情報は、前記ページに書き込み済みのタプルの情報量に基づく書き込み開始位置の情報を含む、
ことを特徴とする請求項1乃至8のうち何れか1項に記載のデータロードプログラム。 - 前記割り当てる処理において、前記共有メモリ中の複数のページのうち何れかのページに、前記複数のレコードを割り当て、
前記反映させる処理において、複数の前記レコードが書き込まれた複数の前記ページを、前記データベースに反映させる、
ことを特徴とする請求項1乃至9のうち何れか1項に記載のデータロードプログラム。 - 前記共有メモリは、マルチコアプロセッサに搭載され、複数のコアから同時にアクセス可能なメモリであること、
を特徴とする請求項1乃至10のうち何れか1項に記載のデータロードプログラム。 - 複数のレコードを含むデータをデータベースにロードするデータロード方法であって、
複数のプロセスから同時にアクセス可能な共有メモリ中のページに、前記複数のレコードを割り当て、
前記複数のレコードのそれぞれについて、前記レコードの書き込み領域に関する制御情報を前記ページに書き込むとともに、前記複数のレコードのそれぞれに対応した書き込みプロセスを生成し、
生成された複数の前記書き込みプロセスにより、それぞれ対応するレコードを、該レコードに対応する前記書き込み領域に書き込み、
複数の前記レコードが書き込まれた前記ページを、前記データベースに反映させる、
処理をデータロード装置が実行することを特徴とするデータロード方法。 - 複数のレコードを含むデータをデータベースにロードするデータロード装置であって、
複数のプロセスから同時にアクセス可能な共有メモリ中のページに、前記複数のレコードを割り当てる割り当て部と、
前記複数のレコードのそれぞれについて、前記レコードの書き込み領域に関する制御情報を前記ページに書き込むとともに、前記複数のレコードのそれぞれに対応した書き込みプロセスを生成し、生成された複数の前記書き込みプロセスにより、それぞれ対応するレコードを、該レコードに対応する前記書き込み領域に書き込む書き込み部と、
複数の前記レコードが書き込まれた前記ページを、前記データベースに反映させる反映部と、
を備えることを特徴とするデータロード装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/024738 WO2019008715A1 (ja) | 2017-07-05 | 2017-07-05 | データロードプログラム、データロード方法およびデータロード装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019008715A1 JPWO2019008715A1 (ja) | 2020-03-19 |
JP6881579B2 true JP6881579B2 (ja) | 2021-06-02 |
Family
ID=64950676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019528274A Active JP6881579B2 (ja) | 2017-07-05 | 2017-07-05 | データロードプログラム、データロード方法およびデータロード装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11275689B2 (ja) |
JP (1) | JP6881579B2 (ja) |
AU (1) | AU2017422723B2 (ja) |
WO (1) | WO2019008715A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11475882B1 (en) * | 2019-06-27 | 2022-10-18 | Rapid7, Inc. | Generating training data for machine learning models |
CN110489696B (zh) * | 2019-07-31 | 2023-07-04 | 上海艾融软件股份有限公司 | 缓存更新方法、装置及电子设备、存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255387A (en) * | 1990-04-27 | 1993-10-19 | International Business Machines Corporation | Method and apparatus for concurrency control of shared data updates and queries |
JP2552759B2 (ja) * | 1990-08-31 | 1996-11-13 | 富士通株式会社 | マルチプロセッサによるデータベース処理装置 |
US5408652A (en) * | 1990-08-31 | 1995-04-18 | Fujitsu Limited | Method and apparatus for heterogenous database access by generating different access procedures for different database data structures |
JPH10124357A (ja) * | 1996-10-24 | 1998-05-15 | Nri & Ncc Co Ltd | Rdbの表への自動データローディング装置及びその方法 |
US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
US8078636B2 (en) * | 2005-08-24 | 2011-12-13 | Temporal Dynamics, Inc. | Database heap management system with variable page size and fixed instruction set address resolution |
JP5250869B2 (ja) | 2008-08-28 | 2013-07-31 | 株式会社日立製作所 | ストレージシステム、論理記憶領域割り当て方法及び計算機システム |
JP2014211800A (ja) | 2013-04-19 | 2014-11-13 | 株式会社東芝 | データ記憶装置、ストレージコントローラおよびデータ記憶制御方法 |
JP2016012166A (ja) | 2014-06-27 | 2016-01-21 | 富士通株式会社 | ストレージ管理装置,ストレージ管理プログラム,及び制御方法 |
JP6039149B2 (ja) | 2015-06-25 | 2016-12-07 | 株式会社日立製作所 | ストレージ装置及びその制御方法 |
-
2017
- 2017-07-05 JP JP2019528274A patent/JP6881579B2/ja active Active
- 2017-07-05 AU AU2017422723A patent/AU2017422723B2/en active Active
- 2017-07-05 WO PCT/JP2017/024738 patent/WO2019008715A1/ja active Application Filing
-
2019
- 2019-12-23 US US16/724,524 patent/US11275689B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2019008715A1 (ja) | 2020-03-19 |
WO2019008715A1 (ja) | 2019-01-10 |
AU2017422723A1 (en) | 2020-01-23 |
US11275689B2 (en) | 2022-03-15 |
AU2017422723B2 (en) | 2020-11-26 |
US20200125489A1 (en) | 2020-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386065B2 (en) | Database concurrency control through hash-bucket latching | |
US8484438B2 (en) | Hierarchical bloom filters for facilitating concurrency control | |
JP4339371B2 (ja) | 情報処理装置および情報処理方法 | |
US11409447B1 (en) | System and method for implementing non-blocking, concurrent hash tables | |
BRPI0809078A2 (pt) | Memória transacional que utiliza gravações armazenadas em buffer e ordem de serialização reforçada | |
US7958149B2 (en) | Computer program and product for append mode insertion of rows into tables in database management systems | |
US8806168B2 (en) | Producer-consumer data transfer using piecewise circular queue | |
JP4294059B2 (ja) | 情報処理装置および情報処理方法 | |
WO2016122710A1 (en) | Byte addressable non-volatile random access memory for storing log record | |
US11275689B2 (en) | Data loading method, data loading apparatus, and recording medium | |
CN109213423B (zh) | 基于地址屏障无锁处理并发io命令 | |
US9542319B2 (en) | Method and system for efficient communication and command system for deferred operation | |
US20100241808A1 (en) | Cache-line aware collection for runtime environments | |
WO2016106738A1 (zh) | 事务冲突检测方法、装置及计算机系统 | |
US9507725B2 (en) | Store forwarding for data caches | |
US8806102B2 (en) | Cache system | |
CN116257359A (zh) | 数据处理方法及装置、存储介质及电子设备 | |
US6556994B1 (en) | Method and system for improving concurrency through early release of unnecessary locks | |
US20180081580A1 (en) | Buffer Allocation and Memory Management | |
CN109213424B (zh) | 并发io命令的无锁处理方法 | |
JP4279346B2 (ja) | データベース管理装置及びプログラム | |
US11874767B2 (en) | Memory partitions for processing entities | |
US20210034580A1 (en) | Method, apparatus and computer program product for maintaining metadata | |
US20230140423A1 (en) | Method and system for storing data in graph database | |
KR101881039B1 (ko) | 비휘발성 메모리에 저장된 메모리 매핑 파일의 비동기식 원자적 업데이트 방법 및 제어 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191101 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210202 |
|
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: 20210406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210419 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6881579 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |