[MarkLogic Dev General] Difference between eNode and Data Node
Geert.Josten at daidalos.nl
Mon Mar 23 11:58:30 PST 2009
I am not an authority on this matter either, but I will try to explain as well as possible..
1) MarkLogic Server is designed to operate with evaluator nodes and database nodes. The database nodes access content stored in forests and perform search queries over the forests. The evaluator nodes are responsible for executing the Xquery code, webdav requests, XDBC calls etc. If the involved code to be executed doesn't access any content stored in the database (no cts:search calls, no doc statements, etc), but purely relies on in memory constructed content, then database nodes are not accessed. It has nothing to do with caching of any kind, it is just that content can be constructed on the fly, by just incorporating it in the Xquery script for instance. The example Eric supplied is valid.
2) MarkLogic Server does not handle failover when filesystems crash. The documentation (http://developer.marklogic.com/pubs/4.0/books/cluster.pdf) explains that filesystem crashes should be handled by using a clustered filesystem. There are some suggestions in that document, but I can imagine that a RAID configuration might suffice for simples situations as well. Forest-level failover works as follows: you assign multiple hosts to one physically shared forest. These hosts are listed in order. If the 1st host drops out, the 2nd host takes that forest over. Replication of data is not necessary that way, making it more efficient and much more scalable. At the front-end you have also the HTTP servers etc on the hosts. You can have as many as you like. By putting a hardware or software load-balancer in front you can distribute calls coming in at a single port to all available 'evaluator' nodes. Load-balancing is not handled by MarkLogic Server itself, there are plenty solutions readily available so why bother. ;-)
I am not sure whether an HTTP server is the actual evaluator node, but I don't think so. There is this Task Server configuration page within the MarkLogic Server Group Administration. This configures Task threads on all hosts within a single group. I have the impression these act as evaluator nodes and the Databases in the MarkLogic Server Administration correspond to the database nodes. Forest-level failover is configured at the Forest configuration pages.
I hope this makes things clearer to you!
Drs. G.P.H. Josten
Source of Innovation
2665 JZ Bleiswijk
Tel.: +31 (0) 10 850 1200
Fax: +31 (0) 10 850 1199
De informatie - verzonden in of met dit emailbericht - is afkomstig van Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit bericht kunnen geen rechten worden ontleend.
> From: general-bounces at developer.marklogic.com
> [mailto:general-bounces at developer.marklogic.com] On Behalf Of
> Saptarshi Newyork
> Sent: maandag 23 maart 2009 12:30
> To: general at developer.marklogic.com
> Subject: [MarkLogic Dev General] Difference between eNode and
> Data Node
> Hi ,
> I have a few questions:
> 1) What is the difference between eNode and dNode? I have
> read that E-nodes are required to evaluate XQuery programs,
> XCC/XDBC requests, WebDAV requests, and other server
> requests.and dNodes are those which directly talks with the
> database/forest. It is also told that if the request does not
> need any forest data to complete, then an e-node request is
> evaluated entirely on the e-node. I do not understand how
> this is possible!! If eNode is meant for XQuery evaluation
> and XQuery needs an XML to process, then every eNode request
> should talk to dNode. Is there any caching mechanism? It will
> be great if anybody can explain this to me?
> 2) There are two failover mechanism explained in the
> documentation. Forest level failover and eNode level
> failover. It seems that forest data level failover is not
> handled by Marklogic. Like if the filesystem crashes, is
> there anyway by which Marklogic server replicates the forest
> to other hosts in same or different cluster? If this feature
> is not presently supported, then when can we expect this on
> the roadmap?
> Thanks in advance.
More information about the General