SQL Server Remote Blob Store (RBS) available as part of the Feature Pack RC0 for Microsoft SQL Server 2008

As I mentioned in a previous blog post at https://blogs.technet.com/josebda/archive/2008/03/17/sql-server-2008-and-unstructured-data.aspx, SQL Server 2008 introduces new options to store unstructured data, in addition to the current BLOB support we have in SQL Server 2005.

One of those options is the new SQL Server Remote Blob Store, a method for storing blobs of unstructured data in a remote server, external to SQL Server. RBS is part of the add-on feature pack for SQL Server 2008. With RBS, you can store BLOBs on a Remote Blob Store (RBS). An RBS store is typically a separate box on same the network as the SQL Server.  This is managed by SQL Server and integrity between the database records and the RBS external store is maintained.

Using RBS, your application can store large amounts of unstructured data (like videos or office documents), enjoying both the relational capabilities of SQL Server and the scalability of a dedicated blob store. Best of all, you do not have to write the code to handle the job of tying the SQL metadata and the blob data together. Transactional consistency is completely handled by RBS.

With the release of the Feature Pack Release Candidate 0 for Microsoft SQL Server 2008 to the web, you can now experiment with RBS.  The download includes a client-side DLL that you can use in your applications and also some stored procedures to install on the SQL Server itself. The RBS RC0 setup program is available for X86, X64, and IA64 computers. It requires the Microsoft Installer 4.5.

The documentation included in the RC0 package provides sample code on how to:

  • Create a table for storage of BLOB IDs
  • Write a BLOB to a remote provider
  • Read a BLOB from a remote provider

The documentation also describes and provides examples on how to use the RBS storage procedures:

  • rbs_sp_add_blob_store
  • rbs_sp_add_collection
  • rbs_sp_add_pool
  • rbs_sp_check_config_version
  • rbs_sp_delete_blob_store
  • rbs_sp_unregister_column
  • rbs_sp_uninstall_rbs
  • rbs_sp_set_config_value
  • rbs_sp_set_blob_store_credential
  • rbs_sp_register_column
  • rbs_sp_modify_blob_store
  • rbs_sp_mark_pool_as_full
  • rbs_sp_log_message
  • rbs_sp_get_config_versions
  • rbs_sp_get_config
  • rbs_sp_get_blob_details
  • rbs_sp_get_all_config_versions
  • rbs_sp_get_blob_store_credentials
  • rbs_sp_find_blob_destination
  • rbs_sp_enable_rbs

Download the RBS RC0 and start experimenting… Here’s the link: https://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=089a9dad-e2df-43e9-9cd8-c06320520b40 

The RBS team also released a sample application showing the many ways to use this new feature, including:

  • Basic store / fetch
  • Specifying collections / blob stores for store calls
  • Push and pull streaming APIs
  • Using the System.IO.Stream APIs to do asynchronous reads from the blob store

This package also includes a sample file provider, in case you do not have an RBS store to test your application. Be sure to install the sample provider (the instructions are available at the CodePlex site) before you try storing and reading blobs.

Download the sample and leave comments at https://www.codeplex.com/sqlrbs

Last but not least, make sure to check recently created RBS team blog at https://blogs.msdn.com/sqlrbs