mirror of
https://github.com/deepseek-ai/3FS.git
synced 2026-11-05 00:47:47 +00:00
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/3FS#392
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/deepseek-ai/3FS/pull/369
Author: @yiyuanliu
Created: 12/26/2025
Status: ✅ Merged
Merged: 12/26/2025
Merged by: @yiyuanliu
Base:
main← Head:lyy/fix-shuffle📝 Commits (1)
468ce9bImplement deterministic shuffle with configurable g++/libstdc++ compatibility.📊 Changes
6 files changed (+415 additions, -13 deletions)
View changed files
📝
CMakeLists.txt(+26 -0)📝
README.md(+19 -9)➕
src/common/utils/Shuffle.h(+208 -0)📝
src/fbs/meta/Schema.cc(+6 -3)📝
src/meta/components/ChainAllocator.h(+7 -1)➕
tests/common/utils/TestShuffle.cc(+149 -0)📄 Description
fix #368
Changes:
Added compile option
SHUFFLE_METHODwith possible values:g++10,g++11, orstdshuffle(not recommended). Theg++11option is compatible withg++11and later versions. You need to manually specifycmake -DSHUFFLE_METHOD='...'when compiling.g++10org++11based on the compiler version used when deploying that cluster.g++10org++11, but please note that you need to keep using the same configuration afterwards.When creating files, 3FS meta now searches for a random seed that produces the same result on both
g++10andg++11. Since file stripe sizes are generally small, it is very easy to find a qualifying random seed.Checking for affected files in mixed-version deployments:
If you have mixed g++10 and g++11+ binaries in a cluster, you can check whether any files have shuffle seeds that produce different results under different compilers:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.