eZ find & cluster

Author Message

Andreas Kaiser

Sunday 20 April 2008 3:58:08 pm

Just curious if anyone has eZ find extension installed in a eZ Publish cluster environment...

I'm sure it should work, because eZ find overview states "High scalability and performance ensures that the eZ Find search engine can support enterprise-level sites.", but comments are welcome...

Thanks...

eZ Partner in Madrid (Spain)
Web: http://www.atela.net/

Ivo Lukac

Monday 28 April 2008 6:57:13 am

I'm also interested with this issue.

Can someone please confirm it is working?

http://www.linkedin.com/in/ivolukac
http://www.netgen.hr/eng/blog
http://twitter.com/ilukac

A Fowler

Saturday 19 June 2010 7:48:55 pm

I am using it (eZ Find) in a clustered environment. It works. However, I'm not sure it's working completely properly. First of all, I know the indexing is happening on all nodes in the cluster independently. Sometimes a search, when re-run against the cluster, returns different results because the indexes are not all up to date on all the cluster nodes.

Thus, I also have questions. How should it ideally be set up? Should eZ Find run on its own dedicated node instead of multiple copies (and multiple indexes) on multiple nodes? If so, how do I redirect all search requests to that dedicated node? Is that something I can do within eZ Publish, or do I have to do it using special rules in my load balancer?

Gaetano Giunta

Sunday 20 June 2010 12:51:46 pm

The recommended way is to treat Solr as if it was a database:

- a single instance used, even in eZP cluster configs

- on a dedicated server

It makes everything much simpler (except for high-availability, but since the index can be rebuilt at any time, for sites without a huge number of contents and where a small search downtime is ok, rebuilding the index in case of a crash of the solr server might be acceptable. For real ha, you'll have to dig into solr master/slave modes)

About how to set it up: simply put in the solr.ini file the hostname of the server where solr is running. No loadbalancing needed.

Principal Consultant International Business
Member of the Community Project Board

Paul Borgermans

Sunday 20 June 2010 2:16:31 pm

Should the single instance as Gaetano mentioned is not enough (which I really doubt), Solr has a native master-slave cluster mode which is easy to set up.

See http://wiki.apache.org/solr/SolrReplication

In case of replication, to direct eZ Find/Solr backend writes, you can use a reverse proxy for eZ Find up to 2.2. The next version (2.3) may have simple directives to disriminate the master (for writes) and slaves (read) too ... however, work is underway in Solr to make even that unnecessary.

For those who attend the barcamp at the eZ Conference in Berlin next week and want to know more, shout about it and I'll give you some insight

Cheers

Paul

eZ Publish, eZ Find, Solr expert consulting and training
http://twitter.com/paulborgermans

A Fowler

Monday 21 June 2010 11:18:04 am

Thank you both, Giunta and Borgermans! This helps clarify things for me.

One question remains. Which node is responsible for updating the index? Is the dedicated node expected to have enough of the eZ Publish infrastructure and scripts in place so that it can run the updates in a cron job by itself? Or should one of the web server nodes in the cluster run the update scripts (and will they connect to the dedicated solr instance on the remote host)?

Gaetano Giunta

Tuesday 22 June 2010 1:30:20 am

The indexing of data is always done in a "push" way, ie. one of the servers with ezp installed will make http requests to solr on port 8993.

Which server does the requests depends a little bit:

  • realtime idnexing: the server where the content is being edited will do the push
  • delayedindexing: one server where eZP is fully installed and the indexation cronjob is run

It does not need to be an eZP node dedicated to push the content to the indexing server, but in common scenarios it is one node dedicated to

  • serving the editing interface
  • running eZP cronjobs

The advantage of keeping the editing interface separated is that even under peak traffic conditions editors will still have a snappy interface. Also while heavy cronjobs are running, visitors of the site will not be impacted.

Principal Consultant International Business
Member of the Community Project Board

Powered by eZ Publish™ CMS Open Source Web Content Management. Copyright © 1999-2014 eZ Systems AS (except where otherwise noted). All rights reserved.

eZ debug

Timing: Jan 18 2025 04:53:18
Script start
Timing: Jan 18 2025 04:53:18
Module start 'layout'
Timing: Jan 18 2025 04:53:18
Module start 'content'
Timing: Jan 18 2025 04:53:20
Module end 'content'
Timing: Jan 18 2025 04:53:20
Script end

Main resources:

Total runtime1.2946 sec
Peak memory usage4,096.0000 KB
Database Queries77

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0055 594.2500152.6250
Module start 'layout' 0.00550.0062 746.875039.4453
Module start 'content' 0.01181.2810 786.3203718.3281
Module end 'content' 1.29280.0017 1,504.648420.1641
Script end 1.2945  1,524.8125 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00350.2734160.0002
Check MTime0.00140.1112160.0001
Mysql Total
Database connection0.00080.058810.0008
Mysqli_queries1.208193.3176770.0157
Looping result0.00100.0767750.0000
Template Total1.240095.820.6200
Template load0.00220.173820.0011
Template processing1.237795.605120.6188
Template load and register function0.00010.008310.0001
states
state_id_array0.00230.178910.0023
state_identifier_array0.00290.226320.0015
Override
Cache load0.00200.1515440.0000
Sytem overhead
Fetch class attribute can translate value0.00070.054950.0001
Fetch class attribute name0.00160.1206110.0001
XML
Image XML parsing0.00310.237450.0006
class_abstraction
Instantiating content class attribute0.00000.0016120.0000
General
dbfile0.00380.2906360.0001
String conversion0.00000.000940.0000
Note: percentages do not add up to 100% because some accumulators overlap

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1node/view/full.tplfull/forum_topic.tplextension/sevenx/design/simple/override/templates/full/forum_topic.tplEdit templateOverride template
5content/datatype/view/ezimage.tpl<No override>extension/sevenx/design/simple/templates/content/datatype/view/ezimage.tplEdit templateOverride template
7content/datatype/view/ezxmltext.tpl<No override>extension/community_design/design/suncana/templates/content/datatype/view/ezxmltext.tplEdit templateOverride template
9content/datatype/view/ezxmltags/paragraph.tpl<No override>extension/ezwebin/design/ezwebin/templates/content/datatype/view/ezxmltags/paragraph.tplEdit templateOverride template
2content/datatype/view/ezxmltags/li.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/li.tplEdit templateOverride template
2content/datatype/view/ezxmltags/ul.tpl<No override>design/standard/templates/content/datatype/view/ezxmltags/ul.tplEdit templateOverride template
1print_pagelayout.tpl<No override>extension/community/design/community/templates/print_pagelayout.tplEdit templateOverride template
 Number of times templates used: 27
 Number of unique templates used: 7

Time used to render debug report: 0.0002 secs