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

perf: lazily perform remote updates to the graph #8806

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

runspired
Copy link
Contributor

In many situations we don't need to flush remote updates until access has occurred. This improves performance when the received state would not be readily observed by the consuming application, such as what occurs when applications significantly overfetch the data they need for a given view.

@runspired runspired added 🎯 canary PR is targeting canary (default) 🏷️ perf PRs that improve performance in a notable way ci-perf Activates Performance Checks in CI labels Aug 28, 2023
@github-actions
Copy link

github-actions bot commented Aug 28, 2023

Performance Report for 36c7a4e

Scenario - basic-record-materialization: ✅ Performance improved

✅ duration
phase estimated improvement -970ms [-985ms to -945ms] OR -40.92% [-41.55% to -39.89%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-2ms to 1ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [0ms to 4ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -797ms [-803ms to -791ms] OR -64.75% [-65.24% to -64.27%]
✅ Phase [start-peek-records] => [start-record-materialization]
phase estimated improvement -1ms [-1ms to 0ms] OR -4.71% [-5.54% to -3.89%]
✅ Phase [start-record-materialization] => [end-record-materialization]
phase estimated improvement -23ms [-156ms to -7ms] OR -4.95% [-33.02% to -1.37%]
✅ Phase [end-record-materialization] => [Test End]
phase estimated improvement -19ms [-25ms to -13ms] OR -37.18% [-47.72% to -24.54%]

Scenario - relationship-materialization-simple: ⚠️ Performance regressed

⚠️ duration
phase estimated regression +17ms [11ms to 23ms] OR +2.1% [1.36% to 2.87%]
☑️ Phase [navigationStart] => [start-find-all]
phase no difference [-2ms to 1ms]
✅ Phase [start-find-all] => [start-materialization]
phase estimated improvement -154ms [-157ms to -152ms] OR -46.15% [-46.95% to -45.42%]
⚠️ Phase [start-materialization] => [end-materialization]
phase estimated regression +174ms [169ms to 180ms] OR +49.37% [48.07% to 50.94%]
✅ Phase [end-materialization] => [Test End]
phase estimated improvement -1ms [-2ms to 0ms] OR -3.06% [-8% to -1%]

Scenario - relationship-materialization-complex: ⚠️ Performance regressed

⚠️ duration
phase estimated regression +41ms [15ms to 67ms] OR +1.22% [0.44% to 2.02%]
☑️ Phase [navigationStart] => [start-data-generation]
phase no difference [-1ms to 2ms]
☑️ Phase [start-data-generation] => [start-push-payload]
phase no difference [-1ms to 1ms]
✅ Phase [start-push-payload] => [start-peek-records]
phase estimated improvement -418ms [-421ms to -416ms] OR -66.87% [-67.31% to -66.44%]
☑️ Phase [start-peek-records] => [start-record-materialization]
phase no difference [0ms to 0ms]
⚠️ Phase [start-record-materialization] => [start-relationship-materialization]
phase estimated regression +42ms [39ms to 44ms] OR +19.71% [18.26% to 21%]
⚠️ Phase [start-relationship-materialization] => [end-relationship-materialization]
phase estimated regression +418ms [388ms to 446ms] OR +21.12% [19.6% to 22.53%]
☑️ Phase [end-relationship-materialization] => [Test End]
phase no difference [-19ms to 1ms]

Scenario - unload: ✅ Performance improved

✅ duration
phase estimated improvement -268ms [-272ms to -264ms] OR -34.39% [-34.86% to -33.91%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 2ms]
✅ Phase [start-push-payload] => [start-unload-records]
phase estimated improvement -278ms [-280ms to -276ms] OR -67.5% [-68.11% to -66.99%]
⚠️ Phase [start-unload-records] => [end-unload-records]
phase estimated regression +8ms [6ms to 11ms] OR +6.17% [4.32% to 7.9%]
☑️ Phase [end-unload-records] => [Test End]
phase no difference [0ms to 1ms]

Scenario - unload-all: ✅ Performance improved

✅ duration
phase estimated improvement -520ms [-528ms to -512ms] OR -28.69% [-29.14% to -28.22%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 2ms]
✅ Phase [start-push-payload] => [start-materialization]
phase estimated improvement -534ms [-539ms to -529ms] OR -66.25% [-66.83% to -65.62%]
⚠️ Phase [start-materialization] => [start-unload-all]
phase estimated regression +46ms [42ms to 49ms] OR +16.67% [15.37% to 17.81%]
✅ Phase [start-unload-all] => [end-unload-all]
phase estimated improvement -29ms [-34ms to -25ms] OR -7.62% [-8.76% to -6.58%]
☑️ Phase [end-unload-all] => [Test End]
phase no difference [0ms to 0ms]

Scenario - destroy: ⚠️ Performance regressed

⚠️ duration
phase estimated regression +498ms [491ms to 506ms] OR +64.75% [63.74% to 65.7%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 2ms]
✅ Phase [start-push-payload] => [start-destroy-records]
phase estimated improvement -276ms [-278ms to -273ms] OR -67.21% [-67.81% to -66.47%]
⚠️ Phase [start-destroy-records] => [end-destroy-records]
phase estimated regression +774ms [767ms to 780ms] OR +624.4% [619.39% to 629.81%]
✅ Phase [end-destroy-records] => [Test End]
phase estimated improvement -1ms [-2ms to -1ms] OR -3.5% [-6.1% to -1.75%]

Scenario - add-children: ✅ Performance improved

✅ duration
phase estimated improvement -149ms [-153ms to -146ms] OR -25.38% [-25.98% to -24.76%]
☑️ Phase [navigationStart] => [start-push-initial-payload]
phase no difference [-2ms to 1ms]
✅ Phase [start-push-initial-payload] => [start-push-update-payload]
phase estimated improvement -83ms [-86ms to -81ms] OR -43.6% [-44.84% to -42.43%]
✅ Phase [start-push-update-payload] => [end-push-update-payload]
phase estimated improvement -66ms [-68ms to -64ms] OR -43.45% [-44.79% to -42.06%]
☑️ Phase [end-push-update-payload] => [Test End]
phase no difference [0ms to 0ms]

Scenario - unused-relationships: ✅ Performance improved

✅ duration
phase estimated improvement -276ms [-280ms to -273ms] OR -42.87% [-43.44% to -42.38%]
☑️ Phase [navigationStart] => [start-push-payload]
phase no difference [-1ms to 2ms]
✅ Phase [start-push-payload] => [end-push-payload]
phase estimated improvement -274ms [-276ms to -271ms] OR -66.85% [-67.51% to -66.1%]
✅ Phase [end-push-payload] => [Test End]
phase estimated improvement -2ms [-5ms to -1ms] OR -5.56% [-14.95% to -2.81%]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-perf Activates Performance Checks in CI 🎯 canary PR is targeting canary (default) 🏷️ perf PRs that improve performance in a notable way
Projects
Status: No status
Status: In Development
Relationship Refactor
  
In Development
Development

Successfully merging this pull request may close these issues.

None yet

1 participant