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

Planned improvements to database handling #131

Open
2 of 3 tasks
YourOrdinaryCat opened this issue Feb 28, 2022 · 2 comments
Open
2 of 3 tasks

Planned improvements to database handling #131

YourOrdinaryCat opened this issue Feb 28, 2022 · 2 comments
Labels
enhancement New feature or request feature-artists-genres-albums Issues that are related to artists, genres and albums. help wanted Extra attention is needed triage-approved Issues that have been approved by the Rise Media Player team and awaiting a fix

Comments

@YourOrdinaryCat
Copy link
Collaborator

YourOrdinaryCat commented Feb 28, 2022

I'm making this issue to get some feedback regarding the way we currently handle indexing and databases. Currently we use an Entity Framework Core (EFC) backend with foreground change tracking, checking for changes from time to time and when certain events are triggered. Whenever we detect new media, we insert it into the DB and add it to the respective collection.

This system has gotten mixed feedback from end users. To make matters worse, it causes an increasing amount of issues:

  • EFC makes app startup in debug builds slow down to a crawl, and EFC 5 won't be made available to UWP due to it needing .NET Standard 2.1. Inserting big amounts of items into the DB can also be quite slow
  • Foreground change tracking means we can't get a full list of library changes, which means we have to trigger full library crawls to add new media
  • Because of the way we handle inserting data into the DB, we currently cannot insert media in the background, it must be done when the app is running

Here's the list of things I currently want to achieve:

With that said, do post your feedback here! If you're a dev, feel free to suggest improvements to our current tooling. If you're not, make a separate issue and link it here. As always, make sure to provide concrete feedback (for example, "songs from foo don't show up if they're in a folder called bar").

@YourOrdinaryCat YourOrdinaryCat added enhancement New feature or request feature-artists-genres-albums Issues that are related to artists, genres and albums. help wanted Extra attention is needed triage-approved Issues that have been approved by the Rise Media Player team and awaiting a fix labels Feb 28, 2022
@YourOrdinaryCat YourOrdinaryCat pinned this issue Feb 28, 2022
@itsWindows11
Copy link
Collaborator

Are you planning on making the indexer only adding/removing items when needed instead of indexing and upserting and re-adding the whole list again?

@YourOrdinaryCat
Copy link
Collaborator Author

Only indexing and upserting when needed, but the collections within the app would be reset, it's more reliable to clear then insert entire ranges with ObservableRangeCollection. AdvancedCollectionView takes a long time to properly handle vector change events.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature-artists-genres-albums Issues that are related to artists, genres and albums. help wanted Extra attention is needed triage-approved Issues that have been approved by the Rise Media Player team and awaiting a fix
Projects
None yet
Development

No branches or pull requests

2 participants