[ 
https://issues.apache.org/jira/browse/CASSANDRA-17292?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17487396#comment-17487396
 ] 

David Capwell commented on CASSANDRA-17292:
-------------------------------------------

Using CASSANDRA-17166 I took a dump of all our configs (doesn't include 
CASSANDRA-15234, which would have grouped things by feature more cleanly), 
below is every config reachable from Config and their type

{code}
allocate_tokens_for_keyspace: String
allocate_tokens_for_local_replication_factor: int
audit_logging_options: # AuditLogOptions
  archive_command: String
  audit_logs_dir: String
  block: boolean
  enabled: boolean
  excluded_categories: String
  excluded_keyspaces: String
  excluded_users: String
  included_categories: String
  included_keyspaces: String
  included_users: String
  logger: # ParameterizedClass
    class_name: String
    parameters: Map
  max_archive_retries: int
  max_log_size: long
  max_queue_weight: int
  roll_cycle: String
auth_cache_warming_enabled: boolean
auth_read_consistency_level: String
auth_write_consistency_level: String
authenticator: String
authorizer: String
auto_bootstrap: boolean
auto_hints_cleanup_enabled: boolean
auto_optimise_full_repair_streams: boolean
auto_optimise_inc_repair_streams: boolean
auto_optimise_preview_repair_streams: boolean
auto_snapshot: boolean
autocompaction_on_startup_enabled: boolean
automatic_sstable_upgrade: boolean
available_processors: int
back_pressure_enabled: boolean
back_pressure_strategy: # ParameterizedClass
  class_name: String
  parameters: Map
batch_size_fail_threshold_in_kb: int
batch_size_warn_threshold_in_kb: int
batchlog_replay_throttle_in_kb: int
block_for_peers_in_remote_dcs: boolean
block_for_peers_timeout_in_secs: int
broadcast_address: String
broadcast_rpc_address: String
buffer_pool_use_heap_if_exhausted: boolean
cache_load_timeout_seconds: int
cas_contention_timeout_in_ms: long
cdc_block_writes: boolean
cdc_enabled: boolean
cdc_free_space_check_interval_ms: int
cdc_raw_directory: String
cdc_total_space_in_mb: int
check_for_duplicate_rows_during_compaction: boolean
check_for_duplicate_rows_during_reads: boolean
client_encryption_options: # EncryptionOptions
  accepted_protocols: List
  algorithm: String
  cipher_suites: List
  enabled: Boolean
  keystore: String
  keystore_password: String
  optional: boolean
  protocol: String
  require_client_auth: boolean
  require_endpoint_verification: boolean
  ssl_context_factory: # ParameterizedClass
    class_name: String
    parameters: Map
  store_type: String
  truststore: String
  truststore_password: String
client_error_reporting_exclusions: # SubnetGroups
  empty: boolean
  subnets: Set
cluster_name: String
column_index_cache_size_in_kb: int
column_index_size_in_kb: int
commit_failure_policy: Enum<CommitFailurePolicy>
commitlog_compression: # ParameterizedClass
  class_name: String
  parameters: Map
