DVS URIs
Last update: 17.04.2023Description of URIs used in DVS API.
Description of URIs used in DVS API.
DVS URIs
Dynamic Visualization Store URIs
Table of Contents
URI Overview
URIs are used in the DVS API and DVS Files to specify protocol's, locations, and options. They are mainly used during server creation to specify the communication protocol being used, where to connect, and in the DVS Cache to determine what type of cache to use, where it is located, filter specifics on what to load or not load from the cache, and compression levels if needed.
Server URIs
The Server URI specifies what transport protocol to use, the machine and port to connect to if using a network connection. This is used by dvs_server_create() or DVS::CREATE_SERVER_INSTANCE() to create a server to connect to.
Server URI Format | Description |
---|---|
{protocol}:{hostname}:{port} | Used to create server stub for client to connect |
Protocols | Description |
---|---|
grpc | Use gRPC for communication |
null | Use direct method calls, no network communication |
Note: Use all lower case for the protocol
Example URI | Description |
---|---|
grpc://localhost:50051 | Connect to same computer on port 50051 using gRPC |
grpc://127.0.0.1:12345 | Connect to same computer's IPv4 address on port 12345 using gRPC |
grpc://computer.ansys.com:12345 | Connect to hostname on port 12345 using gRPC |
null:// | Connect to server running in same process using direct method calls, no network communication |
Cache URIs
Cache URIs are used to specify what domain/type of DVS Cache to use, the host and port of the machine to connect if needed, the path of the cache on the machine, filters and options. Cache URIs are used by both the DVS API if wanting to cache data or a DVS Files to load data previously cached. The URI is set via the API by calling dvs_server_set_option()
in tha C API or DVS::IServer::set_option()
in the C++ API, using "CACHE_URI" as the key, and the URI as the value.
Example: dvs_server_set_option("CACHE_URI", "hdf5://localhost:1234/D:/temp/cache")
Cache URI Format | Description |
---|---|
{domain}://{hostname}:{port}/path/to/cache?key=value&key2=value2 | Format of a cache URI |
Cache URI Domain
The first part of the Cache URI is the domain, domain options below. It is separated from the hostname by '://'.
Domains | Description |
---|---|
hdf5 | Uses HDF5 for blob store and sqlite for metadata store |
disk | Deprecated binary file blob store and sqlite for metadata store |
Cache URI Hostname/Port
The hostname and port portion of the URI are next, separated by ':'. The hostname and port aren't currently used but will be in the future when applicable.
Cache URI Path
The path in the cache URI can be relative or absolute. A relative path in a URI for a server option will store the cache relative to the working directory of the server data is being sent to. A relative path in a DVS Files will be relative to the location of the file itself.
Example URIs | Description |
---|---|
hdf5://localhost:1234/D:/temp/my_cache | Use hdf5 cache, localhost/port ignored, cache location D:/temp/my_cache for Windows |
hdf5://localhost:1234/./ | Use hdf5 cache, localhost/port ignored, cache location in current working directory of server or same directory as DVS Files |
hdf5://localhost:1234//home/user/my_cache/ | Use hdf5 cache, localhost/port ignored, cache location /home/user/my_cache on Linux |
Cache URI Options
Key/Value pair options can be set in the URI after '?' character. Options are separated with '&' characters.
Example: hdf5://localhost:1234/D:/my_cache/?option1=value1&option2=value2
Cache URI Options | Description |
---|---|
query | Query stanzas to filter what is loaded from the cache. See Query Stanzas |
compression | Default: 0, No compression. 1: Best compression speed; least compression. 2-8: Compression improves; speed degrades. 9: Best compression ratio; slowest speed. See Cache Compression. |
Cache URI Examples
Cache URI Example | Description |
---|---|
hdf5:///D:/my_cache/?query=/dataset.name/eq/Dataset1|Dataset2//and/var.name/neq/pressure//and/plot.name/eq/my+plot | Load entries from Dataset1 OR Dataset2. Do not load vars with name 'pressure'. Only load plots named 'my plot'. |
hdf5:///D:/my_cache/?query=/dataset.name/eq/Dataset1|Dataset2|Dataset3 | Load entries from Dataset1 OR Dataset2 OR Dataset3 |
hdf5:///D:/my_cache/?query=/dataset.name/eq/Dataset+1|Dataset+2//and/rank/mod/3|0 | Load all cache entries from 'Dataset 1' OR 'Dataset 2' where rank % 3 == 0 |
hdf5:///D:/my_cache/?query=/part.name/eq/inlet* | Load all cache entries for parts with partial name inlet, i.e. inlet 1, inlet 2 etc |
hdf5:///D:/my_cache/?query=/dataset.name/eq/my+dataset//and/timestep/rngi/1.2|2.3 | Load all cache entries from 'my dataset' where time >= 1.2 and time <= 2.3 |
hdf5:///D:/my_cache/?query=/part.name/neq/inlet*|outlet* | Load all cache entries for parts that do not partial match 'inlet' OR 'outlet' |
Cache Compression
Cache compression is off by default. It can be enabled by adding a query parameter of compression=value at the end of the uri.
Note: Values/queries at the end of a URI are separated by '&'
Compression Example | Description |
---|---|
hdf5:///./my_cache/ | No compression |
hdf5:///./my_cache/?compression=0 | No compression |
hdf5:///./my_cache/?compression=9 | Max compression |
hdf5:///./my_cache/?query=/dataset.name/eq/my+dataset//&compression=9 | Max compression with a Query Stanzas |