More Related Content
Similar to PGConf.ASIA 2019 - PGSpider High Performance Cluster Engine - Shigeo Hirose (20)
More from Equnix Business Solutions (20)
PGConf.ASIA 2019 - PGSpider High Performance Cluster Engine - 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
- 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 .
- 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
- 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
- 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
- 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