Slashdot Mirror


PostgreSQL 8.2 Released

An anonymous reader writes to let us know that PostgreSQL 8.2 has been released (bits, release notes). 8.2 is positioned as a performance release. PostgreSQL it is still missing the SQL:2003 Window Functions that are critical in business reporting, so Oracle and DB2 will still win out for OLAP/data warehouse applications.

42 of 147 comments (clear)

  1. Watch out, MySQL. by Anonymous Coward · · Score: 5, Interesting

    MySQL has been the dominant SQL server within the open source community. Between its non-standard SQL and it's lack of advanced features, many developers and DBAs are getting fed up. Thankfully, they've been able to turn to PostgreSQL.

    At my firm, we switched some of our MySQL Enterprise databases over to PostgreSQL 8.1. What we found was pretty amazing: PostgreSQL outperformed MySQL by approximately 23% in terms of the number of queries it could handle per second. And this was with a very basic level of tuning! Our MySQL installations, on the other hand, had been tuned by three different consultants. Keep in mind that both were running on exactly the same system, under the same installation of FreeBSD. Were not sure exactly why there was such a remarkable increase in performance when using PostgreSQL, even without much tuning, but we're happy with it nonetheless. We're also happy to no longer being paying MySQL for support.

    We're actually quite happy to get away from MySQL. The other developers I work with were quite sickened by the deal MySQL AB reached with SCO a while back. While we're strictly a BSD shop, we still think SCO's actions are quite distasteful, and we are willing to move away from companies that enter into deals with them.

    1. Re:Watch out, MySQL. by Local+Loop · · Score: 3, Insightful

      It's because MySQL runs like dogmeat on FreeBSD, no matter which threading libraries you use. I know, I just switched from FreeBSD to Linux for our database servers. The performance difference was astounding - approximately 60% gain just from switching to Linux.

      For us, PostgreSQL is a lot slower than MySQL on the same hardware. But our workload is not typical by any stretch so YMMV.

      Try comparing PostgreSQL and MySQL, both running on Linux and I'll think you'll be surprised.

    2. Re:Watch out, MySQL. by Bluesman · · Score: 2, Informative

      Do you mean like this?

      Having used both, I can tell you phppgadmin is a bit more polished than phpmyadmin. Neither are particularly wonderful ways to interact with a database, but if you're stuck on a no-console web host, I'd much prefer to have the posgres/phppgadmin combo.

      --
      If moderation could change anything, it would be illegal.
    3. Re:Watch out, MySQL. by Bacon+Bits · · Score: 3, Interesting

      IMX, since about 7.3-7.4 PostgreSQL runs just as fast as MySQL under any significant load. It simply scales a lot better than MySQL seems to.

      I will say that if you've just recently switched to PostgreSQL that you should be sure you read the documentation on configuring the server. While the default installation of MySQL is to use as much resources as necessary, PostgreSQL's default install is extremely conservative. By default it only allocated 1 MB (yes, one megabyte) for working memory. If you've got more than 32 MB of RAM, you're probably going to need to edit some config files to see any reasonable performance. Try running a VACUUM VERBOSE to determine how many pages or entries you need in your FSM. That's something that needs to be reconfigured on a production system after it's been in place for some time. If you do strange things like mass DELETEs or TRUNCATE TABLE, you'll also need to VACUUM more often.

      The .org root DNS servers run on PostgreSQL, so it's not a problem with the RDBMS itself. Postgre has been repeatedly criticized for being so conservative with the default installation settings. I think they should have some configuration tools (in the Windows installer especially) that helps you to make somewhat more sane configuration settings.

      The typical response from PostgreSQL devs on the subject is "yeah, if we turned off fsync on our DB it'd run real fast, too". This is partially why PostgreSQL seems to run slower than MySQL on databases that have lots of INSERT and DELETE queries.

      I no longer see any reason to ever use MySQL. It's more popular, but I find PostgreSQL, Firebird, and SQLite cover the range of needs so much better. MySQL is great to learn on, but, well, it's just annoying once you really understand the first things about relational databases.

      --
      The road to tyranny has always been paved with claims of necessity.
    4. Re:Watch out, MySQL. by nconway · · Score: 2, Interesting
      Some work has gone into improving Postgres' default configuration in recent releases. With 8.2 on my machine, for example, the default configuration allocates:

      • 1MB of work_mem. This is a reasonable figure: because work_mem can be allocated once for every sort operation, each backend can allocate several times work_mem concurrently, so setting it much higher than 1MB could actually consume more memory than would be desirable out of the box, IMHO.
      • 24MB of shared_buffers (maybe less if initdb can't allocate sufficient SysV shared memory). This is on the low side for a modern server, but still not too bad, considering that many people using PG leave most page caching up to the kernel.
      • 128MB for effective_cache_size. Again, maybe not perfect (this box has 2GB of RAM), but probably needs DBA configuration to be at all accurate anyway.


      There's probably room for improvement, but the above behavior is definitely an improvement, IMHO.
  2. Re:Real Men don't use Window Functions by larry+bagina · · Score: 4, Funny

    According to the MySQL fanbois, Window Functions are bad for performance and not even useful. Just like subselects, data integrity, triggers, and transactions. Oh wait, MySQL 5 supports subselects. Subselects are no longer bad for performance.

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  3. Re:bitmap? by nconway · · Score: 4, Informative

    Bitmap indexes will almost definitely be in 8.3. Gavin Sherry submitted a revised patch for them a few days ago.

  4. Performance? by Ant+P. · · Score: 2, Insightful

    How fast is it against MyISAM? (MySQL's main selling point for a lot of people)

    1. Re:Performance? by El+Cubano · · Score: 2, Interesting

      How fast is it against MyISAM?

      I can't remember where I heard it or who said it, but I once heard someone say words about MySQL to the effect of "if you ignore all the things that make a real database a database, you can make it really fast." Now, I get that lots of web hosts use MySQL and that it is the dominant free database out there. However, there is lots of insight in that statement. Now, in 99% of the cases where MySQL is used, it probably works great with few hitches. However, I'd rather trust my data to a something that values data integrity over speed.

      Recall that not too long ago, right here on slashdot we all got to see first hand what happens when MySQL craps out. All the threading was gone. I mean seriously, what sort of database accepts invalid and then silently truncates it and moves on? Again, I don't think that the number of people with MySQL tables with 16,000,000+ rows is very large, but it is still disturbing.

      If you are going for something small and light and fast and you are not too concerned about standards, then MySQL is great. Note, I am not trying to troll, I am simply pointing out that for all the people who endlessly bash on one or the other DB, that there is a market space for each.

    2. Re:Performance? by phoenix.bam! · · Score: 3, Informative

      Not only does mysql silently truncate (and I just tested this on mysql 5) If you insert 2006-2-30 into the date field, i just completes the insert and makes the date 0000-00-00. Go Go Data integrity!

    3. Re:Performance? by Anonymous Coward · · Score: 2, Informative

      In defense of MySql 5.x you can actually toggle a setting to make it reject invalid data instead of silently mangling it and continuing as if nothing had happened. However, shipping with that setting disabled doesn't do much to improve MySql's data integrity reputation.

    4. Re:Performance? by hey! · · Score: 3, Insightful

      You have to be careful when you ask a question like that.

      What's faster, a Ferrari or a semi-trailer truck? If you are transporting a bunch of bannanas, the Ferrari. If you are transproting 50,000 pounds of bannanas, the semi wins.

      In other words, the problem with your question is there is no single thing that is "speed". There's only speed to do a certain class of tasks.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    5. Re:Performance? by jadavis · · Score: 3, Insightful

      However, shipping with that setting disabled doesn't do much to improve MySql's data integrity reputation.

      Not only that, one of the major selling points of MySQL is that it has many applications. If you deviate from the standard configuration, many of those apps will break. That's one of the problems with the "configureware" mentality, just like in PHP, except that MySQL is lower on the stack so it's worse.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    6. Re:Performance? by LurkerXXX · · Score: 2, Insightful

      That's a defense?

      'Real' databases don't have a setting for 'screw data integrity'. Data integrity is kind of one of the central points of a relational database.

      It just shows it's background as a toy, not a real database.

    7. Re:Performance? by greg1104 · · Score: 5, Funny

      How fast is it against MyISAM?

      I've managed to get my PostgreSQL installation tuned to very high speeds simply by switching the database disk over to /dev/null. It runs fast as hell, and the data integrity is basically the same as MyISAM.

    8. Re:Performance? by MadAhab · · Score: 3, Insightful

      Should be modded up.

      Now for the MySQL fanboi's, I do have to ask: why not use SQLite for the same purpose? Either you need a dumb data store or you need a Real Database. If you need a dumb data store, why not go for the one that does the best job of being a minimal data store - and use SQLite? If you need Real Database features (and I do), MySQL just hasn't caught up to PostgreSQL, and is even losing ground, after all this time.

      The hole in what I'm saying, of course, is replication. PostgreSQL 8.2 looks like it's making progress in this respect. I haven't played around with warm stand-by's, but I'm sure someday I'll need it. When I do, log shipping looks like it will do nicely!

      --
      Expanding a vast wasteland since 1996.
  5. Gotta love it... by chill · · Score: 5, Insightful

    PostgreSQL it is still missing the SQL:2003 Window Functions that are critical in business reporting, so Oracle and DB2 will still win out for OLAP/data warehouse applications.

    Bullshit, pure and simple. This is nothing more than marketing-speak and you should be ashamed.

    I'm not saying that SQL-2003 Window Functions are useless, I'm saying your statement about them being "critical" in business reporting is bullshit. Did no one do business reporting before this standard came out? What the hell did people do in 2002? Are all those MS-SQL Server 2000 and Oracle 8i servers going to fall down in shame? I think not.

    I see these comments all the time, usually in marketing brochures from a software vendor touting a new feature. They make it sound like all other products are steaming piles of shit if they don't have whiz-bang-feature #16. They like avoiding any conversation that goes "But, I've been using your product and it works great. Are you telling me your product (last rev) is a steaming pile of shit? That implies if I upgrade, next year you're going to be telling me how THIS rev you are so loudly praising is also a steaming pile of shit."

      Charles (had enough marketing-speak for this year)

    --
    Learning HOW to think is more important than learning WHAT to think.
    1. Re:Gotta love it... by Shados · · Score: 2, Insightful

      It IS a critical feature. Like how CSS support is a critical feature for the web. But in both cases, no one has all the critical features, and its annoying as all hells.

      Of course, using the extra stuff the databases support (PL/SQL, T-SQL, etc), we manage. But for example, the "workaround" for the window functions are not only ugly, but often quite misunderstood, on top of being difficult to use through dynamic sql (if thats your cup of tea). I keep seeing people using inefficient paging methods in SQL Server 2000 for example, when (while not supporting the actual function to do it "right") there are a few extremely efficient ways. So those features are indeed critical.

      A bit like a certain quite popular database engine that shall remain nameless didn't support stored procedures for like ever. People work around it just fine, but...

      Database engines are almost consistantly -behind- user's needs, even the fancy commercial ones, nevermind the incomplete ones.

    2. Re:Gotta love it... by rycamor · · Score: 2, Interesting

      I mean... did this OP rush to push out a lackluster FP on PG, or what?

      Practically the only informative part of this post is focusing on the perceived negative (which is a dubious one, IMHO).

      Never mind that Postgres has actually turned out some nice feature advances in this release, although they don't make for good marketspeak bullet points. There have been advances in performance, table partitioning, clustering, query logic, user-defined functions, etc... pretty much every area of "enterprise" database development except for the one area the OP chooses to focus.

    3. Re:Gotta love it... by rycamor · · Score: 2, Interesting

      OLAP itself is the kind of thing we thought we'd never have to do because of the power of the relational model. Well, we were wrong.

      How would we know? We have never yet seen a DBMS that really implements the relational model (at least, not in the normal world of business software). Show me the word 'relational' in the SQL standard, anywhere. What we have is all sorts of incredible complication to work around the fact that SQL itself is a damaged and confused (and at times contradictory) approach to the problem.

      The serious theorists I have read argue that the reason we need all the performance workarounds is *precisely because* we are not really working with a relational system, and all the vendors conflate logical levels and physical storage levels to various degrees.

    4. Re:Gotta love it... by Anonymous Coward · · Score: 2, Informative

      So true. Today, I finished rolling out an OLAP/reporting system for a mid-sized mining company, and guess what's under the hood?
      Postgres rocks (or keeps track of them in this case). It works, and it was done 100% free of window functions.

    5. Re:Gotta love it... by dfetter · · Score: 2, Interesting

      You mean the magic Darwen/Date/Pascal relational model? The one nobody has managed to implement despite the 25 years it's been around?

      Maybe it's because the thing can't be made to work, and its limitations (i.e. being equivalent to first-order logic, a limitation not in SQL DBMSs) make it silly even to keep trying.

      --
      What part of "A well regulated militia" do you not understand?
    6. Re:Gotta love it... by rycamor · · Score: 2, Interesting

      You mean the magic Darwen/Date/Pascal relational model? The one nobody has managed to implement despite the 25 years it's been around?

      Ahh yes, the old canard. Actually, several companies and individuals have implemented the relational model MUCH more faithfully than the typical SQL vendor. The problem is not one of difficulty, but rather of popularity and marketing.

      In fact, several solo-developer projects have implemented it on the logical level much better than your typical SQL vendor. The problem is that those guys don't have a) the marketing budget and 20 years of industry buy-in, and b) the developer team to implement all the "enterprisey" features like clustering, failover, etc... And by the way, there is nothing about the "true relational model" that makes those things harder to implement. They are if anything LESS difficult to implement with a true relational DBMS than with an SQL DBMS, which has to handle all kinds of oddities like duplicate rows, position-dependent syntax, pointers, and many other nonsensical rules of SQL.

      I know lots of you database pros out there hate to hear from guys like Date,Darwen and co. but the thing is they are right: the DBMS world has opted for mediocrity and over-complexity. Of course, that's the way it is with most things in life :(.

    7. Re:Gotta love it... by dfetter · · Score: 2, Interesting

      > > You mean the magic Darwen/Date/Pascal relational model? The one nobody has
      > > managed to implement despite the 25 years it's been around?

      > Ahh yes, the old canard. Actually, several companies and individuals have
      > implemented the relational model MUCH more faithfully than the typical SQL
      > vendor.

      Name one, and make sure it's one that's disallowed NULLs completely. Date,
      Darwen and Pascal's fear of recording states of ignorance is ill-founded in
      real-world conditions. Codifying that fear isn't even well-founded in last
      century's mathematical theory. Yes, it's true that multi-value logics are
      just a teensy tad more complicated theoretically than 2VL. That does
      not imply that they're less useful, or that the systems built around
      them are more complicated than the truly wackily byzantine things D, D & P
      suggest as workarounds for not having NULLs.

      > The problem is not one of difficulty, but rather of popularity and
      > marketing.

      Nope. See below.

      > In fact, several solo-developer projects have implemented it on the logical
      > level much better than your typical SQL vendor. The problem is that those
      > guys don't have a) the marketing budget and 20 years of industry buy-in, and
      > b) the developer team to implement all the "enterprisey" features like
      > clustering, failover, etc...

      > And by the way, there is nothing about the "true relational model" that
      > makes those things harder to implement.

      That it's been 25 years and nobody has implemented it, despite
      resources in industry, government, academia and open source, flatly
      contradicts your assertion.

      > They are if anything LESS difficult to implement with a true relational DBMS
      > than with an SQL DBMS, which has to handle all kinds of oddities like
      > duplicate rows, position-dependent syntax, pointers, and many other
      > nonsensical rules of SQL.

      > I know lots of you database pros out there hate to hear from guys like
      > Date,Darwen and co.

      Nonsense. It's not that we don't like to hear from theoreticians. It's that
      we don't want to hear from doctrinaire ideologues like D, D & P, especially
      when they have only "angels dancing on the head of a pin" to show for their
      side. One theoretican whose stuff is actually worth reading is Leonid Libkin
      . There are plenty of others.

      > but the thing is they are right: the DBMS world has opted for mediocrity and
      > over-complexity.

      You know, this is really dumb prima facie. Something that you need to
      have a 130 IQ and a math degree to use even at the most basic level is
      something that's pretty fragile. A *really* well-designed tool is one that a
      person who's not very bright can pick up and use, while not muzzling the
      expression of somebody who is bright and has lots of experience. SQL
      qualifies.

      > Of course, that's the way it is with most things in life :(.

      Oh, puh-lease!

      --
      What part of "A well regulated militia" do you not understand?
    8. Re:Gotta love it... by rycamor · · Score: 2, Interesting

      > > > You mean the magic Darwen/Date/Pascal relational model? The one nobody has
      > > > managed to implement despite the 25 years it's been around?

      > > Ahh yes, the old canard. Actually, several companies and individuals have
      > > implemented the relational model MUCH more faithfully than the typical SQL
      > > vendor.

      > Name one, and make sure it's one that's disallowed NULLs completely. Date,
      > Darwen and Pascal's fear of recording states of ignorance is ill-founded in
      > real-world conditions. Codifying that fear isn't even well-founded in last
      > century's mathematical theory. Yes, it's true that multi-value logics are
      > just a teensy tad more complicated theoretically than 2VL. That does
      > not imply that they're less useful, or that the systems built around
      > them are more complicated than the truly wackily byzantine things D, D & P
      > suggest as workarounds for not having NULLs.

      You're mischaracterizing the argument. I said "MUCH more faithfully". I know there's no perfect implementation, nor will there likely ever be. Name one perfect implementation of the SQL standard. But, there have definitely been *better* implementations, ones that attempt to fit the concepts of the relational model more closely. You know the ones I'm going to talk about: Duro, Rel, Alphora, etc... The fact is very few people care about these, for the same reason that very few people care to be told to eat their vegetables, or in fact to be told there is a better way to do whatever it is they are doing. That doesn't make my argument wrong.

      Meanwhile, I'm not a slavish ideologue about this. I personally don't care about the NULL thing, because I think there are sensible arguments on both sides, and no easy resolution. But, supporting duplicate rows, rowIDs, positional attributes, etc... seem to me such blindingly obvious bad choices. This is without even getting to the more abstract stuff like transitive closure. Of course there are trade-offs in the real world, but why trade off things that are useful to gain things that are not?

      > > The problem is not one of difficulty, but rather of popularity and
      > > marketing.

      > Nope. See below.

      > > In fact, several solo-developer projects have implemented it on the logical
      > > level much better than your typical SQL vendor. The problem is that those
      > > guys don't have a) the marketing budget and 20 years of industry buy-in, and
      > > b) the developer team to implement all the "enterprisey" features like
      > > clustering, failover, etc...

      > > And by the way, there is nothing about the "true relational model" that
      > > makes those things harder to implement.

      > That it's been 25 years and nobody has implemented it, despite
      > resources in industry, government, academia and open source, flatly
      > contradicts your assertion.

      In other words, it can't be done because it hasn't been done? Fallacy. Tell me a logical *reason* why it can't be done.

      BTW, I have a hard time believing that someone with your .sig would think that big government, modern academia, and big business are the standard bearers for logic and the limits of human endeavor ;).

      > > They are if anything LESS difficult to implement with a true relational DBMS
      > > than with an SQL DBMS, which has to handle all kinds of oddities like
      > > duplicate rows, position-dependent syntax, pointers, and many other
      > > nonsensical rules of SQL.

      > > I know lots of you database pros out there hate to hear from guys like
      > > Date,Darwen and co.

      > Nonsense. It's not that we don't like to hear from theoreticians. It's that
      > we don't want to hear from doctrinaire ideologues like D, D & P, especially
      > when they have only "angels dancing on the head of a pin" to show for their
      > side. One theoretic

    9. Re:Gotta love it... by Anonymous Coward · · Score: 2, Insightful

      Critical? CSS is critical for the web? Alternative ways of doing something that's been done forever are critical?

      You fail completely to understand the CONCEPT at work here. 'Critical' means you CANNOT DO SOMETHING WITHOUT IT. You have failed -- by your own admission -- to even state, let alone prove, that anything you're talking about is more than a nice alternative, let alone critical.

      Who the hell modded that insightful? Give me a break. dictionary.reference.com, now this post had better get a +5 informative, because there you will find the TRUE MEANING OF THIS WORD -- if they aren't missing a 'critical' new widget that can efficiently replace the search text box.

      Your statement that DB engines tend to be behind users' "needs" doesn't mean much when a "need" is something "critical," thus definitely not something you should comment on.

    10. Re:Gotta love it... by jadavis · · Score: 2, Interesting
      Name one, and make sure it's one that's disallowed NULLs completely. Date, Darwen and Pascal's fear of recording states of ignorance is ill-founded in real-world conditions. Codifying that fear isn't even well-founded in last


      CJ Date actually tried to generalize the concept of NULLs into "special values" in a domain. He argued that NULLs cause confusion in 3VL because NULL can mean different things. Sometimes it means "unknown", other times it means "not applicable". And in an outer join, it's not clear at all what the value NULL is supposed to represent. At least in my reading of his work, there is nothing precluding you from having a special value called "NULL" and being able to magically add it to an existing domain with simple syntax. He wanted other special values to be allowed, so that NULL was not so ambiguous. Perhaps I misunderstood, I don't have the book nearby.

      I really enjoyed Date's work because he clearly explained points of confusing terminology, and suggested possibly less-confusing approaches.

      SQL is far from perfect. If nothing else just the syntax is bad, and it has a lot of reserved words and key words. But one thing we have to remember is that no pure relational language is appropriate for a database. For instance, relations are unordered, by definition. Yet, it's important for a database system to be able to ORDER BY.

      So, really, I think what we want is a language that facilitates all the relational operations, and at a level above that also allow non-relational operations like ORDER BY.
      --
      Social scientists are inspired by theories; scientists are humbled by facts.
  6. Re:I think you're full of it. by szap · · Score: 5, Informative

    ... I'm also doubting the 23% increase in performance... FWIW, and YMMV, when you get hammered with many concurrent queries, it's much, much faster. At about 100 concurrent hits, about 50% faster: http://tweakers.net/reviews/657/6 Benchmark method here: http://tweakers.net/reviews/646/9

    Yes, it's missing description on how exactly they set up MySQL. MyISAM? innodb? So take it with a grain of salt.
  7. Replication? by Curly · · Score: 5, Informative

    What do PostgreSQL users do for replication? I'm a MySQL admin who would really like to be able to switch to PostgreSQL, but we need to be able to have several slaves hanging off a master, and have everything replicated in as real-time as possible (but asynchronously) to the slaves. I have spent some time looking for how to do this in PostgreSQL but have found each solution lacking. The "most popular free" one, according to the PostgreSQL faq, is "Slony-I", but from what I could find it doesn't replicate schema changes to the slaves. What happens to your replication when the slaves sees an update to a column/table that doesn't exist on the slave? Slony also doesn't replicate "large objects"; I don't know what they are, but as a MySQL admin who has been replicating our databases for many years, I have a hard time imagining adjusting to limitations like these.

    Most of the other options I found were abandonware, undocumented, didn't work with PostgreSQL 8.x, etc. I looked at commercial solutions, but they were similarly a mess. Specifically, here is my survey:

    * pgpool -- Max 2 servers, and they're not really in sync---commands like now() or rand() will be executed independently on the mirrored machines, causing them to have different data.

    * Slony I -- DB schema changes not replicated, nor are "large objects"

    * PGCluster -- Synchronous multi-master. We don't want synchronous, and don't need multi-master. Documentation patchy, didn't appear to be currently maintained.

    * CommandPrompt "Mammoth" -- Documentation "in the works". PostgreSQL 8.0.7. Tables can't use "inheritance". Schema changes not replicated (at least not table creation, not sure about the rest). Only 1 db replicated, not all dbs. Tables must have primary keys. Have to list tables in config file.

    * Bizgres/GreenPlum -- Buzzword-compliant website, but website was broken when I looked for details. The "Community" is inactive---forum is barely used, questions are unanswered.

    * PostgrSQL Replicator -- Poorly documented. Only mentions up to 7.x. "News" is from 2001.

    I'm not ragging on PostgreSQL: I'd really like to be able to migrate to it. I just fear that when replication is done in a third-party fashion, it loses the tight integration with the dbms necessary to make it work truly seamlessly, and that it isn't maintained as well as the core product.

    Perhaps this comment is off-topic, since the post is about a new release of PostgreSQL, not asking for questions about its individual features. But this is the one feature I look for in each new release, and the fact that I couldn't find any good solution makes me wonder if it's because I missed the one great one that people actually use.

    1. Re:Replication? by nyamada · · Score: 5, Informative

      We use Slony. It is a delicate beast, but works quite well if you take time to read the limited documentation. You can use a kludge to keep schema changes in line: if you execute all schema changes through EXECUTE SCRIPT statements on the master server, all the slave nodes will get the schema changes. As for large object support, you're right; it is a problem.

      PITR recovery and log replication may work in 8.2; but I agree with the posters who complain that there is no easy replication for postgresql.

    2. Re:Replication? by oGMo · · Score: 5, Informative
      Slony also doesn't replicate "large objects"; I don't know what they are,

      You're a DBA and you don't know what large objects are?

      but as a MySQL admin

      Oh, right. Not really a DBA

      Let's see:

      • "pgpool -- Max 2 servers, and they're not really in sync---commands like now() or rand() will be executed independently on the mirrored machines, causing them to have different data." One: keep your clocks in sync. Two: how can you tell if rand() isn't "in sync"? You run it on each server and you get different results? You know what rand() means, right?
      • "Slony I -- DB schema changes not replicated, nor are "large objects"." One: how often does your schema change, and do you really need automatic replication? Two: If you don't even know what large objects are, why do you have a problem with this?
      • "PGCluster -- Synchronous multi-master. We don't want synchronous, and don't need multi-master. Documentation patchy, didn't appear to be currently maintained." So don't use it.
      • "CommandPrompt "Mammoth" -- Documentation "in the works". PostgreSQL 8.0.7. Tables can't use "inheritance". Schema changes not replicated (at least not table creation, not sure about the rest). Only 1 db replicated, not all dbs. Tables must have primary keys. Have to list tables in config file." One: MySQL doesn't have inheritence, you're not losing anything. Two: see above about oft-changing schemas. (Otherwise, this sounds like a very high-level replication of tables, probably using simple scripts or triggers. If it doesn't suit, don't use.)

      Others listed are older and not relevant.

      I just fear that when replication is done in a third-party fashion, it loses the tight integration with the dbms necessary to make it work truly seamlessly, and that it isn't maintained as well as the core product.

      Funny, I fear a database that has only rudimentary data integrity checks. Here's the real question for you: Why do you need replication? It doesn't magically work the way you think it does, even in MySQL (see under "Problems Not Solved"). Quote: "MySQL's replication isn't the ideal vehicle for transmitting real-time or nearly real-time data". Every replicated database can lose synchronization and no one can honestly guarantee otherwise. Even Oracle.

      Slony-I will pretty much give you what you already have. My guess is that you don't really need replication at all; hot standby servers will suffice in case of failure. The rest comes down to query tuning or faster hardware (or a database that does faster nontrivial queries, like PostgreSQL). (And don't complain about costs if you're already buying servers for replication. If you have real data that's making you money here, hardware is cheap; if you don't, you probably don't really need any of this to begin with.) If you need true realtime synchronization, replication is not an option.

      Finally, while I'm not a MySQL fan, since you don't seem to give any real reason for wanting to migrate, why bother? You already have a working system and hardware investment. If it ain't broke, don't fix it. If it comes time to upgrade down the line, and the features justify the move, then maybe consider it.

      In summary: meh.

      --

      Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

    3. Re:Replication? by jadavis · · Score: 5, Informative

      "Slony-I", but from what I could find it doesn't replicate schema changes to the slaves

      That's a feature, not a bug. That means you can have DB1 be master for Table1 and slave (subscriber) for Table2, and DB2 be master for Table2 and slave (subscriber) for Table1. You can also chain subscriptions to make a hierarchy, which allows for very good scalability.

      Oh, and if you want to replicate schema changes, use the Slony-I "execute script" command. It will lock down all the tables as necessary and synchronize the changes so that nothing gets out of order. Slony-I keeps everything transactionally consistent.

      Slony also doesn't replicate "large objects"

      Ignore that. A large object is basically an interface to a file over the PostgreSQL protocol. You don't need them to efficiently store large amounts of data. Put a GB into a text type if you want (or bytea type for binary data).

      I encourage you to take a closer look at Slony-I. It's what the .org and .info registries use. It's good software. It's also great for an upgrade path when you have a lot of data and don't want to be down for a dump/reload.

      --
      Social scientists are inspired by theories; scientists are humbled by facts.
    4. Re:Replication? by Bacon+Bits · · Score: 2, Informative

      Binary Large OBjects (BLOBs) are table columns with individual entries are larger than several thousand bytes (typically, those that span more than one page). BLOBs are part of the ANSI SQL standard, AFAIK, which is why it is surprising you'd never heard of them. They differ from MySQL's 'blob' datatype, which is just a big TEXT field. The design of the database (PostgreSQL, DB2, Oracle, T-SQL/MS SQL, etc.) prevents such objects from being stored in the same method that other objects are stored, either because the SQL standard defines maximum sizes for fields or because the physical structure of the database makes it impractical or unreasonable. In the case of PostgreSQL, the objects are internally stored in different tables with different physical files, although that is not seen by the DB developer at all. They're typically used for storing pictures and documents in the DBMS when you cannot or do not wish to use the file system instead, or for literally storing large binary data. it also supports data streaming, AFAIK.

      Table inheritance is like a reverse VIEW, and was defined in SQL:1999. Given table A and table B, let's say table B inherits from table A. Table B will then have all the fields from table A plus it's own. PostgreSQL also supports multiple inheritance. It's standard SQL, but it's very weird, IMO. It has some pretty specific uses, like being able to essentially have indexed VIEWs and such, or making a permanent JOINed table.
      http://www.postgresql.org/docs/8.2/interactive/ddl -inherit.html

      As far as schema changes, the argument goes like this: replication is only necessary on productions systems. Schema on production systems should be static. If you're changing your schema, you probably did something wrong.

      --
      The road to tyranny has always been paved with claims of necessity.
  8. Awesome by tcopeland · · Score: 2, Interesting

    > 8.2 is positioned as a performance release.

    We've only got a small database (17 million records or so), and PostgreSQL 8.1 has been handling it fine. But I'm still looking forward to seeing how 8.2 improves things.

    And we're using it in another production system, too, which is going to get pretty big (I hope). Lively times!

  9. Way to go PostgreSQL by greengarden · · Score: 3, Informative

    I worked a lot with Oracle, and then joined an open source project that started using PostgreSQL. The project is a billing system, so is data intensive. What a great little database PostgreSQL is. And that was back in th 7.x version.
    Actually, jBilling http://www.jbilling.com/ now runs in many databases but still PostgreSQL is holding its ground against Oracle and other heavyweights. Those extra features that Oracle says you need and charges you an arm and a leg, are really not needed in most applications.

    Cheers,

    Paul C.
    Sr Developer
    http://www.jbilling.com/ - The Open Source Enterprise Billing System

  10. Reporting by mccoma · · Score: 2, Informative
    PostgreSQL it is still missing the SQL:2003 Window Functions that are critical in business reporting, so Oracle and DB2 will still win out for OLAP/data warehouse applications.

    Apparently the submitter has not been visited by any of the plethora of reporting tools vendors who will tell you (without you asking) how crappy the built-in stuff is and how great their stuff is.

    Also, given the text, isn't Oracle and DB2 also missing those critical SQL:2003 Window Functions?

  11. Re:I think you're full of it. by innosent · · Score: 3, Informative

    actually, they used innodb, and yes, Postgres scales much better than MySQL, but MySQL is a little more streamlined for low-volume jobs.

    --
    --That's the point of being root, you can do anything you want, even if it's stupid.
  12. One thing you cant do in PostgreSQL ... by euice · · Score: 2, Funny

    ... is create a smallint index on an int column ;-)

  13. Re:They moved to FreeBSD from Linux. by shani · · Score: 3, Interesting

    It sounds like you just don't know how to deal with FreeBSD. That would explain the poor performance you experienced, and how it is completely contrary to what we've found.

    For the heavest application at my last job, the load pattern was very query heavy, although the application stored intermediate results in temporary tables. This application is heavily threaded, creating two threads per user connection, plus the MySQL thread, so we're talking like 150 threads created & destroyed per second.

    Our original platform was Solaris, and performance was excellent (well, excellent considering the dog-slow CPUs that Sun makes).

    We eventually migrated to Linux, but this was possible only after the new thread libraries (well, new at the time). Performance then was quite good.

    We found MySQL under FreeBSD basically unusable under heavy loads.

    We never tweaked any of the systems. We did try a few thread libraries under FreeBSD, but they all sucked.

  14. Re:--more-- by mikaelhg · · Score: 2, Informative

    ... what do PG users use for full text searching?

    The same as everybody else who stores text in a relational database. Use external indexing, such as Lucene, which actually has some features you'd want for non-trivial full text indexing and searching, such as stemming.

  15. Re:Real Men don't use Window Functions by larry+bagina · · Score: 2, Interesting
    MySQL has made those claims:

    Earlier versions of the MySQL manual included claims that certain missing features (considered essential for SQL-compliant RDBMSs) were useless or even harmful, and that users were better off without them. One section, entitled "Reasons NOT to use Foreign Keys constraints" [sic], advised users that relational-integrity checking was difficult to use and complicated a database application, and that its only useful purpose was to allow client software to diagram the relationships between database tables. [13] Another section claimed that a DBMS lacking transactions can provide data-integrity assurances as reliably as one supporting transactions--conflating the issue of transactional integrity with that of saving data when the database server loses power. [14] Since these claims contradicted basic principles of relational database design, they caused MySQL to be ridiculed by some database experts. Regardless of whether they were right or not, these claims are omitted in more recent versions of the manual. MySQL today allows some support for previously-dismissed features of relational integrity checking and transactions.

    (From Wikipedia and archived MySQL manuals)

    --
    Do you even lift?

    These aren't the 'roids you're looking for.