blob: 71065367a2b35e0d43b24a115376fd677ab2a425 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# HTTP connection settings
http {
# Base URL of the Polaris service
# Default: "http://localhost:8181"
base-url = "http://localhost:8181"
}
# Authentication settings
auth {
# OAuth2 client ID for authentication
# Required: Must be provided in configuration
client-id = null
# OAuth2 client secret for authentication
# Required: Must be provided in configuration
client-secret = null
}
# Dataset tree structure configuration
dataset.tree {
# JSON to supply as a StorageConfigInfo when creating a catalog
# Default: {"storageType": "FILE"}
storage-config-info = """{"storageType": "FILE"}"""
# Number of catalogs to create. Only the first catalog (C_0) will contain the test dataset.
# Default: 1
num-catalogs = 1
# Width of the namespace tree (N). Each namespace will have exactly N children
# For N > 1: Total namespaces = (N^D - 1)/(N - 1)
# For N = 1: Total namespaces = D
# Default: 2
namespace-width = 2
# Depth of the namespace tree (D), including root namespace
# Total number of leaf namespaces = N^(D-1)
# Default: 4
namespace-depth = 4
# Number of tables to create per leaf namespace (T)
# Total tables = N^(D-1) * T
# Default: 5
tables-per-namespace = 5
# Maximum number of tables to create. This parameter can be user to cap the
# number of tables otherwise created by the formula above. Must be less than
# N^(D-1) * T (computed total from tables-per-namespace). Use -1 to create
# all computed tables.
#
# Examples:
# * namespace-width=2, namespace-depth=20, tables-per-namespace=4 and max-tables=-1
# will create 1,048,575 namespaces (of which 524,288 are leaf namespaces) and 2,097,152 tables.
# * namespace-width=2, namespace-depth=20, tables-per-namespace=4 and max-tables=1000000
# will create 1,048,575 namespaces (of which 524,288 are leaf namespaces) and 1,000,000 tables.
#
# Default: -1
max-tables = -1
# Number of views to create per leaf namespace (V)
# Total views = N^(D-1) * V
# Default: 3
views-per-namespace = 3
# Maximum number of views to create. This parameter can be user to cap the
# number of views otherwise created by the formula above. Must be less than
# N^(D-1) * V (computed total from views-per-namespace). Use -1 to create
# all computed views.
#
# Examples:
# * namespace-width=2, namespace-depth=20, views-per-namespace=4 and max-views=-1
# will create 1,048,575 namespaces (of which 524,288 are leaf namespaces) and 2,097,152 views.
# * namespace-width=2, namespace-depth=20, views-per-namespace=4 and max-views=1000000
# will create 1,048,575 namespaces (of which 524,288 are leaf namespaces) and 1,000,000 views.
#
# Default: -1
max-views = -1
# Number of columns per table
# Default: 10
columns-per-table = 10
# Number of columns per view
# Default: 10
columns-per-view = 10
# Base location for datasets
# Default: "file:///tmp/polaris"
default-base-location = "file:///tmp/polaris"
# Number of properties to add to each namespace
# Default: 10
namespace-properties = 10
# Number of properties to add to each table
# Default: 10
table-properties = 10
# Number of properties to add to each view
# Default: 10
view-properties = 10
}
# Workload configuration
workload {
# Configuration for the CreateCommits simulation
create-commits {
# Number of table commits to create per second
# Default: 10
table-commits-throughput = 10
# Number of view commits to create per second
# Default: 5
view-commits-throughput = 5
# Duration of the simulation in minutes
# Default: 1
duration-in-minutes = 1
}
# Configuration for the ReadTreeDataset simulation
read-tree-dataset {
# Number of table operations to perform simultaneously
# This controls the concurrency level for table operations
# Default: 20
table-concurrency = 20
# Number of view operations to perform simultaneously
# This controls the concurrency level for view operations
# Default: 10
view-concurrency = 10
}
# Configuration for the CreateTreeDataset simulation
create-tree-dataset {
# Number of table operations to perform simultaneously
# This controls the concurrency level for table operations
# Default: 20
table-concurrency = 20
# Number of view operations to perform simultaneously
# This controls the concurrency level for view operations
# Default: 10
view-concurrency = 10
}
# Configuration for the ReadUpdateTreeDataset simulation
read-update-tree-dataset {
# Ratio of read operations to write operations
# Range: 0.0 to 1.0 where:
# - 0.0 means 100% writes
# - 1.0 means 100% reads
# Example: 0.8 means 80% reads and 20% writes
# Default: 0.5
read-write-ratio = 0.5
# Number of operations to perform per second
# Default: 100
throughput = 100
# Duration of the simulation in minutes
# Default: 5
duration-in-minutes = 5
}
# Configuration for the WeightedWorkloadOnTreeDataset simulation
weighted-workload-on-tree-dataset {
# Seed used for RNG during the test
seed = 42
# Distributions for readers
# Each distribution will have `count` threads assigned to it
# mean / variance describe the properties of the normal distribution
# Readers will read a random table in the table space based on sampling
# Default: [{ count = 8, mean = 0.3, variance = 0.0278 }]
readers = [
{ count = 8, mean = 0.3, variance = 0.0278 }
]
# Distributions for writers
# Each distribution will have `count` threads assigned to it
# mean / variance describe the properties of the normal distribution
# Writers will write to a random table in the table space based on sampling
# Default: [{ count = 2, mean = 0.7, variance = 0.0278 }]
writers = [
{ count = 2, mean = 0.7, variance = 0.0278 }
]
# Duration of the simulation in minutes
# Default: 5
duration-in-minutes = 5
}
}