SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
© 2019Toshiba Corporation
PGConf.Asia 2019
PGSpider –
High-Performance SQL
Cluster Engine
Sep 10, 2019
Shigeo Hirose
1© 2019 Toshiba Corporation
Self-introduction
• Live and work in KAWASAKI
• Near by TOKYO
• Engineer at TOSHIBA CORPORATION, Open
Source technology department
• Actively developing with PostgreSQL since 2017.
• developed some FDWs, and PGSpider
2© 2019 Toshiba Corporation
Agenda
• Overview of PGSpider
• Multi Tenant and Basic PGSpider internal
processing
• Pushdown
• Node location
• KeepAlive process
• Performance measurement
3© 2019 Toshiba Corporation
Overview of PGSpider
• Overview of PGSpider
4© 2019 Toshiba Corporation
Current status and issues of IoT system
Source : MIC “white paper on telecommunications in 2017”*2
22
31
40
52
67
85
7 9 12 14 17 21
0
20
40
60
80
100
2016 2017 2018 2019 2020 2021
Zettabytesperyear
Generated data size and data center capacity
Useable data created Data center capacity
Source:Cisco Global Cloud Index, 2016-2021*1
Gap of useable data created
and data center capacity
3 Issues
• All the data practical use is difficult
with network load and storage
capacity restrictions.
• Effective use of edge
1 Current status
• Process data after storing data in
data center
• Filter data on edge for storing data
2 Forecast
• Data storage capacity is insufficient
by increase in data
• Edge Computing is coming
Terminal TerminalAPP APP
Network
APP APP
Network
Edge
Computing
APP
data data
Internet
APP
data
Distributed
Processing
Process at
high speed
Execution Platform
APP
APP
data
data
data data
data
Several ms
Several
100 ms
5© 2019 Toshiba Corporation
What’s PGSpider
Before After
Existing System System using PGSpider
Retrieval directly from edge as device side
Retrieval raw data, Not consider sampling interval
Cross-searching, No time lag
Same I/F (SQL), Heterogeneous multi data source
Retrieval from Cloud
Consider sampling
interval
Wait upload schedule
10:00:02 …
10:00:05 …
10:00:08 …
…
10:00:01 1.0
10:00:02 1.1
10:00:03 1.0
10:00:04 1.2
10:00:05 1.1
10:00:06 1.2
10:00:07 1.0
10:00:08 1.1
…
Send Cloud
by the minute
Sensor
Search
Query
Cloud DB
10:00:01 1.1
10:00:02 1.2
10:00:03 1.1
10:00:04 1.0
10:00:05 1.1
10:00:06 1.0
DB
Sensor
Data
Analysis
PGSpider PGSpider
Search Short trend
Data retrieval system for
Distributed Big Data
PGSpider
Sensor
10:00:01 0.9
10:00:02 1.0
10:00:03 0.8
10:00:04 1.2
10:00:05 1.1
10:00:06 0.9
Sensor
…
10:00:01 1.2
10:00:02 0.9
10:00:03 1.0
10:00:04 0.8
10:00:05 0.9
10:00:06 1.0
10:00:07 1.1
10:00:08 1.1
…
DB
10:00:01 1.1
10:00:02 1.2
10:00:03 1.7
10:00:04 1.0
10:00:05 1.1
10:00:06 1.3
10:00:01
10:00:02
10:00:03
10:00:04
10:00:05
10:00:06
DB DB
Sensor Sensor
Search Query
Data Analysis
Target : All Device
Time: 10:00:02~10:00:05
………
Long trend
3 second
interval
6© 2019 Toshiba Corporation
PGSpider Overview
Retrieve the distributed data source vertically
PGSpiderPGSpiderPGSpider
ID Value
101 11
102 10
ID Value
111 7
112 9
ID Value
211 10
212 11
ID Value
311 10
312 8
ID Value
201 12
202 8
ID Value
301 9
302 8
SQLite PostgreSQL SQL Server MySQL TinyBrace CSV
ID Value
ID Value Result
Actual Data
ID Value
101 11
ID Value
202 12
212 11
ID Value
001 5
002 3
ID Value
011 6
012 14
GridDB Oracle
PGSpider
ID Value
202 12
212 11
PGSpider
ID Value
012 14
101 11
202 12
212 11
ID Value
202 12
ID Value
101 11
PGSpider
ID Value
012 14
PGSpider
ID Value
012 14
101 12
ID Value
012 14
ID Value
202 12
Improve retrieval
performance by parallel
query on multithread
Reduce communications
traffic by push-down
Have scalability
Access to multi data source by FDW
7© 2019 Toshiba Corporation
PGSpider Behavior : Conditional Expression Push-Down
Reduce communications traffic by push-down
PGSpiderPGSpiderPGSpider
ID Value
101 11
102 10
ID Value
111 7
112 9
ID Value
211 10
212 11
ID Value
311 10
312 8
ID Value
201 12
202 8
ID Value
301 9
302 8
SQLite PostgreSQL SQL Server MySQL TinyBrace CSV
ID Value
ID Value Result
Actual Data
ID Value
001 5
002 3
ID Value
011 6
012 14
GridDB Oracle
PGSpider
PGSpider
Retrieval record with “Value” greater
than 10
PGSpider
PGSpider
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
*
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
Query
Value>10
8© 2019 Toshiba Corporation
PGSpider Behavior : Conditional Expression Push-Down
Reduce communications traffic by push-down
PGSpiderPGSpiderPGSpider
ID Value
101 11
102 10
ID Value
111 7
112 9
ID Value
211 10
212 11
ID Value
311 10
312 8
ID Value
201 12
202 8
ID Value
301 9
302 8
SQLite PostgreSQL SQL Server MySQL TinyBrace CSV
ID Value
ID Value Result
Actual Data
ID Value
001 5
002 3
ID Value
011 6
012 14
GridDB Oracle
PGSpider
PGSpider
ID ValueID Value
202 12
ID ValueID Value
101 11
Retrieval record with “Value” greater
than 10
PGSpider
PGSpider
ID Value
012 14
ID Value
ID Value
ID Value
212 11
ID Value
311 10
312 8
ID Value
202 12
212 11
ID Value
101 11
ID Value
202 12
212 11
ID Value
012 14
ID Value
012 14
101 12
ID Value
012 14
101 11
202 12
212 11
9© 2019 Toshiba Corporation
PGSpider Behavior : Aggregation Function Push-Down
Reduce communications traffic by push-down
PGSpiderPGSpiderPGSpider
ID Value
101 11
102 10
ID Value
111 7
112 9
ID Value
211 10
212 11
ID Value
311 10
312 8
ID Value
201 12
202 8
ID Value
301 9
302 8
SQLite PostgreSQL SQL Server MySQL TinyBrace CSV
ID Value
ID Value Result
Actual Data
ID Value
001 5
002 3
ID Value
011 6
012 14
GridDB Oracle
PGSpider
PGSpider
PGSpider
PGSpider
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
Value
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Query
SUM(Value)
Calculate the sum total of “Value”
of all the records
10© 2019 Toshiba Corporation
PGSpider Behavior : Aggregation Function Push-Down
Reduce communications traffic by push-down
PGSpiderPGSpiderPGSpider
ID Value
101 11
102 10
ID Value
111 7
112 9
ID Value
211 10
212 11
ID Value
311 10
312 8
ID Value
201 12
202 8
ID Value
301 9
302 8
SQLite PostgreSQL SQL Server MySQL TinyBrace CSV
ID Value
ID Value Result
Actual Data
ID Value
001 5
002 3
ID Value
011 6
012 14
GridDB Oracle
PGSpider
PGSpider
Calculate the sum total of “Value”
of all the records
PGSpider
PGSpider
SUM()
21
SUM()
16
SUM()
20
SUM()
21
SUM()
17
SUM()
8
SUM()
20
SUM()
37
SUM()
28
SUM()
41
SUM()
35
SUM()
65
SUM()
76
SUM()
141
ID Value
311 10
312 8
11© 2019 Toshiba Corporation
PGSpider technology overview
Develop PGSpider based on PostgreSQL
Oracle
pgspider_core
TinyBrace
FDW
GridDB
FDW
SQLite
FDW
Query Parsing
Query Planner / Optimizer
Query Execution
PostgreSQL Back End Process
Multi Tenant Table
PGSpider
InfluxDB
FDW
SQLumDash
FDW
Foreign
Table
Foreign
Table
Foreign
Table
Foreign
Table
Foreign
Table
Foreign
Table
PostgreSQL
Master Server
Connection
Request
Fork
SQL Query
Foreign
Table
Oracle
FDW
GridDB TinyBrace SQLite SQLumDash
PGSpider
FDW
Foreign
Table
Foreign
Table
Installation Tool
PGSpider
ConfigurationModule which
TOSHIBA developed 1. Improve retrieval performance by
parallel query and processing
2. Scale-out retrieval using multi
tenant if same table name
3. FDW : bridge difference SQL,
interface and so on
4. Direct Query : retrieval from data
source directly
5. PGSpider FDW : bridged multistage
structure
6. Tools1.
5.
4.
MySQL
FDW
PostgreSQL
FDW
MySQL PostgreSQL
2.
6.
3.
InfluxDB
PGSpider
PostgreSQL
Original Modual
12© 2019 Toshiba Corporation
Multi Tenant
• Multi Tenant and Basic PGSpider internal
processing
13© 2019 Toshiba Corporation
Multi-Tenant feature
PGSpider
PostgreSQL1
table1
PostgreSQL3
table1
table1
SELECT * FROM table1
a (integer) b (text)
100 'pg1data1'
200 'pg1data2'
a (integer) b (text)
100 'pg1data1'
200 'pg1data2'
111 'pg2data1'
222 'pg2data2'
123 'pg3data1'
234 'pg3data2'
PostgreSQL2
table1
a (integer) b (text)
123 'pg3data1'
234 'pg3data2'
SELECT * FROM table1 SELECT * FROM table1SELECT * FROM table1
a (integer) b (text)
111 'pg2data1'
222 'pg2data2'
a (integer) b (text)
100 'pg1data1'
200 'pg1data2'
a (integer) b (text)
111 'pg2data1'
222 'pg2data2'
a (integer) b (text)
123 'pg3data1'
234 'pg3data2'
a (integer) b (text)
• Multi-Tenant database provides database support to a
number of separate and distinct groups of users
• In PGSpider, Multi-Tenant feature can get some of the
same name child node’s table record
• User can get some of the foreign table record in one SQL
14© 2019 Toshiba Corporation
What is PostgreSQL’s FDW?
• Foreign Data Wrapper (FDW)
• This feature enables user to access
the other database from
PostgreSQL
• User can access various data
sources by installing Data
source_fdw module
• PostgreSQL engine analyzes
query given by user, and
divide it into foreign table’s
query
PostgreSQL
engine
FDW
Data
Source
query
DataSouce’s
queryResult
Result
15© 2019 Toshiba Corporation
What’s pgspider_core
• pgspider_core is retrieve data from multi data source
engine
• pgspider_core uses data source FDW and get same table
data with Multi-Tenant feature
postgres_fdw csv_fdw
PostgreSQL csv
postgres_fdw csv_fdw
PostgreSQL csv
pgspider_core
PostgreSQL PGSpider
PostgreSQL engine PostgreSQL engine
16© 2019 Toshiba Corporation
Internal of PGSpider
postgers(backend)
thread1 thread2 thread3
pgspider_core
Data source1
FDW
Data source2
FDW
Data source3
FDW
Data source1 Data source2 Data source3
…
…
application
Create threads
for each childTables
getting data datasorce
in parallel
• pgspider_core creates threads for each child tables
• pgspider_core determines which table is multi-tenant by the
child node table name (Foreign table name)
• Each thread get data and return to pgspider_core in
parallel .
17© 2019 Toshiba Corporation
Pushdown
• Pushdown
18© 2019 Toshiba Corporation
WHERE Pushdown
• PostgreSQL FDW has WHERE clause push down
• When FDW support WHERE clause push down,
execute WHERE clause in child node
PostgreSQL
SELECT *
FROM table
WHERE i=1;
FDW
PostgreSQL
SELECT *
FROM table;
SELECT *
FROM table
WHERE i=1;
FDW
Return all data
No WHERE pushdown WHERE pushdown
Filtering
Return
filterd data
PostgreSQL engine PostgreSQL engine
Filtering
SELECT *
FROM table
WHERE i=1;
19© 2019 Toshiba Corporation
WHERE Pushdown issue and solution
• PGSpider use both of enable and disable WHERE
pushdown FDW with Multi-Tenant
• pgspider_core is filtering returning data
file
SELECT * FROM table1
WHERE i=1;
PostgreSQL
Return
filtered data
SELECT*
FROM table;
FDW
pgspider_core
FDW
Return
all data
Filtering
Filtering
SELECT * FROM table1
WHERE i=1;
PostgreSQL engine
20© 2019 Toshiba Corporation
What is Aggregation pushdown
• PostgreSQL FDW has Aggregation pushdown feature
• Pass the aggregation function to child node
• Reduce communication cost and distribute query execution cost
• If FDW support Aggregation pushdown feature, we can use it
• Almost FDWs don’t support Aggregation pushdown…
PostgreSQL
SELECT AVG (i)
FROM table;
SELECT AVG(i)
FROM table;
FDW
PostgreSQL
SELECT *
FROM table;
SELECT AVG(i)
FROM table;
FDW
Return all data
No Aggregation pushdown Aggregation pushdown
Calculate
Return
AVG() result
PostgreSQL engine PostgreSQL engine
Calculate
21© 2019 Toshiba Corporation
Issue of Aggregation pushdown in PGSpider
• PGSpider has 3 issues for aggregation pushdown feature
1. Have to aggregate result of child node
• PGSpider should calculate(basically sum the child result) final
result
2. Use both of enable and disable aggregation pushdown
FDW with Multi-Tenant
• pgspider_core should return “Enable pushdown” result
• This issue same as WHERE pushdown
3. Some queries can not execute on child node( AVG,
STDDEV )
• PGSpider can not calculate final result using child AVG result.
• It needs to another results
22© 2019 Toshiba Corporation
Solution of Aggregation pushdown in PGSpider(1)
• PGSpider gather child node data and aggregate result of
child node
• PGSpider create temp table and set returning data
• After get all child node result, calculate and return final result to
PostgreSQL engine
PostgreSQLPostgreSQLi
1
2
SELECT SUM (i)
FROM table; SELECT SUM(i)
FROM table;
SELECT SUM(i)
FROM table;
pgspider_core
i
2
3
4
return 3 return 9
return 12
SUM
3
9
PostgreSQL engine
12
child result
FDW FDW
Calculate
23© 2019 Toshiba Corporation
FDW
Solution of Aggregation pushdown in PGSpider(2)
• Control pushdown
• When child node can not execute aggregation, PGSpider aggregate child
result using PostgreSQL function in each thread
• When child node can execute aggregation, PGSpider execute aggregation
in child node
• Regardless whether or not in child node, PGSpider add new path to Root
PlannerInfo
PostgreSQL
i
1
2
SELECT SUM(i)
FROM table;
pgspider_core
return 3
return 2,3,4
SELECT SUM(i)
FROM table;
SELECT *
FROM table;
i
2
3
4FDW
Calculate
PostgreSQL engine
SUM
3
9
12
child result
9
i
2
3
4
file result
file
12
thread thread Calculate
24© 2019 Toshiba Corporation
Solution of Aggregation pushdown in PGSpider(3)
• Segregation the function
• When query include special aggregation, then
segregate the query
• e.g. AVG(a) -> SUM(a), COUNT(a)
• In Addition, pgspider_core should calcurate the
segregation query result
FDW
PostgreSQL
i
1
2
SELECT AVG(i)
FROM table;
pgspider_core
FDW
PostgreSQL engine 2.4
child result
i
2
3
4
file
2.4
Calculate
Return 9,3
sum count
3 2
9 3
SELECT SUM(i),COUNT(i)
FROM table;
SELECT SUM(i),COUNT(i)
FROM table;
Return 3,2
25© 2019 Toshiba Corporation
Node location
• Node location
26© 2019 Toshiba Corporation
Node location issue
• User want to get data from part of cluster
• e.g. An error occurred at a specific factory, User want
to choose part of factory for error analysis
DB DB DB DB
…
…
…
User don’t want to
get all factory’s data,
only this factory’s data
27© 2019 Toshiba Corporation
Solution of Node location
• PGSpider should management node location
and enable to specify location
id text
2 b
id text
3 c
4 d
db3
id text
1 a
2 b
3 c
4 d
PGSpider
PGSpider1
db2db1
id text
1 a
id text
1 a
2 b
Get data from db1
28© 2019 Toshiba Corporation
Location management in PGSpider cluster
NodeName:db1
URL:/pgspider1/db1/
NodeName: pgspider1
URL:/pgspider1/
• Parent node define childe node name using child node
foreign information
• Parent node management child node name only. Parent node
does not management child-child node name.
• Node location is concatenate child node name
• Node name split by ’/’ , “/Child Node name/Child-child Node
name/…”
・・・
・・・
NodeName: db3
URL:/db3/
NodeName:db1
URL:/pgspider1/db2/
db3
db2db1
PGSpider1
Foreign Server Name FDW
PGSpider PGspiderFDW
pgspider1 PGspiderFDW
db3 PostgreSQLFDW
Foreign Server Name FDW
pgspider1 PGspiderFDW
db1 PostgreSQLFDW
db2 PostgreSQLFDW
PGSpider
29© 2019 Toshiba Corporation
Add new meaning for “IN” clause (1)
• Add new meaning to “IN” clause
• Use write after Table clause
• e.g.: SELECT * FROM test IN (‘/pgspider1/db1/’) WHERE i =1;
• If user want to get some nodes, use comma
• e.g.: SELECT * FROM test IN (‘/pgspider1/db1/’, ‘/db3/’ )
WHERE i =1;
id text
2 b
id text
3 c
4 d
db3
id text
1 a
PGSpider
PGSpider1
db2db1
id text
1 a
PostgreSQL engine
SELECT * FROM test IN (‘/pgspider1/db1/’)
id text
1 aGet only this db
30© 2019 Toshiba Corporation
Add new meaning for “IN” clause (2)
• In clause can specify PGSpider internal node
• Get all data from the lower node
id text
2 b
id text
3 c
4 d
db3
id text
1 a
2 b
PGSpider
PGSpider1
db2db1
id text
1 a
PostgreSQL engine
SELECT * FROM test IN (‘/pgspider1/’)
Get only this db
31© 2019 Toshiba Corporation
Get node location with record
• User wants to get where the retrieved record
was
• In many case, table doesn’t have location
information
id text
2 b
id text
3 c
4 d
db3
PGSpider
PGSpider
db2db1
id text
1 a
User can not get
node name with record
id text
1 a
2 b
3 c
4 d
Where node’s ?
SELECT * FROM test ;
32© 2019 Toshiba Corporation
Solution of get node location with record
• pgspider_core extend and set Nodename
column
• Setting data is Node location, because this is unique
name in PGSpider
id text
2 b
id text
3 c
4 d
db3
PGSpider
db2db1
id text
1 a
id text Nodename
1 a /pgs1/db1/
2 b /pgs1/db2/
3 c /db3/
4 d /db3/
Nodename
/db1/
/db2/
/db3/
/db3/
id text
1 a
2 b
3 c
4 d
extend
33© 2019 Toshiba Corporation
Issue of getting node location column
• If pgspider_core create plantree from PGSpider’s query
tree, data sources will be error occurred.
• Data sources do not have Nodename column. But pgspider_core ’s
query tree has Nodename column
id text
2 b
id text
3 c
4 d
db3
PGSpider
PGSpider1
db2db1
id text
1 a
id text Nodename
1 a /db1/
2 b /db2/
PostgreSQL Engine
SELECT id,text,Nodename FROM t;
id text Nodename
1 a /pgspider1/db1/
2 b /pgspider1/db2/
3 c /db3/
4 d /db3/
SELECT id,text,Nodename FROM t;SELECT id,text,Nodename FROM t;
SELECT id,text,
Nodename FROM
t;
NodenameというNodeName列
存在しないため、エラーが発生
Child node does not have
NodeName column,
34© 2019 Toshiba Corporation
Change query-tree for node location column
• If Child node is data source, then delete operation
which use Nodename column from query tree.
Parent query-
tree
Child query
tree
copy Child plan
tree
Parent plan-
tree
executer
executer
Child query
tree
Create
id text
Nodena
me
Column list
id text
Nodena
me
Column list
Child node:
PGSpider
Child node:
PGSpider
Delete Nodename column
PGSpider has Nodename column, not
delete.
changed child
plan-tree
Child plan
tree
id text
Nodena
me
Column list
executer
35© 2019 Toshiba Corporation
Extend result
• After the execute query, pgspider_core create Nodename
column data when get record from child node result
• If child node is data source, pgspider_core exetend Nodename column to result slot
and set Data source name (Child node name)
• If child node is PGSpider, pgspider_core concat child node Nodename column and
child Datasouce Name
id text
2 b
id text
3 c
4 ddb3
id text Nodename
1 a /pgs1/db1/
2 b /pgs1/db2/
3 c /db3/
4 d /db3/
PGSpider
PGSpider1
db2db1
id text
1 a
id text Nodena
me
1 a /db1/
2 b /db2/
id text Nodena
me
1 a /db1/
2 b /db2/
id text
1 a
id text
3 c
4 d
getting record
return recode to parent
id text
2 b
Nodena
me
/db1/
/db2/
Nodena
me
/db1/
/db2/
Nodename
/pgspider1/db1/
/pgspider1/db2/
/db3/
/db3/
getting record return recode to user
36© 2019 Toshiba Corporation
Result
postgres=# SELECT * FROM test ORDER BY id;
id | name | NodeName
----+------+----------------
1 | a | /pgspider1/db1/
2 | b | /pgspider1/db2/
3 | c | /db3/
4 | d | /db3/
(connect to data source)
postgres=# SELECT * FROM test;
id | name
----+------
3 | c
4 | d
PGSpider(Top node)
can get NodeName
column
Data source does not
have NodeName
column
37© 2019 Toshiba Corporation
KeepAlive process
• KeepAlive process
38© 2019 Toshiba Corporation
KeepAlive
• If PGSpide_core can not connect to child node,
then wait timeout time.
• PGSpider can not finish query, sometimes it takes
long time
• If some nodes are dead, then take more time …
• Dead nodes might revive. PGSpider should check
child node in every query.
• Create another process “Alive check”
39© 2019 Toshiba Corporation
KeepAlive feature
• Alive check process is BackGroundWorkerProcess
• Alive check process create node state list on PostgreSQL Shared
memory. This list share by Backend process.
• Alive check process ping to all child nodes.
• Change child node list to Dead when ping is failed
• Change child node list to Alive when ping is success
• Backend process check child node status before execute
query
• If child node status is dead, then doesn’t create regading child
node thread.
40© 2019 Toshiba Corporation
Node dead case
postmaster
writer
autovacuum
postgers(backend)
thread1 thread2
pgspider_core
Data source1
FDW
Data source2
FDW
Data source1 Data source2
application
:
Background process
Alive Check
SharedMemory
Check
with
PING
Name status
Data
souce1
Alive
Data
souce2
Dead
If node status is
Dead, then don’t
create thread.
query
41© 2019 Toshiba Corporation
Performance measurement
• Performance measurement
42© 2019 Toshiba Corporation
Environment
• Environment
• Top node is virtual machine
• OS : CentOS7
• CPU : 2cores
• memory : 2GB
• 8 child nodes
• OS : CentOS for Raspberry Pi
• CPU : ARM 4cores
• memory : 1GB memory
• PostgreSQL 11.5
• Execute 2 SQL
• SELECT with WHERE, SELECT with SUM()
• Changing number of node 1-8
• Data
• db1-db8 has 100MB data (1KB reords, num of 100K records)
db4db1 db2 db3 db8db5 db6 db7
PGSpider or PostgreSQL
43© 2019 Toshiba Corporation
Result SELECT query
44© 2019 Toshiba Corporation
Result SUM query
45© 2019 Toshiba Corporation
Result SUM query (only PGSpider)
46© 2019 Toshiba Corporation
Summary
• PGSpider can get data from a lot of the node
using one SQL with Multi Tenant feature
• Control pushdown and segregation query
• Get part of node data and record location
column
• Avoid connection timeout time with alive check
process
47© 2019 Toshiba Corporation
Thank you
48© 2019 Toshiba Corporation
Questions?
email: shigeo.hirose@toshiba.co.jp

Contenu connexe

Tendances

Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...
Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...
Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...HostedbyConfluent
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Severalnines
 
Introduction to spark
Introduction to sparkIntroduction to spark
Introduction to sparkHome
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekVenkata Naga Ravi
 
Apache pulsar - storage architecture
Apache pulsar - storage architectureApache pulsar - storage architecture
Apache pulsar - storage architectureMatteo Merli
 
SQL on everything, in memory
SQL on everything, in memorySQL on everything, in memory
SQL on everything, in memoryJulian Hyde
 
Hadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and FutureHadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and FutureRyan Hennig
 
Spark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataVictor Coustenoble
 
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...HostedbyConfluent
 
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKai Wähner
 
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020 Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020 Oracle
 
How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)DataStax Academy
 
Intro to InfluxDB
Intro to InfluxDBIntro to InfluxDB
Intro to InfluxDBInfluxData
 
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019confluent
 
Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialTim Vaillancourt
 
Understanding Presto - Presto meetup @ Tokyo #1
Understanding Presto - Presto meetup @ Tokyo #1Understanding Presto - Presto meetup @ Tokyo #1
Understanding Presto - Presto meetup @ Tokyo #1Sadayuki Furuhashi
 
Scaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssAnil Nair
 

Tendances (20)

Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...
Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...
Monitoring Kafka without instrumentation using eBPF with Antón Rodríguez | Ka...
 
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
Galera Cluster for MySQL vs MySQL (NDB) Cluster: A High Level Comparison
 
