Scope

This page explains how the scope parameter is used in query routing in kdb Insights Enterprise.

The scope parameter is a distinguished request parameter that is used in routing decisions. It is similar to labels in that it determines the target Data Access Processes (DAPs) that service the request (see routing and labels), but it differs in that it also influences which Resource Coordinator (RC) is chosen by the Gateway (GW).

The scope parameter is specified in the request arguments as a dictionary. The keys in the dictionary determine which RC the GW chooses and which DAPs the RC ultimately chooses.

key

type

description

assembly

symbol

Single package to target.

tier

symbol

Single Data tier to target. Note that this parameter is supported only if scope.assembly is specified.

dap

symbol

Specific DAP to target (see DAPs). Note that this parameter is supported only if scope.assembly is specified.

Dedicated and global resource coordinators

RCs deployed as part of a package are considered dedicated RCs. RCs deployed in the base insights install are considered global RCs.

Gateway to Resource Coordinator

The scope parameter is specified in the request arguments. For example:

q

Copy
gw:hopen`:gateway_host:1234 # Open connection to GW
gw(`.kxi.getData;`table`scope!(`myTable;enlist[`assembly]!enlist`myAssembly);`;()!()) # Target "myAssembly"

If specified, the Service Gateway attempts to send to an RC in the specified package. If no RC in the specified package is found, then the Service Gateway does one of two things based on the value of the KXI_SCOPE_AFFINITY environment variable.

  • If KXI_SCOPE_AFFINITY="hard" (default), then the request fails immediately with a No resources connected error.

  • If KXI_SCOPE_AFFINITY="soft", then the GW sends to a global RC, and that RC is then responsible for routing to DAPs of the correct package.

If the scope parameter is not specified in the request arguments, the GW targets one of the global RCs.

Data tiers

Data tiers are described under the daps key of the shard file within a package. The existing tiers are defined as follows:

  • The instances names, if the scaling configuration is of type mountName.

  • The names contained within the mountList, if the scaling configuration is of type mountList.

See scaling-configurations for details.

All available tiers are listed in getMeta.dap under the instance column.

Warning

The .scope.tier parameter is not supported by .kxi.sql. Attempting such a request fails with an Invalid scope, tier - nyi error.

DAPs

Can target individual DAPs via scope.dap option. All available DAPs are listed in getMeta.dap under the dap column when the advanced option is set as true.

Warning

The .scope.dap parameter is not supported by .kxi.sql. Attempting such a request fails with an Invalid scope, tier - nyi error.