For the record, I got failing unit test JMXGetterTest which reminded me that tools like JConsole will be just showing “unavailable” and no reason no matter what type of exception we add… I guess in that case I will error out only in nodetool where people can see the error and document loudly everywhere the rounding for JMX methods. In that case probably will deprecate those and add also new ones returning megabits in double for people
On Thu, 21 Jul 2022 at 16:56, Ekaterina Dimitrova <e.dimitr...@gmail.com> wrote: > Thanks Caleb, seems like me and you are on the same page here. > I assume lazy consensus with the others and I will finish the respective > ticket tomorrow. Thanks > New methods - return double, old - complain loudly and error out > > On Wed, 20 Jul 2022 at 13:03, Caleb Rackliffe <calebrackli...@gmail.com> > wrote: > >> My $0.02... >> >> Options from best to worst: >> >> 1.) Use double when possible (chopping off non-sig-digs after the decimal >> if you want) >> 2.) Complain loudly that we would have to round and error out. >> ----------line of acceptable behavior---------------------------- >> 1000000.) Round silently >> >> ;) >> >> On Mon, Jul 18, 2022 at 9:26 AM Ekaterina Dimitrova < >> e.dimitr...@gmail.com> wrote: >> >>> >>> Hi everyone, >>> In 4.0 stream_throughput_outbound_megabits_per_sec and >>> inter_dc_stream_throughput_outbound_megabits_per_sec >>> were introduced. >>> It was requested all data rate parameters to support mebibytes/s, >>> kibibytes/s and bytes/s with the new config in 4.1 but to support backward >>> compatibility. This is in place but there is one outstanding question I >>> wanted to discuss with the community. As we know, converting between >>> megabits and mebibytes produces double numbers which we already handle >>> internally. Now, the question is how do we want to handle this in >>> JMX/nodetool when reporting to the users. The new getters in mebibytes will >>> be reporting in double to the users (I have a patch for that as we just >>> added the mebibytes flags in nodetool for stream_throughput_outbound >>> and inter_dc_stream_throughput_outbound in 4.1). >>> I guess changing the getters to report double now will be a breaking >>> change so the options I see: >>> - we throw an error if we cannot report integer (the property was set in >>> mebibytes not megabits) and ask the users to check the mib versions and >>> report only integers >>> - We document there can be a loss of precision and people should be >>> looking into the mib one which will report exact numbers >>> >>> I guess I would prefer option 1 as people can easily miss anything >>> documented. >>> >>> Similar is the question for the Settings Virtual Table, but I guess >>> there we can switch all to double reporting or set to NA in case the old >>> properties (in megabits/s) are not integers. >>> >>> Best regards, >>> Ekaterina >>> >>