I have a question regarding multi-node setup. I’d like to know if it’s possible to horizontally scale not only reading but also writing. For what I’ve seen in the documents and in this forum any number or data nodes can be added to a cluster but what about access nodes ? Can we add more than one in order to maximize our ingestion capabilities and improve availability? I’ve been able to achieve 50K inserts per second with timescaledb parallel copy on one access node backed by three data nodes which is pretty good but I’d like to understand what are our options for scaling.
Hi, you can only have a single primary access node. Timescale uses the access node to determine which data nodes to send writes to and coordinate transactions among the data nodes for those writes. While you can use Postgres streaming replication along with other other tools to provide both HA and a read replica for the access node you cannot horizontally scale the access node for writes.
With that being said I have achieved ~1million rows/sec using a single access node with 6 data nodes using a replication factor of 3. The access nodes and data nodes all had 64 cores, 256 GB RAM, NVMe drives, and 25 Gbps network connections. The network throughput on the access node was around 3 Gbps.