Thread: Extreme Cache not showing all new posts?
|New topic Reply||Page: 1|
|New topic Reply||Page: 1|
07/23/12 8:58 AM
ColdFusion 9, Mango 1.4. ExtremeCache 1.1, and Mangoblog is pinned to one server in a Citrix NetScaler load balanced config where each server is running a LAMP stack.
I turned on ExtremeCache one day last week and it seemed to work fine. A new post was added later that day and it showed up. Performance was noticeably better.
However the following day, three new posts were added and none showed up for multiple people including myself using Firefox and another person using MSIE. The posts were visible to the person who posted it, and they were in the RSS feed. I tried manually clearing the cache but that didn't make them visible.
The only other plugins are BurntMango, LogViewer, Scribe, and Sidenote.
07/23/12 2:08 PM
A new post today, and it happened again.
Weird thing is that the behavior varies by browser.
Firefox is always out of date.
In Chrome, it first appears out of date. If you clear the cache, you can get it to load the latest index showing the new post. If you quit, relaunch, and reload the page, you see the old index. Clear cache, get the new one.
Safari on one machine seems to get the new index, on another it doesn't.
So I looked in the .../components/plugins/user/extremecache/cache_store/
folder. There is a file default_index.html and it doesn't have the new post in the index.
If I load the new post URL straight into Firefox, it loads the page, but the index remains out of date.
Clearing the cache from the admin menu definitely didn't change anything.
07/23/12 2:31 PM
Is it possible there'd be a conflict between Scribe and ExtremeCache around the "afterPostAdd" event? We have a list of about 40 addresses that get emailed by Scribe. What if that took longer than some threshold value to finish or there was a send error?
07/23/12 9:05 PM
So if the blog is load balanced, then it means that each of the servers need to have the page cached. I think you see different things in different browsers is because each of the servers has a different caching state (same have the latest, some don't).
The main reason for that is that the information about what is cached and what isn't is stored in the database. So server A successfully caches it, and subsequent requests get the new version. Another user gets server B, B checks if it is cached, the database says it is (because A cached it). So B grabs it from disk. However, B's copy is the old one, since it was never updated.
So in this scenario, server A saves the fresh copy on disk, and tells the DB it has it. Server B thinks it also has it because it checks the database, but it actually doesn't (it has an old copy).
A load balanced server would need a plugin that takes that into account.
07/24/12 6:35 AM
The system admins assure me that Mango is pinned to one specific server in the configuration.
Maybe I should turn on an indicator that displays which server the page is being generated on just to verify that they are right.
07/24/12 5:35 PM
yes, that'd be good to check. Make sure you disable extreme cache before checking it to avoid any confusion.