Saturday, October 27, 2007

Firebird seminar in France

30 October 2007, in Paris, France, there will be free seminar, organized by IBSurgeon (www.ib-aid.com), IBPhoenix France (www.ibphoenix.fr), Fast Reports (www.fast-report.com) and Mandriva (www.mandriva.com).
Speakers at seminars will be Paul Beach, President of Firebird Foundation, with keynote and Firebird news, Vlad Khorsun, Firebird core developer, Dmitry Kuzmenko, IBSurgeon CEO and recovery and optimization expert, Mike Filippenko, Fast Reports CEO, and Philippe Makowski, vice-president of Firebird Foundation and chief consultant at IBPhoenix France.
Seminar is devoted to the Firebird project news and Firebird 2.1 release features, to new IBSurgeon and Fast Reports tools and technologies in database protection, reporting and business intelligence with Firebird, and more.
There will be round table with Firebird developers and experts in the end of seminar.

Seminar will take place at 43 rue d’Aboukir 75002 Paris. Seminar is free for attendees.
Registration is here: http://www.ibphoenix.fr/spip.php?article79, it will be closed at early Monday, and only 3 seats remained now.

Friday, August 10, 2007

InterBase 2007 Service Pack 2

While the SP1 was the only small bugfix and Vista fix, SP2 can be named something like InterBase 2007.5. Because it have some new interesting functionality:
  • Journal preallocation - you may specify initial journal size
  • Database file preallocations - you may specify initial database size
  • DESCRIPTOR parameters for UDFs - ability to pass different data types at runtime, while parameter type is not specified in UDF declaration
  • Query optimizer improvements:
    • shortcut boolean expression evaluation
    • redundant index usage in query disjuncts
    • outer join and sort/merge optimization
    • invariant False restrictions in queries
Also to protect databases from OS and hardware failures database write mode for new databases by default now is SYNC.

You can find full description of these new features in IB2007UpdateGuide.pdf, which can be found after installing this update in Doc subdirectory. But, as always, we suggest you to save the whole Bin subdirectory of existing IB2007 installation before applying Service Pack 2.
At least it will be wery good to save ibserver.exe, gfix.exe and gbak.exe - if you will find some unusual or unwanted in this SP2, you will have an ability to return to SP1 as fast as possible simply moving these files back to the bin directory.

p.s. this is not approved, but some people have problems with journal archive after installing SP2. So if you use this functionality, save your journal archive also before installing SP2. We are investigating this issue, and soon provide the details - is this problem really exist or not.

Thursday, July 19, 2007

Firebird Developer Pack from IBPhoenix

IBPhoenix announced a comprehensive set of tools for professional Firebird database application development - "IBPhoenix Firebird Developer Pack". This pack includes
  • Firebird database engine
  • Tools for database application development and management
  • Tools for database monitoring and optimization
  • Tools for database recovery and maintenance
  • Replication tools
  • Database connectivity drivers: .NET (with Visual Studio integration), Delphi/C++Builder, ODBC, JDBC, PHP, Ruby On Rails, Python, Perl, C++.
  • Flexible reporting solution
  • A comprehensive documentation set for Firebird
  • Free 30-days installation support
This pack costs $799 for single developer, and there are also special discount for current customers of IBReplicator, IBSurgeon products or Database Workbench.

Thursday, May 17, 2007

IBFirstAid 2.0

Today new version of IBFirstAid is released. In short, now there are 2 separate versions - for Firebird and Interbase, both have lot of improvements.
Read details at www.ib-aid.com.

Sunday, February 11, 2007

Does InterBase run on Windows Vista?

Thanks to Fredrik Haglund for his post about this question.
There are some issues with License Management, Local protocol (same as for Firebird, but IPCName can't be changed in ibconfig, as I know), and IBConsole.

Thursday, February 08, 2007

Does Firebird run on Windows Vista ?

Yes, it does!

Of course, you want to know the details. Here they are.
I used Vista Business that I've got some days ago from Microsoft. First I tried to install Firebird 2.01 RC1 distributive, and it went fine. Sorry, I have not tested Classic yet, but at least there are no problems with SuperServer.
Since lot of public tests show that Windows Vista is slower than Windows XP at least for games, I thought that for the first time "backup test" will be enough to understand is there any performance loss.

My desktop system is:
AMD 64 3500+ (socket 939)
1GB RAM
EPOX-9NPA3 Ultra (Nforce 4 Ultra chipset)
NVidia GF 7600GT

and 3 hard disks
system: HDS728080PLAT20, IDE, IBM/Hitachi, 80gb
second: ST3200827AS, SATAII, Seagate, 200gb
third: HDS728080PLA380, SATA, IBM/Hitachi, 80gb

Vista index of this computer is 4.2 (hdd and graphics are good - ~5.5, but processor and memory not - ~4.3).

I used 2gb database and run gbak -b -g using local protocol, tcp (localhost) and services api. Right now I don't want to go into test details, because it will be special article, not a blog record. So, here are just common results:
  • local protocol is not working on Vista, if Firebird runs as service. This is a classic error "unavailable database", which happens when program and Firebird works as service, sometimes when program runs as application, and in some other unknown conditions.
    Really this is not painful, because I think that Firebird (or InterBase) must not be run as service on developer's computer. If you run Firebird as fbserver -a, local protocol will work on Vista, but ~20% slower than on Windows XP. So, get into the way to use tcp (localhost) connection.
  • Backup using services and tcp show the same speed as on Windows XP.
  • Using -v (console output) gbak option makes backup process ~2-3% slower than on Windows XP. This is because console output on Windows Vista is made via 3D graphics (new Vista GUI interface).
So, you can move to Windows Vista and continue to use Firebird without any performance loss (excluding local protocol). Of course, you should not use Vista as "peer-to-peer" server, because it will be waste of new graphics user interface. If you have some dedicated, not powerful computer as Firebird server - use Windows NT, Windows 2000, and maybe Windows XP, but not Windows Vista.

Thursday, February 01, 2007

New nbackup (or online dump) myth

Today I've made some simple tests of Firebird's nbackup and InterBase 2007 online dump features.
They have some differences, but one main point. Let's describe what nbackup or online dump is:

You know that if you try to copy database when connections are active, you'll get broken copy. Because copying works sequentially, while database is a random access file. The idea of nbackup and online dump is to copy pages (by server) from database using timestamp marks. When such copying starts, server does not write changes to database file, but into special temporary file. When copy is done, server writes those modified pages back to database (and maybe to online dump). So, original database can be read and written during this process, and resulting copy is consistent.

This is fine, and according to nbackup documentation you can organize incremental backups, using "backup levels". When you make nbackup level 0, full copy of database is made. When you make nbackup level 1, only changes from previous full nbackup is written to difference file. And so on.
Example of "practical nbackup application" says that you can use full backup monthly, level 1 backup daily, and level 2 backup hourly. This is fine, but "hourly backups" can become impossible.
Why these "hourly backups" looks suspicious to me?

Because each time you run nbackup (any level) in Firebird or online dump in InterBase 2007, server reads every page in original database.
I took 13gb database from tpc-c test to check what time is needed to read the whole database.
At first I tried to copy database from one SATA drive to another. This took 6 minutes.
Then I created backup level 0 with FB and online dump with IB 2007. Both reads database and writes it's full copy:
  • Firebird - 6 minutes
  • InterBase 2007 - 8 minutes
Not a big difference, but let's run test again (nbackup level 1, and online dump):
  • Firebird - 6 minutes
  • InterBase 2007 - 6 minutes
This time both servers only reads original database, and writes nothing, because database was not changed.

So, there is no difference what backup level you use - database will be read 100% each time. And, you see that reading 13gb database took 6 minutes when no users were connected. I think that when there will be some activity, "backup" time will be definitely longer. Since reading each page of the database is not an easy operation for HDD, this will of course lower server performance.

Here, I think that running nbackup or online dump each hour for 10gb database is not a good idea. And I'm sure that if you have ~50gb database, you will not be able to do incremental backups each hour, when users work with database.
If you don't believe this - make this simple test, and send me results.

BTW: At least you must be sure that you have fast and well configured RAID controller, and disks that you use for database and its "copy" have the same performance.

p.s. Don't try to place incremental backups on the same hard drive, even on different logical disks - if your hard drive fails, you will loose both - database and backup. And, nbackup/online dump time will be 2-3 times slower.