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

Research: Store search tree for faster access times #51152

Open
hannojg opened this issue Oct 21, 2024 · 0 comments
Open

Research: Store search tree for faster access times #51152

hannojg opened this issue Oct 21, 2024 · 0 comments
Labels

Comments

@hannojg
Copy link
Contributor

hannojg commented Oct 21, 2024

This is a follow up from this PR:

which was created for this issue ticket originally:

This is a follow up ticket where we'd like to do some research on how to maximise efficiency.

The data a user wants to search through in expensify don't change that often that much (new reports are added, or new coworkers are added to a workspace, but overall these are only small additions if that user has 20k personal details - we don't expect those to change that often).
Right now on every app load we construct a new FastSearch instance, which is efficient but still takes some time and resources (it takes longer the bigger the data set of the user).
We could optimise this by storing the backing array buffer of the search tree, and on app start just loading it from storage. We assume that this can be very fast as array buffers don't need to be serialized and are very quick in react-native-mmkv and indexeddb.

With this ticket we want to see, if this approach and added complexity would be worth the performance gain.

@hannojg hannojg changed the title Research: Store search tree for faster access times. Research: Store search tree for faster access times Oct 21, 2024
@melvin-bot melvin-bot bot added the Monthly KSv2 label Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant