[ https://issues.apache.org/jira/browse/CASSANDRA-17737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17571665#comment-17571665 ]
Ekaterina Dimitrova edited comment on CASSANDRA-17737 at 7/27/22 12:29 AM: --------------------------------------------------------------------------- Hey [~jonmeredith], thank you so much for the quick response. Appreciate it! I am not sure what you mean by: {quote}Invalid annotations, you have more than one @Replaces annotation in Config class with same old name(sstable_preemptive_open_interval_in_mb) defined. {quote} I guess you hit this when trying to add new property and using second annotation with the same old name but for new property? What we can do and we already do for other properties is change the Converter in the @Replaces for sstable_preemptive_open_interval_in_mb If we change the converter Converters.MEBIBYTES_DATA_STORAGE_INT for this property with a new one - Converters.NEGATIVE_MEBIBYTES_DATA_STORAGE_INT, that should do the magic Any negative sstable_preemptive_open_interval_in_mb will be equal to setting sstable_preemptive_open_interval as null 4.1+. To see what I mean you might want to look at the Converters class, NEGATIVE_SECONDS_DURATION is a similar converter but for duration properties. I can create a patch tomorrow morning as part of this ticket was (Author: e.dimitrova): Hey [~jonmeredith], thank you so much for the quick response. Appreciate it! I am not sure what you mean by: {quote}Invalid annotations, you have more than one @Replaces annotation in Config class with same old name(sstable_preemptive_open_interval_in_mb) defined. {quote} I guess you hit this when trying to add new property and using second annotation with the same old name but for new property? What we can do and we already do for other properties is change the Converter in the @Replaces for sstable_preemptive_open_interval_in_mb If we change the converter Converters.MEBIBYTES_DATA_STORAGE_INT for this property with a new one - Converters.NEGATIVE_MEBIBYTES_DATA_STORAGE_INT, that should do the magic any negative sstable_preemptive_open_interval_in_mb will be equal to setting sstable_preemptive_open_interval as null 4.1+. To see what I mean you might want to look at the Converters class, NEGATIVE_SECONDS_DURATION is a similar converter but for duration properties. I can create a patch tomorrow morning as part of this ticket > Validate that JMX updates properly any properties that were moved to the new > config classes > ------------------------------------------------------------------------------------------- > > Key: CASSANDRA-17737 > URL: https://issues.apache.org/jira/browse/CASSANDRA-17737 > Project: Cassandra > Issue Type: Task > Components: Local/Config > Reporter: Ekaterina Dimitrova > Assignee: Ekaterina Dimitrova > Priority: Normal > Fix For: 4.0.x, 4.1-beta, 4.1.x, 4.x > > > Check that any properties moved to the new types in 4.1 (Duration, Data > Storage, Data Rate) are always updated by JMX and there are no inconsistent > validations that might cover bugs. Validate proper update in Settings Virtual > Table > I branched the configCompatibilityTest in 4.1 in order to get the lists of > properties in this > [commit|https://github.com/ekaterinadimitrova2/cassandra/commit/f2c02861abf0d6c34257d2fac827562437362137] > - the commit won't get into the codebase, just pasting so people know how > the lists were generated: > *DataRateSpec* - entire_sstable_stream_throughput_outbound, > inter_dc_stream_throughput_outbound, > entire_sstable_inter_dc_stream_throughput_outbound, compaction_throughput, > stream_throughput_outbound - we have setGet* tests and those seem solid, no > issues found. > *DurationSpec* - gc_log_threshold, permissions_validity, denylist_refresh, > request_timeout, hints_flush_period, read_request_timeout, > index_summary_resize_interval, streaming_keep_alive_period, max_hint_window, > roles_update_interval, user_defined_functions_fail_timeout, > write_request_timeout, cdc_free_space_check_interval, roles_validity, > internode_streaming_tcp_user_timeout, gc_warn_threshold, > range_request_timeout, credentials_update_interval, truncate_request_timeout, > cas_contention_timeout, periodic_commitlog_sync_lag_block, > streaming_state_expires, repair_request_timeout, permissions_update_interval, > dynamic_snitch_reset_interval, internode_tcp_connect_timeout, > paxos_purge_grace_period, dynamic_snitch_update_interval, > trace_type_query_ttl, denylist_initial_load_retry, commitlog_sync_period, > native_transport_idle_timeout, credentials_validity, > validation_preview_purge_head_start, repair_state_expires, > internode_tcp_user_timeout, trace_type_repair_ttl, cache_load_timeout, > commitlog_sync_group_window, slow_query_log_timeout, > counter_write_request_timeout, user_defined_functions_warn_timeout > *DataStorageSpec* - > internode_application_send_queue_reserve_endpoint_capacity, cdc_total_space, > networking_cache_size, commitlog_total_space, > internode_application_send_queue_capacity, key_cache_size, > memtable_heap_space, trickle_fsync_interval, max_hints_size_per_host, > internode_application_receive_queue_reserve_endpoint_capacity, > native_transport_max_frame_size, coordinator_read_size_warn_threshold , > internode_application_receive_queue_reserve_global_capacity, > internode_max_message_size, file_cache_size, local_read_size_fail_threshold, > data_disk_usage_max_disk_size, memtable_offheap_space, > coordinator_read_size_fail_threshold, counter_cache_size, > prepared_statements_cache_size, batchlog_replay_throttle, > row_index_read_size_fail_threshold, index_summary_capacity, > repair_session_space, paxos_cache_size, collection_size_fail_threshold, > internode_application_send_queue_reserve_global_capacity, column_index_size, > native_transport_receive_queue_capacity, sstable_preemptive_open_interval, > max_mutation_size, min_free_space_per_drive, batch_size_fail_threshold, > hinted_handoff_throttle, row_index_read_size_warn_threshold, max_value_size, > column_index_cache_size, compaction_large_partition_warning_threshold, > max_hints_file_size, collection_size_warn_threshold, > native_transport_max_request_data_in_flight, > internode_socket_receive_buffer_size, > internode_application_receive_queue_capacity, > internode_socket_send_buffer_size, row_cache_size, > min_tracked_partition_size, local_read_size_warn_threshold, > commitlog_segment_size, batch_size_warn_threshold, streaming_state_size, > native_transport_max_request_data_in_flight_per_ip > NOTE: Some of those were checked/fixed in other tickets but I post the full > lists for completeness -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org