From do-not-reply at jboss.org Thu Feb 18 03:34:31 2010 Content-Type: multipart/mixed; boundary="===============9077758739306250999==" MIME-Version: 1.0 From: do-not-reply at jboss.org To: exo-jcr-commits at lists.jboss.org Subject: [exo-jcr-commits] exo-jcr SVN: r1882 - in jcr/trunk/docs/reference/en/src/main/docbook/en-US: modules and 1 other directory. Date: Thu, 18 Feb 2010 03:34:30 -0500 Message-ID: <201002180834.o1I8YUr1023711@svn01.web.mwc.hst.phx2.redhat.com> --===============9077758739306250999== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: sergiykarpenko Date: 2010-02-18 03:34:30 -0500 (Thu, 18 Feb 2010) New Revision: 1882 Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handler= -config.xml Log: EXOJCR-490: small updates Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml =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 --- jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml 2010-02-1= 7 17:07:52 UTC (rev 1881) +++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml 2010-02-1= 8 08:34:30 UTC (rev 1882) @@ -66,6 +66,9 @@ = + + = Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-= handler-config.xml =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 --- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handle= r-config.xml 2010-02-17 17:07:52 UTC (rev 1881) +++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handle= r-config.xml 2010-02-18 08:34:30 UTC (rev 1882) @@ -1,186 +1,188 @@ - - -
- - QueryHandler configuration - - -
- How does it work? - - Lets talk about indexing content in cluster. - - For couple of reasons, we can't replicate index. That's means, s= ome - data added and indexed on one cluster node, will be replicated to anot= her - cluster node, but will not be indexed on that node. - - So, how do the indexing works in cluster environment? - - As, we can not index same data on all nodes of cluster, we must - index it on one node. Node, that can index data and do changes on luce= ne - index, is called "coordinator". Coordinator-node is choosen automatica= ly, - so we do not need special configuration for coordinator. - - But, how can another nodes save their changes to lucene - index? - - First of all, data is already saved and replicated to another - cluster-nodes, so we need only deliver message like "we need to index = this - data" to coordinator. Thats why Jboss-cache is used. - - All nodes of cluster writes messages into JBoss-cache but only - coordinator takes those messages and makes changes Lucene index. - - How do the search works in cluster environment? - - Search engine do not works with indexer, coordinator, etc. Search - needs only lucene index. But only one cluster node can change lucene i= ndex - - asking you. Yes - lucene index is shared. So, all cluster nodes must= be - configured to use lucene index from shared directory. - - A little bit about indexing process (no matter, cluster or not) - Indexer do not writes changes to FS lucene index immediately. At first, - Indexer writes changes to Volatile index. If Volatile index size become - 1Mb or more it is flushed to FS. Also there is timer, that flushes - volatile index by timeout. Volatile index timeout configured by - "max-volatile-time" paremeter. - - Common scheme of Shared Index - - - - -
- -
- Configuration - -
- Common requirements - - Now, lets see what we need to run Search engine in cluster - environment. - - shared directory for storing Lucene index (i.e. NFS); - - - - changes filter configured as - org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossC= acheIndexChangesFilter; - - - This filter ignore changes on non-coordinator nodes, a= nd - index changes on coordinator node. - - - - - configure JBoss-cache, course; - - -
- -
- Query-handler configuration - - Configuration example:<workspace name=3D"ws= "> - <query-handler class=3D"org.exoplatform.services.jcr.impl.core.query= .lucene.SearchIndex"> - <properties> - <property name=3D"index-dir" value=3D"shareddir/index/db1/ws" = /> - <property name=3D"changesfilter-class" - value=3D"org.exoplatform.services.jcr.impl.core.query.jbosscac= he.JBossCacheIndexChangesFilter" /> - <property name=3D"jbosscache-configuration" value=3D"jbosscach= e-indexer.xml" /> - <property name=3D"jgroups-configuration" value=3D"udp-mux.xml"= /> - <property name=3D"jgroups-multiplexer-stack" value=3D"true" /&= gt; - <property name=3D"jbosscache-cluster-name" value=3D"JCR-cluste= r-indexer-ws" /> - <property name=3D"max-volatile-time" value=3D"60" /> - </properties> - </query-handler> -</workspace> - Config properties description - - - - - Property name - - Description - - - - - - index-dir - - path to index - - - - jbosscache-configuration - - template of JBoss-cache configuration for all - query-handlers in repository - - - - jgroups-configuration - - jgroups-configuration is template configuration for= all - components (search, cache, locks) [Add link to document - describing template configurations] - - - - jgroups-multiplexer-stack - - [TODO about jgroups-multiplexer-stack - add link to - JBoss doc] - - - - jbosscache-cluster-name - - cluster name (must be unique) - - - - max-volatile-time - - max time to live for Volatile Index - - - -
-
- -
- JBoss-Cache template configuration - - JBoss-Cache template configuration for query handler. - - jbosscache-indexer.xml<?xml version=3D"1.0"= encoding=3D"UTF-8"?> -<jbosscache xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" xml= ns=3D"urn:jboss:jbosscache-core:config:3.1"> - - <locking useLockStriping=3D"false" concurrencyLevel=3D"50000" lockPa= rentForChildInsertRemove=3D"false" - lockAcquisitionTimeout=3D"20000" /> - <!-- Configure the TransactionManager --> - <transaction transactionManagerLookupClass=3D"org.jboss.cache.transa= ction.JBossStandaloneJTAManagerLookup" /> - - <clustering mode=3D"replication" clusterName=3D"${jbosscache-cluster= -name}"> - <stateRetrieval timeout=3D"20000" fetchInMemoryState=3D"false" /&= gt; - <jgroupsConfig multiplexerStack=3D"jcr.stack" /> - <sync /> - </clustering> - <!-- Eviction configuration --> - <eviction wakeUpInterval=3D"5000"> - <default algorithmClass=3D"org.jboss.cache.eviction.FIFOAlgorithm= " eventQueueSize=3D"1000000"> - <property name=3D"maxNodes" value=3D"10000" /> - <property name=3D"minTimeToLive" value=3D"60000" /> - </default> - </eviction> - -</jbosscache> -
-
-
+ + +
+ + QueryHandler configuration + + +
+ How does it work? + + Lets talk about indexing content in cluster. + + For couple of reasons, we can't replicate index. That's means, s= ome + data added and indexed on one cluster node, will be replicated to anot= her + cluster node, but will not be indexed on that node. + + So, how do the indexing works in cluster + environment? + + As, we can not index same data on all nodes of cluster, we must + index it on one node. Node, that can index data and do changes on luce= ne + index, is called "coordinator". Coordinator-node is choosen automatica= ly, + so we do not need special configuration for coordinator. + + But, how can another nodes save their changes to lucene + index? + + First of all, data is already saved and replicated to another + cluster-nodes, so we need only deliver message like "we need to index = this + data" to coordinator. Thats why Jboss-cache is used. + + All nodes of cluster writes messages into JBoss-cache but only + coordinator takes those messages and makes changes Lucene index. + + How do the search works in cluster + environment? + + Search engine do not works with indexer, coordinator, etc. Search + needs only lucene index. But only one cluster node can change lucene i= ndex + - asking you. Yes - lucene index is shared. So, all cluster nodes must= be + configured to use lucene index from shared directory. + + A little bit about indexing process (no matter, cluster or not) + Indexer do not writes changes to FS lucene index immediately. At first, + Indexer writes changes to Volatile index. If Volatile index size become + 1Mb or more it is flushed to FS. Also there is timer, that flushes + volatile index by timeout. Volatile index timeout configured by + "max-volatile-time" paremeter. + + Common scheme of Shared Index + + + + +
+ +
+ Configuration + +
+ Common requirements + + Now, lets see what we need to run Search engine in cluster + environment. + + shared directory for storing Lucene index (i.e. NFS); + + + + changes filter configured as + org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossC= acheIndexChangesFilter; + + + This filter ignore changes on non-coordinator nodes, a= nd + index changes on coordinator node. + + + + + configure JBoss-cache, course; + + +
+ +
+ Query-handler configuration + + Configuration example:<workspace name=3D"ws= "> + <query-handler class=3D"org.exoplatform.services.jcr.impl.core.query= .lucene.SearchIndex"> + <properties> + <property name=3D"index-dir" value=3D"shareddir/index/db1/ws" = /> + <property name=3D"changesfilter-class" + value=3D"org.exoplatform.services.jcr.impl.core.query.jbosscac= he.JBossCacheIndexChangesFilter" /> + <property name=3D"jbosscache-configuration" value=3D"jbosscach= e-indexer.xml" /> + <property name=3D"jgroups-configuration" value=3D"udp-mux.xml"= /> + <property name=3D"jgroups-multiplexer-stack" value=3D"true" /&= gt; + <property name=3D"jbosscache-cluster-name" value=3D"JCR-cluste= r-indexer-ws" /> + <property name=3D"max-volatile-time" value=3D"60" /> + </properties> + </query-handler> +</workspace> + Config properties description + + + + + Property name + + Description + + + + + + index-dir + + path to index + + + + jbosscache-configuration + + template of JBoss-cache configuration for all + query-handlers in repository + + + + jgroups-configuration + + jgroups-configuration is template configuration for= all + components (search, cache, locks) [Add link to document + describing template configurations] + + + + jgroups-multiplexer-stack + + [TODO about jgroups-multiplexer-stack - add link to + JBoss doc] + + + + jbosscache-cluster-name + + cluster name (must be unique) + + + + max-volatile-time + + max time to live for Volatile Index + + + +
+
+ +
+ JBoss-Cache template configuration + + JBoss-Cache template configuration for query handler. + + jbosscache-indexer.xml<?xml version=3D"1.0"= encoding=3D"UTF-8"?> +<jbosscache xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" xml= ns=3D"urn:jboss:jbosscache-core:config:3.1"> + + <locking useLockStriping=3D"false" concurrencyLevel=3D"50000" lockPa= rentForChildInsertRemove=3D"false" + lockAcquisitionTimeout=3D"20000" /> + <!-- Configure the TransactionManager --> + <transaction transactionManagerLookupClass=3D"org.jboss.cache.transa= ction.JBossStandaloneJTAManagerLookup" /> + + <clustering mode=3D"replication" clusterName=3D"${jbosscache-cluster= -name}"> + <stateRetrieval timeout=3D"20000" fetchInMemoryState=3D"false" /&= gt; + <jgroupsConfig multiplexerStack=3D"jcr.stack" /> + <sync /> + </clustering> + <!-- Eviction configuration --> + <eviction wakeUpInterval=3D"5000"> + <default algorithmClass=3D"org.jboss.cache.eviction.FIFOAlgorithm= " eventQueueSize=3D"1000000"> + <property name=3D"maxNodes" value=3D"10000" /> + <property name=3D"minTimeToLive" value=3D"60000" /> + </default> + </eviction> + +</jbosscache> +
+
+
--===============9077758739306250999==--