Skip to content

chore(deps): bump fjall from 2.11.2 to 3.1.9 - #34

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/fjall-3.1.9
Closed

chore(deps): bump fjall from 2.11.2 to 3.1.9#34
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/fjall-3.1.9

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 25, 2026

Copy link
Copy Markdown
Contributor

Bumps fjall from 2.11.2 to 3.1.9.

Release notes

Sourced from fjall's releases.

3.1.9

3.1.8

  • [dep] Update lsm-tree to 3.1.8
  • [misc] Internal refactors

3.1.7

3.1.6

3.1.5

  • [fs] Open DB lock with write flag #258
  • [dep] Update lsm-tree to 3.1.5
  • [doc] Update documentation

3.1.4

  • [fix] Fixes Keyspace::clear changing a KV-separated tree's type, making it unrecoverable

3.1.3

  • [dep] Update lsm-tree to 3.1.3

3.1.2

  • [sec] Upgrade lz4_flex to 0.13

3.1.1

  • [fix] Ingested data being invisible after recovery #265

3.1.0

  • [feat] Compaction filters - run custom logic during compactions (e.g. TTL)
  • [msrv] Decrease MSRV to 1.90
  • [example] TTL example (using compaction filters)
  • [example] Lazy format migration example (using compaction filters)

3.0.4

  • [doc] Update FIFO caveat documentation in lsm-tree (3.0.4)
  • [fix] Fix #257 - simplifies enqueuing sealed memtables for flush after recovery

3.0.3

  • [fix] Update lsm-tree to 3.0.3 - follow-up correctness fix for 3.0.1
  • [misc] Update byteview to 0.10.1

... (truncated)

Changelog

Sourced from fjall's changelog.

3.1.0

  • [feat] Implemented support for compaction filters (custom logic during compactions)
  • [msrv] Reduced MSRV to 1.90

3.0.0

  • [feat] Implemented new block format in lsm-tree
  • [feat] Bookkeep LSM-tree changes (flushes, compactions) in Version history
  • [feat] Prefix truncation inside data & index blocks
  • [feat] Allow unpinning filter blocks
  • [feat] Implemented partitioned filters
  • [feat] Allow calling bulk ingestion on non-empty keyspaces
  • [feat] Introduced level-based configuration policies for most configuration parameters
  • [feat] Journal compression for large values
  • [feat] Database locking using the new Rust file locking API
  • [feat] Rewritten key-value separation to run during compactions, instead of dedicated GC runs
  • [feat] Full file checksums to allow fast database corruption checks (in the future)
  • [feat] Checksum check on block & blob reads
  • [api] Make Ingestion API more flexible
  • [feat] Shortening eligible sequence numbers when compacting into the last level to save disk space
  • [api] Change constructor to Database::builder instead of Config::new
  • [api] Changed naming of keyspace->database, and partition->keyspace
  • [api] Change transaction feature flags to be separate structs, OptimisticTxDatabase and SingleWriterTxDatabase
  • [api] Changed snapshot error type, fixes #156
  • [api] Unified transactions read operations and snapshots with Readable trait
  • [api] Guard API for iterator values
  • [api] Removed old garbage collection APIs
  • [api] metrics feature flag for cache hit rates etc. (will be exposed in the future)
  • [api] Change bytes feature flag to bytes_1 to pin its version
  • [api] Make read operations in optimistic write transactions non-mut
  • [fix] Consider blob files in FIFO compaction size limit, fixes #133
  • [perf] Use a single hash per key for filters, instead of two
  • [perf] Improve leveled compaction scoring
  • [perf] Improve leveled compaction picking to use less hashing and heap allocations
  • [perf] Use quick-cache for file descriptor caching
  • [perf] Promote levels immediately to L6 to get rid of tombstones easily
  • [perf] Rewritten maintenance task bookkeeping, and write stalling mechanisms to be less aggressive
  • [perf] Allow lsm-tree flushes to merge multiple sealed memtables into L0, if necessary
  • [perf] Skip heap allocation in blob memtable inserts
  • [perf] Skip compression when rewriting compressed blob files
  • [msrv] Increased MSRV to 1.91
  • [misc] Blob file descriptor caching
  • [misc] Use Rust native path::absolute, removing path-absolutize dependency
  • [misc] Remove std-semaphore dependency
  • [misc] Remove miniz (will be replaced in the future)
  • [misc] Use byteorder-lite as drop-in replacement for byteorder
  • [refactor] Changed background workers to be a single thread pool
  • [internal] Store keyspace configurations in a meta keyspace, instead of individual binary config files
  • [internal] Use sfa for most file scaffolding in lsm-tree
Commits
  • 00a221e 3.1.9
  • 8485684 update poisoning, closes #308
  • 7f3d975 Merge pull request #312 from fzlzjerry/fix/309-snapshot-refcount
  • 6091d9d type
  • 51d20b2 visibility
  • bf3061a Merge pull request #310 from maxlapshin/fix/worker-thread-counter-leak
  • e4377b4 fix concurrent transaction snapshot tracking
  • 2f7c596 Update src/worker_pool.rs
  • 2505216 fix: claim a thread slot per spawn, not the whole pool up front
  • c589756 fix: release the active thread slot when a worker exits abnormally
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [fjall](https://github.com/fjall-rs/fjall) from 2.11.2 to 3.1.9.
- [Release notes](https://github.com/fjall-rs/fjall/releases)
- [Changelog](https://github.com/fjall-rs/fjall/blob/main/CHANGELOG.md)
- [Commits](fjall-rs/fjall@2.11.2...3.1.9)

---
updated-dependencies:
- dependency-name: fjall
  dependency-version: 3.1.9
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Aug 25, 2026
forkwright added a commit that referenced this pull request Aug 25, 2026
## Finding

Two dependabot bumps that needed real migrations, landed together so the
lockfile moves once.

**snafu 0.8.9 → 0.9.2.** `snafu::Location` is now a type alias for
`&'static core::panic::Location<'static>`, and std's `Location` has no
public constructor. Eight manual `Location::default()` sites stop
compiling with `E0599`.

Note the existing `snafu-location-migrate.py` tool found **zero**
matches here — it targets `Location::new(file!(), line!(), column!())`,
a different shape. The fix was applied by hand.

`Location::caller()` records the identical site: 0.8's `default()` was
itself `#[track_caller]`, and these helper functions are not annotated,
so the chain terminated at the same place either way. **Zero behaviour
change** — verified by reading both crate sources, not assumed.

**fjall 2.11.2 → 3.1.9.** fjall 3 swapped its vocabulary: the whole
store is now `Database`, and what was `PartitionHandle` is now
`Keyspace`. `persist` moved from the partition handle to the store. The
data API (`insert`/`get`/`remove`) is byte-identical either side — only
type names and the open/persist entry points moved. All API shapes were
read from the vendored 3.1.9 source, not inferred from error text.

## The on-disk question, answered

fjall 3 **does** change the on-disk format (`FormatVersion::V3`), and it
**fails closed**.

`Database::recover()` calls `check_version()` *before* any journal or
segment-manifest recovery runs. Against a 2.x store it logs an error
naming the official migration tool (`fjall-rs/migrate-v2-v3`) and
returns `Err(Error::InvalidVersion(...))`. The destructive recovery path
— the one that deletes segments absent from the levels manifest — is
gated behind that check succeeding, so it **never runs against a
2.x-written store**. Verified at `db.rs:538-554`.

Practically moot here: `thesauros`'s fjall-backed persistence dates to
2026-08-16, so a live 2.x keyspace is unlikely to exist. But if one
does, it errors loudly rather than eating data.

## One correction

A WHY comment claimed this pin matched "the same major version kanon's
own archeion crate already uses fleet-wide". Checked against kanon
`origin/main`: **archeion still pins `fjall = "2"`**. That claim is now
false, so it is replaced with a NOTE flagging the divergence rather than
left as stale prose.

**Decision worth making separately:** either archeion takes the same
bump, or the two diverge deliberately.

Supersedes #35 and #34.

Co-authored-by: forkwright <cody@forkwright.com>
@forkwright

Copy link
Copy Markdown
Owner

Superseded and merged.

The bump needed a real migration rather than a version change alone, and where several bumps touched one repo they landed together so the lockfile moved once rather than several times. CI is green on the combined branch.

@forkwright forkwright closed this Aug 25, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 25, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/cargo/fjall-3.1.9 branch August 25, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant