You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2009/02/06 08:23:33 UTC
svn commit: r741451 - in /lucene/solr/trunk/src/test:
org/apache/solr/handler/TestReplicationHandler.java
test-files/solr/conf/solrconfig-master2.xml
Author: shalin
Date: Fri Feb 6 07:23:33 2009
New Revision: 741451
URL: http://svn.apache.org/viewvc?rev=741451&view=rev
Log:
SOLR-820 followup -- Test for replicate after startup for java based replication
Added:
lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml (with props)
Modified:
lucene/solr/trunk/src/test/org/apache/solr/handler/TestReplicationHandler.java
Modified: lucene/solr/trunk/src/test/org/apache/solr/handler/TestReplicationHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/handler/TestReplicationHandler.java?rev=741451&r1=741450&r2=741451&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/handler/TestReplicationHandler.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/handler/TestReplicationHandler.java Fri Feb 6 07:23:33 2009
@@ -131,7 +131,7 @@
SolrDocumentList masterQueryResult = (SolrDocumentList) masterQueryRsp.get("response");
assertEquals(500, masterQueryResult.getNumFound());
- //sleep for pollinterval time 4s, to let slave pull data.
+ //sleep for pollinterval time 3s, to let slave pull data.
Thread.sleep(3000);
//get docs from slave and check if number is equal to master
NamedList slaveQueryRsp = query("*:*", slaveClient);
@@ -161,7 +161,7 @@
index(masterClient, "id", "2000", "name", "name = " + 2000, "newname", "newname = " + 2000);
masterClient.commit();
- //sleep for 4s for replication to happen.
+ //sleep for 3s for replication to happen.
Thread.sleep(3000);
slaveQueryRsp = query("*:*", slaveClient);
@@ -327,6 +327,48 @@
String cmp = TestDistributedSearch.compare(masterQueryResult, slaveQueryResult, 0, null);
assertEquals(null, cmp);
}
+
+ public void testReplicateAfterStartup() throws Exception{
+ //stop slave
+ slaveJetty.stop();
+
+ //add 500 docs to master
+ for (int i = 0; i < 500; i++)
+ index(masterClient, "id", i, "name", "name = " + i);
+
+ masterClient.commit();
+
+ NamedList masterQueryRsp = query("*:*", masterClient);
+ SolrDocumentList masterQueryResult = (SolrDocumentList) masterQueryRsp.get("response");
+ assertEquals(500, masterQueryResult.getNumFound());
+
+ //change solrconfig having 'replicateAfter startup' option on master
+ copyFile(new File("." + File.separator +
+ "solr" + File.separator +
+ "conf" + File.separator + "solrconfig-master2.xml"),
+ new File(master.getConfDir(), "solrconfig.xml"));
+
+ masterJetty.stop();
+
+ masterJetty = createJetty(master, 9999);
+ masterClient = createNewSolrServer(masterJetty.getLocalPort());
+
+ //start slave
+ slaveJetty = createJetty(slave, 0);
+ slaveClient = createNewSolrServer(slaveJetty.getLocalPort());
+
+ //sleep for pollinterval time 3s, to let slave pull data.
+ Thread.sleep(3000);
+ //get docs from slave and check if number is equal to master
+ NamedList slaveQueryRsp = query("*:*", slaveClient);
+ SolrDocumentList slaveQueryResult = (SolrDocumentList) slaveQueryRsp.get("response");
+ assertEquals(500, slaveQueryResult.getNumFound());
+
+ //compare results
+ String cmp = TestDistributedSearch.compare(masterQueryResult, slaveQueryResult, 0, null);
+ assertEquals(null, cmp);
+
+ }
void copyFile(File src, File dst) throws IOException {
InputStream in = new FileInputStream(src);
Added: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml?rev=741451&view=auto
==============================================================================
--- lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml (added)
+++ lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml Fri Feb 6 07:23:33 2009
@@ -0,0 +1,98 @@
+<?xml version="1.0" ?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!-- $Id$
+ $Source$
+ $Name$
+ -->
+
+<config>
+
+ <dataDir>${solr.data.dir:./solr/data}</dataDir>
+
+ <indexDefaults>
+ <useCompoundFile>false</useCompoundFile>
+ <mergeFactor>10</mergeFactor>
+ <ramBufferSizeMB>32</ramBufferSizeMB>
+ <maxMergeDocs>2147483647</maxMergeDocs>
+ <maxFieldLength>10000</maxFieldLength>
+ <writeLockTimeout>1000</writeLockTimeout>
+ <commitLockTimeout>10000</commitLockTimeout>
+ <luceneAutoCommit>false</luceneAutoCommit>
+
+ <mergeScheduler>org.apache.lucene.index.ConcurrentMergeScheduler</mergeScheduler>
+ <writeLockTimeout>1000</writeLockTimeout>
+ <commitLockTimeout>10000</commitLockTimeout>
+
+ <lockType>single</lockType>
+ </indexDefaults>
+
+ <mainIndex>
+ <useCompoundFile>false</useCompoundFile>
+ <mergeFactor>10</mergeFactor>
+ <ramBufferSizeMB>32</ramBufferSizeMB>
+ <maxMergeDocs>2147483647</maxMergeDocs>
+ <maxFieldLength>10000</maxFieldLength>
+
+ <unlockOnStartup>true</unlockOnStartup>
+ </mainIndex>
+
+ <updateHandler class="solr.DirectUpdateHandler2">
+ </updateHandler>
+
+ <requestHandler name="standard" class="solr.StandardRequestHandler">
+ <bool name="httpCaching">true</bool>
+ </requestHandler>
+
+ <requestHandler name="/replication" class="solr.ReplicationHandler">
+ <lst name="master">
+ <str name="replicateAfter">startup</str>
+ <str name="confFiles">schema.xml</str>
+ </lst>
+ </requestHandler>
+
+ <!-- test query parameter defaults -->
+ <requestHandler name="defaults" class="solr.StandardRequestHandler">
+ <lst name="defaults">
+ <int name="rows">4</int>
+ <bool name="hl">true</bool>
+ <str name="hl.fl">text,name,subject,title,whitetok</str>
+ </lst>
+ </requestHandler>
+
+ <!-- test query parameter defaults -->
+ <requestHandler name="lazy" class="solr.StandardRequestHandler" startup="lazy">
+ <lst name="defaults">
+ <int name="rows">4</int>
+ <bool name="hl">true</bool>
+ <str name="hl.fl">text,name,subject,title,whitetok</str>
+ </lst>
+ </requestHandler>
+
+ <requestHandler name="/update" class="solr.XmlUpdateRequestHandler"/>
+
+ <!-- enable streaming for testing... -->
+ <requestDispatcher handleSelect="true">
+ <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048"/>
+ <httpCaching lastModifiedFrom="openTime" etagSeed="Solr" never304="false">
+ <cacheControl>max-age=30, public</cacheControl>
+ </httpCaching>
+ </requestDispatcher>
+
+</config>
Propchange: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lucene/solr/trunk/src/test/test-files/solr/conf/solrconfig-master2.xml
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL