If you have been looking at getting into using document-oriented storage, you have probably looked at the variety of NoSQL offerings such as CloudDB, Elasticsearch, or MongoDB. These databases are built for scalability, performance, and high availability, tailored for gathering large quantities of data in a reliable manner.
My personal preference is MongoDB, as the support for it is very solid and the C# driver is great for the .NET applications I build. Recently, while working on a pet project, I started playing around with MongoLab to host a cloud storage of the data.
Continue reading “Using MongoLab to manage your MongoDb instances”
On a recent project using Sitecore 6.6, we ran across a strange performance problem with logging in visitors to the site. As the day went along, the response time for logging in a visitor to the site would slow down. Combined with Windows Authentication being required, this meant that initial loads of all pages were slowing down for all users throughout the day. The initial login times were in the milliseconds range, but by mid-day some users were taking up to 8 full seconds just to complete a login call, aside from any page load times.
What was causing this?
Have your deployments to Sitecore 6.6 installations been taking a very long time? Do your build logs show 3-4 seconds for every template item that is deployed? Are you seeing the following warning in Sitecore logs?
All caches have been cleared. This can decrease performance considerably.
If so, you are probably running on an older version of TDS. I recently ran into this problem with our TeamCity installation that was using TDS 22.214.171.124 to execute deployments. Simple deployments were taking over 30 minutes, sometimes up to a full hour. We brought that down to 5 minutes or less by simply upgrading to the latest version of TDS.
Continue reading “TDS deployments slow with Sitecore 6.6? Upgrade versions!”
I’ll be continuing the Baby Steps to SOA topic next week, but for this week I’m jumping back into the world of Sitecore. I’ve just spent the past few weeks performance tuning another project, and there are so many rabbit-holes one has to jump down to find the culprit of a performance issue. Networks, databases, memory leaks, caching, bad code, integration bottlenecks… so many variables that can lead to a Sitecore site performing poorly under load even when it seems all the Sitecore configurations are correct.
Continue reading “Performance tuning your Sitecore installation”
Application performance is heavily dependent on the performance of the communications between the primary application and all other integrated systems. Even the tiniest of changes in a connected system can suddenly cause a huge performance hit. For example, a small web service retrieving data about a user when they log in gets altered to return an extra field from a joined table, and suddenly the performance for users logging in bombs and you start getting timeouts.
When an application is built under one set of assumptions, the changes that will inevitably occur in any integrated system need to be monitored on an ongoing basis. This is where automation of performance regression tests comes in. Whether running an agile project or not, ensuring integrated systems are performing over time requires a solid regression plan. How can this be accomplished this cheaply?
Continue reading “Profiling Integration Performance on a Tight Budget”