aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docker/admin_integration/filer_benchmark/README.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/docker/admin_integration/filer_benchmark/README.md b/docker/admin_integration/filer_benchmark/README.md
index 94c8e6ffe..19cb4f0af 100644
--- a/docker/admin_integration/filer_benchmark/README.md
+++ b/docker/admin_integration/filer_benchmark/README.md
@@ -142,3 +142,25 @@ This tool reproduces the core problem from the original issue:
- **File inconsistencies** (caught by verification steps)
The key difference is this tool focuses on the filer metadata layer rather than the full CSI driver + mount stack, making it easier to isolate and debug the race condition.
+
+## Debugging Findings
+
+### Multi-Filer vs Single-Filer Connection Issue
+
+**Problem**: When using multiple filers with independent stores (non-shared backend), the benchmark may fail with errors like:
+- `update entry with chunks failed: rpc error: code = Unknown desc = not found /benchmark/file_X: filer: no entry is found in filer store`
+- `CreateEntry /benchmark/file_X: /benchmark should be a directory`
+
+**Root Cause**: The issue is NOT missing metadata events, but rather the benchmark's round-robin load balancing across filers:
+
+1. **File Creation**: Benchmark creates `file_X` on `filer1`
+2. **Chunk Updates**: Benchmark tries to update `file_X` on `filer2` or `filer3`
+3. **Error**: `filer2`/`filer3` don't have `file_X` in their local store yet (metadata sync delay)
+
+**Verification**: Running with single filer connection (`-filers localhost:18888`) while 3 filers are running shows **NO missed events**, confirming metadata synchronization works correctly.
+
+**Solutions**:
+- Ensure `/benchmark` directory exists on ALL filers before starting
+- Use file affinity (same filer for create/update operations)
+- Add retry logic for cross-filer operations
+- Add small delays to allow metadata sync between operations