-
-
Notifications
You must be signed in to change notification settings - Fork 202
perf: Implement O(1) Lookup Map for internalId #9076
Copy link
Copy link
Closed
Labels
aicoreCore framework functionalityCore framework functionalityperformancePerformance improvements and optimizationsPerformance improvements and optimizations
Description
Context:
The recent adoption of internalId (#9070) introduced robust identity for Records and Raw Objects. However, resolving an item from its internalId currently relies on store.items.find(...), which is an O(N) operation.
In large datasets (e.g. 100k rows), this kills performance for selection, navigation, and drag-and-drop operations that rely on reverse lookup.
Objective:
Implement a secondary map (internalIdMap) in Neo.collection.Base to provide O(1) lookup for internalId (or any secondary key).
Architecture:
-
Collection.Base:
- Add
trackInternalIdconfig (or similar flag). - Add
internalIdMap(Map). - Add
getInternalKey(item)method (to be overridden). - Update
splice(add/remove logic) to maintaininternalIdMapin sync with the primary map. - Add
getByInternalId(id)accessor.
- Add
-
Store:
- Enable tracking.
- Override
getInternalKeyto returnitem[internalId].
-
Refactor Consumers:
- Update
GridBody,TableBody,Helix,Gallery,SelectionModelsto usestore.getByInternalId(id)instead ofstore.items.find(...).
- Update
Result:
Restores O(1) performance for all ID-based lookups in the framework.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
aicoreCore framework functionalityCore framework functionalityperformancePerformance improvements and optimizationsPerformance improvements and optimizations