Performance: Onyx new storage wrapper (idk-keyval)#25565
Performance: Onyx new storage wrapper (idk-keyval)#25565marcaaron merged 3 commits intoExpensify:mainfrom
Conversation
|
Triggering the build |
|
Whoops, let's wait before we merge! Need to remove the local forage dependency as it isn't used anymore 😅 👍 |
|
https://25565.pr-testing.expensify.com/ Web build should be ready here 🚀 |
|
Builds are ready @situchan are you able to make this your priority for today and test and see if there are any issues with this? |
|
Tests well so far on web. Still testing on all platforms |
|
I haven't noticed any regressions yet but how to measure noticeable performance improvement? |
We can give the adhoc link to some guides to A/B and see if it improves their startup time cc @sakluger |
|
@hannojg There is a regression here that the LHN is always refreshing when you put the app to background and come back/ switch tabs. Would you be able to look into that? |
I remember this already happens on production, not caused by this PR |
|
@situchan I cannot repro on staging but I can on the branch build |
|
It could be happening on main tho, in which case its not related to this PR for sure @situchan any chance you could help us confirm that? |
on which platform did you reproduce? |
web |
|
I think it's the same thing we already saw when approving and merging this PR? #25426 (comment) |
|
Sorry wrong comment link. This is the right one here |
yes, correct but I thought @mountiny was pointing to a different bug which always happens without needing to re-login? |
What we saw was happening just on putting the app to background and foreground, maybe we can make a new build here |
|
@situchan lets see if we can merge this one |
|
I have tested the web and ios and it seems fine except the LHN refreshing on native ios when I put the app to background and open it again. You can see it at the end of the ios video RPReplay_Final16928854192.mp4 |
…ew-storage-wrapper
|
I cannot reproduce in a simulator, I am inclined towards going ahead |
|
Maybe its a problem with the adhoc build, if this will be repro in staging after deploy, then we have a culprit at least |
|
ok going ahead checklist |
|
@situchan appreciated |
|
🧪🧪 Use the links below to test this build in android and iOS. Happy testing! 🧪🧪 |
|
I dont see it anymore |
Good news |
Reviewer Checklist
Screenshots/VideosWebweb.movMobile Web - ChromeMobile Web - SafariDesktopiOSios.movAndroidandroid.mov |
|
I'm gonna push this one forward so we can get it onto staging sooner vs. later. Sounds like there are some other improvements to get to after this! 🚀 |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
I'll test again as well once this is deployed to staging to make sure the LHN refresh bug is not happening anymore. |
|
🚀 Deployed to staging by https://github.com/marcaaron in version: 1.3.58-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.58-5 🚀
|
|
🚀 Deployed to staging by https://github.com/marcaaron in version: 1.3.59-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 1.3.59-5 🚀
|
|
This PR caused an issue of login failure when we use magic link on a different tab - #26190 (comment) |
Details
This is a performance improvement, where we remove the old storage wrapper
local foragewithidb-keyvalwhich forOnyx.mergeCollectionprovides up to 100% faster results due to running the changes in one database transaction.Details can be found here:
Fixed Issues
$ #25566
Tests
Play around in the app, no specific test steps
Offline tests
Play around in the app, no specific test steps
QA Steps
Play around in the app, no specific test steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)myBool && <MyComponent />.src/languages/*files and using the translation methodWaiting for Copylabel for a copy review on the original GH to get the correct copy.STYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))Avataris modified, I verified thatAvataris working as expected in all cases)ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Web
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
Android