Aaron Schulz has uploaded a new change for review.
https://gerrit.wikimedia.org/r/278988
Change subject: Add templateOverridesBySection to multi LBFactory
......................................................................
Add templateOverridesBySection to multi LBFactory
This makes it easier to support pt-heartbeat with shard "channels"
since the channel is based on the section name.
Change-Id: Ie0128ee2914e8dc0063c759704373b2440df5ed8
---
M includes/db/loadbalancer/LBFactoryMulti.php
1 file changed, 20 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/88/278988/1
diff --git a/includes/db/loadbalancer/LBFactoryMulti.php
b/includes/db/loadbalancer/LBFactoryMulti.php
index f8ddd12..3a543ac 100644
--- a/includes/db/loadbalancer/LBFactoryMulti.php
+++ b/includes/db/loadbalancer/LBFactoryMulti.php
@@ -23,7 +23,15 @@
/**
* A multi-wiki, multi-master factory for Wikimedia and similar installations.
- * Ignores the old configuration globals
+ * Ignores the old configuration globals.
+ *
+ * Template override precedence (highest => lowest):
+ * - templateOverridesByServer
+ * - masterTemplateOverrides
+ * - templateOverridesBySection/templateOverridesByCluster
+ * - externalTemplateOverrides
+ * - serverTemplate
+ * Overrides only work on top level keys (so nested values will not be merged).
*
* Configuration:
* sectionsByDB A map of database names to section names.
@@ -63,7 +71,7 @@
* templateOverridesByServer A 2-d map overriding serverTemplate and
* externalTemplateOverrides on a
server-by-server basis. Applies
* to both core and external storage.
- *
+ * templateOverridesBySection A 2-d map overriding the server info by
section.
* templateOverridesByCluster A 2-d map overriding the server info by
external storage cluster.
*
* masterTemplateOverrides An override array for all master servers.
@@ -119,6 +127,9 @@
*/
private $templateOverridesByServer;
+ /** @var array A 2-d map overriding the server info by section */
+ private $templateOverridesBySection;
+
/** @var array A 2-d map overriding the server info by external storage
cluster */
private $templateOverridesByCluster;
@@ -162,7 +173,7 @@
$required = [ 'sectionsByDB', 'sectionLoads', 'serverTemplate'
];
$optional = [ 'groupLoadsBySection', 'groupLoadsByDB',
'hostsByName',
'externalLoads', 'externalTemplateOverrides',
'templateOverridesByServer',
- 'templateOverridesByCluster', 'masterTemplateOverrides',
+ 'templateOverridesByCluster',
'templateOverridesBySection', 'masterTemplateOverrides',
'readOnlyBySection', 'loadMonitorClass' ];
foreach ( $required as $key ) {
@@ -222,8 +233,13 @@
$readOnlyReason = $this->readOnlyBySection[$section];
}
+ $template = $this->serverTemplate;
+ if ( isset( $this->templateOverridesBySection[$section] ) ) {
+ $template = $this->templateOverridesBySection[$section]
+ $template;
+ }
+
return $this->newLoadBalancer(
- $this->serverTemplate,
+ $template,
$this->sectionLoads[$section],
$groupLoads,
$readOnlyReason
--
To view, visit https://gerrit.wikimedia.org/r/278988
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie0128ee2914e8dc0063c759704373b2440df5ed8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits