Conversation
Co-authored-by: Arati R. <33031346+suntala@users.noreply.github.com>
Fix: unable to enable user
Co-authored-by: maicon <maiconscosta@gmail.com>
Hi there 👋
The Mode 3 dual-writer implementation matches the documented contract structurally: reads ( The most significant issues: (1) the async goroutines derive their timeout from the incoming HTTP request context, which is cancelled as soon as the handler returns (i.e. immediately after the unified write), so the "safe-measure" legacy write races request teardown and may be cancelled before it lands — defeating the purpose of the mode; (2) multiple write paths record the wrong metric series (storage failures reported as legacy, and the DeleteCollection async path reporting legacy as storage), plus a mislabeled Test coverage is also incomplete: unit tests never assert the async legacy path actually ran (no Overall: the feature is directionally correct but not ready to merge given the async reliability, metric-accuracy, and test-integrity problems. These might need a close look
Worth checking
Small things (take or leave)
✅ Feature-level checklistLooks good
Partially covered
Review time: 3m 36s |
What is this feature?
Mode 3 will work the following way:
reads (get, list) : only use unified storage
writes (create, update, delete, delete-collection) : write to unified storage and then asynchronously, write to legacy, just as a safe measure.
Why do we need this feature?
[Add a description of the problem the feature is trying to solve.]
Who is this feature for?
[Add information on what kind of user the feature is for.]
Which issue(s) does this PR fix?:
Fixes https://github.com/grafana/search-and-storage-team/issues/53
Special notes for your reviewer:
Please check that: