"NoSQL databases are not free to operate. Each NoSQL Databases come with the cost of hardware, administration of the hardware, and support of the software."
Hey Oracle, if you want to bring this point up, please at least pretend to compare the above costs between NoSQL and your own solution. Otherwise it is just pure FUD: "NoSQL databases eat your CPU cycles, disk and network badndwith! Booooo!"
As someone dealing with Oracle's "support of the software.", let me be blunt: Oracles own flagship software's support is... severely lacking when you are hitting bugs.
I believe their point is that deploying, for example, four types of NoSQL database creates four, separate sets of hardware etc.
i.e. it is not that NoSQL systems are inefficient individually, it's that it is not efficient to maintain four separate resource pools.
(This is still possibly FUD nonsense: Oracle has to exist as an independent resource pool only because their virtualization licensing requires all potential CPUs to be licensed. Are any/all of the commercial NoSQL implementations licensed this way?)
I guess this boil down to the following four points:
- NoSQL is good in scaling: but do you really need to scale? Is your business so great to handle 1M users? Simple MySQL (and PostgreSQL when mysql is not ok) will go a long way for many many installation.
- NoSQL are in good in scaling but it is pain to maintain it: it hard to hire somebody who knows it good, there are no good management tools, etc.
- NoSQL requires you to make your application logic more complex and not portable
- There is no clear NoSQL leader and clear mainstream knowledge. And a lot of these NoSQL implementation requires some secret sauce known only to engineers maintaining and developing big NoSQL installations at Facebook, Google and Amazon.
In short, for startups, NoSQL is one more variable introducing risks and unknowns. So I think startups should not go NoSQL unless that is the core of their offering.
"In short, for startups, NoSQL is one more variable introducing risks and unknowns. So I think startups should not go NoSQL unless that is the core of their offering."
Well said.
NoSQL may have a lot to offer in some cases, but I think "easy" is an illusion when you look at the full picture.
And perhaps a few leaches to get the bad humors out, as well. (financial) "haircut", indeed.
I actually agreed with much of the data integrity problems the paper pointed out, but found it a bit too condescending, or perhaps even a bit threatening, around the "You are not Google" part. Big Brother loves me!
This document is nothing more than an embarrassment for Oracle. "One size DOES fit all - and that size is ORACLE!" Really? Even the most entrenched, old school DBA stuck in the bowels of some drab insurance company in Indiana wouldn't buy that. I'm not a NoSQL guy by any means (check my profile) but the desperation in this doc is way more palpable than a guy like Ellison would approve of.
You truly underestimate the zealotry and kool-aid drinking capacity of the average Oracle DBA. When your entire career is based on the training and certifications you've received from a single company, every database solution magically becomes Oracle...
"While in theory, NoSQL databases can be deployed on hundreds or thousands of
machines, in practice the deployments are much smaller and can typically easily fit within a
single Oracle database with fewer and more reliable components. The largest production
Cassandra cluster has over 100 TB of data in over 150 machines."
I find this interesting. I wonder if there any real TCO comparisons have been done to this point.
Sure, this paper is full of FUD. But it does raise a valid question for me: What's the difference between paying for Oracle and paying for MySQL, Datastax, or Cloudera support/enterprise to get the added features needed to run my business and keep away from reinventing the wheel?
Truth is, most of the Oracle (same applies do SQL Server) databases I've met could run just fine under MySQL or PostgreSQL. A good deal of them would be unable to significantly stress SQLite or MS Access.
Unless you start with a million users generating data, NoSQL (or Oracle RDBMS) is premature optimization. You want to architect for growth just in case, fine, but don't waste your time before you know you will have a problem.
That sounds bogus. A 100 TiB Oracle database is doable but incredibly expensive. 1 TiB with the appropriate redundancy will cost you around 10,000 € if you go Oracle. Perhaps you can get a good discount if you order a large cluster right away. So we're looking at 1,000,000 € just for disks here.
Then you would have to pay for the CPUs, the licenses and the consulting (lots of it, tuning a 100 TiB system is a huge task). Add another million or two...
How much would it cost with a NoSQL solution? Don't want to turn this answer into self promotion, but I'm confident it's well under the million with better performance (assuming you don't need a relational database).
In my own experience, deploying applications on traditional relational databases is a pain. Most of the applications I have worked on were applications for State government. The applications get heavily tied to the database, requiring the database to be populated to test the logic. The table structures are unnecessarily convoluted. These applications process client data (eligibility, certifications, enrollment) sometimes in the context of state data.
I have built solutions that allow me to collect data from running applications, and later inject data from these collected scenarios into the business logic for testing and debugging.
All of this to say that any objective analysis of these systems would reveal no need for a relational database. In fact, imposing the relational transaction model onto these applications is clearly detrimental to the development of these systems, the cost of these systems, the testability of these systems (though this isn't really the fault of the database technology itself), and the performance of these systems.
We should be processing the information through an application designed solely according to the needs of the application, and then selective pushing data to a data warehouse for reporting (which can certainly be a relational database).
It is almost like Ford claiming all your transportation needs require a truck, and forcing all supermarkets to accommodate driving trucks up and down the grocery aisles...
Nobody would say you don't need trucks. But the fact that trucks are sometimes needed isn't proof you should always use a truck.
This is a Google cache link to an Oracle whitepaper on NoSQL databases that jakewins posted to the programming subreddit. On page 13 the paper asks "Do you really want to be contributing to an open source effort?".
That entire paragraph (paper?) is an interesting bit of FUD:
>>The NoSQL database has been sponsored by large internet companies. Such sponsorship has added credibility to internet scale claims of the databases and an aura of "coolness." The large internet companies have been motivated by having free database software that is under their complete control. These companies have hired top developers for their scalable database implementations and to keep them running. Is your company prepared to make such an investment in an area which is not your company's core competence?
Do you really want to be contributing to an open source effort? Do you really want to bet your project on something that's on the bleeding edge? Do you want to build the superstar team required to make the NoSQL vision a reality? You are not Google.
"These companies hire top developers for their scalable (NoSQL) database implementations and to keep them running...Do you really want to build the superstar team required to make the NoSQL vision? You are not Google."
Wow - a salient remark about the state of enterprise software and what message Oracle sees resonating with management.
There is some good information in this article if your ignore the Oracle marketing message. It is basically a synopsis of the past 3 years of NoSQL discussion.
What it doesn't mention is that everyone who picks NoSQL generally acknowledges these downsides. So it doesn't do a good job explaining why people still pick NoSQL.
TCO is probably the biggest factor I would have in picking NoSQL. As a (Microsoft) SQL Server customer, we (developers) all hate the cost of scaling SQL Server for each customer. Each customer needs their own resource governance. This means either separate servers or a virtual machine, both tied to a SAN. Virtualization MSSQL licensing costs are large without much material benefit due to odd licensing strategies that negate most if not all financial benefit to virtualization for small IT shops like us. By comparison, the better we understand why customers use our product and the more engineering decisions we can make (get away with?) then the cheaper technologies we will be able to use (NoSQL, etc.).
Yes, this document is FUD. Frankly, I'm surprised they released this... The tone is: desperation.
That said, the NOSQL movement is so full of hype... It really annoys me that whenever anything new comes around, a large amount of people want to use it for EVERYTHING! NoSQL is inconvenient for a lot of what it is getting used for today... In 5 years, we'll be past that and we'll see it used more appropriately.
I think that's a bit of a misread. Sometimes ravenous adoption comes from something that legitimately makes 90% of cases easier. Once I tried MongoDB, it effortlessly became my default for projects large and small going forward - SQL would be a lot of extra work. NoSQL scaling well explains companies adopting it, but it doesn't explain the masses of individual developers and tiny startups jumping to it. That's explained by it being really, really pleasant.
Oracle really doesn't understand FOSS in general or NoSQL in particular. One of their points is that NoSQL databases don't have all of the advanced features of Oracle database completely missing that the point is not to have PL/SQL or secondary indexes but for simplicity and speed.
Oracle must be miffed: they built the first relational database (the first implementation of Codd's paper), which largely replaced hierarchical databases - i.e. NoSQL.
> Oracle must be miffed: they built the first relational database
No way. What about System R? And there were probably others of which I am unaware. Many of the now-standard RDBMS implementation techniques were pioneered in System R. This paper has a good overview: http://www.cs.berkeley.edu/~brewer/cs262/SystemR.pdf
And yet at the same time, Oracle is trying to fold in NoSQL to its product line. The idea of them trying to stymie NoSQL growth and using it at the same time is laughable. They're starting to feel the pressure a little too late now.
This is a marketing piece targeted at decision making managers or architects who have to justify their decision to activist decision making managers. Which is ok, Oracle knows who pays the bills.
Sometime soon, Oracle will develop or acquire a NoSQL product and this whitepaper will be buried. It will then be replaced by a new whitepaper to get you excited about how Oracle's new product will revolutionize price and performance for your web application.
[+] [-] praptak|14 years ago|reply
Hey Oracle, if you want to bring this point up, please at least pretend to compare the above costs between NoSQL and your own solution. Otherwise it is just pure FUD: "NoSQL databases eat your CPU cycles, disk and network badndwith! Booooo!"
[+] [-] antirez|14 years ago|reply
[+] [-] mitchty|14 years ago|reply
[+] [-] rdtsc|14 years ago|reply
[+] [-] hapless|14 years ago|reply
i.e. it is not that NoSQL systems are inefficient individually, it's that it is not efficient to maintain four separate resource pools.
(This is still possibly FUD nonsense: Oracle has to exist as an independent resource pool only because their virtualization licensing requires all potential CPUs to be licensed. Are any/all of the commercial NoSQL implementations licensed this way?)
[+] [-] artsrc|14 years ago|reply
You can get someone else (Google, Amazon etc.) to provide the hardware, administration and support of your database if you choose something else.
And you get more for less that you would with Oracle.
[+] [-] sliverstorm|14 years ago|reply
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] sdizdar|14 years ago|reply
- NoSQL is good in scaling: but do you really need to scale? Is your business so great to handle 1M users? Simple MySQL (and PostgreSQL when mysql is not ok) will go a long way for many many installation.
- NoSQL are in good in scaling but it is pain to maintain it: it hard to hire somebody who knows it good, there are no good management tools, etc.
- NoSQL requires you to make your application logic more complex and not portable
- There is no clear NoSQL leader and clear mainstream knowledge. And a lot of these NoSQL implementation requires some secret sauce known only to engineers maintaining and developing big NoSQL installations at Facebook, Google and Amazon.
In short, for startups, NoSQL is one more variable introducing risks and unknowns. So I think startups should not go NoSQL unless that is the core of their offering.
[+] [-] jeffdavis|14 years ago|reply
Well said.
NoSQL may have a lot to offer in some cases, but I think "easy" is an illusion when you look at the full picture.
[+] [-] artsrc|14 years ago|reply
[+] [-] pdubroy|14 years ago|reply
[+] [-] Roboprog|14 years ago|reply
I actually agreed with much of the data integrity problems the paper pointed out, but found it a bit too condescending, or perhaps even a bit threatening, around the "You are not Google" part. Big Brother loves me!
[+] [-] zzzeek|14 years ago|reply
[+] [-] illumin8|14 years ago|reply
[+] [-] virmundi|14 years ago|reply
[+] [-] va_coder|14 years ago|reply
I often run into people with the opinion that Oracle is the only viable solution.
[+] [-] nphase|14 years ago|reply
I find this interesting. I wonder if there any real TCO comparisons have been done to this point.
Sure, this paper is full of FUD. But it does raise a valid question for me: What's the difference between paying for Oracle and paying for MySQL, Datastax, or Cloudera support/enterprise to get the added features needed to run my business and keep away from reinventing the wheel?
[+] [-] rbanffy|14 years ago|reply
Unless you start with a million users generating data, NoSQL (or Oracle RDBMS) is premature optimization. You want to architect for growth just in case, fine, but don't waste your time before you know you will have a problem.
[+] [-] shin_lao|14 years ago|reply
Then you would have to pay for the CPUs, the licenses and the consulting (lots of it, tuning a 100 TiB system is a huge task). Add another million or two...
How much would it cost with a NoSQL solution? Don't want to turn this answer into self promotion, but I'm confident it's well under the million with better performance (assuming you don't need a relational database).
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] alanX|14 years ago|reply
I have built solutions that allow me to collect data from running applications, and later inject data from these collected scenarios into the business logic for testing and debugging.
All of this to say that any objective analysis of these systems would reveal no need for a relational database. In fact, imposing the relational transaction model onto these applications is clearly detrimental to the development of these systems, the cost of these systems, the testability of these systems (though this isn't really the fault of the database technology itself), and the performance of these systems.
We should be processing the information through an application designed solely according to the needs of the application, and then selective pushing data to a data warehouse for reporting (which can certainly be a relational database).
It is almost like Ford claiming all your transportation needs require a truck, and forcing all supermarkets to accommodate driving trucks up and down the grocery aisles...
Nobody would say you don't need trucks. But the fact that trucks are sometimes needed isn't proof you should always use a truck.
[+] [-] omaranto|14 years ago|reply
[+] [-] spinchange|14 years ago|reply
>>The NoSQL database has been sponsored by large internet companies. Such sponsorship has added credibility to internet scale claims of the databases and an aura of "coolness." The large internet companies have been motivated by having free database software that is under their complete control. These companies have hired top developers for their scalable database implementations and to keep them running. Is your company prepared to make such an investment in an area which is not your company's core competence? Do you really want to be contributing to an open source effort? Do you really want to bet your project on something that's on the bleeding edge? Do you want to build the superstar team required to make the NoSQL vision a reality? You are not Google.
[+] [-] bitsweet|14 years ago|reply
Wow - a salient remark about the state of enterprise software and what message Oracle sees resonating with management.
[+] [-] anamax|14 years ago|reply
DB operation is overhead. I can see wanting a superstar team to provide things that customers value, but no customer cares about SQL vs NoSQL.
[+] [-] johnzabroski|14 years ago|reply
What it doesn't mention is that everyone who picks NoSQL generally acknowledges these downsides. So it doesn't do a good job explaining why people still pick NoSQL.
TCO is probably the biggest factor I would have in picking NoSQL. As a (Microsoft) SQL Server customer, we (developers) all hate the cost of scaling SQL Server for each customer. Each customer needs their own resource governance. This means either separate servers or a virtual machine, both tied to a SAN. Virtualization MSSQL licensing costs are large without much material benefit due to odd licensing strategies that negate most if not all financial benefit to virtualization for small IT shops like us. By comparison, the better we understand why customers use our product and the more engineering decisions we can make (get away with?) then the cheaper technologies we will be able to use (NoSQL, etc.).
[+] [-] Roboprog|14 years ago|reply
[+] [-] stickfigure|14 years ago|reply
The document makes a lot more sense when you imagine the Samuel L. Jackson character from Pulp Fiction reading it aloud.
[+] [-] Roboprog|14 years ago|reply
As an alternative, how about having (Simpsons) "Comic Book Guy" read it? (with apologies to Steve Yegge)
[+] [-] sevenproxies|14 years ago|reply
Gee, thanks Oracle
[+] [-] dicroce|14 years ago|reply
That said, the NOSQL movement is so full of hype... It really annoys me that whenever anything new comes around, a large amount of people want to use it for EVERYTHING! NoSQL is inconvenient for a lot of what it is getting used for today... In 5 years, we'll be past that and we'll see it used more appropriately.
[+] [-] Klondike|14 years ago|reply
[+] [-] mbeattie|14 years ago|reply
[+] [-] 6ren|14 years ago|reply
[+] [-] psykotic|14 years ago|reply
No way. What about System R? And there were probably others of which I am unaware. Many of the now-standard RDBMS implementation techniques were pioneered in System R. This paper has a good overview: http://www.cs.berkeley.edu/~brewer/cs262/SystemR.pdf
[+] [-] DanielRibeiro|14 years ago|reply
They totally fail at argumenting them though, having a strong bias towards their products. As expected.
[+] [-] jsr|14 years ago|reply
[+] [-] oacgnol|14 years ago|reply
[+] [-] meow|14 years ago|reply
[+] [-] KevinEldon|14 years ago|reply
[+] [-] cleaver|14 years ago|reply
[+] [-] latch|14 years ago|reply
http://gigaom.com/cloud/big-data-startups-weigh-in-on-compet...