Queries on Remote Blob storage(RBS)

Mar 26, 2010 at 12:54 PM

Hi all,

Here are a few basic queries regarding the remote blob storage.

1) What are the pre-requisites to install RBS on sharepoint 2010?

2) Is sql 2005 compatible with RBS?

3) Can RBS be used on Sharepoint 2007? (I've been trying, but could not find the enabling RBS script for sharepoint 2007 in windows powershell)

4) What is the scope of RBS? Can it be site/document library specific?

5) Apart from storage performance, are there any other performance related improvements by storing in RBS than in SQL Server?

(Any guidelines on how to measure performance would be highly appreciated)

 

Thanks in advance :)

-Mahati

 

Mar 26, 2010 at 2:50 PM

Hi Mahati,

I'll try to answer your basic questions and then I'll recommend that you read this post for more detail on exact SQL Server versions that can be used for RBS.

1) For just the FILESTREAM RBS provider you should be running SQL Server 2008 R2 (November CTP - as of the time of this post).  You can make it work on Standard Edition, but I think the CTP is Enterprise Edition only anyway.  If you're not using the FILESTREAM RBS Provider, then refer to the other post from this forum for more detail.

2) SQL 2005 is not compatible with RBS.

3) RBS is not supported in any way on SharePoint 2007.  The framework simply doesn't exist.  You can however use EBS if you must.  AvePoint recently released a free provider called DocAve Extender which supports EBS for SP2007 and RBS for SP2010.  You can also look at MetaLogix StoragePoint as they also have an EBS solution for WSS 3.0/SP2007.  I have deployed StoragePoint.  It works well.  Of course, you are always welcome to use the EBS API for WSS 3.0/SP2007 and roll your own provider.

4) RBS is scoped at the Content Database level.  So the only way to enable RBS on a single site collection is to create a new content database and create the new site collection in there.  You can then create the document library in that site collection.  But be aware that all sites and libraries that exist in an RBS enabled Content Database will participate in externalization to the BLOB store.

5) I would suggest that aside from the storage performance benefit that you mentioned, the other benefits of RBS would be: a) Ability of a content database to contain 10's of millions of documents without exceeding the 100GB recommended content database limit  b) Ability for the RBS provider to compress/decompress content on the way to/from the BLOB store (saving valuable storage space)  c) Ability of the RBS provider to encrypt/decrypt files on the way to/from the BLOB store  d) The storage options that an RBS provider has for long term archival such as archive platforms like EMC Centera, Hitatchi HCAP, or even cloud storage.

The best way to perform load testing on SharePoint with and without RBS enabled is to use Visual Studio Test projects (VSTT) to profile the performance of your farm servers as you run test scripts that rapidly load and retrieve content in a manor that attempts to approximate real world usage as much as possible.  At the SharePoint 2009 conference, Microsoft suggested they were working on something called the Load Testing Kit (LTK) for SP2010.  The purpose of this kit is to facilitate standardized tests that will help the community to produce repeatable tests.

The company I work for has done some consulting in the area of high performance SharePoint testing using VSTT.  But this is not the forum to discuss those efforts.

Best Regards,

Russ

 

Mar 26, 2010 at 5:10 PM

Hi Russ,

Thanks for answering the questions in great detail and with accuracy, we appreciate the effort. It feels good to see the community around RBS picking up momentum!

Thanks,
Pradeep.

Mar 26, 2010 at 7:53 PM

No problem Pradeep.

You and Mike seem to have been the only real sources for RBS information from Microsoft in recent months.  Any opportunity that any of us have to get this information into a form that can be crawled by search engines is a good thing!

RBS is extremely important to the solution that my company provides so I have been watching this technology take shape for the last couple of years.  I've had an opportunity to really dive deep under the covers of this stuff and I'm encouraged by the platform.  I think it's going to take SharePoint scalability to a whole new order of magnitude.

I'll be monitoring this space as well as the RBS blog closely and I'm sure I'll have questions of my own!

I appreciate your support Pradeep!

 

Mar 29, 2010 at 5:38 AM

Hi russ,

Thanks a lot for the prompt response. Those answers gave a lot of insight into RBS.

I even would like to know if the size limit per upload on a sharepoint 2010 site could be increased to more than 2GB? Because in a lot of forums it was given that the size can be upto 4GB. But i could only increase the limit to 2Gb at the maximum in a sharepoint 2010 site.

Thanks,

Mahati

Mar 29, 2010 at 5:51 AM

Hi Mahati,

There is no change in SharePoint 2010 regarding the max. size of individual blobs - the limit remains at 2GB. Can you please give links to the forums that say that the limit can be increased?

Perhaps there is some confusion between blob size limit and SQL Express database size limit. SQL Express had a limit of 4 GB on the total database size, and SharePoint Foundation edition (the free edition) will be using SQL Express from 2010 onwards (earlier it used Windows Internal Database). With RBS, blob data can be moved out of the database, so if 90% of the data is blob data, you can now have a SharePoint site worth 40 GB using SQL Express. So this is an example of how RBS allows increasing the SharePoint content size from 4GB to 40GB. This is different from the size limit on individual blobs (for which there is no change as mentioned above).

As a side note, it was recently announced that with SQL Server 2008 R2 the SQL Express DB size limit has been increased from 4GB to 10GB (in case somebody reaches this post looking for the SQL Express DB size limit).

Pradeep.

Mar 29, 2010 at 6:09 AM

Thanks much pradeep.

You are right. The confusion was regarding blob size limit and SQL express limit. The info you shared is of great help. :)

-Mahati

 

Mar 29, 2010 at 6:54 AM

Hi All

          I have question to ask

              Can we configure EBS to sharepoint 2010 though it has drawbacks in case if we want to use EBS instead of RBS can we configure it?? Any pointers please respond

 

Regards

Tabassum

Mar 29, 2010 at 3:57 PM

Hi Tabassum,

Technically speaking, the feature set is there and Microsoft has said they will support EBS for SP2010.  But it is considered transitional support for the purposes of moving people from EBS and to RBS.  There are even specific PowerShell methods for this very purpose.

However, Microsoft has also stated that they will not guarantee support for EBS in SharePoint versions beyond SP2010.  So if you do decide to implement a system now based on EBS, there is likely not going to be an upgrade path for you to the next version of SharePoint.  Either way, you will eventually be forced to migrate your content from EBS to RBS before you will be able to upgrade to the next version of SharePoint (beyond SP2010).

Microsoft is clearly focusing all future efforts on RBS and considers EBS to be a deprecated technology.  I agree completely.  RBS is definitely superior to EBS.  First, it moves the externalization platform to the database where it belongs so that there is a consistent approach regardless of the application layer as opposed to EBS which is purely a SharePoint API.  Also, the transactional consistency of the externalization process that we get with RBS considerably improves the behavior of SharePoint.  It is just too easy to orphan documents in EBS.

But yes... theoretically, you could use EBS in SP2010.  But it is meant to be the bridge and not the road.

Best Regards,

Russ

Mar 30, 2010 at 9:37 AM

Hi russ,

Your answers have been a lot helpful. Thanks much.

I'm interested to know in a greater detail about the ability of the RBS provider to compress/decompress and encrypt/decrypt content on the way to/from the BLOB store.

I would like to know how these operations are performed. As in, the procedure to perform compression/encryption on the content and see it myself.

Any suggestions would be of immense help.


Thanks,

Mahati

<!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val=" " /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false" UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false" UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false" UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false" UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false" UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false" UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false" UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false" UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false" UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-alt:"Calisto MT"; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-alt:"Japanese Gothic"; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"Comic Sans MS"; panose-1:3 15 7 2 3 3 2 2 2 4; mso-font-charset:0; mso-generic-font-family:script; mso-font-pitch:variable; mso-font-signature:647 0 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:12.0pt; font-family:"Times New Roman","serif"; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.Section1 {page:Section1;} --><!--[if gte mso 10]> <mce:style><! /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} --> <!--[endif]-->valedictorian
Mar 30, 2010 at 9:32 PM

Hi Mahati,

The ability to compress/decompress and encrypt/decrypt blob data on the way to/from the blob store is provider-specific at this point. The RBS Filestream provider shipped by Microsoft does not have this feature yet. There are some 3rd party providers such as those available from http://www.storagepoint.com/ that provide these features.

Pradeep.

Mar 31, 2010 at 11:56 AM

Hi pradeep,

From the site you gave(storagepoint.com), it shows some thirdparty providers. Does it mean that, the thirdparty providers do the compress/decompress and encryption/decryption directly on the data and provide a RBS like solution? or Does it mean that they provide the compress/decompress and encryption/decryption on the data that is being externalised by RBS provider?

It'd be great for a novice developer like me if you could elaborate on those lines. :)

Thanks,

Mahati

Mar 31, 2010 at 4:25 PM

Hi Mahati,

It is possible for RBS providers to compress/encrypt blob data on the client before sending it to the blob store, thereby saving network bandwidth and providing enhanced security for your data. This fits in well with the RBS philosophy of reducing load on the server and moving work to clients/blob stores. Any RBS provider can implement these features - this has not yet been implemented by Microsoft's provider but I believe StoragePoint has implemented this in the RBS providers that they sell. For more details on their providers I suggest contacting them directly.

Pradeep.

Mar 31, 2010 at 4:45 PM

Hi Mahati,

To answer your question, 3rd party providers implement the RBS interfaces in the provider framework to provide the externalization solution.

When a document is uploaded, SharePoint checks to see if RBS has been enabled for the content database that the document is being uploaded to.  If it is enabled, then SharePoint invokes the RBS Provider and hands off the BLOB to the RBS provider.  The provider is then responsible for persisting the BLOB to the BLOB store.  Since the provider is in the middle though, there is an opportunity for the provider to compress/encrypt the document before the document is stored in the BLOB store.

When a document is retrieved, SharePoint is aware that RBS is enabled and once again calls the RBS Provider to retrieve the BLOB.  The RBS Provider would then be able to decompress/decrypt the document on the way out of the BLOB store.

So far, the two RBS providers I've seen (StoragePoint and DocAve Extender) both support the compression/encryption scenarios.

Best Regards,

Russ

Mar 31, 2010 at 4:46 PM

Sorry Pradeep.  Looks like you had this handled before I finished my reply.  :)

 

Oct 21, 2010 at 6:15 AM

Hi Pradeep,

what is the need to go for 3rd party RBS provider than using the out-of-the box RBS FILESTREAM provider?

Oct 21, 2010 at 4:22 PM

Hi Kiran,

If the customer wants to use a specific hardware (e.g. because they already bought it or they want some specific features it provides), they would want to use a 3rd party provider designed for that hardware, e.g. EMC Centera. Also, some 3rd party providers have features that are not yet supported by the out-of-box RBS Filestream provider.

 

Oct 22, 2010 at 7:50 AM

Thanks for your inputs  Pradeep.

To understand in-depth of 3rd party provider, here I have couple of question regarding on this:

1]  How to achieve storing the BLOB data on external storage?

2] There are two options i) NTFS (Mount the external device) or ii) make use of raw device directly using the StorPort drivers?

3] If we use the raw storage device then how to we maintain the Meta data about the BLOB DATA,

4 ] It would be great if you shed some light on what are merits and demerits about the NTFS and StorPort drives in 3rd Party RBS providers,

 Thanks in advance,

Kiran.

Dec 2, 2010 at 1:38 AM

Not sure what you have in mind, but using external storage would typically be done by the provider directly. E.g. if you want to use an EMC Centera box, you would use the Centera RBS Provider. If you want to use a file server, you can either install SQL Server on it and use the Filestream RBS Provider or use a file server provider from a 3rd party. If you want to use a SAN, you can mount a volume on that SAN on a machine and again use Filestream or 3rd party file server provider.

Can you elaborate on what you have in mind with StorPort?