defining the schema takes hours!

I am trying to define a schema to Tamino (4.1.4) using Tamino Schema Editor. Surprisingly even after 4-5 hours of processing tamino schema editor is still busy neither reporting any error nor success. One thing to be noticed is that I could define the same schema one week ago successfully. But now, I have just added more indices for my schema. In fact after adding the indices I tried to update the schema (using the schema editor) but the process was not complete even after more than 13 hours. So I aborted schema editor then and I removed the collection (as I had very few documents) and defining the schema afresh. But even this doesn’t seem to work.

Also please check my schema if there are some errors (I don’t believe there are errors).

PS. I use Tamino schema editor from a remote Windows XP machine and my Tamino Server is on a Redhat Linux Advanced Server 2.1.
bind.TSD (678 KB)

Hi Gopal

I found the following:
1. there are two places where an element named “PDB-seq-id_chain” has a type which does
not allow for a text index
2. Tamino 4.1 allows for a maximum of approx. 900 standard or text indexes, each.
Within the upcoming Tamino 4.2 approx 12000 are allowed. Nevertheless, after fixing 1.
I hit that limit also within Tamino 4.2.

In general, scenarios like this happen if a schema is highly connected either explicitly
(via <xs:element ref="…"> or <xs:element type="…">) or implicitly (via xs:any).
The number of possible paths being traversed by schema processing may be in the order of
the factorial of N (N!=12…*N) where N is the number of global elements or complex type
definitions. As N! grows extremly fast, the schema processing may last quite long especially
if Tamino must determine the set of paths to a specific logical node where an index is to
be created.
Nevertheless, even when removing the indexes from your schema, the define takes quite long
(about 15 minutes in Tamino 4.2 - Tamino 4.1 seems to be substantially slower).

Here some suggestions how you may proceed:
- check at which paths you do really need indexes to be used for queries.
You may then use one or more paths inside tsd:which elements in order to specify
at which paths leading to a logical node an index is to be created
- omit indexes that are not really needed, especially if the respective node is
referenced from many other elements in the schema
- in addition, you may split the schema into several smaller schemas eaqch describing a
single doctype
- when switching to Tamino 4.2 you may use so-called multiPath indexes which allow to use
a single index for various paths leading to the same and even different logical nodes.

Best regards

Hi Uli,

Thanks for your suggestions and explanations. I managed to define the schema after removing some indices.

Best regards,