←back to thread

115 points graderjs | 7 comments | | HN request time: 0.417s | source | bottom
1. dreamer7 ◴[] No.25004897[source]
Slightly off topic - can we use git-diff-able databases for faster syncing of clients with servers?

Or is there no practical difference?

We can return just the latest updated documents by maintaining a lastUpdated timestamp on client and server docs. But this would be at a document level. So, only the fields that have changed would be sent to the client.

replies(3): >>25004919 #>>25005083 #>>25005831 #
2. graderjs ◴[] No.25004919[source]
I'm not sure if it would be faster or less data but this is certainly diffable at the document>-field level. Each field gets its own line at least
3. zmj ◴[] No.25005083[source]
Never trust a clock.
replies(2): >>25005386 #>>25010854 #
4. andreareina ◴[] No.25005386[source]
Yeah wall clock isn't reliable. But if the server could send a global version/logical clock, then the client can say this is the latest version I've got. Which is essentially what tcp, git, etc do.
5. moonchild ◴[] No.25005831[source]
An mutch easier solution that gets you 90% of the way is to just use a binary patcher (like bsdiff) with whatever database format you're already using.
replies(1): >>25006433 #
6. Scaevolus ◴[] No.25006433[source]
bsdiff doesn't scale to gigabytes-- vcdiff or rsync will work better
7. joshspankit ◴[] No.25010854[source]
How about a version chain?