Synchronize Distributed Object Cache with SQL Server 2005
NCache lets you cache data closer to your application in the middle-tier so you can reduce expensive trips to the database. This in turns significantly speeds up your application. It also makes it more scalable because the load on your database is reduced allowing it to handle a larger number of clients without any hardware upgrades.
However, when you cache data, you're actually creating a copy of it outside of your database. This introduces the risk that data in your database would be modified but your cached copy would remain unchanged and become stale. The good news is that this situation occurs only when you have multiple applications modifying the same data in the database and when not all of them are updating the cache.
When you have the situation where other applications are modifying data in the database and not updating the cache, then you need a mechanism for the cache to be able to synchronize itself with the database directly. This is possible in multiple different ways. If your database is SQL Server 2005 then the cache can use .NET event notifications for synchronization which is quite efficient. But, if your database is SQL Server 2000, Oracle, or any other OLEDB compliant database, then the only way to synchronize is by polling the database looking for any updates. This method is of course not as efficient because the cache ends up making a lot of unnecessary trips to the database.