A SharePoint administrator or an application designer is often faced with whether to externalize the BLOBs or not, and what architectural parameters to consider while making this decision. With the availability of frameworks such as EBS and RBS from Microsoft and enterprise solutions built around them such as StorageEdge, a lot of buzz abounds the SharePoint circles on offloading the BLOBs out of SQL Server. But there are arguments on both sides regarding whether to externalize the BLOBs or not. People who advocate taking an all out externalization path base their argument on the following benefits obtained through externalization:
1. Reduce database size and management – moving BLOBs out of the database reduces its size by as much as 95%. And, this alleviates various database administration problems that come with storing large number of BLOBs in it.
2. Reduced cost storage- moving the BLOBs out of expensive teir-1 storage to less expensive, non-transactional storage introduces visible cost savings. Read here for a primer.
3. Better storage management – hierarchical storage on multiple tiers yields proper BLOBs management and archiving based on multiple criteria. Read here more. And you always have the option of exploiting the benefits of underlying storage platform as well.
4. Not all data is alike – You cannot treat all your data alike. It is an unwise proposition to keep stale or infrequently-accessed data in transactional tiers of storage.
5. Performance improvement in overall SharePoint access – SQL Server, despite being a high-performing resource manager, performs inadequately when it comes to large streams of unstructured data. SQL doesn’t support a data file of more than 200 GB and needs to be split. Write operations are particularly latency-inducing as the BLOBs are written first to transaction log and then in the table. The net effect is a poorly-responsive infrastructure.
Contrary to the above, people who believe otherwise base their arguments on:
1. Management of multiple data sources – Since due to externalization, the content is separated from the metadata, it induces challenges of management and synchronization.
2. Storing files in SQL Server is easier from a back-office management perspective.
3. Backup and restore challenges – Due to introduction of multiple storage platforms, challenges of backup and restore and managing consistency across all crops up. Read here more.
Empirical evidence has established that the advantages of externalization out-weigh the advantages of in-SQL BLOB storage, for most of the SharePoint installations, which essentially is a document-centric facility with multiple types of content involving varying sizes and characteristics. I have seen customers enjoying an immediate cost saving with respect to their storage investments ranging in 7 to 8 figures.
However, not all content is a good candidate for externalization. There are a number of architectural parameters, which you need to carefully consider, before deciding “which” of your BLOBs may be externalized. Read here for a discussion on which of your unstructured data is a good candidate for externalization and under what circumstances.