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

Implement non-SQL based content Store #9040

Closed
wezell opened this issue May 6, 2016 · 7 comments
Closed

Implement non-SQL based content Store #9040

wezell opened this issue May 6, 2016 · 7 comments
Labels
Epic Roadmap Roadmap Item

Comments

@wezell
Copy link
Contributor

wezell commented May 6, 2016

dotCMS stores content in a database table called “contentlet” (files are on a FS). We need other implementations of the content storage that can store and retrieve content in other ways, such as from a noSQL solution. dotCMS will create a ContentStore interface that can be quickly implemented to store content in a variety of NoSql Solutions (very much like the current CacheProvider interface did for our caching layer) and create a proof of concept NoSQL implementation to store content as JSON on the filesystem under the /assets directory in a B-tree directory structure.

  • When a user creates a new ContentType, they will be able to select what Storage Provide they would like to use to store the content.
  • All metadata surrounding and tied to a content object's Identifier will remain in the DB, including:
    • Identifier table info
    • VersionInfo Information
    • Permissions
    • Tags
    • Languages
    • Categories
    • Relationships

Content will be indexed in elasticsearch as it is currently regardless of where it is stored.
NoSQL providers can remove the current 25 field type field limits if as their implementation provides.

The StorageProvider would be an option when creating a new content type (Choose Storage:)
maintain all backward compatibility

@wezell wezell added the Epic label May 6, 2016
@wezell wezell added this to the Roadmap milestone May 6, 2016
@Xander-Steinmann
Copy link
Contributor

It would be great if an entire site (including content, but also templates and containers) could be stored in for instance github and 'checked out' on another server.

@Xander-Steinmann
Copy link
Contributor

Another thing that would be great (in the future) is a way to compare/see the changes in a dotCMS instance using a standard tool like git / diff / beyond compare. If the file-based content store is set-up correctly then this should be possible.

@jbjornson
Copy link

Why hand-craft your own json store on the filesystem when you can use something like CouchDB/MongoDB/ElasticSearch? These are well tested and robust implementations and will most likely be faster, more reliable and have fewer defects than anything you might implement by hand...

@wezell
Copy link
Contributor Author

wezell commented Jul 26, 2016

The idea is that the first NoSQL implementation is a POC. It would provide the framework for a pluggable implementation that could include the above stores. A JSON store would require no external dependencies or special configuration which is why it is an attractive first step to us.

@john-thomas-dotcms
Copy link
Contributor

+1 on @Xander-Steinmann comment. This may be a separate issue, but it's tedious and error-prone to compare different versions of content now, and it would be very helpful to have a way to do some kind of a diff to compare versions. It would be ideal to be able to do this both for entire sites or branches (e.g. via a file-based content store) and also from the backend (e.g. History tab).

@stale stale bot added the wontfix label Sep 28, 2019
@stale stale bot added the wontfix label Dec 29, 2019
@wezell wezell removed the wontfix label Jan 2, 2020
@wezell wezell modified the milestones: Roadmap, Lunik Current Jan 10, 2020
@dotCMS dotCMS deleted a comment from stale bot Feb 28, 2020
@dotCMS dotCMS deleted a comment from stale bot Feb 28, 2020
@wezell wezell removed this from the Lunik Current milestone Jul 7, 2020
@jasontt33
Copy link
Contributor

Bump from Virtuoso

@wezell
Copy link
Contributor Author

wezell commented Mar 3, 2022

This is done in 22.01 - see #21011

@wezell wezell closed this as completed Mar 3, 2022
@wezell wezell added Roadmap Roadmap Item and removed Road: Under Consideration labels Jan 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Roadmap Roadmap Item
Projects
None yet
Development

No branches or pull requests

6 participants