Digg Says Yes To NoSQL Cassandra DB, Bye To MySQL 271
donadony writes "After twitter, now it's Digg who's decided to replace MySQL and most of their infrastructure components and move away from LAMP to another architecture called NoSQL that is based in Cassandra, an open source project that develops a highly scalable second-generation distributed database. Cassandra was open sourced by Facebook in 2008 and is licensed under the Apache License. The reason for this move, as explained by Digg, is the increasing difficulty of building a high-performance, write-intensive application on a data set that is growing quickly, with no end in sight. This growth has forced them into horizontal and vertical partitioning strategies that have eliminated most of the value of a relational database, while still incurring all the overhead."
Nothing new ... (Score:2, Interesting)
Which DB is better? (Score:2)
I too have a site running on MySQL and I am thinking of switching.
Can anyone tell me if there is any "comparison chart" listing the various features / usability of the various OSS DB packages available so I can make a better educated decision?
Please help !
Thank you !
Re: (Score:3, Insightful)
If you need a comparison chart... you don't need to switch.
It's probably not necessary to change such a huge part of your architecture if it's not worth investing serious time investigating and benchmarking the alternatives.
Re: (Score:2)
Thank you for the reply.
It's not "switching for switching sake".
The reason for switching is simple: When my site first launch, MySQL is more than enough for it.
As it grows and grows, it's taxing MySQL more and more and right now it's already at the brim.
So ... Anyone has any info on where to look for a "comparison chart" or anything like that?
Please help !
Re:Which DB is better? (Score:5, Informative)
Postgres, for people who care about their data.
Re: (Score:2, Insightful)
Re: (Score:2)
What is at the brim? do you think that you have a performance issue? Considered a master/slave/slave/etc cluster? Do you do a ton of reads and few writes or many writes?
It's hard to say that mysql is at the brim without some explanation.
Re:Which DB is better? (Score:5, Informative)
Go with PostgreSQL. Reliable, standards-compliant, fast.
Re: (Score:3, Insightful)
Re:Which DB is better? (Score:4, Insightful)
First of all, if he's asking Slashdot for advice (which is barely a step above reading tea leaves [which itself is a step above asking 4chan]), he doesn't need Facebook-level scalability.
Second, you're confusing scalability and performance. Scalable solutions tend to actually be slower than non-scalable ones: the difference is that a scalable system increases in capacity linearly with the number of machines you throw at it ("horizontal" scalability), whereas a fast non-scalable system generally needs the same number of faster, individual machines to increase capacity ("vertical" scaling).
Third, PostgreSQL has excellent performance, and PostgreSQL does, in fact, scale horizontally [postgresql.org].
Re: (Score:3, Informative)
While insightful and informative in its own right, that isn't a logical response to my post.
He was asking for an alternative to Mysql. I was pointing out that moving from mysql to postgresql was not done by large companies with a lot of smart people working for them, because any performance improvements were not worth it.Postgresql's vertical and horizontal scalability did not represent an improvement over mysql. I didn't even mention vertical vs horizontal scalability. In the end you end up with a raw numb
Re:Which DB is better? (Score:4, Informative)
PostgreSQL is a real relational database that support views, nested sql, triggers, foreign keys, and even statistical analysis.
I think Mysql supports foreign keys now and my info might be dated. But if a database does not support foreign keys then its not a real relational database and mysql had that problem for years [slashdot.org].
Once switching over you can find out how hard processor intensive tasks that took minutes can be done easily in seconds with the features I described above with PostgreSQL. You can save alot of speed with complex queries with PostgreSQL.
Re: (Score:2)
If you're only at the "brim" now with MySQL and you are only growing 10-30% every year, just switch to a better RDBMS product and your needs might be well taken care of by Intel, AMD, Broadcom, Cisco and the SSD/storage manufacturers for the next 5-10 years.
If you are growing really fast, then sure you need something that really scales well horizontally. Horizontal scaling comes at a cost though.
Just look at f
Re:Which DB is better? (Score:4, Informative)
Now how do you scale that if your database is still growing? Postgres doesn't have a decent clustering solution that I know of, so your options are either to roll your own, or to scale vertically. Both of those are expensive options.
Based on my experience, I don't think that relational databases are appropriate for really large databases, and at present the only realistic option is horizontal scaling which is a lot easier with things like Cassandra or MongoDB.
Re: (Score:3, Informative)
I just read your comment and checked the PostgreSQL DB I am working with, it's only 1.7GB at this point, but growing, and the most rows in a table is 12,6 million. This DB is heavily used by a number of background processes, which select, insert, update and delete large volumes of data and by 14 people at this point, who run about 400 various reports per day each as well updating some data. The average time that a single user has to wait is 6 seconds per report. Those reports are optimized of-course, but
Re: (Score:3, Informative)
A good RDBMS engine and as much as people Poopoo MSSQL server its a good engine. I have used it for databases in the 150TB range. If you do your schema right, your indexes correctly, plan your partitions and file groups well you can great performance out of affordable hardware. Now you do need to maintain this thing or develop the automation around building those partitions and moving data into and out of them based on tombstones or some other criteria or your get underwater real fast.
I don't care what t
Why? (Score:2)
So what's the advantage of switching?
I have a policy of if it ain't broke don't fix it
Re: (Score:2)
Presumably the advantage is that what they have now doesn't work well and that they are concerned it will continue to work less and less until some arbitrary point in the future where they would have to declare it no longer works at all, and that what they're changing to seems to resolve the issue.
Call me crazy, but I'm pretty sure that somebody at Digg is aware of that particular catchphrase.
Re: (Score:2)
Well, I've seen switches to new software and OSs because a new exec decreed it, regardless of how well what they had was working. Could be he (or she) got kickbacks, or some smooth talking salesman pulled the wool over his eyes, his son got a job with the new company, etc. Change is sometimes made for political reasons rather than technical ones.
While I see no evidence that was the case this time, it has
Re: (Score:2, Insightful)
A bad policy when dealing with your data.
Once it's broke, it is way too late.
You can't un-LOSE the past 6 hours of transactions or table referential integrity that MySQL trashed, due to an unclean shutdown.
MySQL's great until it comes up to bite you in the arse.
Re: (Score:2)
You can try this wiki page [wikipedia.org] for an explanation of the concept.
Re:Which DB is better? (Score:4, Informative)
The page you cited, on column-oriented databases, describes an implementation strategy that's applicable to many types of databases. There are database engines that present a perfectly normal SQL interface to a column store, and there's actually a direct link to LucidDB [wikipedia.org] from the article. Likewise, there's nothing stopping a Cassandra-like database from serializing its on-disk bits the other way around.
Column-orientation has nothing to do with the "NoSQL" databases that are in vogue. It's completely orthogonal. You're talking about using vectors or linked lists when everyone else is arguing over whether to serialize data with XML or JSON.
So much horseshit in just one slide deck. (Score:2)
So much horseshit in just one slide deck. No matter what you do, unless you have at least a hundred machines at your disposal, Hadoop won't be faster than a single box grep from SSDs. LucidDB is excruciatingly slow for all but tiniest datasets. I've tried a good half dozen "solutions" from this slide deck (including Aster), and other than Postgres all of them suck ass, more or less. If you see ANYTHING other than Nutch with Hadoop as a backend, head for the hills right away.
Re: (Score:3, Funny)
Yes! These products are wonderful! They are spectacular! They are a beam of sunshine refreshing my soul! I'm so happy with them! Daisies!
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Interesting)
Come on, it cannot be any sloppier than actual UniVerse: It performs extremely poorly on large files, especially when record sizes vary wildly. I've seen in-memory files in which any insert or update operation took 5+ seconds! In my experience, even Postgres in far weaker hardware just spanks UniVerse even on the simple queries where it should have an advantage. If you ever need to read two or three files, either by hand or through I dictionary entries, UniVerse is orders of magnitude slower. When you add t
Facebook, Twitter and now Digg (Score:5, Funny)
Re: (Score:3, Insightful)
Re: (Score:3, Funny)
Correct - Slashdot doesn't use Cassandra!
Re:Facebook, Twitter and now Digg (Score:4, Informative)
Fits, before that mysql was the best way to store data no one cared about.
Re: (Score:2, Insightful)
According to various internet sources (so take with a grain of salt):
Mark Zuckerberg's net worth [wikipedia.org]: $2 billion. Made entirely from Facebook.
Twitter's net worth [venturebeat.com]: $589 million.
Digg's net worth [websiteoutlook.com]: $24.34 million.
Even if each individual datum is nearly worthless, the combined value is far from it. Do you think any of those companies would still be worth what they are if they're databases were irretrievably wiped?
Re: (Score:2)
No. It was made by schmoozing investors. None of companies you list has ever turned a profit.
This is the kind of reckless behavior that leads to financial bubbles. Pay should be much lower initially. I doubt Zuckerberg would have worked any less hard (or hacked any fewer email accounts) if he had been paid the mere subsidence wage of $1 million per year.
Re: (Score:2)
I doubt Zuckerberg would have worked any less hard (or hacked any fewer email accounts) if he had been paid the mere subsidence wage of $1 million per year.
Entrepreneurs are a funny breed. It's the extreme risk and reward - the prospect of riches just around the corner that drives them, not the daily feed bag (which keeps corporate drones climbing the ladder). Or course $1M/year is a lot of dough but it doesn't matter what the number is, once it's rolling in steady the motivation is gone. In other words, I
Re: (Score:2)
Are you seriously arguing that unless the first derivative of one's salary is positive, there's no incentive to work?
Re: (Score:2)
Unfortunately, this is in fact true for many people -_-;;
Re:Facebook, Twitter and now Digg (Score:5, Insightful)
Are you seriously arguing that unless the first derivative of one's salary is positive, there's no incentive to work?
No, I did not say that one's salary needs to be monotonically increasing. That is not the point at all. And did you really have to turn this into a calculus problem?
To state it differently, many entrepreneurs are willing to work temporarily for little or even nothing, and to make great sacrifices such as giving up health benefits, vacations, and normal family/social life... things most 9-5 workers would never consider. Being someone's bitch for $1M/yr (or to be pedantic let's say $1M/yr + 5%/yr^2) may sound like a splendid deal to you but there are others who would work much harder for sweat equity in their own venture.
These people exist even if you can't fathom it. I'm one of them.
Re: (Score:2, Interesting)
Let me ask the question a different way then: which particular tasks related to founding a company would you personally perform in exchange for $2 billion, but not in exchange for $1 million? Would you work longer hours? Talk to your family less?
I cannot conceive of incentive to work increasing appreciably after about $1 million. We can talk about the exact figure, but clearly $2 billion is ludicrous for a private individual.
Excessive compensation is rent seeking [wikipedia.org] and harms society in numerous ways: it disto
Re: (Score:2)
Let me ask the question a different way then: which particular tasks related to founding a company would you personally perform in exchange for $2 billion, but not in exchange for $1 million? Would you work longer hours? Talk to your family less?
Would I prefer $1M now vs $2B later? Are you seriously that obtuse, or have I been trolled?
Do you have any notion of what the "tasks related to founding a company" even are? Just some legal paperwork, I suppose?
Re: (Score:2)
Your rhetorical question is drivel. It doesn't even parse in English, let alone relate to any plausible scenario I can imagine an entrepreneur encountering:
Why don't you put down your drink for a minute and see if you can muster a moment of clarity. If you can express yourself a little better then I
Re: (Score:3, Funny)
Sorry, I just can't resist...
> databases were irretrievably wiped
The expression to describe such an fortunate event would be "and nothing of value was [would be] lost".
Re: (Score:2)
The risk is not total loss of the entire database but occasional corruption here and there. However, for Facebook that's tolerable as long as it doesn't rise to a level such that it irritates the users. Given that the average Facebook user can't remember her best friend's phone number, that's a pretty high level.
Re: (Score:2)
Digg's net worth [websiteoutlook.com]: $24.34 million.
Makes me wonder why its owners put so much effort into making it suck. Their discussion system used to be half decent. Then they changed it and it is totally useless again.
Re: (Score:3, Informative)
Reddit also switched from memcachedb to Cassandra for their kvstore. From research to launch took 10 days.
Re: (Score:3, Insightful)
Worthless?
That data reflects our culture!
Nobody said it couldn't be both at the same time.
Reddit (Score:4, Informative)
Re: (Score:2)
What about Slashdot? (Score:2)
Reddit's reliability has been shitty lately. (Score:2, Interesting)
On a related note, Reddit's performance and reliability has dropped off significantly since switching to Amazon's "Cloud", and dropped off even further after this switch to Cassandra.
The constant 503 errors, plus horrendous load times when it does manage to work, have driven me and many others away from Reddit. That's why I'm posting here on Slashdot.
Cloud hosting is a stupid idea for anything beyond a blog getting 10 hits per date. All the talk about scalability is pure bunk. I mean, even with the extensiv
Re:Reddit's reliability has been shitty lately. (Score:4, Interesting)
When you have fixed "in house" infrastructure to handle peak loads, there's not a lot of motivation to power off absolutely as many servers as you possibly can when you're not at peak load - all you save is the energy costs (and, if you're using remote hosting, you don't get rewarded for this except for whatever value you attach to feeling "green"). You still pay for the floor space, the machines, and perhaps some sort of maintenance contracts regardless of if the server is powered up or down.
Using EC2 (depending on how you've structured it - some dedicated, some non-dedicated instances etc), if utilization drops to 80% over 20 instances, the temptation is to release a couple instances to save a couple bucks and drive utilization up to 90% on the remaining instances -- with potentially unfortunate consequences.
Although I have no idea, I wonder if Reddit is just releasing instances too aggressively now "because they can" in order to save money? If so, the fingrer should be pointed at Reddit, not the cloud (or EC2 specifically).
Re:Reddit's reliability has been shitty lately. (Score:4, Informative)
The reddit blog discussed the issue recently.
They claim it is not an EC2 issue [reddit.com], but simply the site getting bigger than it was designed to.
Their lastest entry [reddit.com] discusses why they switched to cassandra. I guess we'll wait for next week to see if the expected performance benefits materialize.
Re:Reddit (Score:5, Funny)
I was not aware metallurgy was popular amongst the youth.
Re: (Score:2)
Database Evolution (Score:2)
I bet if you converted Facebook to this n-dimensional 'table' model, and did a couple inner-joins and unions, you could rip space-time wide-open!
Re: (Score:2, Interesting)
Your statement that social networks push databases to their theoretical limits is laughable. Larger, more frequently accessed, more complicated databases have existed for years (decades?) before the current crop of Friendster clones existed. Just because Facebook is the largest,
Re: (Score:3, Interesting)
Now, I'm not an expert on database use and don't want to come across as sarcastic, but it's my impression that a lot of the questions that are being asked of these new types of databases simply don't have past analogues, or if they did, they were solved with this sort of approach in an RBDMS, basically using an RBDMS but without the relational part. Hadoop, Google, and all these social networking sites surely aren't all just... confused? Are they?
Please elaborate on how an RBDMS is applicable to what I gues
Away from LAMP? (Score:3, Insightful)
Or away from MySQL? There is a difference.
Re: (Score:2)
Re: (Score:3, Funny)
New acronym in order? (Score:5, Funny)
From the Digg blog - http://about.digg.com/node/564 [digg.com]
"And if that doesn't sound like a big enough challenge, we're replacing most of our infrastructure components and moving away from LAMP."
Cassandra Linux Apache PHP?
Re: (Score:3, Funny)
Trust me, you don't want the clap!!!!
Re: (Score:2)
This reminds me of the original name for the Daihatsu Applause, before they did their complete model name reaction testing.
Re: (Score:3, Funny)
try: Cassandra Ruby Apache PHP
The Monty crowd will blame this on Oracle (Score:2, Insightful)
This sad thing is that Monty's MySQL fan boys will blame this on Oracle when in reality the move to Cassandra (or other NoSQL databases) is what a lot of web sites should be doing regardless of who holds the MySQL reins.
Re:The Monty crowd will blame this on Oracle (Score:5, Insightful)
so does it use sql or not? (Score:2)
and why wouldn't a relational database system not be perfect for facebook?
Re: (Score:3, Informative)
i can't tell from the 4 lines of text buried in ads that is this supposed article, but i'm guessing this "nosql" still uses an sql database backend?
and why wouldn't a relational database system not be perfect for facebook?
1) NoSQL databases are just that NO SQL, there is no relational database involved.
2) No relational models are not good for Facebook style data, Facebook uses a lot of trees, networks and graphs, none of which are easy to store in a relational system, Facebook also has a lot of dynamic schema requirements, again SQL does not cope with this well, and at the scale that Facebook operates at they are forced to use techniques like sharding and partitioning of their data sets, at which point a lot of what makes th
Allergic reaction to MySQL (Score:5, Insightful)
These slides [pgexperts.com] present a balanced and comprehensive overview of the current state of free databases. Whether you're in the NoSQL camp or not, they're worth reading.
That said, here's my take:
It's currently fashionable to replace MySQL with some "NoSQL" database or other. This trend is driven by two factors:
I haven't seen any consideration from potential "NoSQL" adopters of the benefits of using a good relational database like PostgreSQL. There's a world of difference between it and MySQL, and condemning all relational database systems because of bad experiences with MySQL is like condemning all sandwiches because McDonalds once made you sick. In giving up RDBMSes entirely, these developers lose quite a bit of safety, flexibility, an convenience. It's a huge over-reaction.
This field should not be about following trends, though unfortunately, that's how most people choose which technologies to use: it should be about choosing the best tool for the job. And I believe that in the vast majority of cases, the advantages conferred by a relational system --- enforced integrity, interoperability based on SQL, query flexibility, storage flexibility --- make an RDBMs the best choice for almost any job. If you need sloppier semantics for some cases (for example, "eventual consistency"), you can layer that on top of a robust RDBMs.
Re: (Score:2, Offtopic)
I think it comes down to the sad fact that most people aren't good at their jobs. They tend to rise to one level above where they are actually competent, and stay there. And from my experience, they aren't usually very happy in whatever that position is, which (and IMHO) might be the reason that people in modern societies are often less happy (overall) than people in less advanced societies. Not many people enjoy that.
Re: (Score:2)
society isn't miserable, it's the media telling us we are miserable that has people thinking it. just look at how every single event has to be a crisis or the worst ever of something. and then, a word from our sponsors who sell product X that is the cure for what ales you.
if you want to destress and be happy, go on a total media black out. it's amazing how much less pressure you feel and happier you are if you refuse to read the news or
Re: (Score:2)
Actually, compared to people in industrial nations like ours, hunter-gatherers are happier and have more leisure time. After all, that's the environment to which we're biologically adapted. You can make a serious argument that agriculture is the worst thing to ever befall humanity.
Re: (Score:2)
Its not only that we have less leisure time but the fact that our worth is based on money. Inflation is very high if you count insurance, food, rent/mortgage, and gas prices (economists don't count this) and depressing wages and you have misery.
There is always someone richer than you who is busy trying to take away what you have.
Re:Allergic reaction to MySQL (Score:4, Interesting)
I haven't seen any consideration from potential "NoSQL" adopters of the benefits of using a good relational database like PostgreSQL.
...
If you need sloppier semantics for some cases (for example, "eventual consistency"), you can layer that on top of a robust RDBMs.
When you're dealing with TB/PB of data that doesn't require relational capabilities, there's no reason to use a "good relational database like PostgreSQL" when you can dispense altogether with the relational aspect and its performance hit.
NoSQL may seem like the fad-de-jure, but until recently, nobody was working with such enormous dynamic datasets. When you look at the growth of all these hi-tech companies, they did an incredible amount of in-house hacking to develop the software necessary to glue together their enormous hardware infrastructure.
Re: (Score:2)
If you do a search you need some relational abilities. If PostgreSQL can not handle this then Oracle can. Is it just me or alot of the NoSQL databases are reimplementing SQL to make up for the shortcomings?
Re:Allergic reaction to MySQL (Score:4, Informative)
When you're dealing with TB/PB range, you call Teradata. At last check they handle 4 of the 5 largest databases in the world, including eBay/Paypal's 13PB's monster and Walmart.
Re:Allergic reaction to MySQL (Score:5, Informative)
Teradata and the other big relational db products (vertical, greenplum, etc) are all _analytical_ databases, designed for small amounts of complex queries, where adding new data to the system takes minutes if not hours. They are completely unsuitable for running a live application against.
Re:Allergic reaction to MySQL (Score:4, Insightful)
As several MySQL experts already noted, Digg isn't even using the indexes that provide maximum performance in the query that they present as problematic for MySQL:
http://mysqlha.blogspot.com/2010/03/index-only.html [blogspot.com]
http://www.yafla.com/dforbes/Getting_Real_about_NoSQL_and_the_SQL_Performance_Lie/ [yafla.com]
So you are right about the NoSQL fashion trend. Looks like for some companies it's easier to throw a pile of cheap commodity hardware driven by some NoSQL BigTable-wannabie at the problem instead of carefully optimizing queries and indexes for the best performance.
Re:Allergic reaction to MySQL (Score:5, Insightful)
The adopters of NoSQL deal with huge volumes of worthless information. They don't care about transactional integrity as much as they care about performance, which is why they chose MySQL over a good relational database in the first place.
Re: (Score:2)
While I agree with you, I'm a developer of ... medium-sized systems using Postgresql, and this article greatly piqued my interest, considering the single biggest problem I've had with Postgres is it's lack of any good replication or redundancy methods. Right now I tend to use WAL replication to a "warm-standby" server, but this is hardly ideal in any sense.
Don't misunderstand me, I dearly love Postgres. It's just the replication where it really falls flat. Yes, I am aware of all the projects like Slony a
Re: (Score:2, Informative)
One can potentially make good money surfing bullshit. It's like the dot-com bubble: get in early, lie about your ability, rake in big bucks, and then get out and move on to the next hype bubble while the last one crashes on those left holding the bag.
However, I do believe there's perhaps a place for big non-relational databases. They tend to be single-purpose and si
MySQL not best example of relational technology (Score:2)
MySQL has never been a good example of a relational database, the underlying implementation is limited. Its MySQL that is the problem here, not relational databases.
I suspect here that it is not the relational model at fault here, but the lack of creativity and competence in implementing a relational database technology. MySQL perhaps has never been a particularly scalable platform, it has a number of severe limitation and does not seem to be designed with a lot of thought for a distributed environment. Its
There is postgreSQL (Score:2)
Mysql sucked for many years but is getting better with each release. It was never designed to be a fully RDBMS .
In Japan people use PostgreSQL and I am surprised that its not common among geeks. Many ISPs now offer it as well as MySQL. The problem is the trendy word is Nosql and mostly non database programmers are promoting the movement due to bad experiences of trying to learn mysql to do things that are very complicated.
PostgreSQL is very easy to switch your existing code too if you used SQL compliant cod
Re: (Score:2)
If you want to scale without limits and have the money to pay for it buy Oracle.
If you want to scale with a few limits, but don't have any money get Postgres
If you want to play around and write some of the most stupid syntax on the face of the earth then play with any of the afore mentioned text databases.
"NoSQL"? (Score:5, Insightful)
Am I the only one who frowns at this moniker?
First, it creates a false premise where people need to pick "SQL" versus "no SQL", while many real-world systems intelligently combine relational and non-relational data storage for their needs. There is no conflict.
Second, there's nothing wrong with SQL as a language in particular, and in fact many of the "noSQL" engines are starting to support and extending basic SQL queries, instead of reinventing their own query language for the same purpose.
I suppose "lessRDBMSabuse" was less catchy...
It's "Not Only SQL" (Score:4, Informative)
The 'n' stands for 'Not' and the 'o' stands for 'Only', so it's wrong to read it as NO SQL, it should be seen as Not Only SQL. I.o.w.: not a move away from sql, but exploring other options besides SQL
Re: (Score:3, Informative)
Second, there's nothing wrong with SQL as a language
I beg to differ - SQL is preposterously baroque!
That said, if you're problem is of a particular kind, it is a perfectly reasonable, practical, solution to many problems.
Re:Good for them (Score:4, Insightful)
Re:Good for them (Score:4, Informative)
The relational model is consistent and easy to work with. It's easy to specify constraints that describe what the data should look like, and to allow several applications to interact with the data. It's also easier to optimize a database when you can describe discrete queries instead of directly following links from program code as you would in a navigational/object/document/etc. database.
Furthermore, application data models aren't all that object-oriented. Most of the time, the manipulated data types (say, "story", "post", and "user") fall into well-defined categories that correspond well to rows in a table. The few mismatches are easily dealt with in application code.
Sure, using an object database might be "easier" for the first 15 minutes, but you'll kick yourself when you have to manipulate it in any kind of sophisticated fashion.
Re: (Score:2, Interesting)
In my experiences developing applications in both the business and gaming industries, most applications beyond a simple cookbook app/crappy blog are highly object oriented. How else can you explain the wealth of approaches like ORM mappers, the repository and active record patterns, etc ? They are just patches on the relational model to make them friendly to application code. If your domain objects are consistently flat, you are probably doing something wrong. I for one do not want to use an API with Addres
Re:Good for them (Score:4, Interesting)
Thanks for the comprehensive reply.
ORMs are syntactic sugar for the underlying database operations. It's possible to bypass them when you need SQL's full power and access the same data store.
So create a table of addresses and use foreign keys to connect them to whatever other table you'd like. Since when does a relational structure require a garbage schema like your example. But surely you know all that.
But doesn't that then preclude accessing the same data set from programs written in other languages? The beauty of SQL is that it's language-agnostic.
You also make several points relating to toolchains and testing: sure, some databases have better tools than others. But we're talking about differences between models, not differences between particular tools.
Re:Wow... (Score:4, Interesting)
Don't be too quick to put Java down.. it's slower but it scales fairly well.
Re:Wow... (Score:4, Insightful)
Bullshit. Languages don't scale: programs do.
Writing a program in Java makes is scalable in the same way that painting a car red makes it fast. The JVM is quite good these days, but don't make up advantages that don't exist.
Re: (Score:2)
Languages with namespaces scale better than languages without namespaces.
Re:Wow... (Score:4, Insightful)
Java is a whole platform that is scalable. Its not just about using identifiers and objects but using the vast API's. Some would Java is even an OS as it has its own I/O, threads, etc.
I suppose you could write your own threading and processes code but most Java developers just use whats built into the api.
Re: (Score:3, Insightful)
If you're trying to run a site on a $15/month hosting account, then no, this is probably not for you. But if you're at the stage where MySQL isn't able to handle all the data you're throwing at it, then chances are you won't care about the extra few MB of memory that the Java runtime requires.
Re: (Score:3)
> But if you're at the stage where MySQL isn't able to handle all the data ...it's time to move up to PostgreSQL.
> you're throwing at it...
Re: (Score:2)
This isn't your grandfather's JVM.
These days, Java is quite fast and efficient, and there are even a lot of different alternative VMs you can try. Sure, startup time isn't the best, and Swing is still a lumbering, over-engineered, ill-fitting albatross: but these problems don't matter for server applications.
IMHO, the best part is that you can write programs that run on the JVM in a dialect of Lisp [clojure.org] and interact seamlessly with other code on the JVM.
Re: (Score:2)
Well, I don't know too many people who program in C and use Ant. And a glance at the FAQ implies it's Java-based (it talks about the JVM a bit).
I guess Cassandra just isn't really targeted at the market segment where the overhead of a JVM would make much of a difference, even if it would make redundancy easier.
Re: (Score:2)
It's kind of like Make, but with a lot more XML
Re: (Score:2)
I'm sorry, but Java still doesn't compare to C, and those differences *especially* apply to high load server applications.