Comments (2)
The problem is lack of distributed snapshot isolation. A basic solution is proposed in #6489
from citus.
pgbench -c 4 -T 100 -h 127.0.0.1 -p 5433 -f update.sql
I think I know the problem here. You distribute the table against the column 'shard_n'. (row goes to node1 if it is 1, to node2 if it is 2)
Assumption is that we increment a row and decrement another in each transaction, but this is wrong. id
check in WHERE
clause could cause no row is updated. Not all ids (random generated) exist in each node.
To fix the problem, you can change the insert query like below (to make sure all id in range (1,1024) exists in both shards):
INSERT INTO table_a (id, shard_n)
SELECT i, 1 FROM generate_series(1, 1024) c(i);
INSERT INTO table_a (id, shard_n)
SELECT i, 2 FROM generate_series(1, 1024) c(i);
from citus.
Related Issues (20)
- Uniformly distribute data in all shards
- rightComparisionLimit value in columnar_tableam HOT 2
- copy distributed table and reference table HOT 2
- Server crashes when trying to execute SELECT unnest(activate_node_snapshot()); HOT 2
- Server crashes when trying to execute SELECT unnest(shard_placement_rebalance_array(...); HOT 1
- Refactor serializing non-commutative write
- `cannot complete operation on a table with identity column` error during `create_distributed_table()` on 12.1 HOT 5
- Citus master_add_node Authentication Failure with ~/.pgpass File HOT 1
- Build for Debian 13 (trixie)
- multiple coordinators HOT 1
- "cannot modify commandid in active snapshot during a parallel operation" HOT 1
- Reduce overhead of building foreign constraint graph HOT 1
- Unexpected error when moving partition shards with different owners than the parent's
- It is not passable to create index concurrently on the partitioned table HOT 3
- Support to RHEL 9 HOT 3
- 12.1.3 release was not completed HOT 3
- Wrong assert in ruleutils_xx.c
- Possible null pointer dereference?
- Citus backup and restore questions HOT 2
- Tables distribution questions HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from citus.