You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* TimescaleDB supports `distributing hypertables` across multiple nodes (i.e., a cluster).
231
346
A multi-node TimescaleDB implementation consists of:
232
347
one access node to handle ingest, data routing and act as an entry point for user access;
233
348
one or more data nodes to store and organize distributed data.
234
349
350
+
* A distributed hypertable exists in a `distributed database` that consists of multiple databases stored across one or more TimescaleDB instances.
351
+
A database that is part of a distributed database can assume the role of either an `access node` or a `data node` (but not both).
352
+
While the data nodes store distributed chunks, the access node is the entry point for clients to access distributed hypertables.
353
+
235
354
* A client connects to an `access node` database.
236
355
You should not directly access hypertables or chunks on data nodes.
237
356
Doing so might lead to inconsistent distributed hypertables.
238
357
239
358
* TimescaleDB can be elastically scaled out by simply `adding data nodes` to a distributed database.
240
359
TimescaleDB can (and will) adjust the number of space partitions as new data nodes are added.
241
360
Although existing chunks will not have their space partitions updated, the new settings will be applied to newly created chunks.
361
+
362
+
* To ensure best performance, you should partition a distributed hypertable by both `time and space`.
363
+
If you only partition data by time, that chunk will have to fill up before the access node chooses another data node to store the next chunk.
364
+
Chunks would then be created on data nodes in `round-robin` fashion.
365
+
In case of multiple space partitions, `only the first space partition` will be used to determine how chunks are distributed across servers (hash partitioning).
366
+
Multi-dimensional partitioning with an additional "space" dimension that consistently partitions the data over the data nodes, similar to traditional `sharding`.
367
+
368
+
* A distributed hypertable can be configured to write each chunk to multiple data nodes in order to replicate data at the chunk level.
369
+
This `native replication` ensures that a distributed hypertable is protected against data node failures
370
+
and provides an alternative to fully replicating each data node using streaming replication.
371
+
When querying a distributed hypertable using native replication, the `query planner` knows how to include only one replica of each chunk in the query plan.
372
+
The planner can employ different strategies to pick the set of chunk replicas in order to, e.g., evenly spread the query load across the data nodes.
373
+
Native replication is currently `under development` and lacks functionality for a complete high-availability solution.
374
+
It's recommended keeping the replication factor set at the default value of 1, and instead use streaming replication on each data node.
375
+
376
+
* The current version does not support altering or inserting data into `compressed` chunks. The data can be queried without any modifications,
377
+
however if you need to `backfill` or update data in a compressed chunk you will need to `decompress` the chunk(s) first.
378
+
TimescaleDB also `block modifying` the schema of hypertables with compressed chunks.
0 commit comments