Skip to content

doc: ADR for removing MongoDB usage.#29098

Merged
ormsbee merged 1 commit into
masterfrom
ormsbee/no-mongo-adr
Nov 9, 2021
Merged

doc: ADR for removing MongoDB usage.#29098
ormsbee merged 1 commit into
masterfrom
ormsbee/no-mongo-adr

Conversation

@ormsbee

@ormsbee ormsbee commented Oct 24, 2021

Copy link
Copy Markdown
Contributor

ADR for removing MongoDB as a dependency of edx-platform.

@ormsbee ormsbee force-pushed the ormsbee/no-mongo-adr branch from ee57f10 to 1e74053 Compare October 25, 2021 20:41
@edx-status-bot

Copy link
Copy Markdown

Your PR has finished running tests. There were no failures.

@felipemontoya

Copy link
Copy Markdown
Member

This sums up what we have been talking around the community spaces. Thanks a lot. 👍

@bradenmacdonald

Copy link
Copy Markdown
Contributor

@ormsbee

ormsbee commented Oct 26, 2021

Copy link
Copy Markdown
Contributor Author

FYI @kdmccormick, @connorhaugh, @kenclary

I'm holding this open for a couple of weeks in case anyone wants to raise concerns: https://discuss.openedx.org/t/adr-for-removing-mongodb-from-edx-platform/6001


* Old Mongo (``DraftModuleStore``) will be removed as a storage backend altogether. This is already covered under DEPR-58, and affects only old style courses with course keys in the "Org/Course/Run" format (as opposed to the "course-v1:Org+Course+Run" format).
* ContentStore storage of course static assets will be moved to django-storages, allowing for pluggable backends (e.g. files, S3, GridFS).
* Split Modulestore (``DraftVersioningModuleStore``) will be moved to use the Django ORM for the active version lookup, and django-storages to replace key-value storage of what are structure and definition documents today.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Django ORM" => are you planning to use any existing library for versioning or formulating version look-up schema from scratch?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Versioning will use the same implementation as it does today (in MongoDB), but the data will just be stored in a MySQL row instead of a MongoDB document. You can see the details in https://github.com/edx/edx-platform/pull/29058

However, the move to the MySQL table does allow us to also use django_simplehistory, so we've turned that on for the active versions table, and it provides a historical record of the changes to each course.

@ormsbee ormsbee merged commit 0ec2a3b into master Nov 9, 2021
@ormsbee ormsbee deleted the ormsbee/no-mongo-adr branch November 9, 2021 15:55
@edx-pipeline-bot

Copy link
Copy Markdown
Contributor

EdX Release Notice: This PR has been deployed to the staging environment in preparation for a release to production.

@edx-pipeline-bot

Copy link
Copy Markdown
Contributor

EdX Release Notice: This PR has been deployed to the production environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants