Commit Graph

48211 Commits

Author SHA1 Message Date
d6d9efae60 Merge pull request #16541 from peppy/carousel-search-performance-simple
Avoid performing keyword filtering at song select unless keywords are specified
2022-01-21 13:35:43 +09:00
10056e0dfd Merge pull request #16532 from peppy/backup-before-opening-ef-context
Create backup of databases before opening contexts
2022-01-21 13:12:53 +09:00
45bf35c425 Avoid performing keyword filtering at song select unless keywords are specified 2022-01-21 12:26:24 +09:00
7aad2780b1 Add retry logic for realm backup creation 2022-01-21 00:46:53 +09:00
079b2dfc42 Create backup of databases before opening contexts
Attempt to avoid file IO issues.

Closes #16531.
2022-01-21 00:46:53 +09:00
1a20725162 Merge pull request #16529 from peppy/fix-realm-subscription-overhead
Remove all calls to `Realm.Refresh` to fix blocking overhead from subscriptions
2022-01-20 20:58:11 +09:00
c986c1b702 Merge pull request #16523 from peppy/realm-async-carousel-load
Use asynchronous loading for beatmap carousel again
2022-01-20 20:55:48 +09:00
5df46d0a54 Remove all calls to Realm.Refresh to fix blocking overhead from subscriptions
Turns out this is not required if realm is aware of a
`SynchronizationContext`. See
https://github.com/realm/realm-dotnet/discussions/2775#discussioncomment-2005412
for further reading.
2022-01-20 20:23:18 +09:00
b1cf3befa6 Fix incorrect query in comment 2022-01-20 18:36:20 +09:00
cab63830a1 Merge pull request #16527 from peppy/remove-parameterless-beatmapinfo-ctor-usage
Avoid constructor allocation/GC overhead in realm implicit constructors
2022-01-20 18:11:35 +09:00
2da8d8a279 Merge pull request #16528 from peppy/remove-detach-collection
Remove unnecessary detach operation
2022-01-20 18:11:22 +09:00
3ba712703b Add a note about hidden beatmap check 2022-01-20 17:50:17 +09:00
4235fb317d Remove unnecessary detach operation 2022-01-20 17:35:32 +09:00
0bd7486a83 Avoid constructor overhead for realm SkinInfo parameterless constructor 2022-01-20 17:29:07 +09:00
70cc03fe43 Avoid constructor overhead for realm RealmKeyBinding parameterless constructor 2022-01-20 17:29:07 +09:00
6c10531df2 Avoid constructor overhead for realm BeatmapMetadata parameterless constructor 2022-01-20 17:14:51 +09:00
deb108816c Fix some regressions in json output (we need to make all these explicit instead) 2022-01-20 17:09:31 +09:00
ccddf9b47d Avoid constructor overhead for realm BeatmapSetInfo parameterless constructor 2022-01-20 17:03:44 +09:00
3c852e6d02 Avoid constructor overhead for realm ScoreInfo parameterless constructor 2022-01-20 16:47:27 +09:00
3faf980fed Avoid constructor overhead for realm BeatmapInfo parameterless constructor 2022-01-20 16:47:27 +09:00
1dabf6c8a5 Fix BeatmapCarousel signalling it is finished loading before catching up on realm changes 2022-01-20 16:39:42 +09:00
64fe7d8dd3 Merge pull request #16520 from peppy/refresh-after-migrate
Improve realm migration performance further
2022-01-20 14:38:23 +09:00
7509b31176 Merge pull request #16519 from peppy/fix-legacy-score-import-classic-mod
Fix legacy score imports not correctly getting classic mod assigned
2022-01-20 14:28:29 +09:00
4f86a2cb61 Merge pull request #16525 from bdach/beatmap-listing-overflow-and-scrolling
Improve usability of expanded card content on beatmap listing
2022-01-20 14:14:44 +09:00
e9939199e6 Merge pull request #16526 from bdach/news-sidebar-wrong-headers
Fix news sidebar assuming returned posts are always from given year
2022-01-20 13:47:21 +09:00
b8184a3005 Fix news sidebar assuming returned posts are always from given year 2022-01-19 23:13:30 +01:00
4cad5890c6 Add test coverage for news sidebar showing wrong headers 2022-01-19 23:12:35 +01:00
247c557eaf Fix expanded content scrollbar inadvertently hiding expanded content 2022-01-19 22:30:49 +01:00
77748a5f93 Show scrollbar on expanded card content where applicable 2022-01-19 22:21:08 +01:00
33ab356dc5 Fix expanded card content being clipped on beatmap listing overlay 2022-01-19 22:10:05 +01:00
d925e44b40 Add test coverage for beatmap card expanded content clipping 2022-01-19 22:08:52 +01:00
a27a3b308c Remove duplicate setters 2022-01-20 04:34:00 +09:00
fea4400c03 Remove unused using directive 2022-01-19 18:49:37 +01:00
6c46fd6931 Fix some failing tests due to realm beatmaps overwriting test beatmaps 2022-01-20 00:19:16 +09:00
9435464eb3 Merge branch 'master' into realm-async-carousel-load 2022-01-19 18:25:31 +09:00
4b127d5029 Merge pull request #16522 from peppy/detach-before-hidden-check
Detach beatmap set before checking hidden state
2022-01-19 18:25:23 +09:00
2789986699 Use asynchronous loading for beatmap carousel again 2022-01-19 18:15:43 +09:00
ddd1699621 Merge pull request #16521 from peppy/backup-collections
Backup collections alongside main databases when migrating to realm
2022-01-19 17:02:49 +09:00
200fcb6f83 Detach beatmap set before checking hidden state 2022-01-19 16:59:49 +09:00
fad66d7682 Backup collections alongside main databases when migrating to realm 2022-01-19 16:31:36 +09:00
aa93042aa3 Centralise backup code and also run on skin/settings migrations 2022-01-19 16:31:36 +09:00
fd5198d667 Avoid using parameterless constructors in migration code
Minor performance improvement (less garbage).
2022-01-19 16:22:18 +09:00
42736c9995 Add transactional committing of scores/beatmaps
This helps slightly with performance, allows better monitoring via realm
studio, but most importantly greatly reduces filesize.

fully compacted:        109M
transaction size 100:   115M
transaction size 1000:  123M
transaction size 10000: 164M
single transaction:     183M

With a transaction size of 100 there is a performance reduction, so 1000
seems to be the best middle-ground.
2022-01-19 16:08:48 +09:00
973836484c Avoid using a write context for EF migration
This reduces a stall delay as EF tries to process changes over tracked
objects during disposal of the context.
2022-01-19 15:56:58 +09:00
faec62be51 Force a realm refresh after migration
This really shouldn't have much effect as it will be run in the first
`Update` method and is probably a noop (we are already pointing to the
newest version due to just performing writes), but seems like a safe addition.

In general `Realm.Refresh()` only really does anything when there's multithreaded
usage and notifications to be sent.
2022-01-19 15:56:58 +09:00
9920ff51a6 Merge pull request #16446 from peppy/summary-timeline-control-point-optimisation
Reduce number of redundant control points displayed on summary timeline
2022-01-19 15:51:20 +09:00
2475a62f2d Merge pull request #16518 from nekodex/participantlist-cleanup
Remove unused BDL parameter in `ParticipantList`
2022-01-19 14:59:40 +09:00
5f5765d6a2 Reduce redundancy time range to create a bit more visual blending on the timeline 2022-01-19 14:57:01 +09:00
03ac91a3ee Consider all points in a group to meet redundancy check 2022-01-19 14:56:44 +09:00
93cd07f7fb Merge branch 'master' into summary-timeline-control-point-optimisation 2022-01-19 14:50:45 +09:00