It's neat see see that by default, on a three node cluster, initially node 1 will have a cache of sequences ranging from 1-250,000, node 2 will have a cache of sequences ranging from 250,001 – 500,000 and node 3 will have a cache of sequences ranging from 500,001 to 750,000!
Example:
On Node 1:
Code: Select all
dbadmin=> create table jim (node varchar(10), seq int);
CREATE TABLE
dbadmin=> create sequence jim_seq;
CREATE SEQUENCE
dbadmin=> insert into jim select 'node1', jim_seq.nextval;
OUTPUT
--------
1
(1 row)
dbadmin=> select * from jim;
node | seq
-------+-----
node1 | 1
(1 row)
dbadmin=> commit;
COMMIT
Code: Select all
dbadmin=> insert into jim select 'node2', jim_seq.nextval;
OUTPUT
--------
1
(1 row)
dbadmin=> select * from jim;
node | seq
-------+--------
node2 | 250001
node1 | 1
(2 rows)
dbadmin=> commit;
COMMIT
Code: Select all
dbadmin=> insert into jim select 'node3', jim_seq.nextval;
OUTPUT
--------
1
(1 row)
dbadmin=> select * from jim;
node | seq
-------+--------
node2 | 250001
node3 | 500001
node1 | 1
(3 rows)
dbadmin=> commit;
COMMIT
Code: Select all
dbadmin=> insert into jim select 'node1', jim_seq.nextval;
OUTPUT
--------
1
(1 row)
dbadmin=> select * from jim;
node | seq
-------+--------
node2 | 250001
node3 | 500001
node1 | 1
node1 | 750001
(4 rows)
dbadmin=> commit;
COMMIT
Code: Select all
dbadmin=> insert into jim select 'node2', jim_seq.nextval;
OUTPUT
--------
1
(1 row)
dbadmin=> select * from jim;
node | seq
-------+---------
node2 | 250001
node3 | 500001
node1 | 1
node1 | 750001
node2 | 1000001
(5 rows)
dbadmin=> commit;
COMMIT
Code: Select all
dbadmin=> insert into jim select 'node3', jim_seq.nextval;
OUTPUT
--------
1
(1 row)
dbadmin=> select * from jim;
node | seq
-------+---------
node1 | 1
node1 | 750001
node3 | 1250001
node2 | 250001
node3 | 500001
node2 | 1000001
(6 rows)
dbadmin=> commit;
COMMIT