Author: knguyen
Date: Mon Oct 8 14:34:19 2007
New Revision: 18779
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18779&repname=
=3Djahia
Log:
Support for an optimized Single indexing server Mode.
In this mode, an indexing order entry will be removed immediately from the =
indexing orders queue, once it has been processed.
This mode can be changed to multiple indexing server mode.
in applicationcontext-basejahiaconfig.xml:
<bean id=3D"searchConfig" class=3D"org.springframework.beans.factory.config=
.PropertiesFactoryBean">
<property name=3D"properties">
....
<prop key=3D"multipleIndexingServer">1</prop>
<!-- =
0: Only one indexing server mode:
If you only have one single indexing server, then you should use this mode =
so that the indexing jobs queue can be handled in an optimized way for bett=
er performance.
1: Multiple indexing server mode:
If you have more than one indexing server, then you MUST use this mode.
-->
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchBaseService.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchConfigConstant.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchService.java
branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/spring/applica=
tioncontext-basejahiaconfig.xml
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/sea=
rch/JahiaSearchBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java=
&rev=3D18779&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchBaseService.java Mon Oct 8 14:34:19 2007
@@ -162,6 +162,8 @@
=
private boolean localIndexing =3D true;
=
+ private boolean multipleIndexingServer =3D false;
+
private JahiaServerPropertiesManager serverPropMgr =3D null;
=
private Long lastIndexingJobTime =3D new Long(0);
@@ -296,6 +298,10 @@
localIndexing =3D !((val !=3D null && "0".equals(val.trim())));
logger.debug("This node will not perfom search indexation, just se=
arch.");
=
+ val =3D config.getProperty(JahiaSearchConfigConstant.SEARCH_MULTIP=
LE_INDEXING_SERVER);
+ this.multipleIndexingServer =3D (val !=3D null && "1".equals(val.t=
rim()));
+ logger.debug("This node will not perfom search indexation, just se=
arch.");
+
try {
buildAnalyzersFilters();
} catch (Exception e) {
@@ -521,7 +527,11 @@
if ( avJobsList.isEmpty() ){
setLastIndexingJobTime(System.currentTimeMillis());
}
- jobsList =3D IndexingJobTools.resolveIndexingJobs(avJobsLi=
st, serverId);
+ if ( this.multipleIndexingServer ){
+ jobsList =3D IndexingJobTools.resolveIndexingJobs(avJo=
bsList, serverId);
+ } else {
+ jobsList =3D IndexingJobTools.resolveIndexingJobs(avJo=
bsList, null);
+ }
if ( jobsList =3D=3D null || jobsList.isEmpty() ){
this.notifySiteIndexingJob();
}
@@ -611,9 +621,13 @@
try {
job =3D (JahiaIndexingJob)jobs.next();
time =3D job.getDate().longValue();
- jobServer =3D new JahiaIndexJobServer(new Jahi=
aIndexJobServerPK(job.getId(),serverId),job.getDate());
- indJobMgr.saveIndexJobServer(jobServer);
setLastIndexingJobTime(time);
+ if ( this.multipleIndexingServer ) {
+ jobServer =3D new JahiaIndexJobServer(new =
JahiaIndexJobServerPK(job.getId(),serverId),job.getDate());
+ indJobMgr.saveIndexJobServer(jobServer);
+ } else {
+ indJobMgr.delete(job.getId());
+ }
} catch ( Throwable t ){
logger.debug("Exception saving JahiaIndexation=
Job", t);
}
@@ -783,6 +797,14 @@
this.dateRounding =3D dateRounding;
}
=
+ public boolean isMultipleIndexingServer() {
+ return multipleIndexingServer;
+ }
+
+ public void setMultipleIndexingServer(boolean multipleIndexingServer) {
+ this.multipleIndexingServer =3D multipleIndexingServer;
+ }
+
//--------------------------------------------------------------------=
-----
//
// SearchManager , Search Handlers methods
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/sea=
rch/JahiaSearchConfigConstant.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/search/JahiaSearchConfigConstant.j=
ava&rev=3D18779&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchConfigConstant.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchConfigConstant.java Mon Oct 8 14:34:19 2007
@@ -36,6 +36,11 @@
public static final String SEARCH_LOCAL_INDEXING =
=3D "localIndexing";
=
/**
+ * 1: multiple indexing server, 0: one single indexing server
+ */
+ public static final String SEARCH_MULTIPLE_INDEXING_SERVER =
=3D "multipleIndexingServer";
+
+ /**
* the latenty time at search service startup before starting indexati=
on
*/
public static final String SEARCH_INDEXING_STARTUP_LATENCY_TIME =
=3D "indexingStartupLatencyTime";
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/sea=
rch/JahiaSearchService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/search/JahiaSearchService.java&rev=
=3D18779&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/search/Ja=
hiaSearchService.java Mon Oct 8 14:34:19 2007
@@ -612,6 +612,16 @@
public abstract void setDateRounding(int dateRounding);
=
/**
+ * Returns true if the service is configured to run with multiple inde=
xing server
+ * false if there is only one indexing server, even in cluster=
ing
+ *
+ * @return
+ */
+ public abstract boolean isMultipleIndexingServer();
+
+ public abstract void setMultipleIndexingServer(boolean multipleIndexin=
gServer);
+
+ /**
* Return a CompassHighlighter instance
* @param searchEngineHighlighter
* @param resource
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/spring/a=
pplicationcontext-basejahiaconfig.xml
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/WEB-INF/etc/spring/applicationcontext-basejahiaconf=
ig.xml&rev=3D18779&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/spring/applica=
tioncontext-basejahiaconfig.xml (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/WEB-INF/etc/spring/applica=
tioncontext-basejahiaconfig.xml Mon Oct 8 14:34:19 2007
@@ -126,6 +126,14 @@
=
<prop
key=3D"searchIndexRootDir">$context/WEB-INF/var/search_indexes</=
prop><!-- the root directory for search indexes -->
<prop key=3D"localIndexing">1</prop><!-- 1:
index, 0: do not index ,ju=
st read ( I.E when sharing a same index directory in a clustered environmen=
t )-->
+ <prop
key=3D"multipleIndexingServer">0</prop><!-- 0: Only one indexing=
server mode:
+
If you only have on=
e single indexing server, then you should use this mode =
+
so that the indexin=
g jobs queue can be handled in an optimized way for better performance.
+
=
+
1: Multiple indexing s=
erver mode:
+
If you have more th=
an one indexing server, then you MUST use this mode.
+
=
+
-->
<prop key=3D"indexingStartupLatencyTime">60000</prop><!-- the late=
ncy time at search service startup before starting indexation -->
<prop key=3D"indexingJobWatchInterval">20000</prop><!-- the interv=
al time between each scan of indexing jobs history ( loading them and proce=
ss them if needed ) -->
<prop key=3D"indexingJobExecutionDelayTime">30000</prop><!-- the d=
elayed time before processing an indexing job ( an indexing job will be =
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list