Problem/Motivation

Follow up #3583505: Use Symfony PhpDumper instead of a serialized array container structure and replacing #3616465: Potential race condition in container rebuilds, the container could be file only.

Steps to reproduce

Proposed resolution

Write containers into files in a local temporary directory. Coordinate the need to rebuild between webheads by database writes, this however only gets picked up in a terminate subscribe so the hot path is local files only. The current implementation adds an increment capability to the key-value and state subsystems.

Remaining tasks

  1. cleanup.
  2. Followup: potentially a little randomized wait could be added when the read fails and re-check after so if another process is already building then it doesn't do it again unnecessarily. Note a) currently the same problem exists b) waiting for another process but breaking the wait if it takes too long makes for very complicated and really, really hard test code. I have started on this, I would rather not do this.
  3. Followup: explore loading settings after the container making the settings singleton unnecessary, turning settings into a service or removing it completely with config overrides taking over. Requires discussion on container class etc overrides.

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

Issue fork drupal-3630567

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

ghost of drupal past created an issue. See original summary.

ghost of drupal past’s picture

Issue summary: View changes
ghost of drupal past’s picture

Issue summary: View changes
ghost of drupal past’s picture

Issue summary: View changes
ghost of drupal past’s picture

Issue summary: View changes
ghost of drupal past’s picture

Issue summary: View changes

ghost of drupal past’s picture

Issue summary: View changes
Status: Active » Needs review
ghost of drupal past’s picture

Issue summary: View changes
ghost of drupal past’s picture

Issue summary: View changes
moshe weitzman’s picture

Would VersionedFile make sense for aggregated JS/CSS?

ghost of drupal past’s picture

The goals are different: the reader for those is the client while the container is read by the server. (Both are, of course, written by the server.)

ghost of drupal past’s picture

Issue summary: View changes