Skip to content
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

refactor(greader): incrementally fetch the unread items by difference set #570

Merged
merged 2 commits into from
Jan 30, 2024

Conversation

Ashinch
Copy link
Owner

@Ashinch Ashinch commented Jan 30, 2024

This is a reference to Reeder's synchronization logic, which syncs well across multiple devices. The following link contains other great synchronization logic, but it was not adopted due to the solidified domain model of this application.

During the initial synchronization, it fetches all articles from the past month to provide users with a better multi-device experience. However, during subsequent synchronizations (n-th time), it only fetches items that have differences between the local device and the server, reducing network requests. Currently, the synchronization time is mainly blocked on replacing the database records of subscription list, which can be addressed later by revising the model. The primary method of data exchange currently relies on in-memory operations, which might not be very friendly for low-memory devices. Utilizing an database intermediate table for data exchange could resolve this issue. However, the application currently consumes excessive connection pools, resulting in a lagging experience for high-memory devices. We look forward to addressing these issues through model refactoring in future iterations.

@Ashinch Ashinch marked this pull request as ready for review January 30, 2024 11:49
@Ashinch Ashinch merged commit c08753e into main Jan 30, 2024
2 checks passed
@Ashinch Ashinch deleted the refactor-difference-set-sync branch January 30, 2024 11:49
@Ashinch Ashinch added this to the 0.9.12 milestone Feb 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant