Idan Schechter, a developer in Israel, took the time to share some of his experiences with the beta version of NuoDB's ACID compliant big data database engine. Since the technology is really innovative, I thought you'd like to read through his comments. Thanks Idan for taking the time.
Please introduce yourself and your organization
My name is Idan Shechter; I am a developer in Israel. I have developed numerous web and mobile applications over the past 15 years. One of my latest projects was camerasize.com, a web app for comparing digital camera's size side-by-side. The website became very popular and was awarded the most popular gadget online by magazines, like Gizmodo, and even on your site ZDNet.
What were you doing that required this type of technology?
I am currently working on a large-scale project for both web and mobile. My new project is being developed using ASP.NET. From my own experience as a developer, choosing the right technologies can make the difference between success or failure.
I am using technologies to help me develop my application fast, but at the same time provide the tools I need to make sure my application can scale appropriately in the cloud (in my case, Amazon AWS). Website content and dynamic content are easy to scale, but a database is a whole new story.
I expect my database capacity to grow significantly and reach terabytes of data. High availability is very important, because I want to be assured that my database will continue to work in the event of server failure. ACID compliance is also important for some part of my application. So I've searched for a modern DB solution that can supports the demand of modern web and mobile applications and can withstand the demands associated with success. After all, you can never know how successful your application will be, but you need to be ready and apply the best practices.
I don't want to launch my application, and in a few days/months find myself dealing with new problems. I want to develop my application against a technology that fits the Cloud's topology and flexible enough to fit any spike that my site/application might encounter.
What products did you consider before making a selection?
I use MySQL and SQL Server in most of my projects. In general, I wanted to continue working with RDBMS because I'm already familiar with relational databases and SQL syntax, and feel more comfortable working with it. My main goal is to spend most of the time developing and finishing my application, and less time on the technology behind database configuration and administration.
There are many solutions out there, all trying to solve the scalability issues that developers encounter when deploying their application in the cloud. Some of them are way too expensive; others force me to learn new technologies and think differently about how I configure, deploy and manage my database.
At first, I thought about doing the switch to NoSQL (i.e., Amazon DynamoDB, MongoDB, Cassandra, etc.). At that time, I thought that this might be the best way to go because I just couldn't find a relational DB that can easily scale and fit to the cloud's infrastructure.
Every solution had its limitations, but at the end I knew that I couldn't and don't want to give up high availability, SQL and ACID-compliant relational databases. After all, I want to enjoy all the benefits of relational database AND I wanted is a solution that was built from the ground up to easily scale horizontally in a cloud hosting environment.
Why did you select this one?
I've decided to choose NuoDB for a few reasons: High availability, effortless scalability, ACID-compliant with relational database benefits and easy administration. Before discovering NuoDB, I wished that there was a solution that could bring all these things together, so I can continue developing against a relational database, but enjoy the benefits of NoSQL too. For some projects, NoSQL might be a good solution. However, I believe that there are many developers out there that already familiar with relational databases and want to continue working with it.
So when I read about NuoDB, I knew that it was a technology that perfectly fits my needs.
What tangible benefit has your organization received through the use of this product?
I first set up NuoDB locally on my computer and then tested it in the cloud. Setting up NuoDB nodes was a breeze. I initiated a node failure to see how it affects my application, and everything continued to work like nothing happened.
I still query the database using SQL language as I always have. As an individual developer, I understand how important it is to start and finish the project in a timely manner. With NuoDB, I don't need to spend my time learning a new technology or learn how to adapt to it and then learn how to configure my application to support it.
Some developers don't care about scaling. They tend to worry about it when the time comes. With NuoDB, I don't need to care about scalability issues anymore either. So in short, I will finish developing my application much faster and I can rest assured that it will be available online no matter what. I am a very happy beta tester!
What advice would you offer others facing similar challenges?
I know that there are many solutions out there, and it becomes very confusing choosing the right solution. Not every solution is for everyone. However, for people who are already familiar with relational-database and already intend to work in a cloud computing environment like Amazon Web Service, NuoDB is the best solution that solves many of today's scalability and high availability issues. Having an idea is great, but Database management is expensive and very time consuming. For a long time now I wished that there was a new technology innovation to help solve problems, lower the cost and time spent for managing databases. I'm happy that this wait is over.
Time to go and finish my new application. The one thing I am sure about, is that developers at least have to try NuoDB out. I'm sure that once they try it, they won't go back using "older" database technologies.
I am not a DBA. However, that's what NuoDB is all about, bringing a new database technology that won't force you to become one. I hope NuoDB all the best and already waiting for the Beta 8 to come out.