DB TechShowcase Tokyo - Intelligent Data PlatformDaiyu Hatakeyama
AI (Artificial Intelligence) が様々なアプリケーション/サービスに組み込まれ始めて、それをうみだす原動力ともいえるデータプラットフォームもその立ち位置を変えてきています。次期SQL Server 2017には、Machine Learning Servicesが同梱され、まさに次世代のデータプラットフォームの一つの形といえるでしょう。このセッションでは、System of Record から、System of Insight へとその価値を変えていく最新のData Platformの世界をご紹介します。
A Benchmark Test on Presto, Spark Sql and Hive on TezGw Liu
Presto、Spark SQLとHive on Tezの性能に関して、数万件から数十億件までのデータ上に、常用クエリパターンの実行スピードなどを検証してみた。
We conducted a benchmark test on mainstream big data sql engines including Presto, Spark SQL, Hive on Tez.
We focused on the performance over medium data (from tens of GB to 1 TB) which is the major case used in most services.
This document discusses using HyperLogLog (HLL) to estimate cardinality for count(distinct) queries in PostgreSQL.
HLL is an algorithm that uses constant memory to estimate the number of unique elements in a large set. It works by mapping elements to registers in a bitmap and tracking the number of leading zeros in each hash value. The harmonic mean of these counts is used to estimate cardinality.
PG-Strom implements HLL in PostgreSQL to enable fast count(distinct) queries on GPUs. On a table with 60 million rows and 87GB in size, HLL estimated the distinct count within 0.3% accuracy in just 9 seconds, over 40x faster than the regular count(distinct).
PG-Strom is an extension of PostgreSQL that utilizes GPUs and NVMe SSDs to enable terabyte-scale data processing and in-database analytics. It features SSD-to-GPU Direct SQL, which loads data directly from NVMe SSDs to GPUs using RDMA, bypassing CPU and RAM. This improves query performance by reducing I/O traffic over the PCIe bus. PG-Strom also uses Apache Arrow columnar storage format to further boost performance by transferring only referenced columns and enabling vector processing on GPUs. Benchmark results show PG-Strom can process over a billion rows per second on a simple 1U server configuration with an NVIDIA GPU and multiple NVMe SSDs.
This document provides an introduction to HeteroDB, Inc. and its chief architect, KaiGai Kohei. It discusses PG-Strom, an open source PostgreSQL extension developed by HeteroDB for high performance data processing using heterogeneous architectures like GPUs. PG-Strom uses techniques like SSD-to-GPU direct data transfer and a columnar data store to accelerate analytics and reporting workloads on terabyte-scale log data using GPUs and NVMe SSDs. Benchmark results show PG-Strom can process terabyte workloads at throughput nearing the hardware limit of the storage and network infrastructure.
PL/CUDA allows writing user-defined functions in CUDA C that can run on a GPU. This provides benefits for analytics workloads that can utilize thousands of GPU cores and wide memory bandwidth. A sample logistic regression implementation in PL/CUDA showed a 350x speedup compared to a CPU-based implementation in MADLib. Logistic regression performs binary classification by estimating weights for explanatory variables and intercept through iterative updates. This is well-suited to parallelization on a GPU.
1) The document describes a presentation on using SSD-to-GPU direct SQL to accelerate PostgreSQL by bypassing CPU/RAM and loading data directly from NVMe SSD to GPU.
2) Benchmark results show the technique achieved query execution performance up to 13.5GB/s, close to the raw I/O limitation of the hardware configuration.
3) One challenge discussed is performing partition-wise joins efficiently across multiple SSDs and GPUs to avoid gathering large results sets.
20181116 Massive Log Processing using I/O optimized PostgreSQLKohei KaiGai
The document describes a technology called PG-Strom that uses GPU acceleration to optimize I/O performance for PostgreSQL. PG-Strom allows data to be transferred directly from NVMe SSDs to the GPU over the PCIe bus, bypassing the CPU and RAM. This reduces data movement and allows PostgreSQL queries to be partially executed directly on the GPU. Benchmark results show the approach can achieve throughput close to the theoretical hardware limits for a single server configuration processing large datasets.
The document describes benchmark results achieved by using NVMe SSDs and GPU acceleration to improve the performance of PostgreSQL beyond typical limitations. A benchmark was run using 13 queries on a 1055GB dataset with PostgreSQL v11beta3 + PG-Strom v2.1. This achieved a maximum query execution throughput of 13.5GB/s. PG-Strom is an extension module that uses thousands of GPU cores and wide-band memory to accelerate SQL workloads. It generates GPU code from SQL and executes queries directly on the GPU, bypassing data transfers between CPU and GPU to improve performance.
This document discusses using PostgreSQL and GPU acceleration to build a machine learning platform. It describes HeteroDB, which provides database and analytics acceleration using GPUs. It outlines how PostgreSQL's foreign data wrapper Gstore_fdw manages persistent GPU device memory, allowing data to remain on the GPU between queries for faster analytics. Gstore_fdw also enables inter-process data collaboration by allowing processes to share access to GPU memory using IPC handles. This facilitates integrating PostgreSQL with external analytics code in languages like Python.
7. GPU-Direct SQL(3/4)
P2P-RDMAを用いて、他ノードのストレージから直接読み出しも可
PCI-E
Bus
Storage Block Read
by NVIDIA GPUDirect Storage
PCI-E
Bus
SCAN
JOIN
GROUP BY
100Gb
Network
P2P-RDMA
P2P-RDMA :
Peer-to-Peer Remote Direct Memory Access
Storage Server DB/GPU Server
Japan PostgreSQL Conference 2021 - PostgreSQLとArrowとGPUで楽々大量データ処理
8
23. Arrowファイルの作り方(4/4)汎用ログコレクタから【開発中】
✓ IoT/M2M機器から受信したログを、直接 Arrow ファイルとして出力
(現在、fluentd向けプラグインを開発中)
✓ Arrowファイルは、高速100Gbネットワークを介してGPU-Direct SQLで
DB/GPUサーバに転送する。
WHERE
JOIN
GROUP BY
PostGIS
JSONB
GPU-Direct SQL
with
NFS-over-RDMA
Log collector
Server
DB/GPU
Server
input plugin
output plugin
高速100Gb
ネットワーク
NFS Server
各種IoT/M2M機器 works in progress
ハナっから
Arrow形式で
書き出す
プラグイン
Japan PostgreSQL Conference 2021 - PostgreSQLとArrowとGPUで楽々大量データ処理
24