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(pinia-orm): add optional caching for same get requests #272

Merged
merged 5 commits into from
Sep 15, 2022

Conversation

CodeDredd
Copy link
Owner

@CodeDredd CodeDredd commented Aug 29, 2022

πŸ”— Linked issue

vuex-orm/vuex-orm-next#116

❓ Type of change

  • πŸ“– Documentation (updates to the documentation or readme)
  • 🐞 Bug fix (a non-breaking change that fixes an issue)
  • πŸ‘Œ Enhancement (improving an existing functionality like performance)
  • ✨ New feature (a non-breaking change that adds functionality)
  • ⚠️ Breaking change (fix or feature that would cause existing functionality to change)

πŸ“š Description

Right now if you execute a get request (also find, etc.) then this request is always making the whol script chain which makes it pretty slow in big storages or if you execute the same get request very often.

This implements a simple caching storage like all other libaries have (vuex-orm-cache, vue-query, ....)

Get Speed test for 10k saved items and 5 same queries

get(): with cache: 371.033ms
time query 1: 370.344ms
time query 2: 0.08ms
time query 3: 0.024ms
time query 4: 0.023ms
time query 5: 0.029ms

get(): without cache: 705.5ms
time query without 1: 151.915ms
time query without 2: 140.015ms
time query without 3: 137.248ms
time query without 4: 137.401ms
time query without 5: 137.139ms

πŸ“ Checklist

  • I have linked an issue or discussion.
  • I have updated the documentation accordingly.

@CodeDredd CodeDredd added the enhancement New feature or request label Aug 29, 2022
@CodeDredd CodeDredd changed the title perf(pinia-orm): add caching for same get requests perf(pinia-orm): add optional caching for same get requests Sep 15, 2022
@CodeDredd CodeDredd merged commit b0b275d into next-release Sep 15, 2022
@CodeDredd CodeDredd deleted the caching branch September 15, 2022 09:19
@CodeDredd CodeDredd mentioned this pull request Sep 15, 2022
CodeDredd added a commit that referenced this pull request Sep 15, 2022
…rsion (#343)

* feat(pinia-orm): Adding `hidden` & `visbile` in model and `_meta` field (#240)

* feat(pinia-orm): Adding `hidden` & `visbile` in fields
- Also adding first global configuration

* refactor: add hidden decorator

* refactor(pinia-orm): change inter prop `useMutator` to `operation`

* refactor(pinia-orm): finalize meta feature
- Removed 'sanitize' since it was not used at all

* docs(pinia-orm): add hidden, visible and meta to api

* docs(pinia-orm): add description in guide

* docs(nuxt): add new config options

* docs: add hidden decorator

* docs: add missing withMeta

* test(pinia-orm): Add missing tests for better coverage (#257)

* feat(pinia-orm): Add helper composables for collection (#259)

* feat(pinia-orm): Add helper composable for collection

* refactor(pinia-orm): add build

* refactor(pinia-orm): fix tests and add sortby

* docs(pinia-orm): add api docs for helpers

* docs(pinia-orm): fix small error

* refactor(pinia-orm): remove max out of query

* test(pinia-orm): add missing coverage tests

* docs(pinia-orm): update docs and readme

* docs: add configuration to api & add missing icons (#266)

* docs: update sponsors

* perf(pinia-orm): add optional caching for same `get` requests (#272)

* feat(pinia-orm): add caching for same get requests

* feat(pinia-orm): add caching classes & improve config

* refactor(pinia-orm): add tests & making caching false by default

* refactor(pinia-orm): fix types

* docs(pinia-orm): add cache

* fix(pinia-orm): `(where)has` queries are not working with 1:1 relations (#342)

* chore: update lock file

* fix(playground): Remove vue-hako since it breaks with new vueuse version
CodeDredd added a commit that referenced this pull request Sep 15, 2022
* feat(pinia-orm): Adding `hidden` & `visbile` in model and `_meta` field (#240)

* feat(pinia-orm): Adding `hidden` & `visbile` in fields
- Also adding first global configuration

* refactor: add hidden decorator

* refactor(pinia-orm): change inter prop `useMutator` to `operation`

* refactor(pinia-orm): finalize meta feature
- Removed 'sanitize' since it was not used at all

* docs(pinia-orm): add hidden, visible and meta to api

* docs(pinia-orm): add description in guide

* docs(nuxt): add new config options

* docs: add hidden decorator

* docs: add missing withMeta

* test(pinia-orm): Add missing tests for better coverage (#257)

* feat(pinia-orm): Add helper composables for collection (#259)

* feat(pinia-orm): Add helper composable for collection

* refactor(pinia-orm): add build

* refactor(pinia-orm): fix tests and add sortby

* docs(pinia-orm): add api docs for helpers

* docs(pinia-orm): fix small error

* refactor(pinia-orm): remove max out of query

* test(pinia-orm): add missing coverage tests

* docs(pinia-orm): update docs and readme

* docs: add configuration to api & add missing icons (#266)

* docs: update sponsors

* perf(pinia-orm): add optional caching for same `get` requests (#272)

* feat(pinia-orm): add caching for same get requests

* feat(pinia-orm): add caching classes & improve config

* refactor(pinia-orm): add tests & making caching false by default

* refactor(pinia-orm): fix types

* docs(pinia-orm): add cache

* fix(pinia-orm): `(where)has` queries are not working with 1:1 relations (#342)

* chore: update lock file

* fix(playground): Remove `vue-hako` since it breaks with new vueuse version (#343)

* feat(pinia-orm): Adding `hidden` & `visbile` in model and `_meta` field (#240)

* feat(pinia-orm): Adding `hidden` & `visbile` in fields
- Also adding first global configuration

* refactor: add hidden decorator

* refactor(pinia-orm): change inter prop `useMutator` to `operation`

* refactor(pinia-orm): finalize meta feature
- Removed 'sanitize' since it was not used at all

* docs(pinia-orm): add hidden, visible and meta to api

* docs(pinia-orm): add description in guide

* docs(nuxt): add new config options

* docs: add hidden decorator

* docs: add missing withMeta

* test(pinia-orm): Add missing tests for better coverage (#257)

* feat(pinia-orm): Add helper composables for collection (#259)

* feat(pinia-orm): Add helper composable for collection

* refactor(pinia-orm): add build

* refactor(pinia-orm): fix tests and add sortby

* docs(pinia-orm): add api docs for helpers

* docs(pinia-orm): fix small error

* refactor(pinia-orm): remove max out of query

* test(pinia-orm): add missing coverage tests

* docs(pinia-orm): update docs and readme

* docs: add configuration to api & add missing icons (#266)

* docs: update sponsors

* perf(pinia-orm): add optional caching for same `get` requests (#272)

* feat(pinia-orm): add caching for same get requests

* feat(pinia-orm): add caching classes & improve config

* refactor(pinia-orm): add tests & making caching false by default

* refactor(pinia-orm): fix types

* docs(pinia-orm): add cache

* fix(pinia-orm): `(where)has` queries are not working with 1:1 relations (#342)

* chore: update lock file

* fix(playground): Remove vue-hako since it breaks with new vueuse version

* chore: update readme

* chore: update readme
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant