Skip to content

Commit be3b58a

Browse files
authored
Merge pull request #310 from somratdutta/patch-2
Refactor `postgresql-tuned` Benchmark: Optimize Data Insertion with Column Padding Alignment
2 parents 5e91268 + b312c49 commit be3b58a

File tree

3 files changed

+94
-92
lines changed

3 files changed

+94
-92
lines changed

postgresql-tuned/benchmark.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ chmod 666 hits.tsv
2323

2424
sudo -u postgres psql -t -c 'CREATE DATABASE test'
2525
sudo -u postgres psql test -t < create.sql
26-
time split hits.tsv --verbose -n r/$(( $(nproc)/2 )) --filter='sudo -u postgres psql test -t -c "\\copy hits FROM STDIN"'
26+
27+
# Using COPY with explicit column mapping to ensure correct alignment.
28+
time split hits.tsv --verbose -n r/$(( $(nproc)/2 )) --filter='sudo -u postgres psql test -t -c "\\copy hits (WatchID, JavaEnable, Title, GoodEvent, EventTime, EventDate, CounterID, ClientIP, RegionID, UserID, CounterClass, OS, UserAgent, URL, Referer, IsRefresh, RefererCategoryID, RefererRegionID, URLCategoryID, URLRegionID, ResolutionWidth, ResolutionHeight, ResolutionDepth, FlashMajor, FlashMinor, FlashMinor2, NetMajor, NetMinor, UserAgentMajor, UserAgentMinor, CookieEnable, JavascriptEnable, IsMobile, MobilePhone, MobilePhoneModel, Params, IPNetworkID, TraficSourceID, SearchEngineID, SearchPhrase, AdvEngineID, IsArtifical, WindowClientWidth, WindowClientHeight, ClientTimeZone, ClientEventTime, SilverlightVersion1, SilverlightVersion2, SilverlightVersion3, SilverlightVersion4, PageCharset, CodeVersion, IsLink, IsDownload, IsNotBounce, FUniqID, OriginalURL, HID, IsOldCounter, IsEvent, IsParameter, DontCountHits, WithHash, HitColor, LocalEventTime, Age, Sex, Income, Interests, Robotness, RemoteIP, WindowName, OpenerName, HistoryLength, BrowserLanguage, BrowserCountry, SocialNetwork, SocialAction, HTTPError, SendTiming, DNSTiming, ConnectTiming, ResponseStartTiming, ResponseEndTiming, FetchTiming, SocialSourceNetworkID, SocialSourcePage, ParamPrice, ParamOrderID, ParamCurrency, ParamCurrencyID, OpenstatServiceName, OpenstatCampaignID, OpenstatAdID, OpenstatSourceID, UTMSource, UTMMedium, UTMCampaign, UTMContent, UTMTerm, FromTag, HasGCLID, RefererHash, URLHash, CLID) FROM STDIN"'
2729

2830
sudo -u postgres psql test -t -c 'CREATE EXTENSION pg_trgm;'
2931
time sudo -u postgres psql test -t < index.sql

