dotCMS / dotCMS/core

[Spike] Investigate backup handling and symlink relevance for current and previous dotCMS versions

Open
#31,123 0 comments 0 reactions 1 assignee View on GitHub

@dcolina is already working on this.

Since Jan 14, 2025.

OKR : Evergreen Team : Platform
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Parent Issue

No parent issue identified.

User Story

As a team, we need to investigate and determine how previous versions of dotCMS handle backup storage and whether the current implementation of the symlink for the backup directory is still necessary. This spike will help us understand the evolution of the backup process and whether the symlink can be safely removed in more recent versions of dotCMS.

Problem Statement

Historically, dotCMS would attempt to archive and store assets and other backup items in a directory within the container using ephemeral storage. This led to issues in environments with large asset volumes, such as:

  • Pods running out of storage.
  • Disk pressure on the underlying node, potentially causing pod evictions.

To address this, a symlink was introduced, storing the backup directory on a persistent volume (e.g., EFS) to avoid storage limitations and prevent backups from duplicating themselves in a recursive loop.

For current versions of dotCMS, the backup function no longer buffers and archives on the local filesystem but streams the data instead. Therefore, the symlink may no longer be necessary, but this needs verification to ensure compatibility with both current and previous versions of dotCMS.

Acceptance Criteria
  1. Investigate and verify:

    • How previous versions of dotCMS handle backup storage.
    • Whether the symlink for the backup directory is still required for current and older versions of dotCMS.
  2. Identify which versions of dotCMS require the symlink, if any.

  3. Provide clear documentation of findings and recommendations for managing backups in both current and older versions of dotCMS.

Proposed Objective

Research and Validation

Proposed Priority

Priority 2 - Important

dotCMS Version

Applicable to both current and previous versions of dotCMS.

External Links... Slack Conversations, Support Tickets, Figma Designs, etc.

No external links provided.

Assumptions & Initiation Needs
  1. Backup processes in older versions of dotCMS may still rely on local storage for buffering and archiving.
  2. The symlink's relevance needs to be confirmed for both legacy and current implementations.
Quality Assurance Notes & Workarounds
  • Validate the backup process in environments with large asset volumes to ensure no regressions.
  • Ensure any proposed changes do not negatively impact customers using older versions of dotCMS.
Sub-Tasks & Estimates
  • [ ] Investigate the backup process for previous versions of dotCMS.
  • [ ] Verify the current implementation of the backup function in recent dotCMS versions.
  • [ ] Document findings and identify any required changes or deprecations.
  • [ ] Update related documentation and provide recommendations based on findings.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.