Introduction to spark
Introduction to sparkIntroduction to spark
Introduction to spark
 
Analyzing awr report
Analyzing awr reportAnalyzing awr report
Analyzing awr report
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeek
 
Apache pulsar - storage architecture
Apache pulsar - storage architectureApache pulsar - storage architecture
Apache pulsar - storage architecture
 
SQL on everything, in memory
SQL on everything, in memorySQL on everything, in memory
SQL on everything, in memory
 
Hadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and FutureHadoop @ eBay: Past, Present, and Future
Hadoop @ eBay: Past, Present, and Future
 
Apache Spark.pptx
Apache Spark.pptxApache Spark.pptx
Apache Spark.pptx
 
Spark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational DataSpark + Cassandra = Real Time Analytics on Operational Data
Spark + Cassandra = Real Time Analytics on Operational Data
 
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
Stream processing IoT time series data with Kafka & InfluxDB | Al Sargent, In...
 
Kafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid CloudKafka for Real-Time Replication between Edge and Hybrid Cloud
Kafka for Real-Time Replication between Edge and Hybrid Cloud
 
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020 Oracle GoldenGate Roadmap Oracle OpenWorld 2020
Oracle GoldenGate Roadmap Oracle OpenWorld 2020
 
How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)How to size up an Apache Cassandra cluster (Training)
How to size up an Apache Cassandra cluster (Training)
 
