Recent Articles

The announcement of Microsoft's SQL Server Data Services was almost buried near the end of chief software architect Ray Ozzie's Mix 08 keynote last week.

It was a curious move for an offering that, as Microsoft's database service for the internet, marks the company's foray into database-based utility computing and promises an architecture that extends Microsoft's popular SQL Server database.

At first glance SSDS looks similar to Amazon's SimpleDB, with simplified, schema-free data storage, a choice of REST or SOAP APIs, a pay-as-you go business model, and the ability to start small and scale up as needed. Microsoft architect Nigel Ellis told Mix08, though: "This is not a SimpleDB compete. Our goal is to take our existing enterprise server products and capabilities and give that a service delivery mechanism. This is only a start... four months from now, it's going to look very different."

One distinctive aspect of SSDS is its integration with Microsoft's Sync Framework, a .NET library for synchronizing diverse data sources. Microsoft envisages SSDS as a data hub, synchronized with data on multiple devices to enable offline use. The service will go into public beta later this year, with full release expected in the first half of 2009.

The core concepts in SSDS are data storage are authorities, containers, and entities. An authority is both a billing unit and a collection of containers. A container is a collection of entities and is what you search within, analogous to a single database in a traditional model. An entity is a property bag of name/value pairs, where each item may have the same or different properties.

That said, every item in SSDS has a few fixed properties: an identity that is a globally unique identifier, a "kind" that identifies the category of the entity, and a version datestamp used for concurrency checking. A set of items of the same kind is loosely equivalent to a database table, but one where each row may have a different number of fields. SSDS uses a form of Language Integrated Query for its query language. SQL is not supported.

SSDS is based on SQL Server, though Microsoft technical fellow Dave Campbell told Reg Dev: "We are not using an off-the-shelf SQL Server to power this, we've taken the technology and shifted it around to make it more suitable for large-scale datacenter deployment."

Microsoft will also offer a library that will enable SSDS for on-premise SQL Servers. SQL Server 2008 has a feature called sparse columns that is ideal for the free and easy entities in SSDS. Although SSDS in its first iteration exposes only a small subset of what is in the full SQL Server, Microsoft expects this to increase over time, with likely features including stored procedures, binary large object columns, and full text search.

SSDS will provoke debate about whether this simple but flexible data storage service is a step forward or backwards from traditional database managers, but it also demonstrates that Microsoft is serious about becoming a provider in the utility computing field.®