Server starter Freshness checker | Disabled Timeout = 10 minutes Freshness threshold = 10 seconds | Enabled Timeout = 70 minutes Freshness threshold = 1 minute | Enable the freshness checker by default. The server will wait for the specified timeout for it to catch up with the corresponding real-time stream so that freshness is below a certain threshold. | This will avoid servers to start serving queries before they’re fully caught up and avoid stale results. One caveat is this will lead to longer server restart time. |
Server storage capacity (to pause ingestion) | < None > | 95% of server storage capacity | Block ingestion for all relevant tables when a given server in the tenant reaches 95% storage capacity. For real-time tables this means pausing the ingestion. For offline tables, this means stop scheduling new ingestion tasks. Note: This is a safeguard to protect the cluster. The user should be already alerted at this point (disk full threshold of 90%). | Reduces the bytes written to the ZK log, especially useful in clusters where a large number of segments exist. This in turn, reduces the load on Zookeeper. |
V4 Forward Index | rawIndexWriterVersion = 2 | rawIndexWriterVersion = 4 | TEnable v4 forward index by default which is more scalable. Earlier version (v2) had a hard limit on the number of documents per segment. | Prevent segment build failures (eg: out of bounds exception) especially in cases where there are a lot of values per segment. In addition, V4 is also more memory efficient (Direct Memory). |
Index rebuild throttle (Server level) | < None > | Index throttle: 25% CPU cores StarTree Index throttle: 1 | Control how many indexes we can build in parallel on the server (eg: during startup). There are different limits imposed for the StarTree index as compared to other indexes. Note: All the configs related to segment level throttling can be changed dynamically by updating Cluster config. Documentation | These limits will help avoid excessive load on the Pinot server during segment rebuilds. One caveat is this will lead to a longer server restart time. |
Max parallel reloads (Server level) | 1 | Max refresh threads: Max(10, 25% CPU cores) | Controls how many parallel segment reloads can be done on a given server. | This limit has been raised, which will speed up the total segment reload time. However, also added limits to how fast indexes can be built during reload. In general, with all these settings, server restart time will be longer. |
Segment download throttle (Server level) | < None > | 25% of CPU cores | Controls how many segments can be downloaded in parallel on a given server. Works in conjunction with the existing table level throttle config (pinot.server.instance.table. level.max.parallel. segment.downloads). Note: All the configs related to segment level throttling can be changed dynamically by updating Cluster config. Documentation | This helps prevent an excessive number of segments being downloaded on a given server, thus preventing failures. One caveat is this will lead to a longer server restart time. |
MSE thread throttling | < None > | pinot.beta.multistage.engine.max.server.query.threads = 1000 | This config controls the number of threads that can be spawned on a Pinot server for executing MSE queries. | This prevents a server from crashing in case an expensive MSE query ends up spawning too many threads. |