Intro to InfluxDB
Intro to InfluxDBIntro to InfluxDB
Intro to InfluxDB
 
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
What's the time? ...and why? (Mattias Sax, Confluent) Kafka Summit SF 2019
 
Monitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_TutorialMonitoring_with_Prometheus_Grafana_Tutorial
Monitoring_with_Prometheus_Grafana_Tutorial
 
Postgresql tutorial
Postgresql tutorialPostgresql tutorial
Postgresql tutorial
 
Understanding Presto - Presto meetup @ Tokyo #1
Understanding Presto - Presto meetup @ Tokyo #1Understanding Presto - Presto meetup @ Tokyo #1
Understanding Presto - Presto meetup @ Tokyo #1
 
Scaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ssScaling paypal workloads with oracle rac ss
Scaling paypal workloads with oracle rac ss
 

Similaire à PGConf.ASIA 2019 - PGSpider High Performance Cluster Engine - Shigeo Hirose

Build a Big Data solution using DB2 for z/OS
Build a Big Data solution using DB2 for z/OSBuild a Big Data solution using DB2 for z/OS
Build a Big Data solution using DB2 for z/OSJane Man
 
SFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdf
SFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdfSFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdf
SFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdfSouth Tyrol Free Software Conference
 
Hadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTData
Hadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTDataHadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTData
Hadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTDataCloudera, Inc.
 
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...Denodo
 
Why Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT ArchitectureWhy Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT ArchitectureIBM Analytics
 
Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...
Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...
Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...Kondo Mitsumasa
 
Customer migration to Azure SQL database, December 2019
Customer migration to Azure SQL database, December 2019Customer migration to Azure SQL database, December 2019
Customer migration to Azure SQL database, December 2019George Walters
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and FutureMasahiko Sawada
 
