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
Node start #33630
Open
andreimatei
wants to merge
12
commits into
cockroachdb:master
Choose a base branch
from
andreimatei:node-start
base: master
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Node start #33630
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
andreimatei
force-pushed
the
node-start
branch
from
January 11, 2019 00:01
cc146d7
to
a1708cf
Compare
andreimatei
force-pushed
the
node-start
branch
2 times, most recently
from
January 12, 2019 00:36
3523942
to
e10dff5
Compare
…er id The Gossip already is handles the cluster id key specially, so I've added more convenience methods for dealing with it. Besides convenience, they also make it clear that this info doesn't have a TTL. Release note: None
Before this patch, the initServer was complicated - it had some sort of a semaphore exposed with an unclear API. It was also performing bootstrapping of the cluster, duplicating code with the Server which performs bootstrap in cases where an initServer is not used. No more. This patch reduces the scope of the initServer to be a glorified channel signaled when bootstrap is requested. Bootstrapping is left to the calling Server, and so code is unified. This patch is part of a somewhat chaotic assault on the cluster bootstrap and generally node startup code, which I find inscrutable. Other patches flying by stem from this unravelling sweater. One of the goals is to rework bootstrapping such that the nodeIDContainer hack goes away. Release note: None
... making 2.2 nodes incompatible with 2.0 nodes. This lets me assume 2.1 nodes (and do the next commit). The instructions for when to bump this say to bump this when we introduce 2_2, but I think that's off (or, rather, we should already have introduced 2.2). Also see cockroachdb#33578. Release note: None
This migration is complicated. The patch gets rid of the version guard, but not otherwise the migration code. Before this patch, the migration for a range was triggered when a range was not migrated yet and IsMinSupported(VersionRangeAppliedStateKey). The latter part is always true: since a previous commit set BinaryMinimumSupportedVersion=2_1, VersionRangeAppliedStateKey was guaranteed. After this patch, the migration is triggered when a range was not yet migrated. It would seem that we have to live with this migration for an undefined period of time longer: some ranges might have never been migrated if they originated in an, say, 1.1 cluster that went through a series of upgrades but the range was never touched. One thing that was considered was having the below-Raft command application always perform the migration if the range wasn't previously migrated, regardless of what the proposal specifies. This doesn't seem feasible since we need to guarantee that different replicas apply the command exactly the same, and so we can't have one ignore the proposal spec and another one not ignore it. We'll be able to unconditionally perform the migration once we decree that there can no longer be proposals "in flight" coming from ancient nodes (think unapplied Raft lags). Release note: None
Release note: None
That method was quite pitiful, a shell of some 2014 glory. Its comment was wrong, one argument was unused, one return value was always nil. The code is better without its 3 lines too. Release note: None
Release note: None
Release note: None
There was some really nasty code that's luckily now unused (I think likely it became unused in cockroachdb#33150). More rationalizing of that method coming next. Release note: None
andreimatei
force-pushed
the
node-start
branch
from
January 12, 2019 22:30
e10dff5
to
47e79f5
Compare
That method is used for writing initial data to an engine. Before this patch it was using a Store, but for no good reason. This meant that we had to create a Store only to stop it immediately and re-create it later with the same engine. This patch makes the method free-standing and it now takes an engine. Release note: None
Release note: None
Release note: None
andreimatei
force-pushed
the
node-start
branch
from
January 12, 2019 22:36
47e79f5
to
b095e4f
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.