Comments (4)
all operations are atomic
what about this scenario?
- client A reads a note from the server, sees it hasn't been updated
- before it can update the note, client B pushes its changes
- client A pushes its change overwriting B's update
but then, i don't think a sync lock would've prevented it anyway
from joplin.
You're right, I don't think we support this. The individual write/delete operations are atomic but checking some info, then writing something based on it is not. I guess it's never been a problem since it would require changes to be made almost at the exact same time on two different clients. And indeed the sync locks would not help with this.
from joplin.
tbh, i think sync should just lock the whole thing like the exclusive lock does, it'd make reasoning about sync much easier
yes it'd prevent multiple clients from syncing at the same time so what
from joplin.
Reasoning about sync, maybe, but it also brings extra complexity especially when things don't go as expected. We need to ensure sync locks can expire, but we also need to make sure they don't expire too quickly so that someone with a slow connection doesn't get locked out. Also if you import a huge ENEX file for example and sync it on desktop, meanwhile you can't use your phone at all to sync your notes.
There are probably other potential issues we aren't familiar with (since we never tried to make sync lock exclusive) and it's possible we'd simplify thing on one side but make it more complex on another side.
from joplin.
Related Issues (20)
- `_n` selects the wrong form for zero and negative counts of items
- Cant start app in development in mac HOT 10
- Desktop: Search result changes when a note is edited
- Mobile: Notebook picker on new note doesn't move the note
- Clicking on "New notebook" crashes the application HOT 3
- Update plugin config screen HOT 6
- Cache plugin list in Plugin Config screen
- Put plugin settings under a separate section HOT 1
- Remove the "Save" button from the Plugin Config screen HOT 2
- The Search button in the header should be removed from the Plugin Screen HOT 1
- Implement workaround for WebDAV encoding issue on certain servers
- Display html notes using white theme HOT 5
- Don't create a conflict when remote note has been deleted and local has been modified
- Improve conflict handling for encrypted notes
- Mobile: Difficult to refocus the note editor when creating a new to-do
- Cursor and view move to random position on layout change (not always) HOT 1
- server: user never really deletes after scheduling for deletion HOT 4
- unable to import @joplin/turndown into my esm project HOT 1
- When MFA login fails, display an orange banner at the top of the screen HOT 5
- Joplin does not update notes when using an external editor HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from joplin.