Caching SharePoint Data

July 17, 2012

StorageEdge lets you cache list data, BLOBs, and ASP.NET Session State to help you boost performance and scalability of SharePoint. Performance improvement comes because an in-memory cache is much faster than making expensive database trips over and over again. And, scalability comes because traffic to the database is reduced considerably and allows the database to handle more concurrent users.

Why Cache List Data?

Lists in SharePoint represent most of the structured data that the user sees. And, this list data is stored in SQL Server database. So, if you cache list data in an in-memory cache, you can access it much faster than going to the database. And, by reducing database trips, you’re no longer going to see the database becoming a scalability bottleneck when you increase the number of users. Here are some things you can do with list caching.

          • Keep list data fresh in the cache through expirations
          • Keep list data cache synchronized across all WFE servers in the farm
          • Use InProc/OutProc client cache along with a distributed cache
          • Mange all list caching from a centralized web based admin app
          • Monitor list cache activities in PerfMon

Why Cache BLOBs?

StorageEdge lets you externalize BLOBs to relieve pressure on the SQL Server database. Additionally, StorageEdge lets you cache frequently used BLOBs on WFE servers in an InProc/OutProc client cache to give your SharePoint app further boost and reduce traffic even to the external BLOB storage. This in-memory client cache is much faster than the disk based BLOB cache that SharePoint provides you. Here are some things you can do with BLOB caching.

            • Keep a subset of BLOBs in client cache on WFE servers
            • Specify max cache size and evict some BLOBs when cache is full
            • Keep BLOBs fresh by expiring them in the cache
            • Keep cache light by removing unreferenced BLOBs from cache
            • Manage all BLOB caching from a centralized web based admin app
            • Monitor BLOB cache activity in PerfMon

Why Store ASP.NET Session State in Cache?

A number of SharePoint features use ASP.NET Session state. This includes Forms Services, Project Server, and any custom applications and web parts you develop in SharePoint. However, by default, SharePoint stores Session State in SQL Server but that is not the best place to keep your sessions. Here are some reasons why you should store SharePoint Session State in a distributed cache rather than in SQL Server:

              • In-memory distributed cache much faster to access than SQL Server
              • Distributed cache replicates sessions to multiple servers
              • Add or remove cache servers at runtime without stopping the app
              • Keep cache light by removing unreferenced BLOBs from cache
              • Plug-in distributed cache storage through web.config as an SSP
              • Monitor Session State cache activity in PerfMon

Below is a diagram showing how caching fits into a typical SharePoint application. Please note that you don’t have to create a separate caching tier and can host the cache on your WFE servers. Separate caching tier is recommended (but not required) if you have 4 or more WFE servers.

SharePoint  with EBS Provider

SharePoint with EBS Provider

About Alachisoft:

Alachisoft, is located in San Francisco Bay Area, California, is a leading provider of NCache and StorageEdge. NCache is a high performance in-memory object caching solution for mission critical .NET and Java applications with real-time data access needs. While StorageEdge is an RBS provider for SharePoint and helps optimize storage and performance of SharePoint. It externalizes all BLOBs from SharePoint content database and reduces the database size by 95%.

Download Free Version of StorageEdge


Alachisoft in TechEd America and TechEd Europe

June 7, 2012

Alachisoft has announced its participation in TechEd America and TechEd Europe to be held in Orland from June 11-14,2012 and June 22-25, 2012 in Amsterdam respectively, according to the Alachisoft Newsletter. Alachisoft will showcase two of its premier products there, NCache and StorageEdge.

Iqbal Khan, The Technology Evangelist at Alachisoft, will demonstrate to the visitors how NCache reduces expensive database trips resulting in enhanced performance and extended scalability, especially since these qualities are now considered core requirements for a reliable and efficient enterprise application.

While StorageEdge promises to strengthen your SharePoint ROI by assisting in offloading BLOBs onto cheaper storage tiers with various filtering options to help improve user experience and bandwidth. Though I’ve discussed the benefits and features of StorageEdge in detail in my earlier post, below are some of the highlights,

    – RBS Filestream provider
    – BLOB Externalization
    – Archiving to multi-Tire Storage
    – Rational Archiving for Compliance
    – File Share linker
    – Database Mirroring
    – Asynchronous BLOB Writing

Visitors will witness these remarkable features and noticed the strength of StorageEdge and NCache via live demos and presentations at the booth, apart from the brochures.

The event, hosted by Microsoft, is the leading event for business and IT professionals from all over the world. TechEd is offering most comprehensive education across Microsoft current and soon-to –be –released suites of products, solutions, tools and services. This will be the 20th Annual TechEd North America this June in Orlando and it will deliver four days of hand –on training from Microsoft experts.

Alachisoft also participated in the Last year’s TechEd which was held in Atlanta, North America. “This helped us build confidence in our customers who see us there every year and projected our growing influence and strategic place among up and coming companies. Thank you to all who were part of it and made it a success” said by CTO Iqbal Khan at the end of the last year’s event.

Improve the performance of .NET App

May 7, 2012

The classic ASP.NET is stand alone and inProc in nature so it has some limitations. It is good for smaller web farms only but when your app is running in a multi-server environment, it may ends up with some performance and scalability issues. So the use of a third party distributed is recommended as the cache in this case is distributed over multiple servers so it not only boost the performance of the app but also provides the scalable data all the time. Even MicroSoft itself realized this factor and they have introduced MS AppFabric. But when it comes to distributed aching, NCache is a matures and well established distributed cache provider.

NCache is an in-memory object caching solution for .NET applications with real-time data access needs. It not only lets you cache read-only data but also complex transactional data with relationships. As a result, your application can cache most of its data and improve performance. NCache helps remove performance& scalability bottlenecks related to your data storage and databases and scale your .NET and Java apps to extreme transaction processing (XTP)

Alachisoft, the makers of NCache and StorageEdge for SharePoint has recently released the latest version of NCache i.e. NCache 4.1. In this release, the following features have been added along with the features of earlier edition, NCache 3.8 SP4,

1. String sharing between Java and .NET (vice versa)
2. SQL Cache Dependency Custom Queue/Notification Service

There are three different editions of NCache are available which are,
NCache Express
NCache Professional
NCache Enterprise

You can learn more about the different features of these editions from the edition comparison list.

Download NCache

Share Data across ASP.NET Farm Using Distributed Caching

April 3, 2012

If you have a web farm and you are using ASP.NET session State server or SQL Server for storing sessions then you can face the following issues.

Single point of failure (data loss)

In the case of Session State Server, all the function are performed on a single node. In other words, the whole web farm is dependent upon a single node and if that node goes down, the whole web farm will go down. it may leads to single point of failure.

Slow performance on peak loads

As all the operations are being performed on a single node, it may results in performance issue during the peak load time. When there are numbers of requests at the same, it may choked up which will not only effects it performance but also ultimately the whole node will go down, which means the complete data lose.

Scalability issues due to database bottlenecks

As Session State Server is a database driven application, database may become a bottleneck when its size will exceed from a certain limit. For every request, session state server has to make a trip to the database which can cause the scalability issues.


In situations like these,you should move to a distributed caching solution like NCache so that you can improve your application performance and remove the limitations of Session State Server.

With NCache you can enable the distributed caching without changing your application code. You can plug-in the cache with a web.config change. NCache provides couple of topologies which are optimized for different types of applications. There is a powerful dynamic clustering feature which lets you add/remove cache servers at runtime without stopping your application.


client-optimization – Based on Hasing alog the client makes intelligent decisions for storing and finding the data. It directly talks to the server where the data is stored and in a single call it fetches the data and gives linear scalability as you add more servers to your cache cluster. For read intensive applications the performance can be boost further with the help of client cache because it reduces the network trips for fetching the data from the remote cache.

About Alachisoft:

Alachisoft, is located in San Francisco Bay Area, California, is a leading provider of NCache and StorageEdge. NCache is a high performance in-memory object caching solution for mission critical .NET and Java applications with real-time data access needs. While StorageEdge optimizes SharePoint storage and performance. It externalizes all BLOBs from SharePoint content database and reduces the database size by 95%.

Download Free Version of NCache

NCache Features which AppFabric does not have

March 9, 2012

If the performance of a .NET application is effected during the peak load times, it is the end users who will be effected ultimately. This is the reason why distributed caching has become a hot cake for the .NET developers. it not only boost the performance of the application during peak load times, but it also provides scalability and reliability. There are numbers of third party distributed cache providers which are doing very good job, NCache and App Fabric being the two most famous ones.

Below is a list of features which make NCache the premier distributed cache provider.

1- Rich set of object caching features:

a: Cache Dependency for data relationship mgmt:
i) Key based
ii) File based

b: Database synchronized
i) .NET events based with sqlCacheDependency for SQL 2005/2008 or Oracle on Windows.
ii) Polling based for any OLEDB compliant database

c: Absolute expirations

d: Group/sub-group items

e: Searching
i) Object Query Languages
ii) LINQ based searching

f: Streaming API for audio/video content:

g: Event Notification
i) AppFabric Key based notifications are not flexible you cannot register for specific event. If you enable notification on a key you will be notified whenever one of the followings happens (AddItem, ReplaceItem, RemoveItem, CreateRegion, RemoveRegion, ClearRegion). NCache on the other hand lets you specify an exact event on which to be notified so your app is not overwhelmed with unnecessary notifications

ii) Custom notifications that are initiated by client apps and used for using NCache as a runtime data sharing platform among different apps.

h: Read-thru/Write-thru/Write-behind

i: Compact serialization
NCache 3.8 provides a dynamic compact serialization which does not require any programming but is faster and more compact than regular .NET serialization. It also allows you to cache third-party objects that are otherwise not serializable.

j: Cache Loader
to pre-populate the cache upon startup

2: Dynamic Clustering & quick Failover with consistent data:

i) AppFabric has a single point of failure if the server that contains your cluster information goes down the whole cluster shuts down failing your application completely. On the other hand, NCache has a peer to peer dynamic clustering without single point of failure. You can add/drop any servers at runtime without stopping your application. Partition-Replica is totally dynamic with high availability in NCache.

ii) AppFabric failover results in data loss whereas with NCache 100% consistent data is seamlessly available before and after the failover.

iii) AppFabric requires a minimum of 3 nodes to satisfy the “majority lead hosts” rule even for this partial failover with some data loss whereas NCache requires just 2 servers for loss-less quick failover.

3- Change cluster configurations on the fly:

i) Unlike AppFabric, where you have to stop the entire cluster and your application to do any change on cluster configurations, the dynamic clustering in NCache allows you to change cluster configurations on the fly with “Hot Apply Configuration” option.

ii) You can increase the size of your cluster if your user base increases without stopping your cluster or your application.

4- Caching Topologies for Scalability:

a: Mirrored Cache
A Mirrored Cache is almost as fast as a stand-alone Local Cache which has no clustering cost. But, at the same time, a Mirrored Cache provides reliability through replication in case the active cache server goes down.

b: Partition-Replica
Partition-Replica is totally dynamic in NCache where you don’t have to do anything to set it up. Unlike AppFabric, you can choose to have synchronous or asynchronous replication to improve your application performance.

c: Client Cache
Client Cache that is local to your app sever but actually synchronizes with clustered cache. App Fabric only has local stand-alone cache which doesn’t address the issue of data integrity.

d: Bridge Topology
Bridge Topology that allows you to replicate cache across WAN asynchronously and without slowing down your main caches in each location. I think you guys needed this feature if I am not mistaken

5- Self-Healing Dynamic Clustering for 100% Uptime:

NCache provides a totally dynamic cache cluster where you can add/remove cache servers at runtime without stopping the cache or your application. NCache cluster recovers automatically recovers from network shortages.

6- GUI based Administration/Monitoring:

a: NCache Manager
GUI based NCache Manager let you configure and administer all cache clusters and clients from one place. The GUI has gone through a lot of improvements.

b: NCache Monitor
A totally new dashboard-style monitoring tool that lets you monitor all the caches and also your application together with them.

c: Command Line Tools
A number of command line tools to let you script and automate cache deployment. Power Shell support provided.

d: Alerts
Various alerts provided through Windows Events and also Emails. You can specify alerts on the following:

i) Cache start
ii) Cache stop
iii) Cache size above a certain threshold
iv) State transfer start when a node is added/removed in Partitioned/Partition-Replica Cache
v) State transfer end
vi) Node joined cluster
vii) Node left cluster

e: Cache Configuration Options
i) Automatic GZip Compression based on an item size threshold
ii) Eviction policy options (Least Recently Used, Least Frequently Used, Priority, Do not Evict)

7- View State Caching:

View State Caching reduces your ASP.NET payload sent to the browser by the web server and improves your response times.

8- Output Caching:

This speeds up rendering somewhat static pages since their output is cached at the web server.

9- Active Directory based Security:

Unlike AppFabric, NCache gives you multi-level security on the cache cluster servers. So you can aurthorize your specific clients to talk to it and prevent any intruders to read/write to the cache or change cluster configurations.

10- JavaScript/CSS optimization

Minify & merge multiple Javascript files into one to reduce multiple HTTP calls that a browser makes to load multiple Javascript files.

11- Java & JSP Support:

i) Native Java API
ii) Support for storing Java/JSP sessions in NCache
iii) Unix clients for Java API

StorageEdge 3.4 has Released !!!

February 27, 2012

After the tremendous success of StorageEdge 3.0, Alachisoft has announced the release of new version of StorageEdge called as StorageEdge 3.4. In this post, I’ll give you a brief introduction of some of the important features which StorageEdge offers.

Just to refresh your memory, StorageEdge is used not only to enhance the storage of SharePoint but it also improves its performance and scalability. Below are the features of StorageEdge.

File Share Linker:
For compliance, StorageEdge can now store copies of BLOBs and their metadata outside the database. Users can specify the retention policies as to how long to keep the archived BLOBs and when to delete.

Rational Archiving for Compliance:
This feature was not there in the previous version. StorageEdge provides the four types of structure for saving BLOBs which are, Flat Hierarchy Auto Create Folders with limited number of files per folder, use SharePoint Folder Names and use SharePoint File Names (by adding the actual file name with its GUID)

Asynchronous BLOB Writing:
To reduce the latency while writing BLOBs to cloud storages, users can opt to asynchronously upload files. This will write BLOBs to staging devices from where they will be uploaded asynchronously to the cloud storage.

Database Mirroring:
If SharePoint content database is mirrored, StorageEge automatically starts using the failover database server if primary server is down or inaccessible. Similarly, StorageEdge BLOB store database can also be configured for SQL mirroring.

Storage Pools:
Each tier in an Externalizer and Archiver profile is associated with a storage pool which can have one or more storage devices. More devices can added to a storage pool at any time.

More Filtering Policies:
Following new filtering policies are added.
Creation Date Filters
• List Based Filters
• Modification Date Filters

Consistency Check Job
Consistency check job makes sure that the BLOB references on content database, StorageEdge configuration database and external store are consistent with each other. This inconsistency can be produced as a result of restoring SharePoint site and databases from backups.

You can read the complete feature list of StorageEdge 3.4 from Here and the edition comparison from Here.

Download your copy of StorageEdge 3.4

Release of NCache 4.1

October 26, 2011

Alachisoft , the developers of leading softwares like StorageEdge and NCache, has released the new version of NCache i.e. NCache 4.1 .

Like the early releases, this release is also full of new and exciting features. NCache 4.1 is not only embedded with some high quality features but there are some major enhancements too.I’m going to discus some of the most important features here.

This new release gives you a whole package for Run Time Data Sharing between multiple platforms (java & .Net) and it contains object level sharing , version based sharing, asynchronous data sharing (event based) and online data sharing across the WAN.

Due to XML serialization with the involvement of DB, Object sharing between .net and java was slow in the earlier editions. But this problem has been overcome in this edition with the help of run time data sharing. As runtime data sharing uses binary serialization instead of typical XML serialization without DB, the results are much faster and trouble free.

Another exciting feature of which has been introduced in NCache 4.1 is Continuous query. With the help of Continuous query you can synchronizes cache and application with each other. It lets you register against a query, which means application can ask for notifications whenever a record (data-set) is updated\modified, added or deleted.

Perhaps the most important feature of NCache is the introduction of much enhanced Bridge Topology. Bridge topology creates bridge node(s) where complete cache is replicated asynchronously over the WAN.

Runtime Data Sharing between .NET & Java

With the help of NCache now you store either .NET objects in the cache can read them as Java objects from your java application or vice versa. Most importantly, this transformation of .NET objects to Java is done by runtime data sharing which is a binary sharing instead of XLM sharing which is much slower as described above.

Multiple Objects Version Support (.NET & Java)

You can now share multiple versions of the same .NET or Java classes across multiple applications.

Continuous Query (.NET & Java)

NCache lets you specify a data-set based on an SQL-like query. It then maintains this data-set in the cache cluster for you and monitors any runtime changes in it, including additions, updates, or deletes.

For complete list of features of NCache 4.1 please visit What’s New Page

Or download 60-day fully working trial Version of NCache from the Download Page

%d bloggers like this: