-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
feat: Lazy Relationships & Relationship Diffing #8131
Conversation
Asset Size Report for 0979baf Modern Builds 🛑 The size of the library EmberData has increased by +1.07 KB (+497.0 B compressed) which exceeds the failure threshold of 75 bytes.WarningsChangeset
Full Asset Analysis (Modern)
Modern Builds (No Rollup) 🛑 The size of the library EmberData has increased by +5.63 KB (+1.47 KB compressed) which exceeds the failure threshold of 75 bytes.WarningsChangeset
Full Asset Analysis (Modern)
|
8e3a171
to
d70831c
Compare
62118a8
to
27619cb
Compare
Performance Report for 0979baf Scenario - basic-record-materialization: ✅ Performance improved
Scenario - relationship-materialization-simple: ✅ Performance improved
Scenario - relationship-materialization-complex: ✅ Performance improved
Scenario - unload: ✅ Performance improved
Scenario - unload-all: ✅ Performance improved
Scenario - destroy:
|
06b78e2
to
ce348ed
Compare
Commit v Release Performance Report for 0979baf Scenario - basic-record-materialization: ✅ Performance improved
Scenario - relationship-materialization-simple: ✅ Performance improved
Scenario - relationship-materialization-complex: ✅ Performance improved
Scenario - unload: ✅ Performance improved
Scenario - unload-all: ✅ Performance improved
Scenario - destroy: ✅ Performance improved
Scenario - add-children: ✅ Performance improved
Scenario - unused-relationships: ✅ Performance improved
|
This is a refactor of the internals of the graph into a data structure previously proved out in several older versions of ember-data. Due to various complications these optimizations were never landed; however, the internals (and especially relationships) are now simple enough they may.
The underlying concepts here are around optimizing allocation, instantiation, lookups, iteration and timing.
End Goals
Our long term intent with the graph is to make it entirely public API. This would mean that relationship rollback, relationship diff, and local/remote state information would all be available to consuming applications as needed.
After this PR lands, but before we can make the graph public, we have two primary problems to resolve: (1). how to handle relationship pointers in nested attribute keys. (2) how to embed the proposed pagination structure for collections within the graph.