Using Virtual Instances

Streaming Ingest

Today the default Virtual Instance is set to process streaming ingest for all collections. You cannot configure this behavior otherwise at this time.

Dedicated Streaming Ingest

Dedicated Streaming Ingest is an optional feature which provisions dedicated tailer infrastructure and applies configurations to deliver the best performance for your latency sensitive ingest operations. To learn more about this feature see here.

Collection Mounts: Making Data Available for Queries

A collection mount represents a relationship between a collection (storage) and a Virtual Instance (compute). Queries routed to a particular Virtual Instance can only access a given collection if that collection is mounted to the Virtual Instance. Collection mounts do not incur any additional storage costs, but they can incur additional CPU overhead on the Virtual Instance to which they are mounted.

Mounting and unmounting a collection should only take a few seconds, but sometimes it can take longer (up to one minute). You can manage collection mounts through the Virtual Instances Details page in the Rockset Console or directly through the Rockset API.

Routing Queries to Virtual Instances

In the Console Query Editor, you can select the Virtual Instance you're sending queries to:

You can also specify the Virtual Instance for queries through the Rockset API.

You can find the virtualInstanceId you need to use in the Virtual Instance details page with a copy button right next to it: Virtual Instance RRN

Copy the above ID use it with the query endpoint, as follows:

https://api.[region].rockset.com/v1/orgs/self/virtualinstances/[virtualInstanceId]/queries

Alternatively use the request body for executing Query Lambdas and include the virtualInstanceId field.

🚧

If no Virtual Instance is specified, the query will be routed to the default Virtual Instance.

Virtual Instance Configuration

Virtual Instances have additional configurations for advanced usage. The default values should be appropriate in most circumstances.

  • Auto-Suspend: If the Virtual Instance is not queried for a specified time, the Virtual Instance will automatically suspend and you will no longer be charged for running the Virtual Instance. By default, Virtual Instances will auto-suspend after 1 hour.
  • Mount Type: Rockset supports two different mount types that determine if the mounted collection will receive any updates from the underlying collection.
    • Live mounted collections will stay up-to-date with the underlying collection in real time. They will incur a small CPU overhead required to process streaming updates to your underlying collections. This is the default value, and live mounts should be used in most situations.

      🚧

      Live mounts are temporarily not supported for Small Virtual Instances.

      You can still use a Small default Virtual Instance to save on cost. Contact us for further assistance with architecting your Rockset org for an optimal price-performance.

    • Static mounted collections will not receive updates from the underlying collection. They can be used for queries where you don't expect the collection data to change. Static mounts will not incur the same CPU overhead, since they do not process any updates.
  • Remount on Resume: If this setting is enabled, suspending a Virtual Instance will not unmount all collections. Instead, the collections will be suspended and remounted when the Virtual Instance is resumed. By default, remount on resume is enabled. You may want to disable this setting if you do not want to incur the CPU overhead of mounting collections that are unused.
  • Auto-Scaling (Beta): Set a CPU-based vertical auto-scaling policy on your main VI to automatically adjust Virtual Instance size according to current workload demands. Learn more about this feature on our Virtual Instance Auto-Scaling documentation.

These settings can be configured upon Virtual Instance creation under "Additional Configuration" in the console or through the API.

Managing Virtual Instances

Suspending and Resuming

Virtual Instances can be suspended and resumed. Suspending a VI will unmount all collections. Collections will not be automatically remounted when the Virtual Instance is resumed, except for ingest Virtual Instances.

You can configure an Auto-Suspend Policy for a Virtual Instance. The Virtual Instance will suspend itself if it does not receive new queries during this duration.

Monitoring

You can find metrics specific to each Virtual Instance in the Console. The main Metrics tab has a 'Virtual Instance' selector, and each Virtual Instance Details page will also include some metrics.

The Metrics Endpoint will include Virtual Instance as a label in all compute-related metrics by default - allowing you to monitor each Virtual Instance independently as needed.

Access Management

You can scope privileges to specific Virtual Instances to restrict access to them. The following privileges can be given:

  • Create: allows creating new Virtual Instances
  • Query: allows sending queries to a particular VI
  • Update: allows upsizing and downsizing as well as mounting/unmounting collections for a particular VI
  • Suspend/Resume: allows suspending and resuming a particular VI
  • Delete: allows deletion

You can find the full Role-Based Access Control reference here.