Skip to content

Examples

Examples of HTN tunables⚓︎

HTN tunables control Kubernetes cluster configuration by specifying services, pools, and containers. Add these values to the hydrolixcluster.yaml file in the spec: section.

Format structure for HTN tunables⚓︎

HTN tunables follow a specific naming convention:

htn:tunable_name:service_name:pool_name:container_name: value

The key components for each HTN tunable are:

  • htn: Prefix indicates the tunable uses the HTN naming structure
  • tunable_name: The tunable parameter name
  • service_name: (Optional) The service where the tunable is applied, can be omitted by using an empty string
  • pool_name: (Optional) The pool in the service, can be left empty
  • container_name: (Optional) The specific container in the pool and service, can be left empty
  • value: The tunable value

Basic examples⚓︎

These basic examples are a starting point to learn how to use HTN tunables for cluster configuration.

Define a tunable for a specific service⚓︎

In this example, the alter-peer service and all attached pools and services, are limited to 10% of the available server memory.

htn:max_server_memory_usage_perc:alter-peer::: 10

Define a tunable for a specific service and pool⚓︎

In this example, the merge-peer-ii pool in the merge-peer service and its included containers are limited to 70% of the available server memory.

htn:max_server_memory_usage_perc:merge-peer:merge-peer-ii:: 70

Define a tunable for a specific service, pool, and container⚓︎

In this example, the turbine containers in the merge-peer-ii pool in the merge-peer service are limited to 30% of the available server memory.

htn:max_server_memory_usage_perc:merge-peer:merge-peer-ii:turbine: 30

Add all tunables to the hydrolixcluster.yaml file⚓︎

In this example, we add the previous HTN tunables to configure the max server memory usage allotted to different services, pools, and containers.

apiVersion: hydrolix.io/v1
kind: HydrolixCluster
metadata:
  name: hdx
  namespace: dev
spec:
  ...omitting other tunables...
  max_server_memory_usage_perc: 50
  htn:max_server_memory_usage_perc:alter-peer::: 10
  htn:max_server_memory_usage_perc:intake-head::: 30
  htn:max_server_memory_usage_perc:merge-peer:merge-peer-ii:: 70

Practical examples⚓︎

Use these examples for more specific and advanced cluster configuration.

Set io_perf_mappings for specific services⚓︎

In this example, we set the io_perf_mappings tunable at the service level for the query-head and merge-peer services.

htn:io_perf_mappings:query-head::: new_value
htn:io_perf_mappings:merge-peer::: new_value

Configure max_concurrent_queries for a turbine container⚓︎

In this example, we apply a limit of 50 max_concurrent_queries to the turbine container in the alter-peer and batch-peer services.

htn:max_concurrent_queries:alter-peer::turbine: 50
htn:max_concurrent_queries:batch-peer::turbine: 50

Apply a value across a pool⚓︎

In this example, we apply a limit of 100 max_concurrent_queries at the pool level, including all services and containers in the merge-peer-iii pool.

htn:max_concurrent_queries::merge-peer-iii:: 100