Feature Request: Return the atomic mutation results as part of a successful commit
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
The mutate APIs are very useful and can be more beneficial if the mutation result is returned to the client. We understand that the mutation result cannot be returned from the mutate method (since it mutated only at the commit time), but isnt it possible to return it as part of the commit summary (along with the commit version)? Our understanding is the proxy will wait for all tLog servers to make the necessary mutations before returning the commit version to the client, hence the mutation result should be available at commit time.
It will be very useful to implement features like sequences/counters/rate limiters etc. Currently, its impossible to implement a concurrent counter with increment/decrement features in FDB. Any approach will cause a lot of client retries.
Since similar feature is available in other DBs [Redis](https://redis.io/commands/incr), [Couchbase] (https://developer.couchbase.com/documentation/server/4.1/developer-guide/counters.html), having a matching feature will help/ease with the migration to FDB.
Thoughts?
Contributor guide
Research direction
No files or tests are named. Start by reviewing the mutate APIs and the commit summary path, then determine how mutation results and commit versions are currently exposed. Done means an agreed design and implementation scope for returning atomic mutation results with a successful commit, including coverage for concurrent counter use cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend-api-design, databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100