Wednesday 8 November 2006

Tech Ed - SQL SODA

Implementing Service Oriented Database Architecture (SODA) With SQL Server 2005. Bob Beauchemin

How has SODA come around? Well this is to do with performance and a good rule of thumb is the second 10,000 users must perform as fast as the first 10,000. So you need scaling. Scale up is adding more machines or power. Scale out is moving the pressure out of the database.

Two main problems with data access:
  • As data is stored over time you will always have to infintly scale.
  • Sharing data across company boundaries.

Traditional database solutions:

  • Generally adopts a scale up approach.
  • Distributed transactions. Slow, long and succeptable to error.
  • Cache. Can end up with db in the cache.

Session oriented database solutions:

  • Generally adopts a scale out approach.
  • Parallel processing.
  • Smart cache.
  • Db contains services which receive an instruction. Then seperatly do processing. Then seperatly raise an event when criteria is met. Then seperatly events can be received by client applications.

Ok, this is getting way too deep into dba land. However, the SODA concept is moving away from a strict relational model to an object centric model. Lets take a web site order example to demo the difference:

  • The relational model is heavy so the order message will contain all the person details, the order details, the item details and the payment details. All will be processed at once. This kind of web site takes 2 or 3 minutes of processing before you get your order number. However, note your order is now fully processed and successful.
  • The SODA model is light so the while the order message will still contain all the person details, the order details, the item details and the payment details. However, only a skeleton order is created and this kind of site will provide your order number instantly. Now a series of events are fired by the database - full order and payment for example. These will be received by other server applications to process which could be anything from minutes to days. During this server processing time, if provided, the user can follow the status of their order, which can still fail on stock or payment.

No comments: