jenkins-bot has submitted this change and it was merged.

Change subject: Revert "Revert "Enable config for all three search clusters, 
but only write to eqiad""
......................................................................


Revert "Revert "Enable config for all three search clusters, but only write to 
eqiad""

The first time this patch was deployed there were some missing
patches in 1.27.0-wmf.3, those have since been deployed and
this is ready to be re-deployed.

This reverts commit baced1cd63c221a449f0ab399ed6ae83274ce88e.

Change-Id: I86440998474afe7d5673ed4af2f30406268c2c4e
---
M tests/cirrusTest.php
M wmf-config/CirrusSearch-common.php
M wmf-config/CirrusSearch-labs.php
M wmf-config/CirrusSearch-production.php
M wmf-config/CommonSettings.php
M wmf-config/InitialiseSettings-labs.php
M wmf-config/InitialiseSettings.php
7 files changed, 83 insertions(+), 53 deletions(-)

Approvals:
  Thcipriani: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/cirrusTest.php b/tests/cirrusTest.php
index 131b68a..c07c497 100644
--- a/tests/cirrusTest.php
+++ b/tests/cirrusTest.php
@@ -10,21 +10,50 @@
                $this->assertArrayHasKey( 'wgCirrusSearchClusters', $config );
                $this->assertArrayHasKey( 'wgCirrusSearchDefaultCluster', 
$config );
                $this->assertEquals( 'eqiad', 
$config['wgCirrusSearchDefaultCluster'] );
+               $this->assertCount( 3, $config['wgCirrusSearchClusters'] );
+
+               // testwiki writes to eqiad and the lab replica
+               $this->assertCount( 2, $config['wgCirrusSearchWriteClusters'] );
+
+               $this->assertArrayHasKey(
+                       $config['wgCirrusSearchDefaultCluster'],
+                       $config['wgCirrusSearchClusters']
+               );
+
+               foreach ( $config['wgCirrusSearchWriteClusters'] as 
$writeCluster ) {
+                       $this->assertArrayHasKey(
+                               $writeCluster,
+                               $config['wgCirrusSearchClusters']
+                       );
+               }
        }
 
        public function testClusterConfigurationForProdEnwiki() {
                $config = $this->loadCirrusConfig( 'production', 'enwiki', 
'wiki', 'en', 'wikipedia' );
-               $this->assertArrayHasKey( 'wgCirrusSearchServers', $config );
+               $this->assertArrayNotHasKey( 'wgCirrusSearchServers', $config );
                $this->assertArrayHasKey( 'wgCirrusSearchClusters', $config );
-               $this->assertCount( 1, $config['wgCirrusSearchClusters'] );
-               $this->assertEquals(
-                       $config['wgCirrusSearchServers'],
-                       reset( $config['wgCirrusSearchClusters'] )
-               );
-               $clusters = array_keys( $config['wgCirrusSearchClusters'] );
-               $this->assertEquals(
+               $this->assertArrayHasKey( 'wgCirrusSearchDefaultCluster', 
$config );
+               $this->assertCount( 3, $config['wgCirrusSearchClusters'] );
+               $this->assertCount( 3, $config['wgCirrusSearchShardCount'] );
+               $this->assertCount( 3, $config['wgCirrusSearchReplicas'] );
+               $this->assertCount( 3, 
$config['wgCirrusSearchClientSideConnectTimeout'] );
+
+               foreach ( array_keys ( $config['wgCirrusSearchClusters'] ) as 
$cluster ) {
+                       $this->assertArrayHasKey( $cluster, 
$config['wgCirrusSearchShardCount'] );
+                       $this->assertArrayHasKey( $cluster, 
$config['wgCirrusSearchReplicas'] );
+                       $this->assertArrayHasKey( $cluster, 
$config['wgCirrusSearchClientSideConnectTimeout'] );
+               }
+
+               // Only eqiad for now
+               $this->assertCount( 1, $config['wgCirrusSearchWriteClusters'] );
+               $this->assertArrayHasKey(
                        $config['wgCirrusSearchDefaultCluster'],
-                       reset( $clusters )
+                       $config['wgCirrusSearchClusters']
+               );
+
+               $this->assertArrayHasKey(
+                       reset( $config['wgCirrusSearchWriteClusters'] ),
+                       $config['wgCirrusSearchClusters']
                );
        }
 
diff --git a/wmf-config/CirrusSearch-common.php 
b/wmf-config/CirrusSearch-common.php
index 5e419f5..4dbbdfd 100644
--- a/wmf-config/CirrusSearch-common.php
+++ b/wmf-config/CirrusSearch-common.php
@@ -21,11 +21,10 @@
                $wgJobTypeConf['default'];
 }
 
-if ( isset( $wmgCirrusSearchServers ) ) {
-       $wgCirrusSearchServers = $wmgCirrusSearchServers;
-}
-$wgCirrusSearchClusters = $wmgCirrusSearchClusters;
+# Set up the the default cluster to send queries to,
+# and the list of clusters to write to.
 $wgCirrusSearchDefaultCluster = $wmgCirrusSearchDefaultCluster;
+$wgCirrusSearchWriteClusters = $wmgCirrusSearchWriteClusters;
 
 # Enable user testing
 $wgCirrusSearchUserTesting = $wmgCirrusSearchUserTesting;
diff --git a/wmf-config/CirrusSearch-labs.php b/wmf-config/CirrusSearch-labs.php
index f5edb48..d0e97d3 100644
--- a/wmf-config/CirrusSearch-labs.php
+++ b/wmf-config/CirrusSearch-labs.php
@@ -5,6 +5,15 @@
 # to the 'labs' realm which in most of the cases means the beta cluster.
 # It should be loaded AFTER CirrusSearch-common.php
 
+$wgCirrusSearchClusters = array(
+       'eqiad' => array(
+               'deployment-elastic05',
+               'deployment-elastic06',
+               'deployment-elastic07',
+               'deployment-elastic08',
+       ),
+);
+
 if ( $wgDBname == 'enwiki' ) {
        $wgCirrusSearchInterwikiSources = array(
                'wiktionary' => 'enwiktionary',
@@ -27,6 +36,9 @@
        )
 );
 
+# write to all configured clusters, there should only be one in labs
+$wgCirrusSearchWriteClusters = null;
+
 $wgCirrusSearchEnableSearchLogging = true;
 
 $wgCirrusSearchLanguageToWikiMap = array(
diff --git a/wmf-config/CirrusSearch-production.php 
b/wmf-config/CirrusSearch-production.php
index 1bb20f7..487ac1d 100644
--- a/wmf-config/CirrusSearch-production.php
+++ b/wmf-config/CirrusSearch-production.php
@@ -6,6 +6,12 @@
 # It should be loaded AFTER CirrusSearch-common.php
 
 
+$wgCirrusSearchClusters = array(
+       'eqiad' => array( '10.2.2.30' ), // search.svc.eqiad.wmnet
+       'codfw' => array( '10.2.1.30' ), // search.svc.codfw.wmnet
+       'labsearch' => array( '10.64.37.14' ), // nobelium.eqiad.wmnet
+);
+
 $wgCirrusSearchConnectionAttempts = 3;
 
 $wgCirrusSearchBackup['backups'] = array(
@@ -42,3 +48,23 @@
 }
 
 $wgCirrusSearchEnableSearchLogging = true;
+
+// The default configuration is a single-cluster configuration, expand
+// that here into the necessary multi-cluster config
+$wgCirrusSearchShardCount = array(
+       'eqiad' => $wgCirrusSearchShardCount,
+       'codfw' => array_map( function($x) { return min( 7, $x ); }, 
$wgCirrusSearchShardCount ),
+       'labsearch' => array_map( function() { return 1; }, 
$wgCirrusSearchShardCount ),
+);
+
+$wgCirrusSearchReplicas = array(
+       'eqiad' => $wgCirrusSearchReplicas,
+       'codfw' => $wgCirrusSearchReplicas,
+       'labsearch' => array_map( function() { return 'false'; }, 
$wgCirrusSearchReplicas ),
+);
+
+$wgCirrusSearchClientSideConnectTimeout = array(
+       'eqiad' => $wmfDatacenter === 'eqiad' ? 5 : 10,
+       'codfw' => $wmfDatacenter === 'codfw' ? 5 : 10,
+       'labsearch' => 2,
+);
diff --git a/wmf-config/CommonSettings.php b/wmf-config/CommonSettings.php
index c7037ec..5a6a673 100755
--- a/wmf-config/CommonSettings.php
+++ b/wmf-config/CommonSettings.php
@@ -2179,7 +2179,7 @@
        if ( $wmgUseTranslationMemory ) {
                $servers = array_map(
                        function ( $v ) { return array( 'host' => $v ); },
-                       isset( $wgCirrusSearchServers ) ? 
$wgCirrusSearchServers : $wgCirrusSearchClusters[$wgCirrusSearchDefaultCluster]
+                       $wgCirrusSearchClusters[$wgCirrusSearchDefaultCluster]
                );
                // Read only until renamed to 'TTMServer'
                $wgTranslateTranslationServices['TTMServer'] = array(
diff --git a/wmf-config/InitialiseSettings-labs.php 
b/wmf-config/InitialiseSettings-labs.php
index 9240aa7..8bc71be 100644
--- a/wmf-config/InitialiseSettings-labs.php
+++ b/wmf-config/InitialiseSettings-labs.php
@@ -947,32 +947,6 @@
 
                'wmgUseCirrus' => array(
                        'default' => true,
-                       'commonswiki' => true,
-                       'dewiki' => true,
-                       'enwiki' => true,
-                       'eswiki' => true,
-                       'frwiki' => true,
-                       'jawiki' => true,
-                       'nlwiki' => true,
-                       'plwiki' => true,
-                       'ruwiki' => true,
-                       'svwiki' => true,
-                       'zhwiki' => true,
-               ),
-
-               '-wmgCirrusSearchServers' => array(
-                       'default' => null,
-               ),
-
-               '-wmgCirrusSearchClusters' => array(
-                       'default' => array(
-                               'eqiad' => array(
-                                       'deployment-elastic05',
-                                       'deployment-elastic06',
-                                       'deployment-elastic07',
-                                       'deployment-elastic08',
-                               ),
-                       ),
                ),
 
                'wmgUseFlow' => array(
diff --git a/wmf-config/InitialiseSettings.php 
b/wmf-config/InitialiseSettings.php
index c6d074f..eb5ee6a 100644
--- a/wmf-config/InitialiseSettings.php
+++ b/wmf-config/InitialiseSettings.php
@@ -15334,23 +15334,13 @@
        'default' => true,
 ),
 
-'wmgCirrusSearchServers' => array(
-       'default' => array( '10.2.2.30' ), // search.svc.eqiad.wmnet
-       'testwiki' => null,
-),
-
 'wmgCirrusSearchDefaultCluster' => array(
        'default' => 'eqiad',
 ),
 
-'wmgCirrusSearchClusters' => array(
-       'default' => array(
-               'eqiad' => array( '10.2.2.30' ), // search.svc.eqiad.wmnet
-       ),
-       'testwiki' => array(
-               'eqiad' => array( '10.2.2.30' ), // search.svc.eqiad.wmnet
-               'labsearch' => array( 'nobelium.eqiad.wmnet' ),
-       ),
+'wmgCirrusSearchWriteClusters' => array(
+       'default' => array( 'eqiad' ),
+       'testwiki' => array( 'eqiad', 'labsearch' )
 ),
 
 'wmgCirrusPerUserPoolCounter' => array(

-- 
To view, visit https://gerrit.wikimedia.org/r/247478
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I86440998474afe7d5673ed4af2f30406268c2c4e
Gerrit-PatchSet: 2
Gerrit-Project: operations/mediawiki-config
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>
Gerrit-Reviewer: Chad <[email protected]>
Gerrit-Reviewer: Thcipriani <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to