If you can make the query more memory-efficient, do that. If you can't, increase the size of the cache.
You can guesstimate how much expanded-tree space your query ought to need by figuring that a typical expanded XML tree will be 3x the size of its source text. That 3x number is completely empirical, but seems to work pretty well. For example if your XML documents average 10-kiB and you display search results 20 at a time, each concurrent request might pin about 600-kiB of expanded-tree cache. Of course the most popular documents will overlap between queries. Partitions also make things more complicated. If you see expanded tree cache errors that don't make any sense in that context, give us some more details and maybe we'll see what's going on. Speaking more broadly, the caches are just that: caches. They trade memory for disk reads, by caching results from a disk read. Expanded trees are entire documents or fragments, as something like a DOM object and local to the eval host. Compressed trees are closer to on-disk block reads, and local to the forests. List cache entries are term lists, like "'cat' in: 1, 34, 726, 93". The triple cache caches triples. Generally speaking I don't change any of these without a good reason. When managing a project it's also a good idea to maintain a config document, so that you can go back and say why you changed any particular aspect of the configuration. That helps avoid regressions and misconfigurations. -- Mike On 15 Jul 2014, at 10:30 , Jakob Fix <[email protected]> wrote: > Hello, > > we're running MarkLogic 7.0-3 in a production environment (although it's > Windows 2012 ...), with 8Gb of RAM and only few data (think megabytes rather > than gigabytes). not all of the memory is even used, and we wonder how to get > ML to make use of all of what's available. even though only about 2Gb are > used by ML, we get XDMP-EXPNTREECACHEFULL errors, and yes, we've seen [1]. > > As an example, in the Admin UI we see the possbility to change this value, > but there is no guidance as to what the ratio should be between the data in > the database, the required expanded tree cache and the overall memory. > > This is just one case where we are confronted with all the values of the > different caches (list, compressed tree, expanded tree, triple and its > interaction with other configuration parameters such as indexes, lexicons > etc.). > > So, basically I guess my question is where can we learn more about the > correct use of these parameters? I couldn't see a free online class for this, > and the query tuning guide's sections on caches [2] and other more low-level > parameters are rather succinct. > > cheers, > Jakob. > > [1] > https://help.marklogic.com/Knowledgebase/Article/View/9/0/resolving-xdmp-expntreecachefull-errors > > [2] http://docs.marklogic.com/guide/performance/perftune#id_56362 > _______________________________________________ > General mailing list > [email protected] > http://developer.marklogic.com/mailman/listinfo/general _______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
