Hi All , I tested the AlibabaCloudSnitch、 AlibabaCloudLocationProvider together with NetworkTopologyProximity/NoOpProximity under Alibaba cloud's environment, region : c-hangzhou-b. I builded the package using Sam's final PR and deployed three Cassandra nodes, my test cases are : 1、node joing/decommission; 2、create keyspace and table then doing some insert and select; 3、nodetool ring/status/cms; All results are correct, the dc is c-hangzhou, rack is : b Thanks Sam !
guo Maxwell <cclive1...@gmail.com> 于2024年12月12日周四 21:47写道: > Hi sam > I can help with the validation of AlibabaCloudSnith. > > Sam Tunnicliffe <s...@beobal.com>于2024年12月12日 周四下午9:20写道: > >> This patch is probably now ready to merge, having been through several >> iterations of review and with green CI. Before that though, I just want to >> send one more reminder about it. We've endeavoured to preserve all existing >> behaviour and to keep configuration 100% backwards compatible. However, >> some areas have had minimal testing in real clusters, specifically the >> various cloud platform configurations: >> >> * Ec2Snitch/Ec2MultiRegionSnitch >> * AzureSnitch >> * AlibabaCloudSnitch >> * GoogleCloudSnitch >> * CloudstackSnitch >> >> Any help in validating these in their native environments would be >> welcome. >> >> The other consideration is toward custom snitch implementations. The >> intention is that these should continue to work without interruption or >> intervention, unless they're leaning heavily on C* internals in which case >> any changes required ought to be minimal. So it would be great if anyone >> using a custom snitch implementation is able to check it out and help >> verify that. >> >> >> > On 31 Oct 2024, at 16:53, Sam Tunnicliffe <s...@beobal.com> wrote: >> > >> > Since CEP-21, the source of truth for topology info (a node's >> datacenter & rack) is ClusterMetadata. Each node provides its dc/rack when >> it registers itself with the cluster prior to joining and this information >> is effectively immutable (for now). This significantly reduces the scope of >> IEndpointSnitch's responsibilities and CASSANDRA-19488 proposes a >> refactoring which breaks out the remaining functionality into a handful of >> new providers (full details can be found in the JIRA). >> > >> > This is one of the more widely used extension points in Cassandra, so >> we wanted to bring it to the mailing list in addition to discussing on >> JIRA. >> > >> > To be clear, no operator intervention should be necessary when >> upgrading. To ease migration onto the new config and to allow us to >> deprecate snitches in a controlled way, it will remain fully supported to >> configure nodes using the endpoint_snitch setting in yaml. A SnitchAdapter >> acts as a facade in this case, presenting the new interfaces to calling >> code while delegating to the legacy snitch. Most of the in-tree snitches >> have been refactored to extract implementations of the new interfaces so >> that their functionality can be used via the new configuration. >> > >> > Some questions for the list: >> > >> > * We have added 2 new methods to IEndpointSnitch, which have >> essentially been pulled up from Ec2MultiRegionSnitch and >> GossipingPropertyFileSnitch to support ReconnectableSnitchHelper. >> Currently, these are added as default methods on the interface so that >> out-of-tree snitches remain binary compatible. However, it would be safer >> to break binary compatibility in this case to ensure that any custom >> snitches out in the wild must be updated and their behaviour is preserved. >> So the question is, would there be objections to extending the (now >> deprecated) IEndpointSnitch interface in this way? >> > >> > * Python dtests and config are currently unchanged (aside from some >> error message checks) so these are exercising the path whereby the clusters >> are configured with endpoint_snitch and make use of the compatibility >> adapter. In-jvm upgrade dtests switch from old to new style configuration >> on upgrade to 5.1 (though in truth, these don't exercise snitches much at >> all as a special dtest snitch is used throughout). cassandra-latest.yaml >> contains the new settings, while cassandra.yaml and the variations in >> test/conf retain the old style settings. How should we approach updating >> these configs so that we maintain a balance between test coverage, >> compatibility during upgrades and encouraging the use of new style config >> in fresh clusters? >> > >> >>