Skip to content

[Onyx Audit] Cache layer #71204

@fabioh8010

Description

@fabioh8010

Overview

This issue is part of our current effort to audit the performance and scalability of Onyx.

During the Step 1: Objective Analysis we gathered a list of Perceived Problems we have exclusively about Onyx, that is, the problems in Onyx we imagine or have some evidences that that are pain points / performance bottenecks to Onyx, but we need more analysis to confirm if they really are and, if so, how much of a problem they are currently.

The main goal right now is to deep dive into each Perceived Problem, investigate/audit it and come up with findings, which we will use for the next discussions.

Problem

Our cache layer improved a lot these last months. We are now memoizing our selectors, cache reads are faster, and we are soon going to cache useOnyx snapshots and collections too. We also improved our cache eviction system. But, what else do we need to improve? How the cache performs under high amount of data in memory? Do we need to further improve the eviction system?

Action Items

  1. Investigate the current cache system (considering all the improvements we have in line) and audit how cache performs under different loads of data in memory, and identify potential problems there we might be missing.
  2. Evaluate if the current eviction system is enough for us and it’s being really beneficial in terms of Performance.

Relevant Links

Step 1 Canvas: https://expensify.slack.com/docs/T02P6RS2ZK7/F09B668M1MG

Slack thread: https://expensify.slack.com/archives/C05LX9D6E07/p1757416506609919

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions