SQL SERVER – Beginning NuoDB – Who will Benefit and How to Start

I finally got some time to play around with the beta 7 release of NuoDB that I downloaded a few weeks ago.  Personally I don’t think NuoDB yet gives downloaders enough information on how to get started so I decided to tackle that here myself.

Before I get into the details, why bother?  Who will benefit from this beta?

IMHO, if you are working on developing a web-scale app that will require the supporting database to scale a lot, both out and in, then you should try this software.  In working with the NuoDB team, I haven’t had any issues pushing my test up to 50 nodes.  NuoDB has said that they will be offering even greater elastic scaling out/in in future releases.  If they do, then this software is going to be the answer for many next-generation SQL apps.

Second, developers who need to migrate an existing app onto the cloud will also benefit from NuoDB.   Let me state the fact that NuoDB is a cloud database that’s fully SQL compliant and offers the ACID guarantees we all have come to expect from a transactional database.  I haven’t tried migrating a SQL application myself but I’ve heard from a couple of other beta users who have and they didn’t have issues.  They indicated it was pretty easy.   It really depends on how many vendor-specific SQL extensions you have used.

OK, now that you know you are, or aren’t, someone who could benefit, where to start?

NuoDB seems to be doing a new beta every 4-5 weeks before they release the product later this year; so it may be that beta 8 is due out shortly.  Whatever the version, you can find the latest release here.   You will need to fill out a short form but approval is automatic.

Installation is as simple as it gets.  For Windows, you can download an EXE install. MacOS is a tarball. For Linux platforms, it is a rpm or deb file or a tarball.  Make sure you have at least Java JRE 1.6 installed.  Then add the <NuoDB>/bin directory to your system PATH.

The peer-to-peer, asynchronous nature of NuoDB lends itself to a configuration that is a little bit different from what you are used to with SQL Server or other “client/server” databases.  You provision your system by defining a NuoDB domain – a group of servers that can host NuoDB engine processes (they also call these nodes!) – by running an instance of a Java process called “NuoAgent” on each host.  At least one of these “agents” must be run in ”broker mode”.  A broker is the initial connection point for any application client.  It helps establish direct connections between the clients and Transaction Engines in the domain.

This brings me to the beauty of this database.  NuoDB separates transaction processing from storage by defining two types of database engine processes – the Transaction Engine and the Storage Manager.  If your app requires more throughput from the database, just add another Transaction Engine.  If you want durability of your data, add another Storage Manager.  Each Storage Manager maintains (and keeps in sync) an entire copy of your database.

A minimal system requires at least one NuoDB broker to define a domain.  Start a broker like so:

$ java –jar nuoagent.jar –broker –domain mydomain –password domain_pwd

NuoDB has a nice management GUI called NuoDB Console.  It lets you tap into NuoDB domains and start up (and manage) engine processes.  A collection of these processes is called a “chorus”.  Effectively, a chorus is a database.

Upon starting the Console for the first time, it will ask you which domain you want manage. In our example, that would be ‘mydomain’.  Select the domain and then “add process”.  Step through the wizard to define and start a Storage Manager.  It is here that you will define a chorus (database) name.  Run the wizard again to create a Transaction Engine in the same chorus.    That’s it!  You have a minimal database up and running.

Action Items:

  • Download and try out NuoDB
  • Leave a comment with your experiment

Reference: Pinal Dave (http://blog.sqlauthority.com)

SQLAuthority News – 2 SQL Server Documentations Updates

SQL Server is a very fine product and the best part of it is documentation. What I do in weekend is just read the documentation or some weekend project. This weekend I decided to spend on reading documentation. Earlier I downloaded and installed SQL Server 2012 Install Kit during this weekend. Honestly, quite a lot I do not understand as the documentation is quite heavy on terminologies and but that is the best part as it gives us lots of learning!

Microsoft SQL Server Data Portability Documentation

The SQL Server data portability documentation explains the various mechanisms by which user-created data in SQL Server can be extracted for use in other software products. These mechanisms include import/export functionality, documented APIs, industry standard formats, or documented data structures/file formats. There are additional documentations available on Book On Line for further reading. Microsoft is providing access through open connections to its high-volume products—Windows Vista (including the .NET Framework), Windows Server 2008, SQL Server 2008, the 2007 Microsoft Office system, Microsoft Exchange Server 2007, and Microsoft Office SharePoint Server 2007—so that software developers, business partners, and competitors can better interact with these Microsoft products or invent new solutions for customers.

Download SQL Server Data Portability

Microsoft SQL Server Protocol Documentation

The Microsoft SQL Server protocol documentation provides detailed technical specifications for Microsoft proprietary protocols that are implemented and used in Microsoft SQL Server to interoperate or communicate with Microsoft products. The documentation includes a set of companion overview and reference documents that supplement the technical specifications with conceptual background, overviews of inter-protocol relationships and interactions, and technical reference information.

Download SQL Server Protocols

Download SQL Standards Support

Note: Some of the text are courtesy of MSDN.

Reference: Pinal Dave (http://blog.sqlauthority.com)

SQL SERVER – Download SQL Server 2012 Developer Training Kit – Update July 2012

I just came across newly updated SQL Server 2012 Developer Kit Setup. It is quite convenient and there are many prefers to download setup kit instead of web installer. Developer kit is my favorite feature because it it is a single resource which gives a complete overview of the product in a nutshell. A developer can learn from many places – books, webcasts, tutorials, blogs, etc. However, I have found that developer training kits are the best starting point for any product. Start with them first, see what are the new features as well what is the new message a product is coming up with. The SQL Server 2012 Developer Training Kit includes technical content including labs, demos and presentations designed to help you learn how to develop SQL Server 2012 database and BI solutions. New and updated content will be released periodically and can be downloaded on-demand using the Web Installer.

Here is the updated Download SQL Server 2012 Developer Training Kit (updated in July 2012)

Developer kit also contains video as well details of how to run labs as well. I suggest every SQL Server Enthusiast should download this developer kit and install it. I believe I have tried most of the labs as well watched all the videos of this training kit. However, whenever I watch this video again I learn something new, which I have not come across before. I would like to know your opinion about what is your favorite feature in SQL Server 2012 and what is your preferred method of learning SQL Server.

Reference: Pinal Dave (http://blog.sqlauthority.com)

SQLAuthority News – 2 Whitepapers Announced – AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solution

Understanding AlwaysOn Architecture is extremely important when building a solution with failover clusters and availability groups. Microsoft has just released two very important white papers related to this subject. Both the white papers are written by top experts in industry and have been reviewed by excellent panel of experts. Every time I talk with various organizations who are adopting the SQL Server 2012 they are always excited with the concept of the new feature AlwaysOn. One of the requests I often here is the related to detailed documentations which can help enterprises to build a robust high availability and disaster recovery solution. I believe following two white paper now satisfies the request.

AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solution by Using AlwaysOn Availability Groups

SQL Server 2012 AlwaysOn Availability Groups provides a unified high availability and disaster recovery (HADR) solution. This paper details the key topology requirements of this specific design pattern on important concepts like quorum configuration considerations, steps required to build the environment, and a workflow that shows how to handle a disaster recovery.

AlwaysOn Architecture Guide: Building a High Availability and Disaster Recovery Solution by Using Failover Cluster Instances and Availability Groups

SQL Server 2012 AlwaysOn Failover Cluster Instances (FCI) and AlwaysOn Availability Groups provide a comprehensive high availability and disaster recovery solution. This paper details the key topology requirements of this specific design pattern on important concepts like asymmetric storage considerations, quorum model selection, quorum votes, steps required to build the environment, and a workflow.

If you are not going to implement AlwaysOn feature, this two Whitepapers are still a great reference material to review as it will give you complete idea regarding what it takes to implement AlwaysOn architecture and what kind of efforts needed. One should at least bookmark above two white papers for future reference.

Reference: Pinal Dave (http://blog.sqlauthority.com)

SQL SERVER – Weekend Project – Experimenting with ACID Transactions, SQL Compliant, Elastically Scalable Database

Database technology is huge and big world. I like to explore always beyond what I know and share the learning. Weekend is the best time when I sit around download random software on my machine which I like to call as a lab machine (it is a pretty old laptop, hardly a quality as lab machine) and experiment it. There are so many free betas available for download that it’s hard to keep track and even harder to find the time to play with very many of them.  This blog is about one you shouldn’t miss if you are interested in the learning various relational databases.

NuoDB just released their Beta 7.  I had already downloaded their Beta 6 and yesterday did the same for 7.   My impression is that they are onto something very very interesting.  In fact, it might be something really promising in terms of database elasticity, scale and operational cost reduction. The folks at NuoDB say they are working on the world’s first “emergent” database which they tout as a brand new transitional database that is intended to dramatically change what’s possible with OLTP.  It is SQL compliant, guarantees ACID transactions, yet scales elastically on heterogeneous and decentralized cloud-based resources. Interesting note for sure, making me explore more.

Based on what I’ve seen so far, they are solving the architectural challenge that exists between elastic, cloud-based compute infrastructures designed to scale out in response to workload requirements versus the traditional relational database management system’s architecture of central control. Here’s my experience with the NuoDB Beta 6 so far:

First they pretty much threw away all the features you’d associate with existing RDBMS architectures except the SQL and ACID transactions which they were smart to keep.  It looks like they have incorporated a number of the big ideas from various algorithms, systems and techniques to achieve maximum DB scalability. From a user’s perspective, the NuoDB Beta software behaves like any other traditional SQL database and seems to offer all the benefits users have come to expect from standards-based SQL solutions.

One of the interesting feature is that one can run a transactional node and a storage node on my Windows laptop as well on other platforms – indeed interesting for sure. It’s quite amazing to see a database elastically scale across machine boundaries. So, one of the basic NuoDB concepts is that as you need to scale out, you can easily use more inexpensive hardware when/where you need it.  This is unlike what we have traditionally done to scale a database for an application – we replace the hardware with something more powerful (faster CPU and Disks).

This is where I started to feel like NuoDB is on to something that has the potential to elastically scale on commodity hardware while reducing operational expense for a big OLTP database to a degree we’ve never seen before. NuoDB is able to fully leverage the cloud in an asynchronous and highly decentralized manner – while providing both SQL compliance and ACID transactions.

Basically what NuoDB is doing is so new that it is all hard to believe until you’ve experienced it in action.  I will keep you up to date as I test the NuoDB Beta 7 but if you are developing a web-scale application or have an on-premise app you are thinking of moving to the cloud, testing this beta is worth your time. If you do try it, let me know what you think.  Before I say anything more, I am going to do more experiments and more test on this product and compare it with other existing similar products. For me it was a weekend worth spent on learning something new. I encourage you to download Beta 7 version and share your opinions here.

Reference: Pinal Dave (http://blog.sqlauthority.com)

SQL SERVER – Download SQL Server Product Documentation

Today I just returned from Bangalore User Group Meeting. Attending User Group meeting is indeed fun and really great experience. The best part of the User Group is meeting like minded people and have a great conversation with them. During the meeting I was asked why one has to go online to access SQL Server Product Documentation. I can clearly see there can be many reasons for why one wants the documentation to be available offline. The reasons can be anything but not limited to

  • Company Firewall
  • No Internet (power failure, on road or disaster)
  • Internet Bandwidth Limitatoin
  • Company Proxy Issues
  • … and much more…

In this kind of situation one needs documentation which is offline and easily available in local computer. The Microsoft SQL Server 2012 setup installs only the Help Viewer and related components for managing Help settings. Setup does not directly install any documentation. All of the SQL Server documentation is available online.

Well, Microsoft has recently released Production Documentation available for offline users as well. You just have to download the executable file and follow all the instructions. Please follow the link below for download of the file. There is detailed instruction on how to download and install the documentation offline.

Product Documentation for Microsoft SQL Server 2012

Reference: Pinal Dave (http://blog.sqlauthority.com)

SQL SERVER – Free eBook Download – EPUB, MOBI, PDF Format

Microsoft has released recently free eBooks on various Microsoft Technology. The best part is that all these books are available in ePub, Mobi and PDF. You can download them to your local machine or eBook reader and read them. This is a great start as many important subjects are now covered and converted into an eBook. I personally read through a few of the books and found they are very comprehensive and and detailed. The goal is not to cover complete technology in a single book but rather pick a single topic and discuss it in detail. The source of the book is white paper, Technet wiki as well book online and it is clearly listed right bellow the book title.

Following are the books available for SQL Server Technology and I encourage all of you to have a look at them as they are great resources.

Master Data Services Capacity Guidelines
Microsoft SQL Server AlwaysOn Solutions Guide for High Availability and Disaster Recovery
Microsoft SQL Server Analysis Services Multidimensional Performance and Operations Guide
QuickStart: Learn DAX Basics in 30 Minutes
SQL Server 2012 Transact-SQL DML Reference

You can download above eBooks from here.

This is indeed a great attempt as each book talks about the a single subject in depth keeping author focus on the single and simple subject. I have previously written two books by focusing on the same subject and I had great pleasure writing it as well. Writing on focus subjects gives complete freedom to author to explore the a single subject without having burden to cover everything which is associated with that technology at large.

Just like eBooks mentioned earlier my SQL Server Wait Stats was inspired from my article series on SQL Wait Stats. The latest book SQL Server Interview Question and Answers was derived from my article series on SQL Interview Q and A. Writing book is an absolutely different concept than writing blog posts. When I was converting my blog posts to books, I ended up writing 50% new material and end up removing many repetitive content which shows up in blog series. It was indeed fun to focused book at the same time it was a great learning experience as an individual.

Reference: TechNet Wiki, Pinal Dave (http://blog.SQLAuthority.com)