take a closer look at the file /data/umbraco.config. That's basically what the frontend is using, thus avoiding having to query a database a lot just for reading stuff.
The XML is (re)generated every time you publish stuff from the backend, so it will always contain the latest version of the content. Not sure if it is fully regenerated, or only parts of it.
Regarding sites with tons of content, I can't help you with any specifics there. Other than I know that there's a lot out there, so it shouldn't be much of a problem.
Anyways, just wanted to point you to the Umbraco.config file. It tells you a lot about the structure behind Umbraco, if you know how to read stuff like that.
From my understanding that is exactly what Umbraco does, it stores the XML in memory ( application wide not on a session by session basis ) which is the reason the performance is lightning fast even on large installations with thousands of pages & users. It also means you can scale to multiple servers by publishing the umbraco.config file onto multiple servers.
This also in theory allows you to have one server that has the Umbraco front end which is secure and multiple servers that do not have access to the database (as they only need the umbraco.config file)
@Chris: don't you run into issues when getting media items this way? i still think your server that serves the front end still needs access to the server for these kind of tasks?
Having all of the content in memory makes the whole frontend lightning fast (as Chris says), as it would take 10 times more ressources to retreive content from the database.
And looking at the size of Umbraco.config, it really doesn't take up that much memory.
The Umbraco.config file is used to persist the xml structure into cache so that the system doesn't need to rebuild the entire xml heirarchy when the application pool restarts. If you remove this file, then the heirarchy will be reconstructed from scratch when the app restarts which consumes a bit of resources.
Whole site in XML?
Another quick question.
I'm looking at the structure of my site and started wondering if the WHOLE sites structure is loaded into XML on each page hit.
I realise that the XML pointer is set to the node that the current page is on, but is every other node site-wide available and loaded at that time?
I ask as there is a potential for a lot of pages being present in the site - especially if it's an online store type application...
Thanks,
Sean
Hi Sean,
take a closer look at the file /data/umbraco.config. That's basically what the frontend is using, thus avoiding having to query a database a lot just for reading stuff.
The XML is (re)generated every time you publish stuff from the backend, so it will always contain the latest version of the content. Not sure if it is fully regenerated, or only parts of it.
Regarding sites with tons of content, I can't help you with any specifics there. Other than I know that there's a lot out there, so it shouldn't be much of a problem.
Anyways, just wanted to point you to the Umbraco.config file. It tells you a lot about the structure behind Umbraco, if you know how to read stuff like that.
Best regards,
Soeren Sprogoe
Hi Soere,
Is it good to always keep the whole XML contents in memory?
Thanks,
Nagaraj
Hi Sean / Nagaraj,
From my understanding that is exactly what Umbraco does, it stores the XML in memory ( application wide not on a session by session basis ) which is the reason the performance is lightning fast even on large installations with thousands of pages & users. It also means you can scale to multiple servers by publishing the umbraco.config file onto multiple servers.
This also in theory allows you to have one server that has the Umbraco front end which is secure and multiple servers that do not have access to the database (as they only need the umbraco.config file)
Best regards,
Chris
@Chris: don't you run into issues when getting media items this way? i still think your server that serves the front end still needs access to the server for these kind of tasks?
Cheers,
/Dirk
@Nagaraj: I'm no expert, but I'd say Yes!
Having all of the content in memory makes the whole frontend lightning fast (as Chris says), as it would take 10 times more ressources to retreive content from the database.
And looking at the size of Umbraco.config, it really doesn't take up that much memory.
/SoerenS
The Umbraco.config file is used to persist the xml structure into cache so that the system doesn't need to rebuild the entire xml heirarchy when the application pool restarts. If you remove this file, then the heirarchy will be reconstructed from scratch when the app restarts which consumes a bit of resources.
is working on a reply...