Not sure I completely understand your question - is the xml cache you're reffering to the umbraco.config? Or is it when you use the GetXmlDocumentByUrl() extension in XSLT for instance? Or is it something completely different?
I believe the content cache is in the file umbraco.config, but I'm not sure. The way I understand Umbraco to work is that it loads published content nodes into umbraco.config, and then loads it into memory. I'm not sure at which point it saves the content to the database, maybe at the same time, or maybe as a background thread? I might have this all wrong.
The problem we're trying to solve is this... If we have Umbraco instances on several load balanced web servers, sharing a single Umbraco database, we'd like to know how long we can depend on Umbraco being able to serve content from the cache if the database goes down or the web servers lose connectivity to the database. Yes, we'd like to have a highly available database but not sure how much budget we have for a database machine. It doesn't have to be super available because the content editors will be changing content relatively infrequently, but the content availability for browsing must be very high.
As an experiment, I tried deliberately shutting down the MySql service, and Umbraco continued to serve content for some period time (I believe it was around 30 minutes). After that, it started getting errors and I had to restart the MySql service.
What I'd like to know is: 1) Assuming no content was changed by a person, and the database goes down, is there a certain period of time that Umbraco will continue to reliably serve content while the database is down. 2) If the above is true, is there a way to change that value, e.g. through a config file?
I'm not sure completely, but I suppose that actually the umbraco.config is refreshed from the database only when some publishing happens. But there still could be some operations that nevertheless depend on database availability since not everything is cached in the umbraco.config (e.g. requesting media or members or validating authentication will require access to the database anyway). I think if the availability is really critical to your site you'd better rely on things like a sql server failover cluster or like that.
I think you're right, it would be best to have a highly available database. It is very tempting, because I'm sure this model would work: basically Umbraco would go into a semi-static mode, where it would always serve cached pages to the anonymous user, regardless of the state of the database. In fact, that would be an interesting modification to Umbraco.
I'll see if we can get some hardware for the database.
Cache update frequency
Can you change the frequency, or period of time between xml cache updates? If so, how?
Hi Paul
Not sure I completely understand your question - is the xml cache you're reffering to the umbraco.config? Or is it when you use the GetXmlDocumentByUrl() extension in XSLT for instance? Or is it something completely different?
/Jan
Hi Jan,
I believe the content cache is in the file umbraco.config, but I'm not sure. The way I understand Umbraco to work is that it loads published content nodes into umbraco.config, and then loads it into memory. I'm not sure at which point it saves the content to the database, maybe at the same time, or maybe as a background thread? I might have this all wrong.
The problem we're trying to solve is this... If we have Umbraco instances on several load balanced web servers, sharing a single Umbraco database, we'd like to
know how long we can depend on Umbraco being able to serve content from the cache if the database goes down or the web servers lose connectivity to the database. Yes, we'd like to have a highly available database but not sure how much budget we have for a database machine. It doesn't have to be super available because the content editors will be changing content relatively infrequently, but the content availability for browsing must be very high.
As an experiment, I tried deliberately shutting down the MySql service, and Umbraco continued to serve content for some period time (I believe it was around 30 minutes).
After that, it started getting errors and I had to restart the MySql service.
What I'd like to know is:
1) Assuming no content was changed by a person, and the database goes down, is there a certain period of time that Umbraco will continue to reliably serve content while the database is down.
2) If the above is true, is there a way to change that value, e.g. through a config file?
Regards -- Paul
So, no one knows the answer? It seems kind of central to the operation of Umbraco.
I'm not sure completely, but I suppose that actually the umbraco.config is refreshed from the database only when some publishing happens. But there still could be some operations that nevertheless depend on database availability since not everything is cached in the umbraco.config (e.g. requesting media or members or validating authentication will require access to the database anyway). I think if the availability is really critical to your site you'd better rely on things like a sql server failover cluster or like that.
Hi Rodion,
I think you're right, it would be best to have a highly available database. It is very tempting, because I'm sure this model would work: basically Umbraco would go into a semi-static mode, where it would always serve cached pages to the anonymous user, regardless of the state of the database. In fact, that would be an interesting modification to Umbraco.
I'll see if we can get some hardware for the database.
--Paul
is working on a reply...