-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Re-add schema pulling #8229
Labels
bounty:$50
Bounty applies for fixing this issue (Parse Bounty Program)
state:released
Released as stable version
state:released-alpha
Released as alpha version
state:released-beta
Released as beta version
type:feature
New feature or improvement of existing feature
Comments
Thanks for opening this issue!
|
mtrezza
added
the
bounty:$50
Bounty applies for fixing this issue (Parse Bounty Program)
label
Jan 29, 2023
The label |
parse-github-assistant
bot
removed
the
bounty:$50
Bounty applies for fixing this issue (Parse Bounty Program)
label
Jan 29, 2023
mtrezza
added
bounty:$100
Bounty applies for fixing this issue (Parse Bounty Program)
bounty:$20
Bounty applies for fixing this issue (Parse Bounty Program)
and removed
bounty:$100
Bounty applies for fixing this issue (Parse Bounty Program)
labels
Jan 29, 2023
The label |
parse-github-assistant
bot
removed
the
bounty:$20
Bounty applies for fixing this issue (Parse Bounty Program)
label
Jan 29, 2023
mtrezza
added
the
bounty:$50
Bounty applies for fixing this issue (Parse Bounty Program)
label
Jan 29, 2023
Merged
1 task
🎉 This change has been released in version 6.0.0-alpha.35 |
🎉 This change has been released in version 6.1.0-beta.1 |
🎉 This change has been released in version 6.1.0-alpha.1 |
🎉 This change has been released in version 6.1.0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
bounty:$50
Bounty applies for fixing this issue (Parse Bounty Program)
state:released
Released as stable version
state:released-alpha
Released as alpha version
state:released-beta
Released as beta version
type:feature
New feature or improvement of existing feature
New Issue Checklist
Issue Description
Parse Server 5 introduced schema hooks with the option
databaseOptions.enableSchemaHooks
in #7214. There are potential performance downsides using the MongoDB change stream.The MongoDB change stream works by setting a cursor on the MongoDB oplog collection. If many Parse Server instances are behind a load balancer, each one will open a change stream and set an oplog cursor. Each cursor adds an overhead to the MongoDB cluster resources in terms of CPU and RAM consumption.
There may be deployments in which schema hooks are disadvantageous. If the schema doesn't change much, it's unnecessary to constantly maintain the database cursors and the previous solution of pulling the schema in regular intervals may be much more economic. In hindsight, it seems that schema hooks should have been added as a optional feature, not a mandatory change.
Steps to reproduce
Run many server instances in a cluster with high write frequency and watch the MongoDB resource consumption increase significantly.
Actual Outcome
The developer has no choice and is forced to use schema hooks, or restart all server instances on every schema change.
Expected Outcome
The developer should have the choice of pulling the schema in defined intervals, as was possible with Parse Server <5.
Workaround
Disable
databaseOptions.enableSchemaHooks
and restart server instances whenever schema changed.Environment
Server
5.7.2
The text was updated successfully, but these errors were encountered: