Jul 5 2006

Firebird 2.0 RC3 Released

Firebird 2 Release Candidate 3 has just been released, and you can now download binaries for major platforms here. For Windows the FB 2 setup exe comes with both classic and super-server.

We actually have been deploying only super-servers, on beefy boxes with 2x dual core with 2x HT each (8x processing unit in total), because of our lack of experience in classic servers. Well, those server boxes do run other applications so you don’t get CPUs sitting there doing nothing, but I still wonder which one will be more suitable — one single super-server with shared page cache pool that can only utilise one CPU core, or multiple classic server instances that have their own page cache. However we do have up to 160 concurrent connections to the database on some of our boxes. Not sure how Win2k3 will perform with this kind of process count. Damn! Wish we can deploy them onto Linux boxes.

Well, we know that Firebird 3.0 will solve the super-server concurrency issue. When it that coming again?

Now onto Firebird 2 — it has not stopped to impress me with its improvement over FB 1.5. I was helping M resolving one slow query this afternoon. It looks something like this:

SELECT rows FROM table1 t1
 INNER JOIN table2 t2 ON t1.id=t2.id
 WHERE t1.id IN (v1, v2, v3, ..., vn)

Both table1 and table2 are large tables — both around 250,000 rows each. In Firebird 1.5, it will do a NATURAL (a sequential search basically) over the smaller of table1 or table2 and use the index on id column for join, even when n is small — like 20. So in order to return 20 rows of data, Firebird has to scan through at least 250,000 rows, which totally kills the performance. Actually it stalls the FB a couple of times this week on a production site to a point which we need to restart FB server to bring it back to sanity.

Whereas in Firebird 2, it will try to use the index for v1, v2, …, vn instead, if n is small (seems to be around 130 mark). It is much faster when the table size is large. Yeah! Problem solved by just upgrading the DB.

Except all our production servers (except one) still use FB 1.5, and probably will not switch until FB 2 final is out. Besides upgrading 40+ DB servers plus converting 200+ DB to 2.0 ODS will be painful. Also it won’t work all the time for us, as our n can be up to a few thousand. Problem of pulling data out from one SQL Server, and try to use it to perform queries on another DB…

Of course we can also build a temporarily tables and do a inner join. Now I just need to work out how to make thousands of temporary insertion fast

6 Comments

  1. Alistair on 15 Jul 2006 at 11:05 pm #

    Does Firebird provide a memory table like Oracle?

  2. Sokel on 10 Aug 2006 at 7:36 pm #

    Would anyone tell me if Firebird can handle a population census database up to 500 million people. And what would be its advantages on Oracle 10g?

  3. Scott Yang on 10 Aug 2006 at 8:46 pm #

    @Alistair — no, there is no table type in Firebird, nor can you make memory table. Even the global temporary table won’t be available until Firebird 3+.

    However, Firebird was designed to be DBA free, where there really is little you can tune — it’ll try to figure out the best way to do things. It is easy for the developers, but of course sometimes you wish you can force it make certain decisions… But so far it has been working great in our system.

    @Sokel — sorry I have no experience in deploying Firebird for database of that magnitude. You might wish to contact the IBPhoenix guys for suggestions.

  4. Steve on 14 Nov 2006 at 8:21 am #

    Hey, with all of those processors you would probably be better off running Classic server… However, we run everything under linux, so I am not sure about doing anything on Windows.

  5. Scott Yang on 14 Nov 2006 at 9:09 am #

    Classic sux under Windows. I wish we could run our DB server under Linux, as our super server is already breaching the 2Gb process limit and Linux’s 64bit support for FB 2 is much better tested (all our devel boxes are running Linux).

    Too bad that we are a Linux shop bought by a larger company that is a Windows shop :(

  6. Pingback: Firebird News » blog of the day about firebird rc3

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>