commitlog_directory: String
commitlog_max_compression_buffers_in_pool: int
commitlog_periodic_queue_size: int
commitlog_segment_size_in_mb: int
commitlog_sync: Enum<CommitLogSync>
commitlog_sync_batch_window_in_ms: double
commitlog_sync_group_window_in_ms: double
commitlog_sync_period_in_ms: int
commitlog_total_space_in_mb: int
compaction_large_partition_warning_threshold_mb: int
compaction_throughput_mb_per_sec: int
compaction_tombstone_warning_threshold: int
concurrent_compactors: int
concurrent_counter_writes: int
concurrent_materialized_view_builders: int
concurrent_materialized_view_writes: int
concurrent_reads: int
concurrent_replicates: int
concurrent_validations: int
concurrent_writes: int
consecutive_message_errors_threshold: int
corrupted_tombstone_strategy: Enum<CorruptedTombstoneStrategy>
counter_cache_keys_to_save: int
counter_cache_save_period: int
counter_cache_size_in_mb: long
counter_write_request_timeout_in_ms: long
credentials_cache_active_update: boolean
credentials_cache_max_entries: int
credentials_update_interval_in_ms: int
credentials_validity_in_ms: int
cross_node_timeout: boolean
data_file_directories: String[]
default_keyspace_rf: int
denylist_consistency_level: Enum<ConsistencyLevel>
denylist_initial_load_retry_seconds: int
denylist_max_keys_per_table: int
denylist_max_keys_total: int
denylist_refresh_seconds: int
diagnostic_events_enabled: boolean
disk_access_mode: Enum<DiskAccessMode>
disk_failure_policy: Enum<DiskFailurePolicy>
disk_optimization_estimate_percentile: double
disk_optimization_page_cross_chance: double
disk_optimization_strategy: Enum<DiskOptimizationStrategy>
dynamic_snitch: boolean
dynamic_snitch_badness_threshold: double
dynamic_snitch_reset_interval_in_ms: int
dynamic_snitch_update_interval_in_ms: int
enable_denylist_range_reads: boolean
enable_denylist_reads: boolean
enable_denylist_writes: boolean
enable_drop_compact_storage: boolean
enable_materialized_views: boolean
enable_partition_denylist: boolean
enable_sasi_indexes: boolean
enable_scripted_user_defined_functions: boolean
enable_transient_replication: boolean
enable_user_defined_functions: boolean
enable_user_defined_functions_threads: boolean
endpoint_snitch: String
entire_sstable_inter_dc_stream_throughput_outbound_megabits_per_sec: int
entire_sstable_stream_throughput_outbound_megabits_per_sec: int
failure_detector: String
file_cache_enabled: boolean
file_cache_round_up: Boolean
file_cache_size_in_mb: int
flush_compression: Enum<FlushCompression>
full_query_logging_options: # FullQueryLoggerOptions
  archive_command: String
  block: boolean
  log_dir: String
  max_archive_retries: int
  max_log_size: long
  max_queue_weight: int
  roll_cycle: String
gc_log_threshold_in_ms: int
gc_warn_threshold_in_ms: int
guardrails: # GuardrailsOptions
  columns_per_table: # IntThreshold
    abort_threshold: int
    name: String
    warn_threshold: int
  enabled: boolean
  keyspaces: # IntThreshold
    abort_threshold: int
    name: String
    warn_threshold: int
  materialized_views_per_table: # IntThreshold
    abort_threshold: int
    name: String
    warn_threshold: int
  page_size: # IntThreshold
    abort_threshold: int
    name: String
    warn_threshold: int
  read_before_write_list_operations_enabled: boolean
  secondary_indexes_per_table: # IntThreshold
    abort_threshold: int
    name: String
    warn_threshold: int
  table_properties: # TableProperties
    disallowed: Set
    ignored: Set
    name: String
  tables: # IntThreshold
    abort_threshold: int
    name: String
    warn_threshold: int
  user_timestamps_enabled: boolean
hint_window_persistent_enabled: boolean
hinted_handoff_disabled_datacenters: Set
hinted_handoff_enabled: boolean
hinted_handoff_throttle_in_kb: int
hints_compression: # ParameterizedClass
  class_name: String
  parameters: Map
hints_directory: String
hints_flush_period_in_ms: int
ideal_consistency_level: Enum<ConsistencyLevel>
incremental_backups: boolean
index_summary_capacity_in_mb: long
index_summary_resize_interval_in_minutes: int
initial_range_tombstone_list_allocation_size: int
initial_token: String
inter_dc_stream_throughput_outbound_megabits_per_sec: int
inter_dc_tcp_nodelay: boolean
internode_application_receive_queue_capacity_in_bytes: int
internode_application_receive_queue_reserve_endpoint_capacity_in_bytes: int
internode_application_receive_queue_reserve_global_capacity_in_bytes: int
internode_application_send_queue_capacity_in_bytes: int
internode_application_send_queue_reserve_endpoint_capacity_in_bytes: int
internode_application_send_queue_reserve_global_capacity_in_bytes: int
internode_authenticator: String
internode_compression: Enum<InternodeCompression>
internode_error_reporting_exclusions: # SubnetGroups
  empty: boolean
  subnets: Set
