May 2010

That cozy time of the year is coming. Winter is knocking on the door and the next Firebird Developers Day in Brazil is near. Read more…

I have created a feature request in Arch Linux to include Firebird both as a stand alone package and also with added support in  PHP and PHP-PDO.

Can you please vote for this bug request ?


Several documents, including books, manuals, papers, tutorials, etc. says that Firebird will start the sweep of a database if the difference between OAT (Oldest Active Transaction) and OIT (Oldest Interesting Transaction) reaches the pre-defined value of sweep interval setting. Some docs, like the ones from InterBase 6.0, even states that the automated sweep will start when the difference between the Next Transaction and OIT reaches the sweep interval value.

So, this post intention is to to clarify what is the truth about automated sweep start, in the hope that people/authors around the world correct those documents to stop this confusion.

In a private talk with Vlad Khorsun, one of the core developers of the Firebird project, he confirmed that all the previous assumptions listed above are WRONG! Yep, it is not NT – OAT, and it is not OAT – OIT. The automated sweep will start if the difference between OST (Oldest Snapshot Transaction) and OIT is greater than the sweep interval defined. So, the correct formula is OST – OIT.

This is valid for all Firebird versions up to date. If you know any document or paper with the incorrect info, please notify the author so he can correct it.

Here is the piece of code that proves that:

if (trans->tra_oldest_active > dbb->dbb_oldest_snapshot)
 dbb->dbb_oldest_snapshot = trans->tra_oldest_active;

 // If the transaction block is getting out of hand, force a sweep

 if (dbb->dbb_sweep_interval &&
 !(tdbb->getAttachment()->att_flags & ATT_no_cleanup) &&
 (trans->tra_oldest_active - trans->tra_oldest > dbb->dbb_sweep_interval) &&
 oldest_state != tra_limbo)
 // Why nobody checks the result? Changed the function to return nothing.
 start_sweeper(tdbb, dbb);

The code is somewhat confusing, specially for people who is not used to Firebird code so, you must note that in the above code, tra_oldest_active represents the value of OST calculated at transaction start time. dbb_oldest_snapshot is cached value of OST, updated when any transaction starts. This may explain why so many docs are wrong… at a first look, tra_oldest_active may be interpreted as OAT, but it is not!

Please post your thoughts about firebird on this interesting Linkedin thread on the Firebird community’s page

Which opensource database to choose?
I have realized that the “opensource” alternatives to commercial databases / operating system are growing really fast now.
My question to you: experts here are:

  • What benefits will it be to select a firebird SQL database?
  • What market will suit best for firebird SQL Databases?
  • Regards Tomas

    Only for Brazilians (or Portuguese speakers):

    Inscrições abertas para o 7º FDD
    Você já pode se inscrever para a sétima edição do Firebird Developers Day, a ser realizada no dia 17/Julho, em Piracicaba-SP. O site do evento está no ar, com a grade parcial de palestras e todas as demais informações. Inscreva-se agora e pague menos! As palestras estão com temas muito bons, e novas palestras serão inseridas nos próximos dias, fiquem de olho!

    Here is a good howto create an Lazarus Application with Firebird Embedded and ZeosLib components .Original Article is in Portuguese

    Setting up a Portable Firebird Classic or Superserver and using it with VisualStudio 2010.

    The new download stats interface from geeknet shows what are the countries from where firebird is most downloaded and what operating system is used to download it and the most unexpected thing is that Linux is in the Top
    You can compare the stats with flamerobin ones

    Profesor Carlos wrote a Lazarus guide in Portuguese on howto connect to Firebird using the standard components or the zeoslib


    I’ve created in Hebrew few tips on how to work with JayBird in Java and JRuby using Firebird. Links for the (google) translated versions:

    Next Page »

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