On Tuesday evening, the Ottawa Dotnet Users Group organized presentation of Adam Machanic from Boston with title "Designing Highly Concurrent SQL Server Database Applications". I was not sure whether I will make it, because because I did not feel really well, but I am very happy I went.
It was probably one of the best presentations I have seen in Microsoft Glacier Room on 100 Queen Street. I am not sure whether because it was indeed so great or because it touches closely what we are doing.
What was great on the lecture was lack of dependency on SQL server. Technically, most modern databases could be used and the techniques would still work. We are going to stay with SQL 2005 which is btw one very decent, well performing, easy to install and manage database system - but learning something portable is always a pleasure.
The presentation covered two classical way how to handle concurrency - pessimistic and optimistic and presented quite clever way how to do it without stored procedures. It also covered the "multi value" approach, which replaces update with inserts and maintain multiple copies of each record. This is btw, very close to what we are doing in Tirevigil Navigator - keeping full history of tire and vehicle data.
Adam is an co-author of Pro SQL Server 2005 as well as blogger: see this and this . His new book Expert SQL Server 2005 Development is about to be published in March - I will definitely give it a serious look.
You can grab the slides and source code from the presentation here.