postgresql-tuned/create.sql

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,99 @@
1+
-- Optimized column order according to
2+
-- https://github.com/ClickHouse/ClickBench/issues/234
13
CREATE TABLE hits
24
(
35
WatchID BIGINT NOT NULL,
4-
JavaEnable SMALLINT NOT NULL,
5-
Title TEXT NOT NULL,
6-
GoodEvent SMALLINT NOT NULL,
6+
UserID BIGINT NOT NULL,
7+
FUniqID BIGINT NOT NULL,
8+
ParamPrice BIGINT NOT NULL,
9+
RefererHash BIGINT NOT NULL,
10+
URLHash BIGINT NOT NULL,
711
EventTime TIMESTAMP NOT NULL,
12+
ClientEventTime TIMESTAMP NOT NULL,
13+
LocalEventTime TIMESTAMP NOT NULL,
814
EventDate Date NOT NULL,
915
CounterID INTEGER NOT NULL,
1016
ClientIP INTEGER NOT NULL,
1117
RegionID INTEGER NOT NULL,
12-
UserID BIGINT NOT NULL,
18+
RefererRegionID INTEGER NOT NULL,
19+
URLRegionID INTEGER NOT NULL,
20+
IPNetworkID INTEGER NOT NULL,
21+
SilverlightVersion3 INTEGER NOT NULL,
22+
CodeVersion INTEGER NOT NULL,
23+
HID INTEGER NOT NULL,
24+
RemoteIP INTEGER NOT NULL,
25+
WindowName INTEGER NOT NULL,
26+
OpenerName INTEGER NOT NULL,
27+
SendTiming INTEGER NOT NULL,
28+
DNSTiming INTEGER NOT NULL,
29+
ConnectTiming INTEGER NOT NULL,
30+
ResponseStartTiming INTEGER NOT NULL,
31+
ResponseEndTiming INTEGER NOT NULL,
32+
FetchTiming INTEGER NOT NULL,
33+
CLID INTEGER NOT NULL,
34+
JavaEnable SMALLINT NOT NULL,
35+
GoodEvent SMALLINT NOT NULL,
1336
CounterClass SMALLINT NOT NULL,
1437
OS SMALLINT NOT NULL,
1538
UserAgent SMALLINT NOT NULL,
16-
URL TEXT NOT NULL,
17-
Referer TEXT NOT NULL,
1839
IsRefresh SMALLINT NOT NULL,
1940
RefererCategoryID SMALLINT NOT NULL,
20-
RefererRegionID INTEGER NOT NULL,
2141
URLCategoryID SMALLINT NOT NULL,
22-
URLRegionID INTEGER NOT NULL,
2342
ResolutionWidth SMALLINT NOT NULL,
2443
ResolutionHeight SMALLINT NOT NULL,
2544
ResolutionDepth SMALLINT NOT NULL,
2645
FlashMajor SMALLINT NOT NULL,
2746
FlashMinor SMALLINT NOT NULL,
28-
FlashMinor2 TEXT NOT NULL,
47+
TraficSourceID SMALLINT NOT NULL,
48+
SearchEngineID SMALLINT NOT NULL,
2949
NetMajor SMALLINT NOT NULL,
3050
NetMinor SMALLINT NOT NULL,
3151
UserAgentMajor SMALLINT NOT NULL,
32-
UserAgentMinor VARCHAR(255) NOT NULL,
3352
CookieEnable SMALLINT NOT NULL,
3453
JavascriptEnable SMALLINT NOT NULL,
3554
IsMobile SMALLINT NOT NULL,
3655
MobilePhone SMALLINT NOT NULL,
37-
MobilePhoneModel TEXT NOT NULL,
38-
Params TEXT NOT NULL,
39-
IPNetworkID INTEGER NOT NULL,
40-
TraficSourceID SMALLINT NOT NULL,
41-
SearchEngineID SMALLINT NOT NULL,
42-
SearchPhrase TEXT NOT NULL,
4356
AdvEngineID SMALLINT NOT NULL,
4457
IsArtifical SMALLINT NOT NULL,
4558
WindowClientWidth SMALLINT NOT NULL,
4659
WindowClientHeight SMALLINT NOT NULL,
47-
ClientTimeZone SMALLINT NOT NULL,
48-
ClientEventTime TIMESTAMP NOT NULL,
49-
SilverlightVersion1 SMALLINT NOT NULL,
60+
ClientTimeZone SMALLINT NOT NULL,SilverlightVersion1 SMALLINT NOT NULL,
5061
SilverlightVersion2 SMALLINT NOT NULL,
51-
SilverlightVersion3 INTEGER NOT NULL,
5262
SilverlightVersion4 SMALLINT NOT NULL,
53-
PageCharset TEXT NOT NULL,
54-
CodeVersion INTEGER NOT NULL,
5563
IsLink SMALLINT NOT NULL,
5664
IsDownload SMALLINT NOT NULL,
5765
IsNotBounce SMALLINT NOT NULL,
58-
FUniqID BIGINT NOT NULL,
59-
OriginalURL TEXT NOT NULL,
60-
HID INTEGER NOT NULL,
6166
IsOldCounter SMALLINT NOT NULL,
6267
IsEvent SMALLINT NOT NULL,
6368
IsParameter SMALLINT NOT NULL,
6469
DontCountHits SMALLINT NOT NULL,
6570
WithHash SMALLINT NOT NULL,
66-
HitColor CHAR NOT NULL,
67-
LocalEventTime TIMESTAMP NOT NULL,
6871
Age SMALLINT NOT NULL,
6972
Sex SMALLINT NOT NULL,
7073
Income SMALLINT NOT NULL,
7174
Interests SMALLINT NOT NULL,
7275
Robotness SMALLINT NOT NULL,
73-
RemoteIP INTEGER NOT NULL,
74-
WindowName INTEGER NOT NULL,
75-
OpenerName INTEGER NOT NULL,
7676
HistoryLength SMALLINT NOT NULL,
77+
HTTPError SMALLINT NOT NULL,
78+
SocialSourceNetworkID SMALLINT NOT NULL,
79+
HasGCLID SMALLINT NOT NULL,
80+
ParamCurrencyID SMALLINT NOT NULL,
81+
Title TEXT NOT NULL,
82+
URL TEXT NOT NULL,
83+
Referer TEXT NOT NULL,
84+
FlashMinor2 TEXT NOT NULL,
7785
BrowserLanguage TEXT NOT NULL,
7886
BrowserCountry TEXT NOT NULL,
7987
SocialNetwork TEXT NOT NULL,
8088
SocialAction TEXT NOT NULL,
81-
HTTPError SMALLINT NOT NULL,
82-
SendTiming INTEGER NOT NULL,
83-
DNSTiming INTEGER NOT NULL,
84-
ConnectTiming INTEGER NOT NULL,
85-
ResponseStartTiming INTEGER NOT NULL,
86-
ResponseEndTiming INTEGER NOT NULL,
87-
FetchTiming INTEGER NOT NULL,
88-
SocialSourceNetworkID SMALLINT NOT NULL,
89+
MobilePhoneModel TEXT NOT NULL,
90+
Params TEXT NOT NULL,
91+
SearchPhrase TEXT NOT NULL,
92+
PageCharset TEXT NOT NULL,
93+
OriginalURL TEXT NOT NULL,
8994
SocialSourcePage TEXT NOT NULL,
90-
ParamPrice BIGINT NOT NULL,
9195
ParamOrderID TEXT NOT NULL,
9296
ParamCurrency TEXT NOT NULL,
93-
ParamCurrencyID SMALLINT NOT NULL,
9497
OpenstatServiceName TEXT NOT NULL,
9598
OpenstatCampaignID TEXT NOT NULL,
9699
OpenstatAdID TEXT NOT NULL,
@@ -101,8 +104,6 @@ CREATE TABLE hits
101104
UTMContent TEXT NOT NULL,
102105
UTMTerm TEXT NOT NULL,
103106
FromTag TEXT NOT NULL,
104-
HasGCLID SMALLINT NOT NULL,
105-
RefererHash BIGINT NOT NULL,
106-
URLHash BIGINT NOT NULL,
107-
CLID INTEGER NOT NULL
107+
UserAgentMinor VARCHAR(255) NOT NULL,
108+
HitColor CHAR NOT NULL
108109
);
Lines changed: 46 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,58 @@
11
{
2-
"hide": true,
32
"system": "PostgreSQL (tuned)",
4-
"date": "2022-12-18",
3+
"date": "2025-02-26",
54
"machine": "c6a.4xlarge, 500gb gp2",
65
"cluster_size": 1,
76
"comment": "",
87

98
"tags": ["C", "row-oriented", "PostgreSQL compatible"],
109

11-
"load_time": 11800,
12-
"data_size": 128875248605,
10+
"load_time": 961,
11+
"data_size": 124200168218,
1312

1413
"result": [
15-
[4.10957,0.687829,0.702019],
16-
[3.92694,0.63874,0.636411],
17-
[262.331,262.793,262.826],
18-
[6.14366,1.16457,1.20297],
19-
[26.752,27.4474,27.4878],
20-
[50.6555,47.6136,49.2373],
21-
[0.035605,0.002266,0.002208],
22-
[1.07557,0.599462,0.597673],
23-
[18.537,17.4348,17.7942],
24-
[309.49,306.831,306.894],
25-
[7.78261,2.95749,3.00855],
26-
[325.58,315.688,319.237],
27-
[4.03189,2.31557,2.21055],
28-
[18.8998,10.0497,10.0307],
29-
[272.381,271.91,271.87],
30-
[5.91906,4.17788,4.21394],
31-
[15.6578,15.8794,15.937],
32-
[0.025629,0.001484,0.00153],
33-
[312.64,312.543,310.582],
34-
[0.026206,0.001114,0.001115],
35-
[13.1447,0.090463,0.104537],
36-
[0.11893,0.093162,0.090471],
37-
[18.7775,0.107025,0.110361],
38-
[0.131412,0.089608,0.087852],
39-
[0.048958,0.00153,0.001405],
40-
[0.016134,0.001351,0.001268],
41-
[0.021939,0.001781,0.00164],
42-
[265.557,260.971,261.025],
43-
[277.516,276.053,277.378],
44-
[7.56565,6.50964,6.54902],
45-
[266.723,266.389,266.231],
46-
[269.738,269.255,269.193],
47-
[331.115,330.011,330.913],
48-
[416.169,421.255,423.724],
49-
[408.434,409.538,407.552],
50-
[35.5578,18.1707,18.6893],
51-
[3.17403,0.652905,0.698142],
52-
[0.730699,0.489315,0.465665],
53-
[0.563463,0.319131,0.3182],
54-
[1.23744,0.989391,1.01963],
55-
[0.752814,0.509212,0.511453],
56-
[0.677541,0.435178,0.437736],
57-
[1.18281,0.688545,0.697523]
14+
[4.55106,0.825882,0.835958],
15+
[1.3028,0.76016,0.761406],
16+
[248.819,237.56,237.561],
17+
[7.04579,1.34299,1.34581],
18+
[7.91191,7.36054,7.35968],
19+
[10.3119,6.50381,6.49751],
20+
[0.040631,0.002174,0.002111],
21+
[1.33234,0.777105,0.793696],
22+
[10.5412,8.36085,8.35208],
23+
[280.187,268.314,268.97],
24+
[8.41774,2.1488,2.1112],
25+
[395.421,356.863,347.305],
26+
[4.39181,2.25356,2.25133],
27+
[20.5323,8.02412,7.97594],
28+
[257.184,245.345,245.825],
29+
[7.98618,4.0609,4.05276],
30+
[15.5288,14.9302,15.1727],
31+
[0.03288,0.002178,0.00239],
32+
[436.812,428.248,427.086],
33+
[0.033861,0.001788,0.001714],
34+
[17.2537,0.100896,0.098933],
35+
[0.139668,0.100188,0.103294],
36+
[23.3351,0.175404,0.170672],
37+
[0.148865,0.104383,0.104204],
38+
[0.081012,0.002489,0.002459],
39+
[0.032256,0.001963,0.002035],
40+
[0.047147,0.00287,0.002656],
41+
[250.457,234.574,234.556],
42+
[279.319,269.737,269.823],
43+
[7.19775,6.47416,6.4668],
44+
[251.776,239.973,239.781],
45+
[254.479,242.621,242.579],
46+
[313.787,303.113,302.732],
47+
[397.165,392.624,386.72],
48+
[394.053,391.471,386.272],
49+
[34.5791,19.2863,19.4159],
50+
[3.70989,0.680191,0.683414],
51+
[1.21359,0.643902,0.638466],
52+
[0.904187,0.318864,0.317382],
53+
[1.5944,0.988023,0.998162],
54+
[0.855038,0.276431,0.277085],
55+
[0.879695,0.296755,0.299309],
56+
[1.6142,0.642836,0.645469]
5857
]
5958
}

0 commit comments

Comments
 (0)