Skip to content

Commit cf01ffa

Browse files
craig[bot]pav-kv
andcommitted
Merge #155565
155565: kvstorage: introduce state/raft storage types r=arulajmani a=pav-kv This PR introduces basic type aliases for raft and state machine engines, and various combinations of them that are used in the code as of today. These will evolve as we continue refactoring `kvstorage` package and its users. This PR also merges the `kvserver/stateloader` package into `kvserver/kvstorage`. For 2 reasons: (a) avoid circular dependency, (b) the stateloader code logically belongs to and is tightly integrated with `kvstorage`. Part of #97618 Co-authored-by: Pavel Kalinnikov <[email protected]>
2 parents d3e894c + aaa3410 commit cf01ffa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+377
-374
lines changed

pkg/BUILD.bazel

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,6 @@ ALL_TESTS = [
298298
"//pkg/kv/kvserver/spanlatch:spanlatch_test",
299299
"//pkg/kv/kvserver/spanset:spanset_test",
300300
"//pkg/kv/kvserver/split:split_test",
301-
"//pkg/kv/kvserver/stateloader:stateloader_test",
302301
"//pkg/kv/kvserver/storeliveness:storeliveness_test",
303302
"//pkg/kv/kvserver/tenantrate:tenantrate_test",
304303
"//pkg/kv/kvserver/tscache:tscache_test",
@@ -1644,8 +1643,6 @@ GO_TARGETS = [
16441643
"//pkg/kv/kvserver/spanset:spanset_test",
16451644
"//pkg/kv/kvserver/split:split",
16461645
"//pkg/kv/kvserver/split:split_test",
1647-
"//pkg/kv/kvserver/stateloader:stateloader",
1648-
"//pkg/kv/kvserver/stateloader:stateloader_test",
16491646
"//pkg/kv/kvserver/storeliveness/storelivenesspb:storelivenesspb",
16501647
"//pkg/kv/kvserver/storeliveness:storeliveness",
16511648
"//pkg/kv/kvserver/storeliveness:storeliveness_test",

pkg/cli/BUILD.bazel

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ go_library(
137137
"//pkg/kv/kvserver/loqrecovery/loqrecoverypb",
138138
"//pkg/kv/kvserver/print",
139139
"//pkg/kv/kvserver/rditer",
140-
"//pkg/kv/kvserver/stateloader",
141140
"//pkg/multitenant/mtinfopb",
142141
"//pkg/raft/raftpb",
143142
"//pkg/roachpb",
@@ -421,11 +420,11 @@ go_test(
421420
"//pkg/kv/kvclient/kvtenant",
422421
"//pkg/kv/kvpb",
423422
"//pkg/kv/kvserver",
423+
"//pkg/kv/kvserver/kvstorage",
424424
"//pkg/kv/kvserver/liveness",
425425
"//pkg/kv/kvserver/liveness/livenesspb",
426426
"//pkg/kv/kvserver/loqrecovery",
427427
"//pkg/kv/kvserver/loqrecovery/loqrecoverypb",
428-
"//pkg/kv/kvserver/stateloader",
429428
"//pkg/roachpb",
430429
"//pkg/security/clientsecopts",
431430
"//pkg/security/securityassets",

pkg/cli/debug_check_store.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import (
1818
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverpb"
1919
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
2020
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/rditer"
21-
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/stateloader"
2221
"github.com/cockroachdb/cockroach/pkg/raft/raftpb"
2322
"github.com/cockroachdb/cockroach/pkg/roachpb"
2423
"github.com/cockroachdb/cockroach/pkg/storage"
@@ -88,7 +87,7 @@ type replicaCheckInfo struct {
8887
type checkInput struct {
8988
eng storage.Engine
9089
desc *roachpb.RangeDescriptor
91-
sl stateloader.StateLoader
90+
sl kvstorage.StateLoader
9291
}
9392

9493
type checkResult struct {
@@ -166,7 +165,7 @@ func checkStoreRangeStats(
166165
go func() {
167166
if err := kvstorage.IterateRangeDescriptorsFromDisk(ctx, eng,
168167
func(desc roachpb.RangeDescriptor) error {
169-
inCh <- checkInput{eng: eng, desc: &desc, sl: stateloader.Make(desc.RangeID)}
168+
inCh <- checkInput{eng: eng, desc: &desc, sl: kvstorage.MakeStateLoader(desc.RangeID)}
170169
return nil
171170
}); err != nil {
172171
outCh <- checkResult{err: err}

pkg/cli/debug_check_store_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
"time"
1515

1616
"github.com/cockroachdb/cockroach/pkg/base"
17-
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/stateloader"
17+
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
1818
"github.com/cockroachdb/cockroach/pkg/roachpb"
1919
"github.com/cockroachdb/cockroach/pkg/settings/cluster"
2020
"github.com/cockroachdb/cockroach/pkg/storage"
@@ -95,7 +95,7 @@ func TestDebugCheckStore(t *testing.T) {
9595
storage.MustExist)
9696
require.NoError(t, err)
9797
defer eng.Close()
98-
sl := stateloader.Make(1)
98+
sl := kvstorage.MakeStateLoader(1)
9999
ms, err := sl.LoadMVCCStats(ctx, eng)
100100
require.NoError(t, err)
101101
ms.ContainsEstimates = 0

pkg/kv/kvserver/BUILD.bazel

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ go_library(
181181
"//pkg/kv/kvserver/replicastats",
182182
"//pkg/kv/kvserver/spanset",
183183
"//pkg/kv/kvserver/split",
184-
"//pkg/kv/kvserver/stateloader",
185184
"//pkg/kv/kvserver/storeliveness",
186185
"//pkg/kv/kvserver/storeliveness/storelivenesspb",
187186
"//pkg/kv/kvserver/tenantrate",
@@ -470,7 +469,6 @@ go_test(
470469
"//pkg/kv/kvserver/replicastats",
471470
"//pkg/kv/kvserver/spanset",
472471
"//pkg/kv/kvserver/split",
473-
"//pkg/kv/kvserver/stateloader",
474472
"//pkg/kv/kvserver/storeliveness",
475473
"//pkg/kv/kvserver/storeliveness/storelivenesspb",
476474
"//pkg/kv/kvserver/tenantrate",

pkg/kv/kvserver/batcheval/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,12 @@ go_library(
7070
"//pkg/kv/kvserver/intentresolver",
7171
"//pkg/kv/kvserver/kvserverbase",
7272
"//pkg/kv/kvserver/kvserverpb",
73+
"//pkg/kv/kvserver/kvstorage",
7374
"//pkg/kv/kvserver/lockspanset",
7475
"//pkg/kv/kvserver/rditer",
7576
"//pkg/kv/kvserver/readsummary",
7677
"//pkg/kv/kvserver/readsummary/rspb",
7778
"//pkg/kv/kvserver/spanset",
78-
"//pkg/kv/kvserver/stateloader",
7979
"//pkg/kv/kvserver/txnwait",
8080
"//pkg/kv/kvserver/uncertainty",
8181
"//pkg/roachpb",
@@ -156,11 +156,11 @@ go_test(
156156
"//pkg/kv/kvserver/gc",
157157
"//pkg/kv/kvserver/kvserverbase",
158158
"//pkg/kv/kvserver/kvserverpb",
159+
"//pkg/kv/kvserver/kvstorage",
159160
"//pkg/kv/kvserver/lockspanset",
160161
"//pkg/kv/kvserver/readsummary",
161162
"//pkg/kv/kvserver/readsummary/rspb",
162163
"//pkg/kv/kvserver/spanset",
163-
"//pkg/kv/kvserver/stateloader",
164164
"//pkg/kv/kvserver/txnwait",
165165
"//pkg/roachpb",
166166
"//pkg/security/securityassets",

pkg/kv/kvserver/batcheval/cmd_end_transaction.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ import (
1919
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/gc"
2020
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverbase"
2121
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverpb"
22+
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
2223
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/lockspanset"
2324
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/rditer"
2425
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/readsummary"
2526
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/spanset"
26-
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/stateloader"
2727
"github.com/cockroachdb/cockroach/pkg/roachpb"
2828
"github.com/cockroachdb/cockroach/pkg/settings"
2929
"github.com/cockroachdb/cockroach/pkg/storage"
@@ -1511,7 +1511,7 @@ func splitTriggerHelper(
15111511
// HardState via a call to synthesizeRaftState. Here, we only call
15121512
// writeInitialReplicaState which essentially writes a ReplicaState
15131513
// only.
1514-
if *h.AbsPostSplitRight(), err = stateloader.WriteInitialReplicaState(
1514+
if *h.AbsPostSplitRight(), err = kvstorage.WriteInitialReplicaState(
15151515
ctx, batch, *h.AbsPostSplitRight(), split.RightDesc, rightLease,
15161516
*in.GCThreshold, *in.GCHint, in.ReplicaVersion,
15171517
); err != nil {
@@ -1523,7 +1523,7 @@ func splitTriggerHelper(
15231523
// as all replicas will be responsible for writing it locally before
15241524
// applying the split.
15251525
if !rec.ClusterSettings().Version.IsActive(ctx, clusterversion.V25_4_WriteInitialTruncStateBeforeSplitApplication) {
1526-
if err := stateloader.WriteInitialTruncState(ctx, batch, split.RightDesc.RangeID); err != nil {
1526+
if err := kvstorage.WriteInitialTruncState(ctx, batch, split.RightDesc.RangeID); err != nil {
15271527
return enginepb.MVCCStats{}, result.Result{}, errors.Wrap(err, "unable to write initial Replica state")
15281528
}
15291529
}
@@ -1655,7 +1655,7 @@ func mergeTrigger(
16551655
if err != nil {
16561656
return result.Result{}, err
16571657
}
1658-
rhsLoader := stateloader.Make(merge.RightDesc.RangeID)
1658+
rhsLoader := kvstorage.MakeStateLoader(merge.RightDesc.RangeID)
16591659
rhsHint, err := rhsLoader.LoadGCHint(ctx, batch)
16601660
if err != nil {
16611661
return result.Result{}, err

pkg/kv/kvserver/batcheval/cmd_end_transaction_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/concurrency/isolation"
2020
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverbase"
2121
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverpb"
22-
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/stateloader"
22+
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
2323
"github.com/cockroachdb/cockroach/pkg/roachpb"
2424
"github.com/cockroachdb/cockroach/pkg/settings/cluster"
2525
"github.com/cockroachdb/cockroach/pkg/storage"
@@ -2169,7 +2169,7 @@ func TestSplitTriggerWritesInitialReplicaState(t *testing.T) {
21692169
gcHint := roachpb.GCHint{GCTimestamp: gcThreshold}
21702170
abortSpanTxnID := uuid.MakeV4()
21712171
as := abortspan.New(desc.RangeID)
2172-
sl := stateloader.Make(desc.RangeID)
2172+
sl := kvstorage.MakeStateLoader(desc.RangeID)
21732173
rec := (&MockEvalCtx{
21742174
ClusterSettings: st,
21752175
Desc: &desc,
@@ -2217,7 +2217,7 @@ func TestSplitTriggerWritesInitialReplicaState(t *testing.T) {
22172217

22182218
// Verify that range state was migrated to the right-hand side properly.
22192219
asRight := abortspan.New(rightDesc.RangeID)
2220-
slRight := stateloader.Make(rightDesc.RangeID)
2220+
slRight := kvstorage.MakeStateLoader(rightDesc.RangeID)
22212221
// The abort span should have been transferred over.
22222222
ok, err := asRight.Get(ctx, batch, abortSpanTxnID, &roachpb.AbortSpanEntry{})
22232223
require.NoError(t, err)
@@ -2251,9 +2251,9 @@ func TestSplitTriggerWritesInitialReplicaState(t *testing.T) {
22512251
require.NoError(t, err)
22522252
require.Equal(t, version, loadedVersion)
22532253
expAppliedState := kvserverpb.RangeAppliedState{
2254-
RaftAppliedIndexTerm: stateloader.RaftInitialLogTerm,
2255-
RaftAppliedIndex: stateloader.RaftInitialLogIndex,
2256-
LeaseAppliedIndex: stateloader.InitialLeaseAppliedIndex,
2254+
RaftAppliedIndexTerm: kvstorage.RaftInitialLogTerm,
2255+
RaftAppliedIndex: kvstorage.RaftInitialLogIndex,
2256+
LeaseAppliedIndex: kvstorage.InitialLeaseAppliedIndex,
22572257
}
22582258
loadedAppliedState, err := slRight.LoadRangeAppliedState(ctx, batch)
22592259
require.NoError(t, err)

pkg/kv/kvserver/batcheval/stateloader.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
package batcheval
77

8-
import "github.com/cockroachdb/cockroach/pkg/kv/kvserver/stateloader"
8+
import "github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
99

1010
// MakeStateLoader creates a StateLoader for the EvalContext.
11-
func MakeStateLoader(rec EvalContext) stateloader.StateLoader {
12-
return stateloader.Make(rec.GetRangeID())
11+
func MakeStateLoader(rec EvalContext) kvstorage.StateLoader {
12+
return kvstorage.MakeStateLoader(rec.GetRangeID())
1313
}

pkg/kv/kvserver/client_manual_proposal_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import (
1818
"github.com/cockroachdb/cockroach/pkg/kv/kvpb"
1919
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/batcheval"
2020
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvserverpb"
21+
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/kvstorage"
2122
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/logstore"
2223
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/raftlog"
23-
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/stateloader"
2424
"github.com/cockroachdb/cockroach/pkg/kv/kvserver/uncertainty"
2525
"github.com/cockroachdb/cockroach/pkg/raft"
2626
"github.com/cockroachdb/cockroach/pkg/raft/raftpb"
@@ -137,7 +137,7 @@ LIMIT
137137
return nil
138138
}))
139139

140-
sl := stateloader.Make(rangeID)
140+
sl := kvstorage.MakeStateLoader(rangeID)
141141
lease, err := sl.LoadLease(ctx, eng)
142142
require.NoError(t, err)
143143

0 commit comments

Comments
 (0)