Fog Creek Software
Discussion Board




Firebird 1.5 Final Release

Hey, there were lots of release candidates to reach this final release, so it better work well ! ;-)

http://firebird.sourceforge.net/

Some strong points about it:

1) It is totally free, so you can embedded it with your apps and distribute it freely.

2) It performs sometimes 30% faster than Interbase. I first saw that number from a German developer that said that one big press/printer (I don't recall) from Germany had migrated from Interbase to Firebird after some benchmarks showed such an improvement. And I saw it too in some tests done by me.

3) Linux and Windows versions.

Etc.

It may not be a match to MS SQL Server or Oracle or... But it certainly is robust enough to be used in production systems.

Dewd
Saturday, February 21, 2004

Precisely, any news of the embedded version, ie. the one that comes in a single DLL with no server required? When I checked the solutions last summer, it was just barely in beta, and since MySQL wouldn't work from VB, I settled from SQLite.

Fred
Saturday, February 21, 2004

I think this
http://prdownloads.sourceforge.net/firebird/Firebird-1.5.0.4290_embed_win32.zip?download
might be of interest to you ! :)

Dewd
Saturday, February 21, 2004

How does it compare to Jet?

Joel Spolsky
Fog Creek Software
Saturday, February 21, 2004

To Jet?  Well, first of all, it's a true database server not just a fileserver database.  It will obviously scale much better than Jet, both in size of db and in number of users.

And feature wise it's got views, stored procedures, triggers.  Some of it is implemented in very nifty ways.

Herbert Sitz
Sunday, February 22, 2004

I don't know Joel.

But "InterBase and Microsoft SQL Server, a Technical Comparison", by Bill Todd - http://www.borland.com/products/white_papers/pdf/ib_vs_SQLServer.pdf - Has some info even on MSDE.

Dewd
Sunday, February 22, 2004

To Jet 2? I would rank Interbase as a middle ground database between Jet and SQL-Server. It is a real client/server style database but without many of the overheads required by SQL-Server, Oracle etc. Very easy to install. And because it is not as common as Jet or SQL-Server there is less chance of someone elses install killing your app.

Craig
Monday, February 23, 2004

"any news of the embedded version, ie. the one that comes in a single DLL with no server required?"

"Well, first of all, it's a true database server not just a fileserver database. "

How do these two statements mash?

Just me (Sir to you)
Monday, February 23, 2004

Sir -- The distinction between a true "database server" and a fileserving database is a crucial one.

A true "database server" is a program, usually run as a service, that operates as a gateway to the data.  All SQL requests are sent to the database server process by "clients" and it is that server process that actually accesses the data.  Because the server process is almost always located on the same machine as the data, all direct access to the data is local.  A client on a remote machine can send a SQL request, but that request actually goes to the server, which then gets the data and sends back the results (even if it had to examine millions of records to find only the two that were responsive to the client's request).

A fileserver database is a database in which there is no central process that "serves" requests to the database.  Each client has direct access to the file(s) that hold the data.  This has important implications for scalability:  for a remote client to process some SQL statements it must bring huge amounts of data back to be processed by the cpu on the remote machine, even if the end result is that it tranfers say, 1,000,000 records worth of data over the network to find the 10 records that meet the SQL Select criteria.    (An exaggeration to make a point, but in general there will be much more network traffic and slowdown with a fileserver database as opposed to when a true database server is used.)  There are other issues regarding likelihood of file corruption when you've got say, 20 clients on remote machines all opening the same file on a fileserver, as opposed to having a single local database server process that has exclusive access to the data file, as well as huge issues regarding concurrency and record locking that are problematic for fileserver databases when there is no central server process to manage these.

Some of these differences may not be as drastic when Jet is being used in a web application environment, where the only machine directly accessing the data is the webserver itself. but in general the fileserving databases are far less scalable and far less robust than true database server setups.

Herbert Sitz
Monday, February 23, 2004

Sir -- I apologize, I should have read your entire message.

Interesting question, not sure about answer to your question but here's a shot:

I believe the embedded version of Firebird is a dll that could operates as a server, but it's limited in that connections to it can only be opened from a single program on the desktop where it's installed.  The statement "without having to have a server" comes from the fact that with the embedded version you don't start the server as a separate process from the main client program; it's still there but it gets dynamically linked in.  I guess maybe you could view it as a crippled server that is somewhat like a fileserver database that can only be accessed from a single process on the local machine.  It would still have other benefits of true servers over fileservers, though, like for example much improved resistance to data corruption. 

I think the two statements mesh by recognizing that a fileserver with exclusively local data access is in some respects similar to a true database server, but only in some respects.  And also that when you're using Jet as backend for web database where all data access will be local, you don't have to worry so much about fact that Jet is only a fileserver database.

Herbert Sitz
Monday, February 23, 2004

So from that I think Joel is right in comparing the embedded version to Jet.

Just me (Sir to you)
Monday, February 23, 2004

Sir  -- I think that's right; if Joel is using Jet in a web application environment (FogBuz?) then I think it might make sense to compare the two. 

But embedded firebird is still a true database server (even if crippled to handle only connections from a single process) and it will have advantages over Jet that stem from that.  Like the fact that Firebird is ACID compliant.  I don't know whether it's possible to build an ACID compliant fileserver database, but Jet certainly is not.

Herbert Sitz
Monday, February 23, 2004


A detailed description of the features:

http://www.firebirdsql.org/ff/foundation/FBFactsheet.html

Dewd
Wednesday, February 25, 2004

*  Recent Topics

*  Fog Creek Home