-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
[HOLD for payment 2023-01-19] [Performance] Use react-native-quick-sqlite instead of asyncStorage #10793
Comments
Triggered auto assignment to @thienlnam ( |
📣 @Szymon20000! 📣 |
Switching this to weekly |
👋 Should we update the title of this issue to be "use |
This issue has not been updated in over 15 days. @Szymon20000, @roryabraham eroding to Monthly issue. P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do! |
This issue has not been updated in over 15 days. @Szymon20000, @roryabraham eroding to Monthly issue. P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do! |
Commenting again for Melvin. |
@Szymon20000 following on all the activity last week in the PR, is your plan to circle back this week and address? Looks like we are hopefully close and can close this out ahead of the end of the year. |
PR is in review, adding the |
Nice catch. CCing a couple of people in the linked PR. @iwiznia @marcaaron @roryabraham What's needed to get this PR to the finish line ahead of the holidays? |
Approved the PR. I think we will need to:
|
Alright, @yuwenmemon @kidroca @parasharrajat @thienlnam @marcaaron @mountiny @roryabraham Can you all please prioritize a review so that we can unblock this specific PR? We still have several steps left, let's dig in and get this one crossed off the list. |
Do you mean a testing strategy/steps for QA? Since Onyx logic remains the same - it is still covered by existing tests
IMO this would be very little value compared to the time we'll need to spend writing the migration It's not a simple migration like an Onyx key getting renamed to something else To write a migration for the storage driver it:
The alternative is to write no migration, which would simply render the user logged out, and once they log in they'll have their data synchronized automatically (as @marcaaron pointed out earlier: Expensify/react-native-onyx#211 (review)) A middle ground would be to try and migrate only auth data (token, session) so the user does not need to re-login. Then anything missing should be automatically synced from the server |
I mean using the new react-native-onyx version in the app and playing around with it, checking nothing breaks.
Good points. I think I am ok with this.
If this is easy, then let's go for it. Ah, also, I think we should add something to delete all the existing data from the old place, no? Or would the browser clear it out eventually? |
Web Browser - no as we are not messing with web storage in this change. |
Good point, I don't know - need to research this In any case to make migrations easier to manage problems like these we need to update the migration system a bit so that
This would allow us to use dependencies in migrations (e.g. AsyncStorage), and perhaps carry them for a month or 2 (using some heuristics - e.g. are there any users using a version predating the migration) after they are no longer needed we can drop them altogether |
@tgolen Isn't this issue done at this point? |
The PR to upgrade E/App to use the new quick-sqlite based version of Onyx was deployed to staging in #14188, not yet deployed to production |
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.2.52-4 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2023-01-19. 🎊 After the hold period, please check if any of the following need payment for this issue, and if so check them off after paying:
As a reminder, here are the bonuses/penalties that should be applied for any External issue:
|
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
|
I think there is nothing else to do here since payments are handled by different flow in this case. Should we close this issue or anything else left? 🎉 |
@Szymon20000 Can you make sure that we handle your individual $1,000 bonus for this issue on Margelo invoice? |
@mountiny I'll go ahead and close the issue, though can you double confirm that the BZ checklist above doesn't apply? |
It does not apply in this case! |
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
What performance issue do we need to solve?
reducing time spend on serialisation/deserialisation and generally bridge overhead.
What is the impact of this on end-users?
slower app
List any benchmarks that show the severity of the issue
https://github.com/mrousavy/react-native-mmkv#benchmark
Proposed solution (if any)
use react-native-mmkv for Onyx
List any benchmarks after implementing the changes to show impacts of the proposed solution (if any)
Note: These should be the same as the benchmarks collected before any changes.
Platform:
Where is this issue occurring?
Version Number:
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:
View all open jobs on Upwork
The text was updated successfully, but these errors were encountered: