Worth Reading


Mr. Hartmann wrote on his blog

Last week, I posted a story about my interaction with a software developer who uses FireBird (FB) as a back-end for their software. The short version is that they left FB’s settings at default and were using a really, REALLY old version of FB. This caused the application to have massive (18 minute) load times and hang the entire server, with just one client connected. Bellow (in the article) are the changes I made to increase overall performance of the application and server.

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.

Firebird Project announces the first Beta release of Firebird 3.0, the next major version of the Firebird relational database, which is now available for testing.

This Beta release demonstrates the features and improvements currently under development by the Firebird development team. Our users are appreciated giving it a try and providing feedback here. Apparent bugs can be reported directly to the bugtracker.

Beta releases are not encouraged for production usage or any other goals that require a stable system. They are, however, recommended for those users who want to help in identifying issues and bottlenecks thus allowing to progress faster through the Beta/RC stages towards the final release.

Please read the Release Notes carefully before installing and testing this Beta release.
Download page:
http://www.firebirdsql.org/en/firebird-3-0-0-beta1/

Release Notes:
http://web.firebirdsql.org/download/prerelease/rlsnotes/Firebird-3.0.0_Beta1-ReleaseNotes.pdf


Dmitry Yemanov

The Firebird Foundation (FF) is the organization behind Firebird that actually pays for the salaries of the core developers. FF gets its money from associations, donations and sponsorship. Anyone can become a member of the FF (USD 50/year for non voting member, and USD 300/year for voting member) and every member of the FF are eligible for special discounts from several partners, like IBSurgeon, FastReports, Upscene, etc. A list of companies offering special discounts to the FF members can be seen at http://www.firebirdsql.org/en/member-to-member-offers/.

So, what are you waiting for? Enjoy your discount, and if you are not still a FF member, apply for your membership now!

Bitnami is a library of popular server applications and development environments that can be installed with one click, either in your laptop, in a virtual machine or hosted in the cloud. We take care of compiling and configuring the applications and all of their dependencies (third-party libraries, language runtimes, databases) so they work out-of-the-box. The resulting packaged software (a ‘stack’) is then made available as native installers, virtual machines and cloud images. These Bitnami application packages provide a consistent, secure and optimized end-user experience when deploying any app, on any platform.

If you want to see Firebirs supported in the Bitnami library, vote now direct in their site!

With the impending implementation of Firebird as a backend for LibreOffice Base, to replace HSQLDB, I re-ran the tests of converging and cyclic cascades that were previously carried out for other databases.

These tests were carried out using Firebird 2.5 running on Ubuntu Server 12.04.2

 

Many developers think that transactions are straightforward and easy thing to understand and use, so probably there is no reason to devote 1 day seminar to discover transactions mechanism in Firebird in great details. Is it so?
Here I offer 3 simple questions about transactions which every Firebird developer should answer. Please take a look and choose the correct answer

Ștefan Suciu announced his work on Implementing support for Firebird in Sqitch :

I’m workingto implement support for Firebird (in the firebird branch) in Sqitch – a database change management application.

Contributions are welcome! on Github
https://github.com/stefansbv/sqitch/tree/firebird

New GSOC update for the previous week with
current status of the firebird-sdbc driver :

Progress this week:
- Some dbexception cleanup.
- Fixed ColumnLocate::findColumn implementations (for all 
  db drivers) and api definition.
- Fixed index rebuilding.
- Tried to experiment with different ICU versions, but haven't 
  managed to actually produce any errors when switching ICU 
  version 
- Fixed formatting of integers as a currency, integers now
  show as a number and not currency by default.
- Fixed segfault when setting Null as first value in 
  PreparedStatement.
- Reintroduce statement specific Mutexes (instead of a
  connection-wide Mutex).
- Implemented simple firebird unit tests to see that we can 
  really transfer a .fdb between machines with different 
  OS/CPU/bit-ness.
- Some generic cleanups.
- Tried to create a hsqldb cppunit-test.

New GSOC update for the previous week with
current status of the firebird-sdbc driver :
Progress this week:
– Made libatomic-ops buildable meaning that we should now be able to build embedded firebird on non-X86 systems too
– Added rebuilding of indices to deal with the icu collation issues.
– Implemented a simple .odb loading test (in gerrit atm.) that also
tests that the embedded firebird .fdb can be connected to.
– Implemented Index retrieval and dropping
– More fixes to do with the firebird temporary and lock directories
– Some coverity fixes
– Started working on foreign key retrieval

Code commits can be reviewed in the LibreOffice git repository

Next Page »


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