Showing posts with label Bugs. Show all posts
Showing posts with label Bugs. Show all posts

Sunday, June 10, 2007

The Software Concurrency Revolution

Another Google video in advanced programming languages. Click on the title to view the video.

Advanced Topic in Programming Languages Series: Effective Static Race Detection
Stanford Professor Alex Aiken

I am certain that I share a concern with many of my potential customers. That concern is of using a "web service" that services the commercial business needs of an entire industry. The concern is that not all the bugs are worked out and as a result things begin to be recorded incorrectly. One of the unique ways in which these bugs could be exposed is by pushing the science further then it has been pushed before. And, taking into consideration, the understanding of how Moore's law is being achieved through threading and multi-core processing that "concurrency" becomes an issue.

A Race Condition is defined as;

"The same location may be accessed by different threads simultaneously without holding a common lock. (And at least one access is a write.)"
Concurrency (Race Condition) is essentially the ability to have one variable overwritten by another unrelated variable and corrupting the data. This has been handled well in the various relational databases with a number of locking scenarios that ensure that the inserts, updates and deletes are done effectively. But what about the memory registers in the program itself. With multi-core and threading enabling multiple reads and writes to those memory registers, how does the program ensure that the ordering of those memory items maintains the programming logic? One particularly nasty point about these bugs is that they may be random, no one is aware of their existence and sometimes they are unique and therefore not re-creatable as other bugs are. How common are they? Professor Aiken said he found 392 race conditions in the open source Derby Database. An open source product originally developed by IBM.

As we progress down this road, and start development, these "race" conditions are of grave concern. These bugs are state of the art in terms of the types of problems that the academic community and developer of the Java Programming Language (Sun Microsystems) are working on. This video discusses this problem and the difficulty in identifying and resolving "race" conditions. Professor Aiken does an excellent job in making it known that identification of race conditions is the tough part, with their resolution very easy from a programmatic point of view.

As the tools, policies and techniques continue to develop we will be spending more time on this critical issue. The need for data integrity is first and foremost in the usability of this system. I trust the majority of these issues will be resolved and rectified when we go into commercial use of this needed software.

Technorati Tags: , , , ,