tursodatabase / tursodatabase/libsql
Upgrade local read transaction to remote write transaction?
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 17.2k
- Forks
- 531
- Avg merge
- 1h 12m
- Merged PRs (30d)
- 1
Description
There are cases where applications don't know up front if a transaction is a read or write. We could treat BEGIN DEFERRED as a read-only transaction optimistically and when we encounter a write, we attempt to upgrade to a write transaction. Now if the WAL offset is the same locally and remotely, we can upgrade fine. And if they're not the same, then we abort.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how BEGIN DEFERRED transactions handle a write and how WAL offsets are compared locally and remotely. Define the behavior for matching offsets and for mismatches that must abort, then validate both transaction paths with focused tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, sqlite
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100