[PR #419] fix(data-placement): normalize peer recovery traffic constraints #423

Open
opened 2026-10-26 09:50:08 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/deepseek-ai/3FS/pull/419
Author: @030611
Created: 8/10/2026
Status: 🔄 Open

Base: main ← Head: fix/data-placement-peer-traffic-318


📝 Commits (1)

  • 5218c8f fix(data-placement): normalize CR peer recovery traffic

📊 Changes

2 files changed (+16 additions, -2 deletions)

View changed files

📝 deploy/data_placement/src/model/data_placement.py (+3 -2)
📝 deploy/data_placement/test/test_model.py (+13 -0)

📄 Description

Fixes #318.

calc_peer_recovery_traffic currently returns the number of groups shared by a disk pair, while get_peer_traffic and check_solution use normalized recovery traffic:

shared_groups * recovery_traffic_factor / (group_size - 1)

This change uses the same unit in the Pyomo constraints. The EC expression is algebraically unchanged because its recovery factor is group_size - 1; CR now accounts for recovery traffic being split across the other group members.

The regression test uses the 2-(4,3,2) CR BIBD case. It is infeasible with the previous bound and feasible after normalization.

Tested with:

  • pytest test/test_model.py (18 passed)

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/deepseek-ai/3FS/pull/419 **Author:** [@030611](https://github.com/030611) **Created:** 8/10/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix/data-placement-peer-traffic-318` --- ### 📝 Commits (1) - [`5218c8f`](https://github.com/deepseek-ai/3FS/commit/5218c8fea2cd76ed34b32296594bc43c0a58021f) fix(data-placement): normalize CR peer recovery traffic ### 📊 Changes **2 files changed** (+16 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `deploy/data_placement/src/model/data_placement.py` (+3 -2) 📝 `deploy/data_placement/test/test_model.py` (+13 -0) </details> ### 📄 Description Fixes #318. `calc_peer_recovery_traffic` currently returns the number of groups shared by a disk pair, while `get_peer_traffic` and `check_solution` use normalized recovery traffic: `shared_groups * recovery_traffic_factor / (group_size - 1)` This change uses the same unit in the Pyomo constraints. The EC expression is algebraically unchanged because its recovery factor is `group_size - 1`; CR now accounts for recovery traffic being split across the other group members. The regression test uses the 2-(4,3,2) CR BIBD case. It is infeasible with the previous bound and feasible after normalization. Tested with: - `pytest test/test_model.py` (18 passed) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
deepseek-ai/3FS#423
No description provided.