(1) Installations which are forced to use PostgreSQL because of performance or features that MySQL cannot provide. (2) Installations which are forced to use MySQL because of performance that PostgreSQL cannot provide. (3) Installations which could use either
For #1 and #2, you just have to try your data and see which database is up to the task and which isn't.
For #3, I think you'll like PostgreSQL, and I think it will reduce developer time.
Materialized views can be implemented in PostgreSQL with triggers, and often are.
It's the same thing as far as I can tell, but it is missing the ability for the planner to automatically select the view instead of the table for a certain query.
Relational manipulations using relational algebra and relational calculus have been around for 30+ years. I'm a little hesitant to buy into the idea that someone reinvented that math in a better way.
I don't want a 1-to-1 mapping of application objects to database objects. To me, that means it's just a persistent storage engine for objects, which is a regression from an RDBMS.
This is a slashdot discussion. Some of the people in this discussion are interested in trying a new database (unhappy with old one, new project, whatever) and don't know much about MySQL or PostgreSQL.
They want real life impressions even from nonexperts. They want to know: "After I install this thing, will I see results quickly or am I going to be digging in books for a while first". They want to understand a little of the theory and be warned of potential pitfalls or benefits.
Advocates can come in and defend the DB against myths and falsehoods, and provide advice to people considering switching but haven't signed up for the mailing list yet.
There are a lot of facts coming out in this discussion, and I see no problem with it. In fact, why are you reading these comments if you aren't either an advocate, or someone who wants to know something they can't get from the websites?
I'll just add that this is a recurring discussion on the lists, and someone may get around to trying to improve this situation in some way. There are a few ways of going about it, but all have a cost. The most likely would probably be an option for an index to store tuple visibility information. That way you can do a full index scan rather than a full table scan, which would take less time (only because the index is smaller in size).
Anyway, if someone cares about count(*), then PostgreSQL 8.0 is not for them. But for those who have other needs as well, I encourage them to actually try real data on PostgreSQL, because I think you'll be impressed in many regards.
So basically, in order to make an unqualified count(*) run fast (very rare operation for me), you're suggesting PostgreSQL lose it's MVCC, which has proven to be highly scalable and very successfull (which affects all transactions)?
Yeah, uh... nice trick. They keep a counter running so that something I don't care about (unqualified count(*)) returns quickly. If I really wanted that functionality I'd use a trigger counter in PostgreSQL. At least it's optional.
I think it's more of a good bonus to going with Afilias. If you have any evidence that they will do a sub-par job, let us know, but until then, I am happy that the company can make a profit and give back to the open source community. And I like what they've been doing for PostgreSQL so far, and the same for their employees, who frequent the lists as well as do dev work.
Afilias, if I'm not mistaken, was the primary developer of Slony-I, a very powerful single-master replication daemon for PostgreSQL that is very effective in many situations. So I expect them to make good on their promises of a multi-master solution.
Yeah, that's far from a scientific study; you're absolutely right.
I'm just saying that on the face of it, it looks very much like these are inherent behaviors. To suggest otherwise really requires a compelling study of preferences in a controlled environment. Let me know if you find such a study.
My intuition tells me that men and women have different instincts, and those instincts manifest themselves as different social behaviors.
The problem with Fox News is that far-right viewpoints are being passed off as moderate right, while moderate left viewpoints are passed off as moderate left.
That's subjective. Subjective claims depend on a frame of reference, objective claims do not. Your statement is correct in some frames of reference and not in others, and is therefore subjective.
Now, I thought what we were really talking about was objectivity. Fox presents objective facts that you would hear nowhere else on TV (particularly the mainstream broadcast media). That's not to say that every claim they present is an objective fact; far from it. They are subject to a frame of reference like everyone else.
But the question I have is: why is there such hostility toward Fox's presentations?
If I don't like CBS, I don't watch it. Unless someone is presenting fake documents, etc., I really just don't care much, and vote with my eyeballs.
I think the hostility is that Fox is getting great ratings, and broadcast media is declining, symbolizing people aligning politically with Fox's ideas. I don't agree with many of the things they get involved with ( drug war, whatever ), but it's not the end of the world to listen to a little of the other side's viewpoint once in a while.
I don't even know where to begin. If someone has a preconceived idea and is just looking for someone to say it, they will find the media source that agrees with them. There are such people in both the left and the right.
However, if someone is looking for facts and is holding off on their conclusions until the facts come in, they are better off not limiting themselves to the mainstream media. That's because, sadly, the mainstream media does not go out of their way to uncover all the relevent facts of a news story. And neither does Fox, but they uncover new facts that the mainstream media would never release.
Fox News is not any worse than any of the other media.
I'd rather Fox News existed than not, even though sometimes it bothers me. They will challenge ideas that will never be challenged in the mainstream media.
Without Fox News, you only get one viewpoint, and that is bad.
And it sounds like you have some interesting opinions about the motives of conservatives. There are propogandists and people with less than altruistic motives on both sides. Attacking motives gets you nowhere, you need to attack the underlying ideas, or someone will always find some ulterior motive behind your policy also.
Some people on the left, as well as on the right, try to subvert the rules when it suits their policy goals.
But a big part of the problem - not necessarily all of it - is probably just socialization.
First, you assume it's a problem. It may just be a difference, like women are statistically better at some things and worse at others.
Culture and society may be a factor, which is what you claim, but maybe you have put the cart before the horse. Perhaps society is structured a certain way because women and men are innately different? You really need some studies to back up that claim.
In the article, he mentions how he gave one of his daughters trucks instead of dolls to be gender neutral. She named the trucks "daddy truck" and "baby truck" as if they were dolls.
"Build a brighter LAMP: Linux, Apache, Middleware, PostgreSQL"
-- stolen (and probably butchered) from someone more clever than I.
Re:How about MySQL AB's interpretation of the GPL?
on
MySQL CEO Interview
·
· Score: 1
Their policy can be summed up as: "If you're Open Source, we're Open Source. If you're not Open Source, please see the nice people in Sales about buying a license."
So long as your definition of "Open Source" does not include BSD or anything other than GPL.
So it's more like: "If you're GPL, we're free. If you're BSD or anything else, see the nice people in sales.".
What if you have 5 applications accessing the same database? Or 50?
Well, if one of those has a bug, and one will, it may insert some inconsistent data. Then, another application will rely on the data following certain rules to function, and create another problem. This could actually cascade into new data inconsistencies.
Now, here's the tough part: find the bug and correct the data integrity problems.
I have had maybe 5-10 applications accessing the same database. I was very happy when I got one of those errors from the database because I knew exactly where the problem lay, and I knew the DB was still consistent and did not need to be corrected.
Now, I know what you're thinking. Let's have the applications check the data before they put it into the database, and then also check the data after it comes back from the database.
Well, start thinking about that a little bit. First, that's a huge amount of code. When an application checks the data, it must look at the internal consistency of the database (do all orders have an associated customer record? etc.), which is inherently more expensive and awkward than having the database check it. Then, what do you do when you find an inconsistency? What app put the wrong data in there?
Also, to do that right is a lot of code. A lot. Just start thinking about it and you will see a huge amount of redundant, bug-prone code that requires its own set of tests. You can't reuse the consistancy code if you use more than one programming language. Now, how do you know it's working?
Starting to look like yet more code and more bugs...
Now, come up with a set of tools so you can correct inconsistencies when you detect them. More code, more bugs.
So, if you're working with more than one application on the same DB, I would strongly advise using a database with consistency checking. After all, at one point in time there was no such checking on the db side. Then everyone started using it. Perhaps these are the reasons why.
Even one app still runs into many of these problems (like how to correct mangled data after a bug in your application makes it inconsistent).
Really? I wonder what the difference in speed actually is. After all, checking the length of a string against information that is already in memory (the type of the field you're inserting into) is negligible compared to a disk write, which has to be done no matter what.
So, you're saying that MySQL has optimized away that string comparison, even though it's probably less than one percent of one percent of the total cost of an insertion?
Not only that, but the checking must be done somewhere. I just don't buy the speed argument at all in this case. I think it's more backwards compatibility than anything else.
It's all a moot point to me because none of it is enough of a reason for me to give up my data integrity. If there's a bug in one application I don't want it to affect all the other applications accessing the same database.
I'm sure there is some reason that so many people use MySQL. Actually, I would hope there is a reason; I'm actually quite ignorant about MySQL except for a few of the things that bug me about it. But anyway, avoiding a strlen() in an insertion is not one of those reasons.
Yes, that is a little worrisome that MySQL is creating confusion about the GPL in particular and open source software in general.
However, I'm fairly sure that MySQL is GPL, and no matter what they say, you can do the same things with MySQL that you can with other GPL software.
Except how they made the client libraries GPL instead of LGPL. That, in my opinion, really stands out against the open source community. You can't have a BSD licensed (or whatever else) app support MySQL, it has to be GPL or you have to buy a commercial MySQL license. It goes against not only the interoperation of closed and open software, it also goes against the variety of open source software.
In fact, commercial companies can simply buy a license to avoid the problem, a free software application can't buy a license, so it's GPL or nothing if you want to support MySQL.
Yes, MySQL is GPL through-and-through, including its client libraries.
That means that if you want to even support MySQL in your product (e.g. "my product supports MySQL, Oracle, and PostgreSQL"), your product needs to be GPL or you need to buy an expensive commercial license.
It's a long tradition that client libraries are LGPL or BSD or something (which is why the FSF created the LGPL). MySQL broke that tradition, and also threatened the variety in open-source software by disallowing a BSD (etc.) application to talk to MySQL, requiring that it be GPL or commercial.
If I'm not mistaken, that's actually more restrictive than many commercial database licenses.
Come on, let's be honest: Bill Gates used the C word because he wanted to smear free software, as free software interferes with his personal plans for taking everybody's money.
I don't think so. I think that he used the word to say "I have no intention of pleasing communists. My business caters to those people that believe in some degree of private ownership.".
I doubt that word even jumped out to most people. However, many FSF people who were expecting him to associate FSF people with communism read that from his words because it fit with their theory.
I suppose next you are going to tell me that ESR is a communist as well?
Nope, and I didn't call RMS a communist either. And Bill Gates didn't call free software people "soviet-style communists" either. Remember that the USSR stands for "United Soviet Socialist Republic", so there is a lot of mincing of words all around. I don't think RMS would want to associate with the USSR, but he did identify himself as a socialist (I'm fairly sure, please correct me if I'm wrong).
So, it's unfair to read into Bill Gates's words that he means FSF people are USSR-style communists. He said nothing of the sort, and neither did I. There are all kinds of socialists and communists, and some of them exist in the free software movement.
I think there is an element of communists in the free software movement. People choose free software for different reasons. Richard Stallman himself is a socialist (please correct me if I'm wrong, but I believe he said that himself). Sometimes people have a very different philosophical starting point and end up grouped together because their conclusions are similar.
I think that Bill Gates was drawing a line and saying in effect "This is a group I am not aligned with. I do many things for many people, but I will never please this group because we are too different.". That idea, I think really put the interview back on target, and Bill didn't sit there trying to pretend that he could make communists like him.
At most I think he was implying that the FSF had a significant element of communists, which may be true considering the involvement of China and India (I know neither of those are communist, but they are pretty far to the left of Americans). I didn't see any evidence that he thinks that using free software implies that you're a communist.
There are 3 types of installations:
(1) Installations which are forced to use PostgreSQL because of performance or features that MySQL cannot provide.
(2) Installations which are forced to use MySQL because of performance that PostgreSQL cannot provide.
(3) Installations which could use either
For #1 and #2, you just have to try your data and see which database is up to the task and which isn't.
For #3, I think you'll like PostgreSQL, and I think it will reduce developer time.
Materialized views can be implemented in PostgreSQL with triggers, and often are.
It's the same thing as far as I can tell, but it is missing the ability for the planner to automatically select the view instead of the table for a certain query.
Not only that but the pg_dump dependency issues were fixed in pg 8.0
Relational manipulations using relational algebra and relational calculus have been around for 30+ years. I'm a little hesitant to buy into the idea that someone reinvented that math in a better way.
I don't want a 1-to-1 mapping of application objects to database objects. To me, that means it's just a persistent storage engine for objects, which is a regression from an RDBMS.
I'll second this. Try out Slony-I. That's one of the main things that Slony was designed for.
However, I encourage you to verify that your application properly works on 8.0 first; 7.2 was 3 releases ago.
This is a slashdot discussion. Some of the people in this discussion are interested in trying a new database (unhappy with old one, new project, whatever) and don't know much about MySQL or PostgreSQL.
They want real life impressions even from nonexperts. They want to know: "After I install this thing, will I see results quickly or am I going to be digging in books for a while first". They want to understand a little of the theory and be warned of potential pitfalls or benefits.
Advocates can come in and defend the DB against myths and falsehoods, and provide advice to people considering switching but haven't signed up for the mailing list yet.
There are a lot of facts coming out in this discussion, and I see no problem with it. In fact, why are you reading these comments if you aren't either an advocate, or someone who wants to know something they can't get from the websites?
I'll just add that this is a recurring discussion on the lists, and someone may get around to trying to improve this situation in some way. There are a few ways of going about it, but all have a cost. The most likely would probably be an option for an index to store tuple visibility information. That way you can do a full index scan rather than a full table scan, which would take less time (only because the index is smaller in size).
Anyway, if someone cares about count(*), then PostgreSQL 8.0 is not for them. But for those who have other needs as well, I encourage them to actually try real data on PostgreSQL, because I think you'll be impressed in many regards.
DB2 uses locks to maintain transaction isolation.
So basically, in order to make an unqualified count(*) run fast (very rare operation for me), you're suggesting PostgreSQL lose it's MVCC, which has proven to be highly scalable and very successfull (which affects all transactions)?
Yeah, uh... nice trick. They keep a counter running so that something I don't care about (unqualified count(*)) returns quickly. If I really wanted that functionality I'd use a trigger counter in PostgreSQL. At least it's optional.
A brighter LAMP: Linux Apache Middleware PostgreSQL
I think it's more of a good bonus to going with Afilias. If you have any evidence that they will do a sub-par job, let us know, but until then, I am happy that the company can make a profit and give back to the open source community. And I like what they've been doing for PostgreSQL so far, and the same for their employees, who frequent the lists as well as do dev work.
Afilias, if I'm not mistaken, was the primary developer of Slony-I, a very powerful single-master replication daemon for PostgreSQL that is very effective in many situations. So I expect them to make good on their promises of a multi-master solution.
Yeah, that's far from a scientific study; you're absolutely right.
I'm just saying that on the face of it, it looks very much like these are inherent behaviors. To suggest otherwise really requires a compelling study of preferences in a controlled environment. Let me know if you find such a study.
My intuition tells me that men and women have different instincts, and those instincts manifest themselves as different social behaviors.
The problem with Fox News is that far-right viewpoints are being passed off as moderate right, while moderate left viewpoints are passed off as moderate left.
That's subjective. Subjective claims depend on a frame of reference, objective claims do not. Your statement is correct in some frames of reference and not in others, and is therefore subjective.
Now, I thought what we were really talking about was objectivity. Fox presents objective facts that you would hear nowhere else on TV (particularly the mainstream broadcast media). That's not to say that every claim they present is an objective fact; far from it. They are subject to a frame of reference like everyone else.
But the question I have is: why is there such hostility toward Fox's presentations?
If I don't like CBS, I don't watch it. Unless someone is presenting fake documents, etc., I really just don't care much, and vote with my eyeballs.
I think the hostility is that Fox is getting great ratings, and broadcast media is declining, symbolizing people aligning politically with Fox's ideas. I don't agree with many of the things they get involved with ( drug war, whatever ), but it's not the end of the world to listen to a little of the other side's viewpoint once in a while.
Umm... evidence?
I don't even know where to begin. If someone has a preconceived idea and is just looking for someone to say it, they will find the media source that agrees with them. There are such people in both the left and the right.
However, if someone is looking for facts and is holding off on their conclusions until the facts come in, they are better off not limiting themselves to the mainstream media. That's because, sadly, the mainstream media does not go out of their way to uncover all the relevent facts of a news story. And neither does Fox, but they uncover new facts that the mainstream media would never release.
Fox News is not any worse than any of the other media.
I'd rather Fox News existed than not, even though sometimes it bothers me. They will challenge ideas that will never be challenged in the mainstream media.
Without Fox News, you only get one viewpoint, and that is bad.
And it sounds like you have some interesting opinions about the motives of conservatives. There are propogandists and people with less than altruistic motives on both sides. Attacking motives gets you nowhere, you need to attack the underlying ideas, or someone will always find some ulterior motive behind your policy also.
Some people on the left, as well as on the right, try to subvert the rules when it suits their policy goals.
But a big part of the problem - not necessarily all of it - is probably just socialization.
First, you assume it's a problem. It may just be a difference, like women are statistically better at some things and worse at others.
Culture and society may be a factor, which is what you claim, but maybe you have put the cart before the horse. Perhaps society is structured a certain way because women and men are innately different? You really need some studies to back up that claim.
In the article, he mentions how he gave one of his daughters trucks instead of dolls to be gender neutral. She named the trucks "daddy truck" and "baby truck" as if they were dolls.
[warning: blatant propoganda follows]
Actually, it goes like this:
"Build a brighter LAMP: Linux, Apache, Middleware, PostgreSQL"
-- stolen (and probably butchered) from someone more clever than I.
Their policy can be summed up as: "If you're Open Source, we're Open Source. If you're not Open Source, please see the nice people in Sales about buying a license."
So long as your definition of "Open Source" does not include BSD or anything other than GPL.
So it's more like: "If you're GPL, we're free. If you're BSD or anything else, see the nice people in sales.".
What if you have 5 applications accessing the same database? Or 50?
Well, if one of those has a bug, and one will, it may insert some inconsistent data. Then, another application will rely on the data following certain rules to function, and create another problem. This could actually cascade into new data inconsistencies.
Now, here's the tough part: find the bug and correct the data integrity problems.
I have had maybe 5-10 applications accessing the same database. I was very happy when I got one of those errors from the database because I knew exactly where the problem lay, and I knew the DB was still consistent and did not need to be corrected.
Now, I know what you're thinking. Let's have the applications check the data before they put it into the database, and then also check the data after it comes back from the database.
Well, start thinking about that a little bit. First, that's a huge amount of code. When an application checks the data, it must look at the internal consistency of the database (do all orders have an associated customer record? etc.), which is inherently more expensive and awkward than having the database check it. Then, what do you do when you find an inconsistency? What app put the wrong data in there?
Also, to do that right is a lot of code. A lot. Just start thinking about it and you will see a huge amount of redundant, bug-prone code that requires its own set of tests. You can't reuse the consistancy code if you use more than one programming language. Now, how do you know it's working?
Starting to look like yet more code and more bugs...
Now, come up with a set of tools so you can correct inconsistencies when you detect them. More code, more bugs.
So, if you're working with more than one application on the same DB, I would strongly advise using a database with consistency checking. After all, at one point in time there was no such checking on the db side. Then everyone started using it. Perhaps these are the reasons why.
Even one app still runs into many of these problems (like how to correct mangled data after a bug in your application makes it inconsistent).
Really? I wonder what the difference in speed actually is. After all, checking the length of a string against information that is already in memory (the type of the field you're inserting into) is negligible compared to a disk write, which has to be done no matter what.
So, you're saying that MySQL has optimized away that string comparison, even though it's probably less than one percent of one percent of the total cost of an insertion?
Not only that, but the checking must be done somewhere. I just don't buy the speed argument at all in this case. I think it's more backwards compatibility than anything else.
It's all a moot point to me because none of it is enough of a reason for me to give up my data integrity. If there's a bug in one application I don't want it to affect all the other applications accessing the same database.
I'm sure there is some reason that so many people use MySQL. Actually, I would hope there is a reason; I'm actually quite ignorant about MySQL except for a few of the things that bug me about it. But anyway, avoiding a strlen() in an insertion is not one of those reasons.
Yes, that is a little worrisome that MySQL is creating confusion about the GPL in particular and open source software in general.
However, I'm fairly sure that MySQL is GPL, and no matter what they say, you can do the same things with MySQL that you can with other GPL software.
Except how they made the client libraries GPL instead of LGPL. That, in my opinion, really stands out against the open source community. You can't have a BSD licensed (or whatever else) app support MySQL, it has to be GPL or you have to buy a commercial MySQL license. It goes against not only the interoperation of closed and open software, it also goes against the variety of open source software.
In fact, commercial companies can simply buy a license to avoid the problem, a free software application can't buy a license, so it's GPL or nothing if you want to support MySQL.
Yes, MySQL is GPL through-and-through, including its client libraries.
That means that if you want to even support MySQL in your product (e.g. "my product supports MySQL, Oracle, and PostgreSQL"), your product needs to be GPL or you need to buy an expensive commercial license.
It's a long tradition that client libraries are LGPL or BSD or something (which is why the FSF created the LGPL). MySQL broke that tradition, and also threatened the variety in open-source software by disallowing a BSD (etc.) application to talk to MySQL, requiring that it be GPL or commercial.
If I'm not mistaken, that's actually more restrictive than many commercial database licenses.
Come on, let's be honest: Bill Gates used the C word because he wanted to smear free software, as free software interferes with his personal plans for taking everybody's money.
I don't think so. I think that he used the word to say "I have no intention of pleasing communists. My business caters to those people that believe in some degree of private ownership.".
I doubt that word even jumped out to most people. However, many FSF people who were expecting him to associate FSF people with communism read that from his words because it fit with their theory.
I suppose next you are going to tell me that ESR is a communist as well?
Nope, and I didn't call RMS a communist either. And Bill Gates didn't call free software people "soviet-style communists" either. Remember that the USSR stands for "United Soviet Socialist Republic", so there is a lot of mincing of words all around. I don't think RMS would want to associate with the USSR, but he did identify himself as a socialist (I'm fairly sure, please correct me if I'm wrong).
So, it's unfair to read into Bill Gates's words that he means FSF people are USSR-style communists. He said nothing of the sort, and neither did I. There are all kinds of socialists and communists, and some of them exist in the free software movement.
Well, where's the fair use with the movie theater? You go in, you can't bring a camera, you watch the movie, and leave. You can't use excerpts at all.
Are you arguing that the movie theaters must permit us to record the movie from within the theater?
I think there is an element of communists in the free software movement. People choose free software for different reasons. Richard Stallman himself is a socialist (please correct me if I'm wrong, but I believe he said that himself). Sometimes people have a very different philosophical starting point and end up grouped together because their conclusions are similar.
I think that Bill Gates was drawing a line and saying in effect "This is a group I am not aligned with. I do many things for many people, but I will never please this group because we are too different.". That idea, I think really put the interview back on target, and Bill didn't sit there trying to pretend that he could make communists like him.
At most I think he was implying that the FSF had a significant element of communists, which may be true considering the involvement of China and India (I know neither of those are communist, but they are pretty far to the left of Americans). I didn't see any evidence that he thinks that using free software implies that you're a communist.