(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon Redshift(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon RedshiftAmazon Web Services
 
Modernizing Global Shared Data Analytics Platform and our Alluxio Journey
Modernizing Global Shared Data Analytics Platform and our Alluxio JourneyModernizing Global Shared Data Analytics Platform and our Alluxio Journey
Modernizing Global Shared Data Analytics Platform and our Alluxio JourneyAlluxio, Inc.
 
Purpose-built NoSQL Database for IoT by Basavaraj Soppannavar
Purpose-built NoSQL Database for IoT by Basavaraj SoppannavarPurpose-built NoSQL Database for IoT by Basavaraj Soppannavar
Purpose-built NoSQL Database for IoT by Basavaraj SoppannavarData Con LA
 
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB
 
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical DemonstrationMaximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical DemonstrationDenodo
 
AquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks PresentationAquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks PresentationAquaQ Analytics
 
PIMRC-2012, Sydney, Australia, 28 July, 2012
PIMRC-2012, Sydney, Australia, 28 July, 2012PIMRC-2012, Sydney, Australia, 28 July, 2012
PIMRC-2012, Sydney, Australia, 28 July, 2012Charith Perera
 
Les objets connectés : de nombreux cas d'usage
Les objets connectés : de nombreux cas d'usage Les objets connectés : de nombreux cas d'usage
Les objets connectés : de nombreux cas d'usage Jedha Bootcamp
 
Neo4j: The path to success with Graph Database and Graph Data Science
Neo4j: The path to success with Graph Database and Graph Data ScienceNeo4j: The path to success with Graph Database and Graph Data Science
Neo4j: The path to success with Graph Database and Graph Data ScienceNeo4j
 

Similaire à PGConf.ASIA 2019 - PGSpider High Performance Cluster Engine - Shigeo Hirose (20)

Build a Big Data solution using DB2 for z/OS
Build a Big Data solution using DB2 for z/OSBuild a Big Data solution using DB2 for z/OS
Build a Big Data solution using DB2 for z/OS
 
SFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdf
SFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdfSFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdf
SFScon22 - Anton Dignoes - Managing Temporal Data in PostgreSQL.pdf
 
Hadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTData
Hadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTDataHadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTData
Hadoop World 2011: Hadoop’s Life in Enterprise Systems - Y Masatani, NTTData
 
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
Self Service Analytics and a Modern Data Architecture with Data Virtualizatio...
 
Why Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT ArchitectureWhy Gateways are Important in Your IoT Architecture
Why Gateways are Important in Your IoT Architecture
 
Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...
Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...
Introduction of pg_statsinfo and pg_stats_reporter ~Statistics Reporting Tool...
 
Customer migration to Azure SQL database, December 2019
Customer migration to Azure SQL database, December 2019Customer migration to Azure SQL database, December 2019
Customer migration to Azure SQL database, December 2019
 
Phissug s01 ep6, stretch database
Phissug s01 ep6, stretch databasePhissug s01 ep6, stretch database
Phissug s01 ep6, stretch database
 
Greenplum Architecture
Greenplum ArchitectureGreenplum Architecture
Greenplum Architecture
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon Redshift(DAT201) Introduction to Amazon Redshift
(DAT201) Introduction to Amazon Redshift
 
Modernizing Global Shared Data Analytics Platform and our Alluxio Journey
Modernizing Global Shared Data Analytics Platform and our Alluxio JourneyModernizing Global Shared Data Analytics Platform and our Alluxio Journey
Modernizing Global Shared Data Analytics Platform and our Alluxio Journey
 
Purpose-built NoSQL Database for IoT by Basavaraj Soppannavar
Purpose-built NoSQL Database for IoT by Basavaraj SoppannavarPurpose-built NoSQL Database for IoT by Basavaraj Soppannavar
Purpose-built NoSQL Database for IoT by Basavaraj Soppannavar
 
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case StudyMongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
MongoDB World 2018: Overnight to 60 Seconds: An IOT ETL Performance Case Study
 
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical DemonstrationMaximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
Maximizing Data Lake ROI with Data Virtualization: A Technical Demonstration
 
AquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks PresentationAquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks Presentation
 
sypf1(1)2022.docx
sypf1(1)2022.docxsypf1(1)2022.docx
sypf1(1)2022.docx
 
PIMRC-2012, Sydney, Australia, 28 July, 2012
PIMRC-2012, Sydney, Australia, 28 July, 2012PIMRC-2012, Sydney, Australia, 28 July, 2012
PIMRC-2012, Sydney, Australia, 28 July, 2012
 
Les objets connectés : de nombreux cas d'usage
Les objets connectés : de nombreux cas d'usage Les objets connectés : de nombreux cas d'usage
Les objets connectés : de nombreux cas d'usage
 
Neo4j: The path to success with Graph Database and Graph Data Science
Neo4j: The path to success with Graph Database and Graph Data ScienceNeo4j: The path to success with Graph Database and Graph Data Science
Neo4j: The path to success with Graph Database and Graph Data Science
 

Plus de Equnix Business Solutions

Yang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdf
Yang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdfYang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdf
Yang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdfEqunix Business Solutions
 
Kebocoran Data_ Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...
Kebocoran Data_  Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...Kebocoran Data_  Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...
Kebocoran Data_ Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...Equnix Business Solutions
 
Kuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdf
Kuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdfKuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdf
Kuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdfEqunix Business Solutions
 
EWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdf
EWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdfEWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdf
EWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdfEqunix Business Solutions
 
Oracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdfOracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdfEqunix Business Solutions
 
[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf
[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf
[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdfEqunix Business Solutions
 
Webinar2021 - Does HA Can Help You Balance Your Load-.pdf
Webinar2021 - Does HA Can Help You Balance Your Load-.pdfWebinar2021 - Does HA Can Help You Balance Your Load-.pdf
Webinar2021 - Does HA Can Help You Balance Your Load-.pdfEqunix Business Solutions
 
Webinar2021 - In-Memory Database, is it really faster-.pdf
Webinar2021 - In-Memory Database, is it really faster-.pdfWebinar2021 - In-Memory Database, is it really faster-.pdf
Webinar2021 - In-Memory Database, is it really faster-.pdfEqunix Business Solutions
 
equpos - General Presentation v20230420.pptx
equpos - General Presentation v20230420.pptxequpos - General Presentation v20230420.pptx
equpos - General Presentation v20230420.pptxEqunix Business Solutions
 
Equnix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdf
Equnix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdfEqunix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdf
Equnix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdfEqunix Business Solutions
 
OSPX - Professional PostgreSQL Certification Scheme v20201111.pdf
OSPX - Professional PostgreSQL Certification Scheme v20201111.pdfOSPX - Professional PostgreSQL Certification Scheme v20201111.pdf
OSPX - Professional PostgreSQL Certification Scheme v20201111.pdfEqunix Business Solutions
 
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki KondoPGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki KondoEqunix Business Solutions
 
PGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky Haryadi
PGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky HaryadiPGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky Haryadi
PGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky HaryadiEqunix Business Solutions
 
PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...
PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...
PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...Equnix Business Solutions
 
PGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGai
PGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGaiPGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGai
PGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGaiEqunix Business Solutions
 
PGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan Pachenko
PGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan PachenkoPGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan Pachenko
PGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan PachenkoEqunix Business Solutions
 
PGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce Momjian
PGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce MomjianPGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce Momjian
PGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce MomjianEqunix Business Solutions
 

Plus de Equnix Business Solutions (20)

Yang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdf
Yang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdfYang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdf
Yang perlu kita ketahui Untuk memahami aspek utama IT dalam bisnis_.pdf
 
Kebocoran Data_ Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...
Kebocoran Data_  Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...Kebocoran Data_  Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...
Kebocoran Data_ Tindakan Hacker atau Kriminal_ Bagaimana kita mengantisipasi...
 
Kuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdf
Kuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdfKuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdf
Kuliah Tamu - Dari Proses Bisnis Menuju Struktur Data.pdf
 
EWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdf
EWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdfEWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdf
EWTT22_ Apakah Open Source Cocok digunakan dalam Korporasi_.pdf
 
Oracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdfOracle to PostgreSQL, Challenges to Opportunity.pdf
Oracle to PostgreSQL, Challenges to Opportunity.pdf
 
[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf
[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf
[EWTT2022] Strategi Implementasi Database dalam Microservice Architecture.pdf
 
PostgreSQL as Enterprise Solution v1.1.pdf
PostgreSQL as Enterprise Solution v1.1.pdfPostgreSQL as Enterprise Solution v1.1.pdf
PostgreSQL as Enterprise Solution v1.1.pdf
 
Webinar2021 - Does HA Can Help You Balance Your Load-.pdf
Webinar2021 - Does HA Can Help You Balance Your Load-.pdfWebinar2021 - Does HA Can Help You Balance Your Load-.pdf
Webinar2021 - Does HA Can Help You Balance Your Load-.pdf
 
Webinar2021 - In-Memory Database, is it really faster-.pdf
Webinar2021 - In-Memory Database, is it really faster-.pdfWebinar2021 - In-Memory Database, is it really faster-.pdf
Webinar2021 - In-Memory Database, is it really faster-.pdf
 
EQUNIX - PPT 11DB-Postgres™.pdf
EQUNIX - PPT 11DB-Postgres™.pdfEQUNIX - PPT 11DB-Postgres™.pdf
EQUNIX - PPT 11DB-Postgres™.pdf
 
equpos - General Presentation v20230420.pptx
equpos - General Presentation v20230420.pptxequpos - General Presentation v20230420.pptx
equpos - General Presentation v20230420.pptx
 
Equnix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdf
Equnix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdfEqunix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdf
Equnix Appliance- Jawaban terbaik untuk kebutuhan komputasi yang mumpuni.pdf
 
OSPX - Professional PostgreSQL Certification Scheme v20201111.pdf
OSPX - Professional PostgreSQL Certification Scheme v20201111.pdfOSPX - Professional PostgreSQL Certification Scheme v20201111.pdf
OSPX - Professional PostgreSQL Certification Scheme v20201111.pdf
 
Equnix Company Profile v20230329.pdf
Equnix Company Profile v20230329.pdfEqunix Company Profile v20230329.pdf
Equnix Company Profile v20230329.pdf
 
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki KondoPGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
PGConf.ASIA 2019 - The Future of TDEforPG - Taiki Kondo
 
PGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky Haryadi
PGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky HaryadiPGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky Haryadi
PGConf.ASIA 2019 - High Availability, 10 Seconds Failover - Lucky Haryadi
 
PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...
PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...
PGConf.ASIA 2019 Bali - Mission Critical Production High Availability Postgre...
 
PGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGai
PGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGaiPGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGai
PGConf.ASIA 2019 Bali - Keynote Speech 3 - Kohei KaiGai
 
PGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan Pachenko
PGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan PachenkoPGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan Pachenko
PGConf.ASIA 2019 Bali - Keynote Speech 2 - Ivan Pachenko
 
PGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce Momjian
PGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce MomjianPGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce Momjian
PGConf.ASIA 2019 Bali - Keynote Speech 1 - Bruce Momjian
 

Dernier

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Dernier (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

PGConf.ASIA 2019 - PGSpider High Performance Cluster Engine - Shigeo Hirose

  • 1. © 2019Toshiba Corporation PGConf.Asia 2019 PGSpider – High-Performance SQL Cluster Engine Sep 10, 2019 Shigeo Hirose
  • 2. 1© 2019 Toshiba Corporation Self-introduction • Live and work in KAWASAKI • Near by TOKYO • Engineer at TOSHIBA CORPORATION, Open Source technology department • Actively developing with PostgreSQL since 2017. • developed some FDWs, and PGSpider
  • 3. 2© 2019 Toshiba Corporation Agenda • Overview of PGSpider • Multi Tenant and Basic PGSpider internal processing • Pushdown • Node location • KeepAlive process • Performance measurement
  • 4. 3© 2019 Toshiba Corporation Overview of PGSpider • Overview of PGSpider
  • 5. 4© 2019 Toshiba Corporation Current status and issues of IoT system Source : MIC “white paper on telecommunications in 2017”*2 22 31 40 52 67 85 7 9 12 14 17 21 0 20 40 60 80 100 2016 2017 2018 2019 2020 2021 Zettabytesperyear Generated data size and data center capacity Useable data created Data center capacity Source:Cisco Global Cloud Index, 2016-2021*1 Gap of useable data created and data center capacity 3 Issues • All the data practical use is difficult with network load and storage capacity restrictions. • Effective use of edge 1 Current status • Process data after storing data in data center • Filter data on edge for storing data 2 Forecast • Data storage capacity is insufficient by increase in data • Edge Computing is coming Terminal TerminalAPP APP Network APP APP Network Edge Computing APP data data Internet APP data Distributed Processing Process at high speed Execution Platform APP APP data data data data data Several ms Several 100 ms
  • 6. 5© 2019 Toshiba Corporation What’s PGSpider Before After Existing System System using PGSpider Retrieval directly from edge as device side Retrieval raw data, Not consider sampling interval Cross-searching, No time lag Same I/F (SQL), Heterogeneous multi data source Retrieval from Cloud Consider sampling interval Wait upload schedule 10:00:02 … 10:00:05 … 10:00:08 … … 10:00:01 1.0 10:00:02 1.1 10:00:03 1.0 10:00:04 1.2 10:00:05 1.1 10:00:06 1.2 10:00:07 1.0 10:00:08 1.1 … Send Cloud by the minute Sensor Search Query Cloud DB 10:00:01 1.1 10:00:02 1.2 10:00:03 1.1 10:00:04 1.0 10:00:05 1.1 10:00:06 1.0 DB Sensor Data Analysis PGSpider PGSpider Search Short trend Data retrieval system for Distributed Big Data PGSpider Sensor 10:00:01 0.9 10:00:02 1.0 10:00:03 0.8 10:00:04 1.2 10:00:05 1.1 10:00:06 0.9 Sensor … 10:00:01 1.2 10:00:02 0.9 10:00:03 1.0 10:00:04 0.8 10:00:05 0.9 10:00:06 1.0 10:00:07 1.1 10:00:08 1.1 … DB 10:00:01 1.1 10:00:02 1.2 10:00:03 1.7 10:00:04 1.0 10:00:05 1.1 10:00:06 1.3 10:00:01 10:00:02 10:00:03 10:00:04 10:00:05 10:00:06 DB DB Sensor Sensor Search Query Data Analysis Target : All Device Time: 10:00:02~10:00:05 ……… Long trend 3 second interval
  • 7. 6© 2019 Toshiba Corporation PGSpider Overview Retrieve the distributed data source vertically PGSpiderPGSpiderPGSpider ID Value 101 11 102 10 ID Value 111 7 112 9 ID Value 211 10 212 11 ID Value 311 10 312 8 ID Value 201 12 202 8 ID Value 301 9 302 8 SQLite PostgreSQL SQL Server MySQL TinyBrace CSV ID Value ID Value Result Actual Data ID Value 101 11 ID Value 202 12 212 11 ID Value 001 5 002 3 ID Value 011 6 012 14 GridDB Oracle PGSpider ID Value 202 12 212 11 PGSpider ID Value 012 14 101 11 202 12 212 11 ID Value 202 12 ID Value 101 11 PGSpider ID Value 012 14 PGSpider ID Value 012 14 101 12 ID Value 012 14 ID Value 202 12 Improve retrieval performance by parallel query on multithread Reduce communications traffic by push-down Have scalability Access to multi data source by FDW
  • 8. 7© 2019 Toshiba Corporation PGSpider Behavior : Conditional Expression Push-Down Reduce communications traffic by push-down PGSpiderPGSpiderPGSpider ID Value 101 11 102 10 ID Value 111 7 112 9 ID Value 211 10 212 11 ID Value 311 10 312 8 ID Value 201 12 202 8 ID Value 301 9 302 8 SQLite PostgreSQL SQL Server MySQL TinyBrace CSV ID Value ID Value Result Actual Data ID Value 001 5 002 3 ID Value 011 6 012 14 GridDB Oracle PGSpider PGSpider Retrieval record with “Value” greater than 10 PGSpider PGSpider Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query * Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query Value>10 Query Value>10
  • 9. 8© 2019 Toshiba Corporation PGSpider Behavior : Conditional Expression Push-Down Reduce communications traffic by push-down PGSpiderPGSpiderPGSpider ID Value 101 11 102 10 ID Value 111 7 112 9 ID Value 211 10 212 11 ID Value 311 10 312 8 ID Value 201 12 202 8 ID Value 301 9 302 8 SQLite PostgreSQL SQL Server MySQL TinyBrace CSV ID Value ID Value Result Actual Data ID Value 001 5 002 3 ID Value 011 6 012 14 GridDB Oracle PGSpider PGSpider ID ValueID Value 202 12 ID ValueID Value 101 11 Retrieval record with “Value” greater than 10 PGSpider PGSpider ID Value 012 14 ID Value ID Value ID Value 212 11 ID Value 311 10 312 8 ID Value 202 12 212 11 ID Value 101 11 ID Value 202 12 212 11 ID Value 012 14 ID Value 012 14 101 12 ID Value 012 14 101 11 202 12 212 11
  • 10. 9© 2019 Toshiba Corporation PGSpider Behavior : Aggregation Function Push-Down Reduce communications traffic by push-down PGSpiderPGSpiderPGSpider ID Value 101 11 102 10 ID Value 111 7 112 9 ID Value 211 10 212 11 ID Value 311 10 312 8 ID Value 201 12 202 8 ID Value 301 9 302 8 SQLite PostgreSQL SQL Server MySQL TinyBrace CSV ID Value ID Value Result Actual Data ID Value 001 5 002 3 ID Value 011 6 012 14 GridDB Oracle PGSpider PGSpider PGSpider PGSpider Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query Value Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Query SUM(Value) Calculate the sum total of “Value” of all the records
  • 11. 10© 2019 Toshiba Corporation PGSpider Behavior : Aggregation Function Push-Down Reduce communications traffic by push-down PGSpiderPGSpiderPGSpider ID Value 101 11 102 10 ID Value 111 7 112 9 ID Value 211 10 212 11 ID Value 311 10 312 8 ID Value 201 12 202 8 ID Value 301 9 302 8 SQLite PostgreSQL SQL Server MySQL TinyBrace CSV ID Value ID Value Result Actual Data ID Value 001 5 002 3 ID Value 011 6 012 14 GridDB Oracle PGSpider PGSpider Calculate the sum total of “Value” of all the records PGSpider PGSpider SUM() 21 SUM() 16 SUM() 20 SUM() 21 SUM() 17 SUM() 8 SUM() 20 SUM() 37 SUM() 28 SUM() 41 SUM() 35 SUM() 65 SUM() 76 SUM() 141 ID Value 311 10 312 8
  • 12. 11© 2019 Toshiba Corporation PGSpider technology overview Develop PGSpider based on PostgreSQL Oracle pgspider_core TinyBrace FDW GridDB FDW SQLite FDW Query Parsing Query Planner / Optimizer Query Execution PostgreSQL Back End Process Multi Tenant Table PGSpider InfluxDB FDW SQLumDash FDW Foreign Table Foreign Table Foreign Table Foreign Table Foreign Table Foreign Table PostgreSQL Master Server Connection Request Fork SQL Query Foreign Table Oracle FDW GridDB TinyBrace SQLite SQLumDash PGSpider FDW Foreign Table Foreign Table Installation Tool PGSpider ConfigurationModule which TOSHIBA developed 1. Improve retrieval performance by parallel query and processing 2. Scale-out retrieval using multi tenant if same table name 3. FDW : bridge difference SQL, interface and so on 4. Direct Query : retrieval from data source directly 5. PGSpider FDW : bridged multistage structure 6. Tools1. 5. 4. MySQL FDW PostgreSQL FDW MySQL PostgreSQL 2. 6. 3. InfluxDB PGSpider PostgreSQL Original Modual
  • 13. 12© 2019 Toshiba Corporation Multi Tenant • Multi Tenant and Basic PGSpider internal processing
  • 14. 13© 2019 Toshiba Corporation Multi-Tenant feature PGSpider PostgreSQL1 table1 PostgreSQL3 table1 table1 SELECT * FROM table1 a (integer) b (text) 100 'pg1data1' 200 'pg1data2' a (integer) b (text) 100 'pg1data1' 200 'pg1data2' 111 'pg2data1' 222 'pg2data2' 123 'pg3data1' 234 'pg3data2' PostgreSQL2 table1 a (integer) b (text) 123 'pg3data1' 234 'pg3data2' SELECT * FROM table1 SELECT * FROM table1SELECT * FROM table1 a (integer) b (text) 111 'pg2data1' 222 'pg2data2' a (integer) b (text) 100 'pg1data1' 200 'pg1data2' a (integer) b (text) 111 'pg2data1' 222 'pg2data2' a (integer) b (text) 123 'pg3data1' 234 'pg3data2' a (integer) b (text) • Multi-Tenant database provides database support to a number of separate and distinct groups of users • In PGSpider, Multi-Tenant feature can get some of the same name child node’s table record • User can get some of the foreign table record in one SQL
  • 15. 14© 2019 Toshiba Corporation What is PostgreSQL’s FDW? • Foreign Data Wrapper (FDW) • This feature enables user to access the other database from PostgreSQL • User can access various data sources by installing Data source_fdw module • PostgreSQL engine analyzes query given by user, and divide it into foreign table’s query PostgreSQL engine FDW Data Source query DataSouce’s queryResult Result
  • 16. 15© 2019 Toshiba Corporation What’s pgspider_core • pgspider_core is retrieve data from multi data source engine • pgspider_core uses data source FDW and get same table data with Multi-Tenant feature postgres_fdw csv_fdw PostgreSQL csv postgres_fdw csv_fdw PostgreSQL csv pgspider_core PostgreSQL PGSpider PostgreSQL engine PostgreSQL engine
  • 17. 16© 2019 Toshiba Corporation Internal of PGSpider postgers(backend) thread1 thread2 thread3 pgspider_core Data source1 FDW Data source2 FDW Data source3 FDW Data source1 Data source2 Data source3 … … application Create threads for each childTables getting data datasorce in parallel • pgspider_core creates threads for each child tables • pgspider_core determines which table is multi-tenant by the child node table name (Foreign table name) • Each thread get data and return to pgspider_core in parallel .
  • 18. 17© 2019 Toshiba Corporation Pushdown • Pushdown
  • 19. 18© 2019 Toshiba Corporation WHERE Pushdown • PostgreSQL FDW has WHERE clause push down • When FDW support WHERE clause push down, execute WHERE clause in child node PostgreSQL SELECT * FROM table WHERE i=1; FDW PostgreSQL SELECT * FROM table; SELECT * FROM table WHERE i=1; FDW Return all data No WHERE pushdown WHERE pushdown Filtering Return filterd data PostgreSQL engine PostgreSQL engine Filtering SELECT * FROM table WHERE i=1;
  • 20. 19© 2019 Toshiba Corporation WHERE Pushdown issue and solution • PGSpider use both of enable and disable WHERE pushdown FDW with Multi-Tenant • pgspider_core is filtering returning data file SELECT * FROM table1 WHERE i=1; PostgreSQL Return filtered data SELECT* FROM table; FDW pgspider_core FDW Return all data Filtering Filtering SELECT * FROM table1 WHERE i=1; PostgreSQL engine
  • 21. 20© 2019 Toshiba Corporation What is Aggregation pushdown • PostgreSQL FDW has Aggregation pushdown feature • Pass the aggregation function to child node • Reduce communication cost and distribute query execution cost • If FDW support Aggregation pushdown feature, we can use it • Almost FDWs don’t support Aggregation pushdown… PostgreSQL SELECT AVG (i) FROM table; SELECT AVG(i) FROM table; FDW PostgreSQL SELECT * FROM table; SELECT AVG(i) FROM table; FDW Return all data No Aggregation pushdown Aggregation pushdown Calculate Return AVG() result PostgreSQL engine PostgreSQL engine Calculate
  • 22. 21© 2019 Toshiba Corporation Issue of Aggregation pushdown in PGSpider • PGSpider has 3 issues for aggregation pushdown feature 1. Have to aggregate result of child node • PGSpider should calculate(basically sum the child result) final result 2. Use both of enable and disable aggregation pushdown FDW with Multi-Tenant • pgspider_core should return “Enable pushdown” result • This issue same as WHERE pushdown 3. Some queries can not execute on child node( AVG, STDDEV ) • PGSpider can not calculate final result using child AVG result. • It needs to another results
  • 23. 22© 2019 Toshiba Corporation Solution of Aggregation pushdown in PGSpider(1) • PGSpider gather child node data and aggregate result of child node • PGSpider create temp table and set returning data • After get all child node result, calculate and return final result to PostgreSQL engine PostgreSQLPostgreSQLi 1 2 SELECT SUM (i) FROM table; SELECT SUM(i) FROM table; SELECT SUM(i) FROM table; pgspider_core i 2 3 4 return 3 return 9 return 12 SUM 3 9 PostgreSQL engine 12 child result FDW FDW Calculate
  • 24. 23© 2019 Toshiba Corporation FDW Solution of Aggregation pushdown in PGSpider(2) • Control pushdown • When child node can not execute aggregation, PGSpider aggregate child result using PostgreSQL function in each thread • When child node can execute aggregation, PGSpider execute aggregation in child node • Regardless whether or not in child node, PGSpider add new path to Root PlannerInfo PostgreSQL i 1 2 SELECT SUM(i) FROM table; pgspider_core return 3 return 2,3,4 SELECT SUM(i) FROM table; SELECT * FROM table; i 2 3 4FDW Calculate PostgreSQL engine SUM 3 9 12 child result 9 i 2 3 4 file result file 12 thread thread Calculate
  • 25. 24© 2019 Toshiba Corporation Solution of Aggregation pushdown in PGSpider(3) • Segregation the function • When query include special aggregation, then segregate the query • e.g. AVG(a) -> SUM(a), COUNT(a) • In Addition, pgspider_core should calcurate the segregation query result FDW PostgreSQL i 1 2 SELECT AVG(i) FROM table; pgspider_core FDW PostgreSQL engine 2.4 child result i 2 3 4 file 2.4 Calculate Return 9,3 sum count 3 2 9 3 SELECT SUM(i),COUNT(i) FROM table; SELECT SUM(i),COUNT(i) FROM table; Return 3,2
  • 26. 25© 2019 Toshiba Corporation Node location • Node location
  • 27. 26© 2019 Toshiba Corporation Node location issue • User want to get data from part of cluster • e.g. An error occurred at a specific factory, User want to choose part of factory for error analysis DB DB DB DB … … … User don’t want to get all factory’s data, only this factory’s data
  • 28. 27© 2019 Toshiba Corporation Solution of Node location • PGSpider should management node location and enable to specify location id text 2 b id text 3 c 4 d db3 id text 1 a 2 b 3 c 4 d PGSpider PGSpider1 db2db1 id text 1 a id text 1 a 2 b Get data from db1
  • 29. 28© 2019 Toshiba Corporation Location management in PGSpider cluster NodeName:db1 URL:/pgspider1/db1/ NodeName: pgspider1 URL:/pgspider1/ • Parent node define childe node name using child node foreign information • Parent node management child node name only. Parent node does not management child-child node name. • Node location is concatenate child node name • Node name split by ’/’ , “/Child Node name/Child-child Node name/…” ・・・ ・・・ NodeName: db3 URL:/db3/ NodeName:db1 URL:/pgspider1/db2/ db3 db2db1 PGSpider1 Foreign Server Name FDW PGSpider PGspiderFDW pgspider1 PGspiderFDW db3 PostgreSQLFDW Foreign Server Name FDW pgspider1 PGspiderFDW db1 PostgreSQLFDW db2 PostgreSQLFDW PGSpider
  • 30. 29© 2019 Toshiba Corporation Add new meaning for “IN” clause (1) • Add new meaning to “IN” clause • Use write after Table clause • e.g.: SELECT * FROM test IN (‘/pgspider1/db1/’) WHERE i =1; • If user want to get some nodes, use comma • e.g.: SELECT * FROM test IN (‘/pgspider1/db1/’, ‘/db3/’ ) WHERE i =1; id text 2 b id text 3 c 4 d db3 id text 1 a PGSpider PGSpider1 db2db1 id text 1 a PostgreSQL engine SELECT * FROM test IN (‘/pgspider1/db1/’) id text 1 aGet only this db
  • 31. 30© 2019 Toshiba Corporation Add new meaning for “IN” clause (2) • In clause can specify PGSpider internal node • Get all data from the lower node id text 2 b id text 3 c 4 d db3 id text 1 a 2 b PGSpider PGSpider1 db2db1 id text 1 a PostgreSQL engine SELECT * FROM test IN (‘/pgspider1/’) Get only this db
  • 32. 31© 2019 Toshiba Corporation Get node location with record • User wants to get where the retrieved record was • In many case, table doesn’t have location information id text 2 b id text 3 c 4 d db3 PGSpider PGSpider db2db1 id text 1 a User can not get node name with record id text 1 a 2 b 3 c 4 d Where node’s ? SELECT * FROM test ;
  • 33. 32© 2019 Toshiba Corporation Solution of get node location with record • pgspider_core extend and set Nodename column • Setting data is Node location, because this is unique name in PGSpider id text 2 b id text 3 c 4 d db3 PGSpider db2db1 id text 1 a id text Nodename 1 a /pgs1/db1/ 2 b /pgs1/db2/ 3 c /db3/ 4 d /db3/ Nodename /db1/ /db2/ /db3/ /db3/ id text 1 a 2 b 3 c 4 d extend
  • 34. 33© 2019 Toshiba Corporation Issue of getting node location column • If pgspider_core create plantree from PGSpider’s query tree, data sources will be error occurred. • Data sources do not have Nodename column. But pgspider_core ’s query tree has Nodename column id text 2 b id text 3 c 4 d db3 PGSpider PGSpider1 db2db1 id text 1 a id text Nodename 1 a /db1/ 2 b /db2/ PostgreSQL Engine SELECT id,text,Nodename FROM t; id text Nodename 1 a /pgspider1/db1/ 2 b /pgspider1/db2/ 3 c /db3/ 4 d /db3/ SELECT id,text,Nodename FROM t;SELECT id,text,Nodename FROM t; SELECT id,text, Nodename FROM t; NodenameというNodeName列 存在しないため、エラーが発生 Child node does not have NodeName column,
  • 35. 34© 2019 Toshiba Corporation Change query-tree for node location column • If Child node is data source, then delete operation which use Nodename column from query tree. Parent query- tree Child query tree copy Child plan tree Parent plan- tree executer executer Child query tree Create id text Nodena me Column list id text Nodena me Column list Child node: PGSpider Child node: PGSpider Delete Nodename column PGSpider has Nodename column, not delete. changed child plan-tree Child plan tree id text Nodena me Column list executer
  • 36. 35© 2019 Toshiba Corporation Extend result • After the execute query, pgspider_core create Nodename column data when get record from child node result • If child node is data source, pgspider_core exetend Nodename column to result slot and set Data source name (Child node name) • If child node is PGSpider, pgspider_core concat child node Nodename column and child Datasouce Name id text 2 b id text 3 c 4 ddb3 id text Nodename 1 a /pgs1/db1/ 2 b /pgs1/db2/ 3 c /db3/ 4 d /db3/ PGSpider PGSpider1 db2db1 id text 1 a id text Nodena me 1 a /db1/ 2 b /db2/ id text Nodena me 1 a /db1/ 2 b /db2/ id text 1 a id text 3 c 4 d getting record return recode to parent id text 2 b Nodena me /db1/ /db2/ Nodena me /db1/ /db2/ Nodename /pgspider1/db1/ /pgspider1/db2/ /db3/ /db3/ getting record return recode to user
  • 37. 36© 2019 Toshiba Corporation Result postgres=# SELECT * FROM test ORDER BY id; id | name | NodeName ----+------+---------------- 1 | a | /pgspider1/db1/ 2 | b | /pgspider1/db2/ 3 | c | /db3/ 4 | d | /db3/ (connect to data source) postgres=# SELECT * FROM test; id | name ----+------ 3 | c 4 | d PGSpider(Top node) can get NodeName column Data source does not have NodeName column
  • 38. 37© 2019 Toshiba Corporation KeepAlive process • KeepAlive process
  • 39. 38© 2019 Toshiba Corporation KeepAlive • If PGSpide_core can not connect to child node, then wait timeout time. • PGSpider can not finish query, sometimes it takes long time • If some nodes are dead, then take more time … • Dead nodes might revive. PGSpider should check child node in every query. • Create another process “Alive check”
  • 40. 39© 2019 Toshiba Corporation KeepAlive feature • Alive check process is BackGroundWorkerProcess • Alive check process create node state list on PostgreSQL Shared memory. This list share by Backend process. • Alive check process ping to all child nodes. • Change child node list to Dead when ping is failed • Change child node list to Alive when ping is success • Backend process check child node status before execute query • If child node status is dead, then doesn’t create regading child node thread.
  • 41. 40© 2019 Toshiba Corporation Node dead case postmaster writer autovacuum postgers(backend) thread1 thread2 pgspider_core Data source1 FDW Data source2 FDW Data source1 Data source2 application : Background process Alive Check SharedMemory Check with PING Name status Data souce1 Alive Data souce2 Dead If node status is Dead, then don’t create thread. query
  • 42. 41© 2019 Toshiba Corporation Performance measurement • Performance measurement
  • 43. 42© 2019 Toshiba Corporation Environment • Environment • Top node is virtual machine • OS : CentOS7 • CPU : 2cores • memory : 2GB • 8 child nodes • OS : CentOS for Raspberry Pi • CPU : ARM 4cores • memory : 1GB memory • PostgreSQL 11.5 • Execute 2 SQL • SELECT with WHERE, SELECT with SUM() • Changing number of node 1-8 • Data • db1-db8 has 100MB data (1KB reords, num of 100K records) db4db1 db2 db3 db8db5 db6 db7 PGSpider or PostgreSQL
  • 44. 43© 2019 Toshiba Corporation Result SELECT query
  • 45. 44© 2019 Toshiba Corporation Result SUM query
  • 46. 45© 2019 Toshiba Corporation Result SUM query (only PGSpider)
  • 47. 46© 2019 Toshiba Corporation Summary • PGSpider can get data from a lot of the node using one SQL with Multi Tenant feature • Control pushdown and segregation query • Get part of node data and record location column • Avoid connection timeout time with alive check process
  • 48. 47© 2019 Toshiba Corporation Thank you
  • 49. 48© 2019 Toshiba Corporation Questions? email: shigeo.hirose@toshiba.co.jp