My NoSQL conversion

When I first heard of the NoSQL movement, I blew it off. Thought it was ridiculous. After all, I’ve worked with RDBMS for a very long time. On top of that, I was still in the midst of integrating two products where one used file based storage and the performance and scaling for it was just horrendous. It just added to my bias.

But I’ve been wrong before. Many times. And expect to be wrong again soon.

The beginning of the path

 

In the last couple years, I’ve been doing a little mind hacking, as it were. That is challenging my thinking, and tweaking little habits like in which pocket I keep my wallet. The results have been interesting. I’m still no Ayende, no super brainiac coder, but I am getting better.

I decided to start this blog, and therefore had to choose a blog engine. Being hosted on Go Daddy, it has certain constraints to deal with which pretty much led me to choose BlogEngine.Net.  Plus the idea of file storage for entries was intriguing.  I didn’t have to deal with migrating sql database, or even setting one up. No risk of sql injection either. And backups are easy. Then so would be changing hosting if I so chose. It all just started to add up and make sense; and I realized a problem had been nicely solved without and RDBMS. But the lightbulb hadn’t quite turned on yet.

Knee jerks and second thoughts

 

I didn’t heard about nosql until sometime in the last year or so. Rob Conery get’s credit for that, and at first I thought he was nuts. (OK, yeah Rob I still think you’re crazy – crazy like a fox.) Then I started remembering Ayende posting about db4o and reading mongodb source code.  Stuff like that. So I reconsidered why I always think of an RDBMS when considering a new project.  A large of of it was because I learned a lesson very early in my career, and have held on tightly since then.

Which brings me back to challenging my thoughts. I had already realized, in the case of the blog engine, that storage engines can be effective without being relational. I’ve also run into the classic ORM impedance problem. I’ve run into the fun issues with scaling massive sql databases, and just thought that’s the way it had to be. Then again, maybe not.

Fork in the road

 

Please don’t get me wrong; I’m more aware than most how capable a sql server can be. Even and specifically MS SQL Server. I am not abandoning sql though; it would be foolish. Especially since most business will still be using mostly sql for some time.

It’s about not setting artificial limits on yourself and your tools. Maybe sql isn’t always the right answer.  How freeing is it to not have to think about schema at all? Persistence just works. You still have to put thought into it, but some headaches go away. Isn’t part of the draw for Ruby on Rails how it makes working with the database easier and less intrusive in actually building the app?  It is for me; and I’m not a guy afraid of doing anything sql.  Trust me, I’ve got street cred with sql.

I just want to solve problems and build stuff.

Yes, there is value in NoSQL and there is a bright future in that area. There is going to be some good work and thought, and there are already thought leaders working in that area. I believe that business will eventually follow in adopting nosql. It may be slow at first, but will grow. There will be fun work for coders like me.  And keep an eye on RavenDB. It’s already a good product and, I think, there is a lot of capability there.

 
May 19, 2010 10:26 by josh
E-mail | Permalink
blog comments powered by Disqus


about josh

another programmer blogging about his misadventures in writing code.

Contact

contact us for website & software consulting

Decide

decide on pragmatic solutions

Develop

develop your product together

Succeed

achieve your goals with our services