Technical Articles


In the 9th Firebird Developers Day, we collected donations to sponsor the enhancements of the Firebird wire protocol, to optimize the speed of communication in high latency networks (aka. internet). Dmitry Yemanov implemented the optimizations that were finally available for public testing with the release of the Firebird 3 Beta 1, a few days ago.

So, I decided to test the improvements. I set up a Windows remote server running FB 2.5 and 3.0 (beta1 and beta2), and used a database with a single “customers” table containing real life data (7,000 records and 61 fields). For the tests, I also created a second table with the same data, but in this one, the fields containing nulls were filled with random chars and numbers up to its size limit.

The test itself is very simple: retrieve all the fields from the first 5,000 rows from the tables, using isql (directing ther output to disk, since stdout is too “slow” and affects the results in a bad way), and check the time taken to do the fetchall. Each test was run at last twice (in sequence, filling the cache, etc), and the lowest value obtained was used for the comparison.

You can see the results below, and it is very promising! Thanks Dmitry and also Alex Peshkov (who implemented the zlib compression).

PS: There is one weird case where FB 3 was slower than FB 2.5. I already reported this do Dmitry, and he is investigating.

A full article (in portuguese) about the tests is available at FireBase. Thanks for Fernando Pimenta who “donated” the remote server for my use.

Protocol Graph

Update: Dmitry just sent me more information about the case where FB 2.5 got better performance than FB 3:

Actually, the problem is in the default batch size, not the new code itself. With all fields filled up to their max length, the protocol message size is quite similar between v2.5 and v3, the difference is less than 5%. But v3 always sends 8 packets at once while v2.5 may send 8 to 16 packets at once, depending on the message size. In your particular case, the batch size should be ~12-13 packets. This explains better performance of v2.5.

I need to find a way to adapt the new batching algorithm to better match the old one in such border cases.

read more…

Firebird driver become Ole Db .Net Provider

We are pleased to announce the second release candidate of our .NET Data Provider for interaction with Firebird and Interbase via IBProvider. By now, we have implemented all the functionality of System.Data.OleDb.

If you want to transfer your .NET projects for FB/IB to the new level of functionality and quality, we recommend you to start using «LCPI .NET Data Provider for OLE DB».

Just look of this DDEX screenshot:

You can get more screenshots and download Ole Db .Net Provider for access to any Interbase or any Firebird database from ADO.Net here: OleDb .Net driver for Firebird >>>

For this howto you will need to have firebird development package already installed on the system and also Qt 5.3.

Here is the guide on installing Firebird 2.5.3 from FreeBSD 10 Ports and
creating your first test database; also we show you how to install
Flamerobin GUI (administration tool) and the PHP driver for it. This was tested on fresh FreeBSD 10 on a kvm-linux virtual machine.

Download a compressed snapshot of the Ports Collection into /var/db/portsnap.

# portsnap fetch

Or update it.
If you are running Portsnap for the first time, extract the snapshot into /usr/ports:

# portsnap extract

If you already have a populated /usr/ports directory and you are just updating, run the following command instead:

# portsnap update

Enter firebird server ports directory:

# cd /usr/ports/databases/firebird25-server

Compile and install firebird server:

# make -DPACKAGE_BUILDING

# make install

Enable it by adding

firebird_enable="YES"

in

/etc/rc.conf
.

Start it with:

# /usr/local/etc/rc.d/firebird start

logs and security2.fdb seems to be in /var/db/firebird.

# /usr/local/bin/isql-fb

To create a new database:

SQL> create database “tmp/first_database.fdb”;

SQL> connect “/tmp/first_database.fdb” ;

Commit current transaction (y/n)? <– y

Committing.

Database: “/tmp/first_database.fdb”

SQL>

If you want to create a simple table then insert 1-2 rows and select from it; here is one example:

SQL> CREATE TABLE TEST (ID INT NOT NULL PRIMARY KEY, NAME VARCHAR(20));

SQL> show tables;

TEST

SQL> INSERT INTO TEST VALUES (1, ‘John’);

SQL> INSERT INTO TEST VALUES (2, ‘Joe’);

SQL> select * from test;

ID NAME

============ ====================

1 John

2 Joe

To quit the isql-fb console, type quit:

SQL> quit

CON>;

For a good open source GUI admin tool you might check the flamerobin administration tool included in ports repository; it can be installed by a simple:

# cd /usr/ports/databases/flamerobin/ && make install clean

Or if you don’t want to wait use pkg-add

# pkg-add -r flamerobin

To use firebird with php, you will need the php5 driver:

# cd /usr/ports/databases/php5-interbase/ && make install clean

You can choose to compile php with apache support (I have chosen cli, cgi , and apache support);

check it if is enabled with:

# /usr/local/bin/php -m

Or if you don’t want to wait compile all the php use pkg-add

# pkg-add -r php5-interbase

ADO.NET provider 4.2.0.0 for Firebird is ready and you can find more at http://blog.cincura.net/233462-ado-net-provider-4-2-0-0-for-firebird-is-ready/.

Every year on January 18 we have a small celebration – IBProvider’s birthday.

This year it turned 14.

We thank all our users for using the provider in your projects.

We promise that we will continue to improve IBProvider till it completely supersedes Firebird and Interbase :)

Read more about the new features in Firebird and Interbase driver >>>

We are pleased to announce the new release of our OLEDB Provider: version 3.18.

Now in your projects for Firebird and Interbase you can more comfortable work with Linked Server of MSSQL 2012. Hurrah!

In new release:

  • Improved performance of the provider as a linked MSSQL server.
  • Provider compilation with Visual Studio 2012.

Plus:

You can download IBProvider here: Firebird and Interbase driver >>>

Here are the test results between Firebird and HSQLDB

I have posted to YouTube a short version of one of my talks, describing Firebird and with arguments that people can use to show to other people how good and powerful is Firebird.

The audio is in Portuguese.

Next Page »


This Firebird & Interbase WebRing site owned by Carlos H. Cantu .
[ Previous 5 Sites | Previous | Next | Next 5 Sites | Random Site | List Sites ]