On 9 July 2018 at 04:18, Imai, Yoshikazu <imai.yoshik...@jp.fujitsu.com> wrote:
>> # script_ordered.sql >> INSERT INTO ordered (value) VALUES ('abcdefghijklmnoprsqtuvwxyz'); >> >> # script_unordered.sql >> \set i random(1, 1000000) >> INSERT INTO unordered VALUES (:i, 'abcdefghijklmnoprsqtuvwxyz'); >> # results >> ordered, master: 157473 TPS >> ordered, patched 231374 TPS >> unordered, master: 232372 TPS >> unordered, patched: 232535 TPS > > # my results > ordered, master: 186045 TPS > ordered, patched: 265842 TPS > unordered, master: 313011 TPS > unordered, patched: 309636 TPS > > I confirmed that this patch improves ordered insertion. Looks good Please can you check insertion with the index on 2 keys 1st key has 10,000 values 2nd key has monotonically increasing value from last 1st key value So each session picks one 1st key value Then each new INSERTion is a higher value of 2nd key so 1,1, then 1,2 then 1,3 etc Probably easier to do this with a table like this CREATE UNLOGGED TABLE ordered2 (id integer, logdate timestamp default now(), value text not null, primary key (id, logdate)); # script_ordered2.sql \set i random(1, 10000) INSERT INTO ordered2 (id, value) VALUES (:i, 'abcdefghijklmnoprsqtuvwxyz'); Thanks -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services