-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathcompression_merge_race.out
More file actions
142 lines (114 loc) · 4.13 KB
/
Copy pathcompression_merge_race.out
File metadata and controls
142 lines (114 loc) · 4.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
Parsed test spec with 3 sessions
starting permutation: s3_count_chunks_pre_compression s3_lock_compression s1_compress_first_half_of_chunks s2_compress_second_half_of_chunks s3_unlock_compression s3_count_chunks_post_compression
step s3_count_chunks_pre_compression:
select count(*), 48 as expected from show_chunks('sensor_data');
count|expected
-----+--------
48| 48
step s3_lock_compression:
SELECT debug_waitpoint_enable('compress_chunk_impl_start');
debug_waitpoint_enable
----------------------
step s1_compress_first_half_of_chunks:
call compress_chunks_in_individual_transactions(
$$
select show_chunks('sensor_data') limit 24
$$
);
<waiting ...>
step s2_compress_second_half_of_chunks:
call compress_chunks_in_individual_transactions($$select show_chunks('sensor_data') i offset 24$$);
<waiting ...>
step s3_unlock_compression:
SELECT debug_waitpoint_release('compress_chunk_impl_start');
<waiting ...>
step s1_compress_first_half_of_chunks: <... completed>
step s2_compress_second_half_of_chunks: <... completed>
step s3_unlock_compression: <... completed>
debug_waitpoint_release
-----------------------
step s3_count_chunks_post_compression:
select count(*), 24 as expected from show_chunks('sensor_data');
count|expected
-----+--------
24| 24
starting permutation: s3_count_chunks_pre_compression s3_lock_compression s1_compress_first_two_by_two s2_compress_second_two_by_two s3_unlock_compression s3_count_chunks_post_compression
step s3_count_chunks_pre_compression:
select count(*), 48 as expected from show_chunks('sensor_data');
count|expected
-----+--------
48| 48
step s3_lock_compression:
SELECT debug_waitpoint_enable('compress_chunk_impl_start');
debug_waitpoint_enable
----------------------
step s1_compress_first_two_by_two:
call compress_chunks_in_individual_transactions(
$$
select i.show_chunks
from (
select row_number() over () as row_number, i as show_chunks
from show_chunks('sensor_data') i
) i where i.row_number%4 in (1,2)
$$);
<waiting ...>
step s2_compress_second_two_by_two:
call compress_chunks_in_individual_transactions(
$$
select i.show_chunks
from (
select row_number() over () as row_number, i as show_chunks
from show_chunks('sensor_data') i
) i where i.row_number%4 in (3,0)
$$);
<waiting ...>
step s3_unlock_compression:
SELECT debug_waitpoint_release('compress_chunk_impl_start');
<waiting ...>
step s1_compress_first_two_by_two: <... completed>
step s2_compress_second_two_by_two: <... completed>
step s3_unlock_compression: <... completed>
debug_waitpoint_release
-----------------------
step s3_count_chunks_post_compression:
select count(*), 24 as expected from show_chunks('sensor_data');
count|expected
-----+--------
24| 24
starting permutation: s1_compress_single_chunk s1_compress_all_chunks_single_transaction s3_select_on_compressed_chunk s3_wait_for_finish s1_compress_finish
step s1_compress_single_chunk:
select compress_chunk(c, true) is not null as compress from show_chunks('sensor_data') c limit 1;
compress
--------
t
step s1_compress_all_chunks_single_transaction:
BEGIN;
select count(compress_chunk(c, true)) from show_chunks('sensor_data') c;
s1: NOTICE: chunk "_hyper_X_X_chunk" is already converted to columnstore
count
-----
48
step s3_select_on_compressed_chunk:
DO $$
DECLARE
comp_chunk regclass;
BEGIN
SELECT cs.compress_relid
INTO comp_chunk
FROM _timescaledb_catalog.hypertable h
INNER JOIN _timescaledb_catalog.chunk c
ON h.id = c.hypertable_id
INNER JOIN _timescaledb_catalog.compression_settings cs
ON cs.relid = c.relid
WHERE h.table_name = 'sensor_data'
AND cs.compress_relid IS NOT NULL;
EXECUTE format('SELECT *
FROM %s
WHERE sensor_id = 40
AND temperature IS NOT NULL;',
comp_chunk);
END;
$$;
step s3_wait_for_finish:
step s1_compress_finish:
COMMIT;