Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-Cluster Network #1109

Merged

Conversation

sebastianburckhardt
Copy link
Contributor

This branch contains the new functionality for supporting multiple clusters (Multi-Cluster Network, Azure-Table-Based Gossip Channels, and Multi-Cluster Unit Tests). It is one of the pieces of the Geo-Distribution Project #948.

@dnfclas
Copy link

dnfclas commented Dec 3, 2015

@sebastianburckhardt, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.

Thanks, DNFBOT;

@gabikliot gabikliot added this to the Multi-Cluster milestone Dec 3, 2015
// deterministic function for designating the silos that should act as gateways
private List<SiloAddress> DetermineMultiClusterGateways()
{
Debug.Assert(!string.IsNullOrEmpty(GlobalServiceId)); // call only if this is a multi cluster
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No Debug.Assert in the code.
You can throw ArgumentExc or another reasonable exc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, done.

@jdom jdom self-assigned this Jan 15, 2016
sebastianburckhardt added a commit to sebastianburckhardt/orleans that referenced this pull request Feb 9, 2016
{
ChannelType = (GlobalConfiguration.GossipChannelType)
Enum.Parse(typeof(GlobalConfiguration.GossipChannelType), channelspec.GetAttribute("Type")),
ConnectionString = channelspec.GetAttribute("ConnectionString")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure this is the right place for a change, but do you think that if ConnectionString is null we should fall back to using GlobalConfiguration.DataConnectionString or we should try to keep them explicitly separated given that one's purpose is for intra-cluster storage and the other global communication?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is better to fail if ConnectionString is null, and force the user to specify it, than to use a default that seems to work superficially but does not really do the right thing

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, sounds good

[DeploymentItem("OrleansAzureUtils.dll")]
[DeploymentItem("TestGrainInterfaces.dll")]
[DeploymentItem("TestGrains.dll")]
[DeploymentItem("ClientConfigurationForTesting.xml")]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to move to programmatic config instead of the xml files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests were only partially migrated. That's done now, I have merged latest master.

@sergeybykov
Copy link
Contributor

I think I'm done with my comments. So if we resolve all outstanding questions/suggestions, this should be ready for a rebase/squash/merge.

@sergeybykov
Copy link
Contributor

Looks nearly done to me. Only a few outstanding comments left. The most important one I think is https://github.com/dotnet/orleans/pull/1109/files#diff-82d86f0f90ad13e9e64a997b86a9f8ffR499.

When the remaining comments are addressed, we should be able to rebase and merge.

@sebastianburckhardt
Copy link
Contributor Author

I have addressed all outstanding issues, I think.

One of the changes was significant: Instead of using chained tasks for gossiping, I now use a batchworker (a pattern that I have used several other times, it will also be used in queued grain code).

@sebastianburckhardt
Copy link
Contributor Author

I will rebase and squash into a single commit by noon today if there are no objections.

@jdom, if you prefer to preserve some history and sculpt several commits like you did last time, let me know.

}

// task for the current work cycle, or null if idle
private Task currentworkcycle;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Camel case for private fields is the standard.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok.

@sebastianburckhardt
Copy link
Contributor Author

I think I have addressed all the comments. Ready to squash and rebase?

@sergeybykov
Copy link
Contributor

Need to rebase on top of master. Otherwise, looks good to me. Squashing can be done by GitHub, now that @jdom showed me where that button is hidden. Unless, you think it makes sense to group the changes into a small set of cohesive commits.

@sebastianburckhardt
Copy link
Contributor Author

@jdom, it's up to you if you want to sculpt commits like you did last time or not. I am not sure it's worth it (there is a ton of history hidden away anyway - that history still exists in our other repositories if we ever need it)

@jdom
Copy link
Member

jdom commented May 26, 2016

As you wish, I guess at this point the easiest would be to squash everything into 1 commit. Are you confident doing that, making sure you don't revert other people's changes while merging first?

@sebastianburckhardt
Copy link
Contributor Author

I think this is ready.

sebastianburckhardt added a commit to sebastianburckhardt/orleans that referenced this pull request May 26, 2016
@sergeybykov sergeybykov merged commit 8ffc055 into dotnet:master May 27, 2016
@sebastianburckhardt sebastianburckhardt deleted the geo-multiclusternetwork branch May 27, 2016 17:03
@sergeybykov sergeybykov modified the milestone: Multi-Cluster Nov 3, 2016
@github-actions github-actions bot locked and limited conversation to collaborators Dec 14, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants