-
Notifications
You must be signed in to change notification settings - Fork 2.9k
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
Performance: Onyx new storage wrapper (idk-keyval) #25565
Performance: Onyx new storage wrapper (idk-keyval) #25565
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 forage
withidb-keyval
which forOnyx.mergeCollection
provides 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 Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodWaiting for Copy
label for a copy review on the original GH to get the correct copy.STYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)/** comment above it */
this
properly so there are no scoping issues (i.e. foronClick={this.submit}
the methodthis.submit
should be bound tothis
in the constructor)this
are necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);
ifthis.submit
is never passed to a component event handler likeonClick
)StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Web
Mobile Web - Chrome
Mobile Web - Safari
Desktop
iOS
Android