internode_max_message_size_in_bytes: int
internode_socket_receive_buffer_size_in_bytes: int
internode_socket_send_buffer_size_in_bytes: int
internode_streaming_tcp_user_timeout_in_ms: int
internode_tcp_connect_timeout_in_ms: int
internode_tcp_user_timeout_in_ms: int
key_cache_keys_to_save: int
key_cache_migrate_during_compaction: boolean
key_cache_save_period: int
key_cache_size_in_mb: long
keyspace_count_warn_threshold: int
listen_address: String
listen_interface: String
listen_interface_prefer_ipv6: boolean
listen_on_broadcast_address: boolean
local_system_data_file_directory: String
max_concurrent_automatic_sstable_upgrades: int
max_hint_window_in_ms: int
max_hints_delivery_threads: int
max_hints_file_size_in_mb: int
max_mutation_size_in_kb: int
max_streaming_retries: int
max_value_size_in_mb: int
memtable_allocation_type: Enum<MemtableAllocationType>
memtable_cleanup_threshold: float
memtable_flush_writers: int
memtable_heap_space_in_mb: int
memtable_offheap_space_in_mb: int
min_free_space_per_drive_in_mb: int
minimum_keyspace_rf: int
native_transport_allow_older_protocols: boolean
native_transport_flush_in_batches_legacy: boolean
native_transport_idle_timeout_in_ms: long
native_transport_max_concurrent_connections: long
native_transport_max_concurrent_connections_per_ip: long
native_transport_max_concurrent_requests_in_bytes: long
native_transport_max_concurrent_requests_in_bytes_per_ip: long
native_transport_max_frame_size_in_mb: int
native_transport_max_negotiable_protocol_version: int
native_transport_max_requests_per_second: int
native_transport_max_threads: int
native_transport_port: int
native_transport_port_ssl: int
native_transport_rate_limiting_enabled: boolean
native_transport_receive_queue_capacity_in_bytes: int
network_authorizer: String
networking_cache_size_in_mb: int
num_tokens: int
partitioner: String
paxos_cache_size_in_mb: long
paxos_variant: Enum<PaxosVariant>
periodic_commitlog_sync_lag_block_in_ms: int
permissions_cache_active_update: boolean
permissions_cache_max_entries: int
permissions_update_interval_in_ms: int
permissions_validity_in_ms: int
phi_convict_threshold: double
prepared_statements_cache_size_mb: long
range_request_timeout_in_ms: long
range_tombstone_list_growth_factor: double
read_request_timeout_in_ms: long
reject_repair_compaction_threshold: int
repair_command_pool_full_strategy: Enum<RepairCommandPoolFullStrategy>
repair_command_pool_size: int
repair_session_max_tree_depth: int
repair_session_space_in_mb: int
repaired_data_tracking_for_partition_reads_enabled: boolean
repaired_data_tracking_for_range_reads_enabled: boolean
replica_filtering_protection: # ReplicaFilteringProtectionOptions
  cached_rows_fail_threshold: int
  cached_rows_warn_threshold: int
report_unconfirmed_repaired_data_mismatches: boolean
request_timeout_in_ms: long
role_manager: String
roles_cache_active_update: boolean
roles_cache_max_entries: int
roles_update_interval_in_ms: int
roles_validity_in_ms: int
row_cache_class_name: String
row_cache_keys_to_save: int
row_cache_save_period: int
row_cache_size_in_mb: long
rpc_address: String
rpc_interface: String
rpc_interface_prefer_ipv6: boolean
rpc_keepalive: boolean
saved_caches_directory: String
seed_provider: # ParameterizedClass
  class_name: String
  parameters: Map
