RE: Index

Stéphane Croisier <[email protected]>
Newsgroups gmane.comp.cms.jahia.devel
Message-ID <[email protected]>
Hi,

If you are using MySQL be sure to have the MySQL 
cache query turned on with an adequate size.

You may try to use another JVM (such as JRockit 
or the IBM ones) which are definitively faster 
than the sun one. However we experienced once 
some strange behaviours under heavy load with the 
JRockit once... Perhaps the problem was solved in 
their latest release... The best way is to try 
and to see if another JVM is faster in your 
custom environement as this may change quite a 
lot according to your platform...

Finally, if you have developed some complex 
templates or have complex navigation menus to 
display, I would clearly suggest to add some HTML 
cache fragment in (some of) your templates (cf: 
http://www.opensymphony.com/oscache/wiki/JSP%20Tags.html), 
especially in live mode. For example you may add 
some HTML fragment around your navigation menus 
or around some complex Jahia queries (e.g. 
retrieve all objects of type news on all virtual 
sites and sort them by date and take the first 
10) in order to avoid to have to redo each time 
all the business logic. The problem is that the 
Jahia HTML cache is on a per page basis and, for 
integrity reason, is quite often flushed (or you 
need to use some /cache/offonce or /bypass action).

Regarding the menu if you put for example an 
automatic expiration delay after 60 seconds (up 
to you to decide if you want more or less), the 
only risk is after a validation: some pages will 
be perhaps deleted but still present in your 
cache fragment leading to some temporary 404 
(until the cache is automatically flushed after 
the 60 seconds). But this will really boost 
performance of your site! If I remember correctly 
there is an integration example of such an JSP 
HTML cache in the latest version of the default 
Corporate template (there is a box which 
aggregate all the news from all the pages and 
then use an HTML cache in edit and live mode). 
Please check the code in the CVS.

Looking forward, we are now refactoring the 
current HTML cache per page to add a new HTML 
cache per fragment which will be automatically 
managed and flushed by the Jahia system according 
to the editors actions. Moreover we will 
implement the ESI standard (www.esi.org or refet 
to the JSR128: 
http://jcp.org/en/jsr/detail?id=128) so that you 
will be able to add several independant front end 
cache proxies. However, as there is no open 
source implementation of the standard, we first need to develop one ;-)

But temporarily you can perfectly add it directly 
in your set of template and manage your cache 
fragments on your own. This is quite similar...

Finally install a Jahia in cluster (for example 
with both servers in read/write mode or only one 
server in read mode and the other one in authoring mode).

My 2cts,
Stéphane

At 16:30 09/09/2005, ghislain\.cussonneau wrote:
>Ok
>
>I'm searching other elements to increase performance on Jahia.
>
>Which database and J2EE server did you use ?
>Have you find some other tips to increase performance ?
>
>
>----------
>   <?xml:namespace prefix = o ns = 
> "urn:schemas-microsoft-com:office:office" />
>Ok I use the index on the site exept the part with old version of jahia.
>This seems good.
>
>Thanks for your help.
>
>Nicolas
>
>PS :
>
>Here is my script
>
>CREATE INDEX id_jahia_acl_index ON jahia_acl (id_jahia_acl);
>CREATE INDEX parent_id_jahia_acl_index ON jahia_acl (parent_id_jahia_acl);
>CREATE INDEX id_jahia_fields_data_index ON 
>jahia_fields_data (id_jahia_fields_data);
>CREATE INDEX ctnid_jahia_fields_data_index ON 
>jahia_fields_data (ctnid_jahia_fields_data);
>CREATE INDEX pageid_jahia_fields_data_index ON 
>jahia_fields_data (pageid_jahia_fields_data);
>CREATE INDEX id_jahia_ctn_entries_index ON 
>jahia_ctn_entries (id_jahia_ctn_entries);
>CREATE INDEX pageid_jahia_ctn_entries_index ON 
>jahia_ctn_entries (pageid_jahia_ctn_entries);
>CREATE INDEX id_jahia_pages_data_index ON 
>jahia_pages_data (id_jahia_pages_data);
>CREATE INDEX parentid_jahia_pages_data_index ON 
>jahia_pages_data (parentid_jahia_pages_data);
>CREATE INDEX id_jahia_ctn_lists_index ON jahia_ctn_lists (id_jahia_ctn_lists);
>CREATE INDEX pageid_jahia_ctn_lists_index ON 
>jahia_ctn_lists (pageid_jahia_ctn_lists);
>
>CREATE INDEX jahia_acl_index2 ON jahia_acl ( 
>parent_id_jahia_acl,id_jahia_acl );
>CREATE INDEX jahia_ctn_def_properties_index ON 
>jahia_ctn_def_properties ( ctndefid_jahia_ctn_def_prop );
>CREATE INDEX jahia_ctn_entries_index ON 
>jahia_ctn_entries ( rights_jahia_ctn_entries );
>CREATE INDEX jahia_ctn_entries_index2 ON 
>jahia_ctn_entries ( id_jahia_ctn_entries,workflow_state );
>CREATE INDEX jahia_ctn_entries_index3 ON 
>jahia_ctn_entries ( pageid_jahia_ctn_entries,workflow_state );
>CREATE INDEX jahia_ctn_entries_index4 ON 
>jahia_ctn_entries ( 
>listid_jahia_ctn_entries,workflow_state,rank_jahia_ctn_entries,id_jahia_ctn_entries 
>);
>CREATE INDEX jahia_ctn_entries_index5 ON 
>jahia_ctn_entries ( id_jahia_ctn_entries,rights_jahia_ctn_entries );
>CREATE INDEX jahia_ctn_lists_index ON 
>jahia_ctn_lists ( id_jahia_ctn_lists,workflow_state );
>CREATE INDEX jahia_ctn_lists_index2 ON 
>jahia_ctn_lists (  parententryid_jahia_ctn_lists,pageid_jahia_ctn_lists );
>CREATE INDEX jahia_ctn_lists_index3 ON 
>jahia_ctn_lists ( id_jahia_ctn_lists, parententryid_jahia_ctn_lists );
>CREATE index jahia_ctn_lists_index4 ON 
>jahia_ctn_lists ( pageid_jahia_ctn_lists, ctndefid_jahia_ctn_lists );
>CREATE INDEX jahia_ctn_lists_index5 ON 
>jahia_ctn_lists ( parententryid_jahia_ctn_lists,id_jahia_ctn_lists );
>CREATE INDEX jahia_ctnlists_prop_index ON 
>jahia_ctnlists_prop ( ctnlistid_ctnlists_prop );
>CREATE INDEX jahia_ctn_struct_index ON 
>jahia_ctn_struct ( rank_jahia_ctn_struct,ctnsubdefid_jahia_ctn_struct );
>CREATE index jahia_ctn_struct_index2 ON 
>jahia_ctn_struct( objdefid_jahia_ctn_struct );
>CREATE INDEX jahia_ctn_struct_index3 ON 
>jahia_ctn_struct ( 
>objtype_jahia_ctn_struct,objdefid_jahia_ctn_struct,ctnsubdefid_jahia_ctn_struct 
>);
>CREATE INDEX jahia_ctn_struct_index4 ON 
>jahia_ctn_struct ( ctnsubdefid_jahia_ctn_struct,rank_jahia_ctn_struct );
>CREATE INDEX jahia_fields_data_index ON 
>jahia_fields_data ( 
>pageid_jahia_fields_data,workflow_state,ctnid_jahia_fields_data);
>CREATE INDEX jahia_fields_data_index2 ON 
>jahia_fields_data ( 
>id_jahia_fields_data,workflow_state,ctnid_jahia_fields_data );
>CREATE INDEX jahia_fields_data_index3 ON 
>jahia_fields_data ( 
>id_jahia_fields_data,workflow_state,pageid_jahia_fields_data );
>CREATE INDEX jahia_fields_data_index4 ON 
>jahia_fields_data ( 
>id_jahia_fields_data,pageid_jahia_fields_data,ctnid_jahia_fields_data );
>CREATE INDEX jahia_fields_data_index5 ON 
>jahia_fields_data ( rights_jahia_fields_data );
>CREATE INDEX jahia_fields_data_index6 ON 
>jahia_fields_data ( ctnid_jahia_fields_data, 
>rank_jahia_fields_data,id_jahia_fields_data);
>CREATE INDEX jahia_fields_data_index7 ON 
>jahia_fields_data ( 
>value_jahia_fields_data,type_jahia_fields_data,workflow_state,version_id );
>CREATE INDEX jahia_fields_data_index8 ON 
>jahia_fields_data ( 
>pageid_jahia_fields_data,ctnid_jahia_fields_data,rank_jahia_fields_data,id_jahia_fields_data 
>);
>CREATE INDEX jahia_fields_data_index9 ON 
>jahia_fields_data ( 
>pageid_jahia_fields_data,workflow_state,id_jahia_fields_data );
>CREATE INDEX jahia_fields_data_index10 ON 
>jahia_fields_data ( pageid_jahia_fields_data,fielddefid_jahia_fields_data );
>CREATE INDEX jahia_fields_def_index ON 
>jahia_fields_def ( id_jahia_fields_def );
>CREATE index jahia_fields_def_index2 ON 
>jahia_fields_def ( jahiaid_jahia_fields_def );
>CREATE INDEX jahia_fields_def_prop_index ON 
>jahia_fields_def_prop ( flddefid_jahia_fields_def_prop );
>CREATE INDEX jahia_fields_def_prop_index2 ON 
>jahia_fields_def_prop ( 
>type_jahia_fields_def_prop,default_jahia_fields_def_prop );
>CREATE INDEX jahia_fields_def_extprop_index ON 
>jahia_fields_def_extprop ( id_jahia_fields_def );
>CREATE INDEX jahia_link_index ON jahia_link ( right_oid );
>CREATE INDEX jahia_pages_data_index ON 
>jahia_pages_data ( id_jahia_pages_data,workflow_state, version_id);
>CREATE INDEX jahia_pages_data_index2 ON 
>jahia_pages_data ( 
>workflow_state,parentid_jahia_pages_data,version_id,id_jahia_pages_data );
>CREATE INDEX jahia_pages_data_index3 ON 
>jahia_pages_data ( rights_jahia_pages_data );
>CREATE INDEX jahia_pages_data_index4 ON 
>jahia_pages_data ( parentid_jahia_pages_data ) ;
>CREATE INDEX jahia_pages_data_index5 ON 
>jahia_pages_data ( 
>workflow_state,parentid_jahia_pages_data,id_jahia_pages_data,version_id );
>CREATE INDEX jahia_pages_data_index6 ON 
>jahia_pages_data ( 
>parentid_jahia_pages_data,workflow_state,id_jahia_pages_data,version_id );
>CREATE INDEX jahia_pages_data_index7 ON 
>jahia_pages_data ( parentid_jahia_pages_data,id_jahia_pages_data,version_id );
>CREATE INDEX jahia_pages_def_prop_index ON 
>jahia_pages_def_prop ( id_jahia_pages_def_prop );
>CREATE INDEX jahia_pages_def_prop_index2 ON 
>jahia_pages_def_prop ( name_pages_def_prop,value_pages_def_prop );
>CREATE INDEX jahia_user_prop_index ON 
>jahia_user_prop ( 
>id_jahia_users,provider_jahia_user_prop,userkey_jahia_user_prop );
>CREATE INDEX jahia_users_index ON jahia_users ( 
>name_jahia_users,siteid_jahia_users );
>CREATE INDEX jahia_users_index2 ON jahia_users ( siteid_jahia_users );
>CREATE INDEX jahia_users_index3 ON jahia_users ( key_jahia_users );
>
> >
>
>----------
>De : ghislain.cussonneau [mailto:[email protected]]
>Envoyé : vendredi 9 septembre 2005 10:03
>À : dev_list
>Objet : Re:Index
>
> >
> > Did you read the "Fines-tuning tips" on 
> Jahia.Org site 
> (<http://www.jahia.org/jahia/Jahia/devzone/doc>http://www.jahia.org/jahia/Jahia/devzone/doc) 
> ?
> >
>There's a first list of index that you can 
>complete after some analyze of your system. The 
>best way is to log the SQL requests received by 
>your database and analyze the log after some 
>days to know which request are the more used and determine new indexes.
> >
> > Which database did you use ? In case of 
> PostgreSQL, try the vaccumdb command (in 
> PostgreSQL bin directory) to update the 
> statistics and optimize the index. On other DB, 
> find the way to update the statistics and optimize the index.
> >
> >
> >
>
>----------
> >
>
>
>I have a performance problem on a jahia web site.
>I have more than 2500 pages on this site and then this very slow.
>
>I am trying to create index on the database.
>
>Is anyone has a script to do that ?
>I use jahia 4.1.
>
>I have try to use the p6spy and sql profiling without success.
>
>I do exactly what is write on the guide 
>administration guide, but GUI didn’t receive a connection.
>
>Is anyone can help me?
>Is any one has a idea about this performance problem?
>
>Thanks for your help.
>
>Nicolas
>
> >
> >
> > Ghislain CUSSONNEAU
> > DIRR/DPIL/CIS
> > CAP 44, Rue Marcel Sembat
> > 44000 Nantes
> > 02 51 84 48 80
> > CRIL Technology
> > Technoparc de l'Aubinière
> > 44000 Nantes
> > 02 51 89 64 50
> >
> >
> >
> > Accédez au courrier électronique de 
> <?xml:namespace prefix = st1 ns = 
> "urn:schemas-microsoft-com:office:smarttags" />La Poste : www.laposte.net ;
> > 3615 LAPOSTENET (0,34 /mn) ; tél : 08 92 68 13 50 (0,34/mn)
>
>
>Ghislain CUSSONNEAU
>DIRR/DPIL/CIS
>CAP 44, Rue Marcel Sembat
>44000 Nantes
>02 51 84 48 80
>CRIL Technology
>Technoparc de l'Aubinière
>44000 Nantes
>02 51 89 64 50
>
>
>Accédez au courrier électronique de La Poste : www.laposte.net ;
>3615 LAPOSTENET (0,34 /mn) ; tél : 08 92 68 13 50 (0,34/mn)

- -- --- -----=[ scroisier at jahia dot com ]=---- --- -- -
CEO - Jahia Ltd, 45 rue de la gare, 1260 Nyon (Switzerland)
Jahia : The Java Unified Web Platform
www.jahia.org - The community and product web site
www.jahia.com - Our commercial services company
www.collaborativesource.org - The Collaborative Source Initiative
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.