dotCMS / dotCMS/core

DB schema modernization, hot-rodding

Open
#35,210 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

stale
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Description

Now that we are postgres only, there a number of things we can do to help ourselves and improve dotCMS performance and remove tons of dead code.

This epic will be an overarching issue where we fix nasty db things like:

  • Remove non-postgres code paths
  • use postgres only features to improve performance
  • gently modify the the db schema to help us in a backwards compatible
  • Remove all our crazy select * from contentlet that returns 150 unneeded columns and only return the columns that are needed.
  • Unjoin tables like contentlet from inode
  • Use sparse indexes where values can be null
  • more to come
Desired Outcome

Improve dotCMS performance, remove old/unused code and code paths

Target Personas
  • Developer teams
  • Content teams
  • DevOps teams
  • System administrators (dotCMS)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is an overarching epic and names no files, tests, or entry points. Start by breaking the checklist into separately scoped PostgreSQL modernization issues, then inspect the relevant database schema and query code for one selected item. Done should be defined per item, with performance improvements, removed legacy paths, or schema changes verified without breaking backwards compatibility.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, postgresql
Domain
backend, database, performance
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.