-
Notifications
You must be signed in to change notification settings - Fork 5
Range based syncing #352
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Range based syncing #352
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #352 +/- ##
==========================================
+ Coverage 71.68% 72.38% +0.70%
==========================================
Files 142 144 +2
Lines 5301 5545 +244
==========================================
+ Hits 3800 4014 +214
- Misses 1501 1531 +30 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
1-leo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain what happens on a high level? Is this only for queries or also for streams?
As I understand it, it's an optional usecase to help with range based syncing, right?
From the db structure its independent of events, and the filtersHash is stored?
I don't quite understand how this would work with changing environments. E.g., the relay has more events for the same query than 5 minutes ago.
It looks like a good approach, but I need to understand it better.
packages/ndk/lib/domain_layer/entities/filter_fetched_ranges.dart
Outdated
Show resolved
Hide resolved
High-level explanationThis PR introduces a coverage tracking system that records which time ranges have been successfully fetched from each relay for a given filter. Queries and streamsThe coverage is updated when NDK receive EOSE so it's for queries and streams. Optional usecaseYes it's optional, the dev can use it or not. It's the first brick that we need to implement the sync usecase or to do more efficient queries and streams. DB structureYes, it's independent of events. Changing environments (new events in a previous query)The coverage tracks what we asked for, not what exists. |
|
thx for explaining! |
|
frnandu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't cache implementation need to implement the new methods?
I have compilation errors on isar/objectbox/sembast packages when checking out this branch....
No description provided.