[ 
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

Reply via email to