server_encryption_options: # ServerEncryptionOptions
  accepted_protocols: List
  algorithm: String
  cipher_suites: List
  enable_legacy_ssl_storage_port: boolean
  enabled: Boolean
  internode_encryption: Enum<InternodeEncryption>
  keystore: String
  keystore_password: String
  optional: boolean
  protocol: String
  require_client_auth: boolean
  require_endpoint_verification: boolean
  ssl_context_factory: # ParameterizedClass
    class_name: String
    parameters: Map
  store_type: String
  truststore: String
  truststore_password: String
slow_query_log_timeout_in_ms: long
snapshot_before_compaction: boolean
snapshot_links_per_second: long
snapshot_on_duplicate_row_detection: boolean
snapshot_on_repaired_data_mismatch: boolean
ssl_storage_port: int
sstable_preemptive_open_interval_in_mb: int
start_native_transport: boolean
storage_port: int
stream_entire_sstables: boolean
stream_throughput_outbound_megabits_per_sec: int
streaming_connections_per_host: int
streaming_keep_alive_period_in_secs: int
table_count_warn_threshold: int
tombstone_failure_threshold: int
tombstone_warn_threshold: int
tracetype_query_ttl: int
tracetype_repair_ttl: int
track_warnings: # TrackWarnings
  coordinator_read_size: # LongByteThreshold
    abort_threshold_kb: long
    warn_threshold_kb: long
  enabled: boolean
  local_read_size: # LongByteThreshold
    abort_threshold_kb: long
    warn_threshold_kb: long
  row_index_size: # IntByteThreshold
    abort_threshold_kb: int
    warn_threshold_kb: int
transparent_data_encryption_options: # TransparentDataEncryptionOptions
  chunk_length_kb: int
  cipher: String
  enabled: boolean
  iv_length: int
  key_alias: String
  key_provider: # ParameterizedClass
    class_name: String
    parameters: Map
traverse_auth_from_root: boolean
trickle_fsync: boolean
trickle_fsync_interval_in_kb: int
truncate_request_timeout_in_ms: long
unlogged_batch_across_partitions_warn_threshold: int
use_deterministic_table_id: boolean
use_offheap_merkle_trees: boolean
user_defined_function_fail_timeout: long
user_defined_function_warn_timeout: long
user_function_timeout_policy: Enum<UserFunctionTimeoutPolicy>
validation_preview_purge_head_start_in_sec: int
windows_timer_interval: int
write_request_timeout_in_ms: long
{code}

> Move cassandra.yaml toward a nested structure around major database concepts
> ----------------------------------------------------------------------------
>
>                 Key: CASSANDRA-17292
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17292
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/Config
>            Reporter: Caleb Rackliffe
>            Assignee: Caleb Rackliffe
>            Priority: Normal
>             Fix For: 5.x
>
>
> Recent mailing list conversation (see "[DISCUSS] Nested YAML configs for new 
> features") has made it clear we will gravitate toward appropriately nested 
> structures for new parameters in {{cassandra.yaml}}, but from the scattered 
> conversation across a few Guardrails tickets (see CASSANDRA-17212 and 
> CASSANDRA-17148) and CASSANDRA-15234, there is also a general desire to 
> eventually extend this to the rest of {{cassandra.yaml}}. The benefits of 
> this change include those we gain by doing it for new features (single point 
> of interest for feature documentation, typed configuration objects, logical 
> grouping for additional parameters added over time, discoverability, etc.), 
> but one a larger scale.
> This may overlap with ongoing work, including the Guardrails epic. Ideally, 
> even a rough cut of a design here would allow that to move forward in a 
> timely and coherent manner (with less long-term refactoring pain).
> While these would have to be adjusted to CASSANDRA-15234 (probably after it 
> merges), there have been two proposals floated already for what this might 
> look like:
> From [~maedhroz] - 
> https://github.com/maedhroz/cassandra/commit/49e83c70eba3357978d1081ecf500bbbdee960d8
> From [~benedict] - 
> https://github.com/belliottsmith/cassandra/commits/CASSANDRA-15234-grouping-ideas



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to