#
#  Licensed 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.
#

# =====================================================================================================================
# Omid TSO Server Configuration (Default parameters)
# =====================================================================================================================

# ---------------------------------------------------------------------------------------------------------------------
# Basic configuration parameters
# ---------------------------------------------------------------------------------------------------------------------

# Network interface for TSO server communication. Uncomment the following line to use a specific interface
# networkIfaceName: eth0
# If a network interface in the configuration, the TSO will attempt to guess default network interface.
# See org.apache.omid.tso.TSOServerConfig.getDefaultNetworkInterface for more information.

# Port reserved by the Status Oracle
port: 54758
# Wait strategy for the Disruptor processors in TSO pipeline. Options:
# 1) HIGH_THROUGHPUT - [Default] Use this in production deployments for maximum performance
# 2) LOW_CPU - Use this option when testing or in deployments where saving CPU cycles is more important than throughput
waitStrategy: HIGH_THROUGHPUT
# The number of elements reserved in the conflict map to perform conflict resolution
conflictMapSize: 100000000
# The number of Commit Table writers that persist data concurrently to the datastore. It has to be at least 2.
numConcurrentCTWriters: 2
# The size of the batch of operations that each Commit Table writes has. The maximum number of operations that can be
# batched in the system at a certain point in time is: numConcurrentCTWriters * batchSizePerCTWriter
batchSizePerCTWriter: 25
# When this timeout expires, the contents of the batch are flushed to the datastore
batchPersistTimeoutInMs: 10
# Timestamp generation strategy
# INCREMENTAL - regular counter
# WORLD_TIME - [Default] world time based counter
timestampType: WORLD_TIME
lowLatency: false
# Default module configuration (No TSO High Availability & in-memory storage for timestamp and commit tables)
timestampStoreModule: !!org.apache.omid.tso.InMemoryTimestampStorageModule [ ]
commitTableStoreModule: !!org.apache.omid.tso.InMemoryCommitTableStorageModule [ ]
leaseModule: !!org.apache.omid.tso.VoidLeaseManagementModule [ ]

# Default stats/metrics configuration
metrics: !!org.apache.omid.metrics.NullMetricsProvider [ ]

monitorContext: false

#  TLS parameters
tlsEnabled: false

supportPlainText: true

# ---------------------------------------------------------------------------------------------------------------------
# Timestamp storage configuration options
# ---------------------------------------------------------------------------------------------------------------------
# Could be any guava module that binds org.apache.omid.timestamp.storage.TimestampStorage
# Current available Timestamp stores:
#     org.apache.omid.tso.InMemoryTimestampStorageModule
#     org.apache.omid.timestamp.storage.HBaseTimestampStorageModule
#     org.apache.omid.timestamp.storage.ZKTimestampStorageModule

# ---------------------------------------------------------------------------------------------------------------------
# Commit Table storage configuration options
# ---------------------------------------------------------------------------------------------------------------------
# Could be any guava module that binds org.apache.omid.committable.CommitTable
# Available CommitTable stores:
#     org.apache.omid.committable.hbase.HBaseCommitTableStorageModule
#     org.apache.omid.tso.InMemoryCommitTableStorageModule

# ---------------------------------------------------------------------------------------------------------------------
# Metrics configuration options
# ---------------------------------------------------------------------------------------------------------------------
# Metrics could be anything that is org.apache.omid.metrics.MetricsRegistry
# There are 4 built-in reporters: CSV, SLF4J, GRAPHITE, CONSOLE
# Please see org.apache.omid.metrics.CodahaleMetricsConfig for details.

# Example configuration for reporting statistics to the console every minute:
#
# metrics: !!org.apache.omid.metrics.CodahaleMetricsProvider [
#     !!org.apache.omid.metrics.CodahaleMetricsConfig {
#         outputFreqInSecs: 60,
#         reporters: !!set {
#             !!org.apache.omid.metrics.CodahaleMetricsConfig$Reporter CONSOLE
#         },
#     }
# ]

# Example of multiple reporter configuration (to CSV files and console)
#
# metrics: !!org.apache.omid.metrics.CodahaleMetricsProvider [
#     !!org.apache.omid.metrics.CodahaleMetricsConfig {
#         outputFreqInSecs: 60,
#         reporters: !!set {
#             !!org.apache.omid.metrics.CodahaleMetricsConfig$Reporter CSV,
#             !!org.apache.omid.metrics.CodahaleMetricsConfig$Reporter CONSOLE
#         },
#         csvDir: "csvMetrics",
#         prefix: "somePrefix",
#     }
# ]

# =====================================================================================================================
# Some example configurations
# =====================================================================================================================

# ---------------------------------------------------------------------------------------------------------------------
# Configuration WITHOUT High Availability using HBase for all required storage & reporting metrics to CSV files
# ---------------------------------------------------------------------------------------------------------------------
#
# commitTableStoreModule: !!org.apache.omid.committable.hbase.DefaultHBaseCommitTableStorageModule [ ]
#     See optional params
#         - tableName
#         - familyName
#         - principal
#         - keytab
# timestampStoreModule: !!org.apache.omid.timestamp.storage.DefaultHBaseTimestampStorageModule [ ]
#     See optional params
#         - tableName
#         - familyName
#         - principal
#         - keytab
# leaseModule: !!org.apache.omid.tso.VoidLeaseManagementModule [ ]
# metrics: !!org.apache.omid.metrics.CodahaleMetricsProvider [
#     !!org.apache.omid.metrics.CodahaleMetricsConfig {
#         reporters: !!set {
#             !!org.apache.omid.metrics.CodahaleMetricsConfig$Reporter CSV
#         },
#         csvDir: "myCSVMetricsDir",
#         prefix: "myAppPrefixForMetrics",
#     }
# ]

# ---------------------------------------------------------------------------------------------------------------------
# Configuration WITHOUT High Availability using ZK to store the timestamps & reporting metrics to console every 30 secs
# ---------------------------------------------------------------------------------------------------------------------
#
# commitTableStoreModule: !!org.apache.omid.committable.hbase.DefaultHBaseCommitTableStorageModule [ ]
# timestampStoreModule: !!org.apache.omid.timestamp.storage.DefaultZKTimestampStorageModule
#         zkCluster: "localhost:2181"
#         namespace: "omid"
# leaseModule: !!org.apache.omid.tso.VoidLeaseManagementModule [ ]
# metrics: !!org.apache.omid.metrics.CodahaleMetricsProvider [
#     !!org.apache.omid.metrics.CodahaleMetricsConfig {
#         outputFreqInSecs: 30,
#         reporters: !!set {
#             !!org.apache.omid.metrics.CodahaleMetricsConfig$Reporter CONSOLE
#         },
#     }
# ]


# ---------------------------------------------------------------------------------------------------------------------
# Configuration WITH High Availability using HBase for all required storage and no metrics reports
# ---------------------------------------------------------------------------------------------------------------------
#
# commitTableStoreModule: !!org.apache.omid.committable.hbase.DefaultHBaseCommitTableStorageModule [ ]
# timestampStoreModule: !!org.apache.omid.timestamp.storage.DefaultHBaseTimestampStorageModule [ ]
# leaseModule: !!org.apache.omid.tso.HALeaseManagementModule
#     leasePeriodInMs: 10000
#     tsoLeasePath: "/tso-lease"
#     currentTsoPath: "/current-tso"
#     zkCluster: "localhost:2181"
#     zkNamespace: "omid"
# metrics: !!org.apache.omid.metrics.NullMetricsProvider [ ]
