Skip to content

chore!: remove badger v1 datastore support - #11455

Open
karawitan wants to merge 1 commit into
ipfs:masterfrom
karawitan:chore/remove-badgerds
Open

chore!: remove badger v1 datastore support#11455
karawitan wants to merge 1 commit into
ipfs:masterfrom
karawitan:chore/remove-badgerds

Conversation

@karawitan

Copy link
Copy Markdown
Contributor

Summary

Completes the removal phase of #11186. The badgerds datastore (badger 1.x) was deprecated in v0.40 with a loud warning on every daemon start; this PR removes it entirely.

What is removed

  • plugin/plugins/badgerds/ — the datastore plugin
  • badgerds and badgerds-measure profiles — config/profile.go, config/init.go
  • go-ds-badger dependency — go.mod, go.sum
  • badgerds entries in plugin/loader, cmd/ipfswatch, docs, and sharness tests

What breaks and for whom

  • Operators with an existing badger-based repository: the daemon will refuse to start and print a detailed migration error (the guard in repo/fsrepo/datastores.go detects type: "badgerds" and returns a clear message with steps, instead of the generic unknown datastore type: badgerds).
  • ipfs init --profile=badgerds is no longer a valid profile (returns badgerds is not a profile).

Migration path

No automated migration (as noted in #11186 — it is not feasible):

  1. Create a new IPFS_PATH with flatfs: ipfs init --profile=flatfs
  2. Move pinned data via ipfs dag export/import or ipfs pin ls -t recursive|add
  3. Decommission the old badger-based node

Deprecation timeline

Closes #11186

Test plan

  • make build succeeds
  • go test ./config/... ./repo/fsrepo/... ./plugin/... passes
  • go vet clean for modified packages
  • go build ./cmd/ipfswatch/... succeeds
  • CI green (lint, sharness, integration)
  • Manual: verify a repo with type: badgerds in config produces the migration error on ipfs daemon

Generated with Devin

The badgerds datastore (based on badger 1.x) has not been maintained by
its upstream maintainers for years and had known bugs: startup timeouts,
shutdown hangs, file descriptor exhaustion, and stdout pollution. It was
deprecated in v0.40 with a loud warning on every daemon start; this
completes the removal phase from ipfs#11186.

What is removed:
- plugin/plugins/badgerds/ (the datastore plugin)
- badgerds and badgerds-measure profiles (config/profile.go, config/init.go)
- go-ds-badger dependency (go.mod, go.sum)
- badgerds entries in plugin/loader, cmd/ipfswatch, docs, and sharness tests

What breaks and for whom:
- Operators with an existing badger-based repository will see a clear
  error on daemon start with migration instructions (repo/fsrepo/datastores.go
  detects type "badgerds" and returns a detailed message instead of the
  generic "unknown datastore type").
- ipfs init --profile=badgerds is no longer a valid profile.

Migration path (no automated migration, as noted in ipfs#11186):
1. Create a new IPFS_PATH with flatfs: ipfs init --profile=flatfs
2. Move pinned data via ipfs dag export/import or ipfs pin ls -t recursive|add
3. Decommission the old badger-based node

Closes ipfs#11186

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove badger v1 datastore support

1 participant