Slashdot Mirror


PostgreSQL 8.0 Enters Beta

gavinroy writes "As announced in pgsql-announce, PostgreSQL 8.0 Beta is now available. New features include native win32 support, Point in Time Recovery, Tablespaces, and much more! here is the beta history if you want more information."

29 of 368 comments (clear)

  1. Re:I recommend Mysql users to take a look at PG by leperkuhn · · Score: 2, Interesting

    Except ready to go full text searching, the ONLY thing keeping me on mysql.

    --
    http://www.rustyrazorblade.com
  2. Can it Compete with Oracle or DB2? by Greyfox · · Score: 4, Interesting
    I was interviewing with a company a while back that was planning to move from an Oracle based set-up to a Postgres based one. They were pushing enough data around daily that they were having to redesign their collector software to be more efficient, so I was somewhat concerned that Postgres wouldn't give them the performance they needed, but I haven't really seen enough of it to be able to comment.

    On the other hand, I've seen both Oracle and DB2 corrupt indexes and database table data in various circumstances (Usually the failing of a DBA in some capacity or other.) I'd be curious to see how the various databases stack up against each other without the hype that most of the parties that publish such studies usually bring to the table.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:Can it Compete with Oracle or DB2? by Tailhook · · Score: 2, Interesting

      In my 8 years as an Oracle DBA I don't think i've ever seen a corrupt index. Saying that, I don't even know how you could force a index to get corrupted so I don't think were seeing all the info here.

      I have. As the original poster said, there is usually a DBA involved.

      You want to see Oracle corrupt something? Easy. Just install a half dozen oracle homes, from 8.0.6 through 9i, use any random version of sqlplus, sqldba that happens to be in the path to do things like create new tablespaces on whatever instance you happen to need to work on. Screw around with every init parameter there is, including undocumented parameters you read about on forums. Bounce the database a lot, and if it balks just kill the processes. Oh yeah, distributed transactions are fun too; wire up some materialized views over a international VPN connection and ignore hung transactions for a long time. Be sure to bounce the instance (using the aforementioned KILL -9) when Oracle tries to apply the transactions.

      I guarantee you will witness a corrupt index in short order. If you're lucky that's all you'll see. It's a credit to Oracle that their product can withstand such ineptitude and still function.

      Like you, I've never been a party to corrupting something in an Oracle instance. I have seen it, however, and I know the fools involved. That they only managed to corrupt a couple blocks and not eradicate entire tablespaces is only good fortune. Either way, 99% of "corrupt" whatever is DBA induced; Oracle is by non-amateurs, for non-amateurs and does not corrupt things willy nilly.

      --
      Maw! Fire up the karma burner!
    2. Re:Can it Compete with Oracle or DB2? by platypus · · Score: 2, Interesting

      And you know what? If people would license Oracle only for Mission Critical Apps and large DBs, Oracle would be bankrupt tomorrow.
      At least if I extrapolate what I'm seeing in the enterprise, Oracle's total revenue would go down 80%. That's why they were already FUDing around in 2002 when the decision about the .org domains was made (hardly something which would justify paying $$$ to Oracle).

    3. Re:Can it Compete with Oracle or DB2? by Anonymous Coward · · Score: 3, Interesting

      This is the fakest answer in all of IT.

      We had problems with MS IIS servers at a big financial services company - did they help us? No
      Did we have the premium "MS fucked us so hard, we got a plaque for it" service/support contract? Yes.
      Did we sue them? No fucking way.

      Has any major software company ever been sued over the bugs or failures or problems caused by their software?

      If it has happened, it is nowhere near the rate of problems that their software has caused.

      I'd like to slap the shit out of the next idiot IT manager I hear say this kind of crap - we can't use that, we need to have someone we can sue...

      Yeah, right except what really happens is that after their crappy software doesn't function the way it was promised, I get to work a holiday weekend to fix it while you golf with the assholes who sold it to us.
      Same goes for EDS, Accent>ure, KPMG and the rest of those money holes. Gore (as in Gore-tex) was the only one who had the guts to say what every corporate IT slave knows - the emperors of the corporate systems world have no clothes

  3. Re:I recommend Mysql users to take a look at PG by junkymailbox · · Score: 2, Interesting

    Is database replication and fail over working yet?

  4. Native Win support - awesome by Stone316 · · Score: 5, Interesting

    I think this was a major stumbling block for postgreSQL's adoption. I'd love to use it here at work for some small projects but unfortunately were getting more and more windows servers. PITR recovery is a must for any production database these days. Maybe there are some 3rd party packages but I don't think mysql supports this yet. This is great news and I hope it spurs a new round of adoption for pgsql!

    --
    "Thanks to the remote control I have the attention span of a gerbil."
  5. Windows support by Anonymous Coward · · Score: 5, Interesting

    I think Windows support is the only reason MySQL is so popular. PostgreSQL has always been ahead of MySQL in terms of everything but speed. But everybody is familiar with MySQL because, when you want to pick something up, you pick the one that will work with your system, and most people are on Windows.

    Up until this point, you have had to install hundreds of MB of cygwin to get PostgreSQL to work on Windows. I think it's a little late to usurp MySQL's market share, especially as MySQL is now entrenched in the cheap web hosting market, but at least PostgreSQL might get the respect it deserves.

  6. what about distributed transactions? by RelliK · · Score: 2, Interesting

    As far as I'm concerned, the only truly missing feature is distributed transactions. Are there any plans to add them any time soon?

    --
    ___
    If you think big enough, you'll never have to do it.
    1. Re:what about distributed transactions? by davegaramond · · Score: 2, Interesting

      The way I understand it, someone has been maintaining a 2PC patch (perhaps even since the 7.3.x days?) However, there seems to be little interest in the patch. It didn't get reviewed for long. And finally, when it's about to be integrated in the later phase of going to 8.0, the nested transaction patch got in. This conflicts heavily with 2PC. The 2PC patch maintainer didn't have time to adjust the patch, and so 2PC didn't make it to 8.0. Instead, nested transaction does.

      2PC will probably be integrated in 8.1?

      So if you really need 2PC, join the pgsql-hackers mailing list and test/comment on the 2PC patch. More requested features will get in first. That's the way it works.

  7. Some nice performance enhancements by grunt107 · · Score: 4, Interesting

    The cross-datatype comparison indexing is very important (ex. '1' = 1), as well as index usage on OR clauses. Both of these before would cause full table scans, which is very costly on VLDBs (Very Large DataBases).
    The improvement to the VACUUM I/O processor is important for Postgre to be used on a multi-app server. The 'play nice' feature will allow one server to house the DB AND web servers (albeit at a performance hit to the DB processes).
    Overall, a nice improvement.

  8. Thank you Fujitsu And Afilias. by ron_ivi · · Score: 4, Interesting

    I just wanted to say thanks to Fujitsu for helping pay for this

    Fujitsu foots the bill for new PostgreSQL database features
    Thursday July 01, 2004 (07:04 AM GMT)
    ...
    Berkus described the new Fujitsu-formed features as follows:

    * Tablespaces is a means of partitioning large amounts of data easily and efficiently on separate storage devices, a key requirement for maintaining PostgreSQL's performance on large databases in the hundreds of gigabytes, and terabyte range;
    * Nested Transactions allows application developers a very granular level of control over database commits and rollbacks, which is particularly significant for maintaining data integrity and porting applications from other database platforms;
    * Robust support for stored procedures in Java that exceeds the goals of the SQLJ specification in the ANSI SQL99 standard.
    And thanks to Afilias (the guys who run the .org domain) - from the same article:
    More recently, .org and .info domain registry company Afilias has sponsored developer Jan Wieck to work full time on developing a new, enterprise-class replication system for PostgreSQL called Slony-I, to be presented next month at OSCON in Portland, Ore.
    1. Re:Thank you Fujitsu And Afilias. by killjoe · · Score: 2, Interesting

      DOes anybody know if the new replication will support merge and multi-master replications. Even ring replication a-la mysql would be better then one way master-slave replication.

      --
      evil is as evil does
    2. Re:Thank you Fujitsu And Afilias. by ttfkam · · Score: 2, Interesting

      No more than Perl and Tcl are prerequisites. As with all programming language support in PostgreSQL, you compile what you want in and exclude what you don't want.

      Calm down. Breathe.

      --

      - I don't need to go outside, my CRT tan'll do me just fine.
    3. Re:Thank you Fujitsu And Afilias. by Earlybird · · Score: 3, Interesting
      • More recently, .org and .info domain registry company Afilias has sponsored developer Jan Wieck to work full time on developing a new, enterprise-class replication system for PostgreSQL called Slony-I, to be presented next month at OSCON in Portland, Ore.
      Except Slony-I is a single-master/multiple-slave replication system -- hardly "enterprise-class".

      What's slightly noteworthy about Slony is that it has "switchover" support. If the master fails, one of the slaves become the master.

      Of course, since Slony's replication is asynchronous, it means that at the point of switchover, slaves might not have received all pending changes, thus becoming out of sync with the master. Unfortunately, Slony doesn't really address this problem.

      The design overview is useful reading, if rather confusing; the writer's first language is probably not English.

    4. Re:Thank you Fujitsu And Afilias. by boneshintai · · Score: 3, Interesting

      Strongly disagree.

      The PostgreSQL website is easy to navigate and easy on the eyes. Links to anything most users will need -- downloads, docs, and search -- are right at the top of every page.

      The MySQL website uses microfonts, and good luck finding documentation without resorting to google site:mysql.com; there's links to it on some pages and not others, and most notably not on the front page. The MySQL website is, apparently, trying to be oracle.com, only worse.

      The difference is pretty simple: The postgresql developers are trying to write a database server. Selling it is not their concern, nor is marketing it to the world: they let others (mostly, their users) do that while they focus on development. MySQL, on the other hand, is a business: they need customers to survive, and sometimes the technology takes a back seat to the business side of things.

  9. Re:I recommend Mysql users to take a look at PG by Svennig · · Score: 5, Interesting
    Okay, I'll bite

    Stored Procedures. They arent functions. Functions are different. Functions should be called inline, from within SQL statements. There should be a difference.

    When looking towards migrating to an OSS database from MS SQL Server I looked into how easy it was to use the postgres stored procedure/functions/things. I couldn't find any equivalent of returing a resultset. In MS SQL you use:

    CREATE PROCEDURE name AS select * from test

    The only way that I could find to do that in postgres was:

    1. Return a cursor reference, in which case throuch JDBC you need to obtain this horrid postgres specific class from the driver.
    2. Return a set of results (or was it records, my mind fails me), but I couldn't get this to work
    3. Return a set of created types, but this doesnt work well for dynamic queries and makes maintainance a headache - you'd end up defining hundreds of types!
    4. So it seems that we're stuck with MS SQL server.

      If someone DOES know how to do this is a non-evil manner, please tell me! Were planning on doing an upgrade, and I'd rather not have to fork out the money for SQL Server licences etc...

  10. replication is not a failover solution by RelliK · · Score: 5, Interesting

    PostgreSQL supports replication BUT replication is absolutely useless as a failover mechanism because it is asynchronous. That is, when you commit a transaction, you cannnot be sure if/when it gets propagated to the slaves. For true failover you need distributed transactions. Neither MySQL nor PostgreSQL support them, but curiously, Firebird does.

    --
    ___
    If you think big enough, you'll never have to do it.
  11. Re:I recommend Mysql users to take a look at PG by Spoke · · Score: 2, Interesting

    Sweet, replication was the main thing that MySQL supported and was easy to setup that PostgreSQL was lacking.

    Now that PostgresQL has got good Open Source replication available, I expect to see a lot more people migrate to PostgreSQL. I'll be testing out PostgreSQL + Slony shortly.

  12. Re:I recommend Mysql users to take a look at PG by Anonymous Coward · · Score: 1, Interesting

    While PG has more features, don't forget that db adoption has more to do with the broadness of adoption in the community, with 3rd parties (ie. backup, BI, monitoring, etc), and momentum. We are a big company and our experience has been that when we ask MySQL about needing support from XYZ vendor, they return with a timeframe or an actual announcement from that vendor==reduced risk. They get business, they get IT. We haven't been able get that with PG.

    With their 5.0 version they cure the lack of stored proc's, views, triggers. Plus native windows (although we aren't a big win shop). We looked at PG a good deal but ultimately it was too risky from a business perspective, not from a feature perspective, but if we need the features we stay with Oracle.

  13. P.I.T.R by blooba · · Score: 3, Interesting
    Point-In-Time Recovery is extremely important, and was the one major factor that prevented me from seriously considering PostgreSQL in a production environment. However, please bear in mind that such a feature requires extensive testing, i.e., crashing your db in every conceivable way, and then recovering it quickly AND consistently (in consistent mode.) So I will still wait and see about this feature.

    Tablespaces are also a key feature. The nicest thing about tablespaces is: each schema can have its own tablespace. This makes maintenance much, much easier, allowing you to isolate the data for each of multiple applications or developers. You can also use it to isolate mission-critical data within the same schema, which in many cases can keep your app running, even if you lose a non-critical portion of your database.

    Savepoints are nice, but I've never had to use them. And altering column data types is nifty, but not really useful in the real world.

    Btw, does PostgreSQL have row-level locking yet?

  14. DB2 - solid and proven by Anonymous Coward · · Score: 1, Interesting

    Heh. The funny thing is, I work at a Big Blue shop (they even buy IBM desktops). I've made multiple versions of DB2 shit themselves doing relatively benign things (a C udf, running fenced, for example, caused a 14 partition 8.1 DB2 warehouse on AIX 5.2 to spontaneously croak, all because I declared a return variable as varchar for bit data and treated it like a standard varchar; still no idea why, they never closed the PMR).

    Once I had a db2 database here that would crash when you ran a backup (7.0 unpatched; it was a little neglected).

    It's a great db, and a workhorse, but it's not rock solid. We find issues here all the time; even flakiness in the vaunted db2 query optimizer.

  15. Re:not yet on par with MySQL by Guillermito · · Score: 2, Interesting
    But what counts at the end of the day is, that MySQL is far more user-friendly and people would have a hard time to migrate to Postgres

    It depends on which user you are talking about.

    A database system has many users. Among them, database administrators and programmers. Programmers' goal is to hack applications as easily and quickly as possible. Database administrators' goal is to make sure the database keeps its integrity (i.e. the data stored there is correct)

    I would say that PostgreSQL is more friendly towards database administrators and Mysql is more friendly towards programmers. And, no, you can't have a DBMS which makes both happy: there are opposing roles.

    IMO what counts at the end of the day (I mean, from a business point of view) is that the organization as a whole can trust its data, and not if a hacker wrote 50 or 100 fewer lines of code.

    Of course, if you are talking about a situation in wich the same person is the database administrator *and* the only programmer, well... I think MySQL is OK for your league.

  16. Re:not yet on par with MySQL by Bromrrrrr · · Score: 4, Interesting

    ..Mysql is more friendly towards programmers.

    Are you kidding me? If you like to do everything in your app that _should_ have been handled by the DBMS then yeah, sure :)....MySQL is more friendly to the programmer who hasn't got a clue about databases maybe, if you know what a real DBMS can do it becomes a pain in the ass to work with.

    you can't have a DBMS which makes both happy: there are opposing roles.

    Well, I don't think I'd agree with that, but if anything I'd say MySQL is the easier one to administer. Postgres needs a lot more thought with regards to tuning and user management.

    Especially user management in Postgres is, in my view, horrible and a lot better in MySQL. Well, can't have it all I guess :) I'd still take Postges over MySQL any day.

    --

    What a rotten party, have we run out of beer or something?
  17. But does it have finer grained locking by Dukhat · · Score: 2, Interesting

    The biggest problem that I face with Postgres 7.4 is that its referential integrity's locks block INSERTS and UPDATES that should go through fine.

    For example, set up these two tables:
    CREATE TABLE car_type (
    id serial primary key,
    name varchar(20)
    );

    CREATE TABLE car (
    id serial primary key,
    car_type_id integer references car_type
    );

    Now, try having two different connections insert with the same foreign key value (this field does not have a unique constraint):

    Connection1:
    BEGIN; INSERT INTO car (car_type_id) values(1);

    Connection2:
    BEGIN; INSERT INTO car (car_type_id) values(1);

    You will see that the second transaction is waiting for the first transaction to commit. That is just rediculous and is one reason that Postgres is still small time.

  18. Re:I recommend Mysql users to take a look at PG by danharan · · Score: 2, Interesting
    If anything pissed you off with MySQL
    Heh... you're kidding, right?

    There are enough MySQL gotchas to drive anyone used to Oracle up the psych ward walls.

    Every web developer I know keeps raving about the speed of MySQL... when I show them my database schema, it's usually the first time they've seen a 58 table database. It seems huge and unmanageable if you're used to 1-5 tables, and it most certainly isn't easy without triggers, stored procedures and foreign keys or any of the more complex functions and queries you need when dealing with normalized data.

    MySQL really is a great little database for simple read-intensive applications. But it sure as hell feels like a toy to me.
    --
    Information: "I want to be anthropomorphized"
  19. Windows Native Support by adolfojp · · Score: 5, Interesting

    I believe that native windows support for PostgreSQL is essential, not necesarily to deploy apps in that enviroment but to test and develop them. When I started using MySQL on my windows box, I had also looked into PostgreSQL. The lack of windows binaries for PostgreSQL made MySQL the default choice for me. On features alone PostgreSQL wins hand down. Also, in my experience, the faster performance of MySQL over PostgreSQL dissapears when I use InnoDB tables for transactional data processing. The doors to PostgreSQL have been open to many developers stuck in the windows world. Perhaps I will try PostgreSQL for my ASP.NET apps in addition to my trusty MySQL.

    Cheers
    Adolfo

  20. Re:[grumble, grumble, grumble] by davegaramond · · Score: 2, Interesting

    There's ltree in contrib/. It's pretty much the same thing, but with different syntax.

  21. Re:Maybe because MySQL has fewer gotchas? by jdoeii · · Score: 2, Interesting

    IMO, it has a "very steep" learning curve because so many people have to unlearn all the bad habbits from MySQL

    Read your next statement Sadly, select count(*) is still slow and don't imagine that changing any time soon. Is using count(*) a bad MySQL habbit? PgSQL is difficult because it has unusual problems, not expected from experience with Oracle/MSSQL/MySQQL.

    As for aggregates, I know PgSQL functions can't use indexes by design. But addressing the most common cases of COUNT/MIN/MAX/SUM and maybe AVG might be possible. For example, MIN/MAX queries can be rewritten with ORDER/LIMIT 1. It's really unexpected for someone new to PgSQL (but with a lot of experince with other databases) that COUNT(*) on large tables is unuseable AND there is no work around.

    Assuming you had it configured properly, to correctly reuse all of your pages, you may still needed to run vacuum more than once per day.

    One quite capable DB admin worked on it full time for about two weeks, another one consulted. They tried everything imaginable. Still, running vacuum slowed selects by 5-10 times. That was not acceptable during the day, thus we could run it only at night. And that was not often enough.

    Two experienced people spent two weeks and failed to configure it for sufficient performance. Yes, you can say they were not experienced enough. I can also say that the configuration was overly difficult.

    I assume you mean as a non-dedicated server. Also, assuming you're running on Linux

    I mean a dedicated server, as in nothing but PgSQL 7.4 on a FreeBSD 4.9. Say, the DB is 1GB, server has 2GB RAM. PgSQL should just suck everything in RAM and run read queries directly from there. Why can't it do it? Or maybe it can, but how to configure it in such a way is really non-obvious.