Help:Change propagation

From Linux Web Expert

File:smw-change-propagation-category-locked.png
Locked category on a change to its hierarchy awaiting job execution
File:smw-change-propagation-property-processing.png
Shows information about the property change propagation progress
File:20210128 SpecialBrows ChangePropagation.png
Special page "Browse" showing the content of special property "Change propagation"

This page describes how changes are propagated (Change Propagation) especially those that affect entity pools related to property declaration or category hierarchy modifications.

In Semantic MediaWiki, certain declarative properties (see configuration parameter $smwgChangePropagationWatchlistSets the properties that are relevant for property change propagation) will trigger a propagation event when a change to its value occurs.

Dispatching a change

After a propagation event has been triggered, a change propagation property will be added temporarily to store required information before the actual change takes place and the smw.changePropagationDispatch job can dispatch necessary updates related to subjects of a property or category.

The change propagation is set to an "in waiting" state for as long as the dispatch job is only queued (i.e. the dispatch job hasn't been executed) with corresponding property or category pages being locked (see configuration parameter $smwgChangePropagationProtectionSets whether property pages are protected from editing while a property change propagation is being processed1) to avoid having competing declarations to create inconsistencies about the characteristics of a property or category declaration while the dispatch process is on-going.

Types of changes

MediaWiki and Semantic MediaWiki work with different kinds of change propagations and includes things like:

Job queue

The job queue is essential because of the potential size of required updates caused by a change to a property or category where recomputing and reassigning of annotation values becomes necessary. The past showed that attempting to update those entities online (i.e. within the same transaction request) may render a system unresponsive hereby making the propagation process infeasible2 therefore relying on the job queue has been seen as the only scalable method to postpone updates while avoiding hogging system resources.

See also

#scite could not render a citation text for reference "gh:smw:948" because type "issue" was not assigned to a template.
#scite could not render a citation text for reference "gh:smw:2494" because type "issue" was not assigned to a template.
#scite could not render a citation text for reference "gh:smw:2495" because type "pullrequest" was not assigned to a template.
#scite could not render a citation text for reference "gh:smw:2776" because type "pullrequest" was not assigned to a template.

References

  1. ^ gh:smw:2494 
  2. ^ gh:smw:948