[ 
https://issues.apache.org/jira/browse/CASSANDRA-17737?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ekaterina Dimitrova updated CASSANDRA-17737:
--------------------------------------------
    Description: 
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

-------

*Fixes/commits based on this work:*

 
1) Fix Setting Virtual Table to update after startup config properties 
gc_log_threshold_in_ms, gc_warn_threshold_in_ms, 
conf.index_summary_capacity_in_mb, prepared_statements_cache_size_mb, 
key_cache_size_in_mb, counter_cache_size_in_mb - 
[4.0|https://github.com/apache/cassandra/commit/04901913d61f047e806bb4c2bbd530677958a919],
  
[4.1|https://github.com/apache/cassandra/commit/222f66e093b1cf315319b27fd8d0990bc9a9c92c],
  
[trunk|https://github.com/apache/cassandra/commit/0e3bdeab73ad89b7f48fd366b1b2723f5800e784]

2) Fix a null bug we identified in Converters and the disabled value for 
sstable_preemptive_open_interval_in_mb.

In order to start using @Nullable annotation for Config properties, I had to 
change com.google.code.findbugs scope from provided to default compile one. 

Looking into its license [https://opensource.org/licenses/BSD-3-Clause]
and reading here - [https://www.apache.org/legal/resolved.html]
we agreed the change is acceptable. Not brought to the mailing list as we are 
not adding brand new dependency.

Also, we agreed to open a follow-up improvement ticket so that all nullable 
Config properties start using the @Nullable annotation - CASSANDRA-17785

[4.1|https://github.com/apache/cassandra/commit/fe28f482db0e1bc81936a62d0564e9657f428d2a],
 
[trunk|https://github.com/apache/cassandra/commit/b94bf3f2186aa083a25ddb6cf7f6b2f45fc8b566]
 

  was:
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

-------

*Fixes/commits based on this work:*

 
1) Fix Setting Virtual Table to update after startup config properties 
gc_log_threshold_in_ms, gc_warn_threshold_in_ms, 
conf.index_summary_capacity_in_mb, prepared_statements_cache_size_mb, 
key_cache_size_in_mb, counter_cache_size_in_mb - 
[4.0|https://github.com/apache/cassandra/commit/04901913d61f047e806bb4c2bbd530677958a919],
  
[4.1|https://github.com/apache/cassandra/commit/222f66e093b1cf315319b27fd8d0990bc9a9c92c],
  
[trunk|https://github.com/apache/cassandra/commit/0e3bdeab73ad89b7f48fd366b1b2723f5800e784]
 


> 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
> -------
> *Fixes/commits based on this work:*
>  
> 1) Fix Setting Virtual Table to update after startup config properties 
> gc_log_threshold_in_ms, gc_warn_threshold_in_ms, 
> conf.index_summary_capacity_in_mb, prepared_statements_cache_size_mb, 
> key_cache_size_in_mb, counter_cache_size_in_mb - 
> [4.0|https://github.com/apache/cassandra/commit/04901913d61f047e806bb4c2bbd530677958a919],
>   
> [4.1|https://github.com/apache/cassandra/commit/222f66e093b1cf315319b27fd8d0990bc9a9c92c],
>   
> [trunk|https://github.com/apache/cassandra/commit/0e3bdeab73ad89b7f48fd366b1b2723f5800e784]
> 2) Fix a null bug we identified in Converters and the disabled value for 
> sstable_preemptive_open_interval_in_mb.
> In order to start using @Nullable annotation for Config properties, I had to 
> change com.google.code.findbugs scope from provided to default compile one. 
> Looking into its license [https://opensource.org/licenses/BSD-3-Clause]
> and reading here - [https://www.apache.org/legal/resolved.html]
> we agreed the change is acceptable. Not brought to the mailing list as we are 
> not adding brand new dependency.
> Also, we agreed to open a follow-up improvement ticket so that all nullable 
> Config properties start using the @Nullable annotation - CASSANDRA-17785
> [4.1|https://github.com/apache/cassandra/commit/fe28f482db0e1bc81936a62d0564e9657f428d2a],
>  
> [trunk|https://github.com/apache/cassandra/commit/b94bf3f2186aa083a25ddb6cf7f6b2f45fc8b566]
>  



--
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