New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Feb 04, 2010
Initially announced as XDrive during PDC 2009, Microsoft has released the beta version of Windows Azure Drive, a storage access solution simplifying the migration of Windows applications to the cloud by creating an NTFS virtual drive on top of a storage blob.
The Windows Azure Storage Services is a REST-based service dealing with blobs. Blobs are storage entities that can contain binary or text files. Blobs are organized in containers. There are two types of blobs:
The Storage Service’ API provides the necessary tools for working with blobs, but that is handy for writing new applications targeted to the Azure cloud. Existing Windows applications have no knowledge of blobs and they would need a major re-write to be able to run in the cloud. That is where Azure Drive is helpful.
The Windows Azure OS has an OS driver that can mount a page blob as a Virtual Hard Drive (VHD) and can execute read/write operations to the VHD. For the application it looks like accessing a mounted NTFS Windows drive, but the OS driver actually works with a blob. All unbuffered or flushed writes are synchronously sent to the storage so the user can rest assured that his data is safe when receiving “success” from the driver. That is important in case the application crashes or the drive is unmounted.
The Azure team has disclosed a few technical details of the Azure Drive:
- A Drive is a Page Blob formatted as a Fixed NTFS VHD between 16 MB and 1TB.
- A VM can dynamically mount up to 16 drives.
- A Page Blob can only be mounted by one VM at a time for read/write access. A snapshot page blob can be mounted as read only by multiple different VMs at the same time.
- The storage account used to store the Page Blob and the compute account used to run the application should be allocated in the same geo-location in the Windows Azure Developer Portal in order to get the best performance out of the drive.
- Drives can be uploaded or downloaded via the Windows Azure Blob interface. The formatted Fixed NTFS VHDs can be uploaded as a Page Blob using the blob interface and then mounted as a drive. Similarly, a formatted Page Blob can be downloaded through the Page Blob interface and then the downloaded drive can be used as a VHD.
- The OS driver provided by Windows Azure is only available within the Windows Azure VM instances in the Windows Azure cloud. No driver is distributed by Microsoft at this time to allow you to mount drives remotely. Even so, you can download a drive using GetBlob and mount the downloaded VHD drive where it is downloaded for use, but any updates to that downloaded version will not be sent to the Windows Azure Blob service.
The Azure Drive is available with the February Azure SDK containing Guest OS 1.1 with OS Driver.
Amongst features announced at PDC 2009 that are yet to arrive are:
Resources: Azure Drive Whitepaper (docx), PDC 2009 sessions: Windows Azure Present and Future and Windows Azure Blob and Drive Deep Dive.
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
No comments
Watch Thread Reply