Skip to content

Commit 9d24f59

Browse files
authored
feat(v2): move default storage paths under ./data/v2/ (#4978)
* feat(v2): move default storage paths under ./data/v2/ Ensures all persistent V2 storage (metastore raft WAL, snapshots, and FSM BoltDB) defaults to paths under ./data/v2/, so Docker users mounting -v storage:/data have all state inside the volume. * fix(helm): pin metastore data dirs to old paths to avoid breaking upgrades The binary defaults for metastore.data-dir, metastore.raft.dir, and metastore.raft.snapshots-dir changed from ./data-metastore/* to ./data/v2/metastore/*. Explicitly set the old paths in the Helm chart so existing deployments don't lose their data on upgrade.
1 parent e2e01c0 commit 9d24f59

5 files changed

Lines changed: 17 additions & 2 deletions

File tree

operations/pyroscope/helm/pyroscope/rendered/micro-services-v2.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3384,6 +3384,9 @@ spec:
33843384
- "-metastore.snapshot-compact-on-restore=true"
33853385
- "-query-backend.address=dns:///_grpc._tcp.pyroscope-dev-query-backend-headless.$(NAMESPACE_FQDN):9095"
33863386
- "-metastore.address=kubernetes:///pyroscope-dev-metastore-headless.$(NAMESPACE_FQDN):9095"
3387+
- "-metastore.data-dir=./data-metastore/data"
3388+
- "-metastore.raft.dir=./data-metastore/raft"
3389+
- "-metastore.raft.snapshots-dir=./data-metastore/raft"
33873390
- "-metastore.raft.bind-address=:9099"
33883391
- "-metastore.raft.server-id=$(POD_NAME).$(PYROSCOPE_METASTORE_SERVICE)"
33893392
- "-metastore.raft.advertise-address=$(POD_NAME).$(PYROSCOPE_METASTORE_SERVICE)"

operations/pyroscope/helm/pyroscope/rendered/single-binary-v2.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1428,6 +1428,9 @@ spec:
14281428
- "-storage.backend=filesystem"
14291429
- "-query-backend.address=dns:///_grpc._tcp.pyroscope-dev-headless.$(NAMESPACE_FQDN):9095"
14301430
- "-metastore.address=kubernetes:///pyroscope-dev-headless.$(NAMESPACE_FQDN):9095"
1431+
- "-metastore.data-dir=./data-metastore/data"
1432+
- "-metastore.raft.dir=./data-metastore/raft"
1433+
- "-metastore.raft.snapshots-dir=./data-metastore/raft"
14311434
- "-metastore.raft.bind-address=:9099"
14321435
- "-metastore.raft.server-id=$(POD_NAME).$(PYROSCOPE_METASTORE_SERVICE)"
14331436
- "-metastore.raft.advertise-address=$(POD_NAME).$(PYROSCOPE_METASTORE_SERVICE)"

operations/pyroscope/helm/pyroscope/templates/deployments-statefulsets.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ spec:
102102
{{- end }}
103103
{{- /* metastore specific v2 migration config */}}
104104
{{- if $isMetastore }}
105+
{{- if (not (hasKey $extraArgs "metastore.data-dir")) }}
106+
- "-metastore.data-dir=./data-metastore/data"
107+
{{- end }}
108+
{{- if (not (hasKey $extraArgs "metastore.raft.dir")) }}
109+
- "-metastore.raft.dir=./data-metastore/raft"
110+
{{- end }}
111+
{{- if (not (hasKey $extraArgs "metastore.raft.snapshots-dir")) }}
112+
- "-metastore.raft.snapshots-dir=./data-metastore/raft"
113+
{{- end }}
105114
{{- if (not (hasKey $extraArgs "metastore.raft.server-id")) }}
106115
- "-metastore.raft.bind-address=:{{ .Values.pyroscope.metastore.port }}"
107116
{{- end }}

pkg/metastore/fsm/fsm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func (cfg *Config) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet) {
6060
f.StringVar(&cfg.SnapshotCompression, prefix+"snapshot-compression", "zstd", "Compression algorithm to use for snapshots. Supported compressions: zstd.")
6161
f.IntVar(&cfg.SnapshotRateLimit, prefix+"snapshot-rate-limit", 15, "Rate limit for snapshot writer in MB/s.")
6262
f.BoolVar(&cfg.SnapshotCompactOnRestore, prefix+"snapshot-compact-on-restore", false, "Compact the database on restore.")
63-
f.StringVar(&cfg.DataDir, prefix+"data-dir", "./data-metastore/data", "Directory to store the data.")
63+
f.StringVar(&cfg.DataDir, prefix+"data-dir", "./data/v2/metastore/data", "Directory to store the data.")
6464
}
6565

6666
// FSM implements the raft.FSM interface.

pkg/metastore/raftnode/node.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ type Config struct {
6262
}
6363

6464
const (
65-
defaultRaftDir = "./data-metastore/raft"
65+
defaultRaftDir = "./data/v2/metastore/raft"
6666
defaultSnapshotsDir = defaultRaftDir
6767

6868
defaultWALCacheEntries = 512

0 commit comments

Comments
 (0)