Sinática Monitor 2.2 Beta for Firebird

A beta version of our next release is available for download.

You are welcome to test it and send your feedback.

The new features include:

  • Send alarms via email
  • Retrieve plan statements
  • Alarms for server logs

The final version along with a more descriptive release notes will be made available within the next two weeks.

Please note that this is beta software. A backup of your Sinática Monitor configuration is recommended. The files are located under the {AppData}\Sinatica\Monitor folder.

Download now!

Comments (0)

Invalid BLOB ID bug in Firebird 2.1.3

EDIT Sep 21st: Sinática Monitor 2.1.03 solves the issue. You may download it now. The original bug in Firebird 2.1.3 is already fixed in CVS too.

If you’ve followed my advice and upgraded to Firebird 2.1.3 only to find you’re now getting consistent “invalid BLOB ID” messages, please update Sinática Monitor to the latest version.

There is a very specific condition that triggers this error message and it’s highly likely you won’t be affected. If you are being affected, however, please check your environment:

  • In my testing the bug only occurs when there are clients attached using charset NONE. If you change them to use a proper charset such as ASCII, ISO8859_1 or UTF8 the error message will be gone. Any charset different from NONE will do. Also make sure Sinática Monitor is not using NONE charset.
  • If you run into this error and it’s not related to charset NONE, please contact me. Every additional information will be helpful.

A new version of Sinática Monitor is available to fix the issue.

Comments (1)

Firebird 2.1.3 – Recommended update

Yesterday Firebird 2.1.3 was made public. As with all maintenance releases its focus is stability. A number of bugs are fixed and it is a recommended update for everyone using older versions of the 2.1 series.

Default authentication method changed

The Release Notes is quick to warn about a change that may break current setups: The default authentication method changed from mixed to native. In practice this means that before 2.1.3 you could use both firebird’s native authentication and windows authentication out of the box.

From now on you have to explicitly tell Firebird that you wish to use windows authentication. Simply change the firebird.conf configuration file to:

Authentication = mixed

Lighter nBackup

Prior to 2.1.3 nBackup could exhaust server I/O resources and negatively affect database operation. Starting from Firebird 2.1.3 nBackup is lighter and can be used even when the database is heavily loaded.

Monitoring Fixes

Some fixes are specially important for Sinática Monitor users and anyone that uses monitoring tables frequently.

Other fixes

The list of bugs fixed is long and it’s easy to see that quality is the Firebird Team’s first objective. Kudos to everyone involved in this release and keep your fingers crossed for Firebird 2.5!

Comments (4)

Brazilian Active Delphi Magazine – August issue

This week I received the Brazilian Active Delphi magazine with a pleasant surprise. My very first published article.

The title is Identifying performance problems with Firebird and I write about the need to evaluate performance issues before getting down to business with application and infrastructure changes.

Big thanks to Kelver Merlotti for the invitation and to all the magazine team for the opportunity.

Comments (1)

New Sinática Monitor supports Firebird 2.5

A fresh new Sinática Monitor 2.1 for Firebird is available for download.

This release supports monitoring Firebird 2.5 databases and adds new alarms and the option to choose the layout for the Charts Page.

Find out more about what’s new or check out the release notes for a complete list of changes.

Download Sinática Monitor 2.1 right now!

Comments (3)

6th FDD – Firebird Developers Day

The sixth edition of the Brazilian Firebird Developers Day will be held in Piracicaba at the next 4th of July.

And there’s news this year: The Madness Session will let the audience ask any questions directly to the speakers. I liked this idea. Everyone knows there will be time to ask their questions.

Another good news is the presence of Vlad Khorsun, one of Firebird’s current main developers. He will present two sessions. One on CTE (Common Table Expressions) and another on What’s new in Firebird 2.5.

There are two presentations by Dmitri Kouzmenko that you just can’t miss. On one of them, entitled “Database maintenance, he promises to show different tool to monitor the database. Is he going to mention Sinática Monitor? I have no idea.

There are two other presentations from the Brazilian folks that caught my attention: “Database Structure and Organization for websites” by Maurício Longo and “Optimizing Firebird 2.1 queries using Execute Block and nested selects” by Eduardo Jedliczka.

This event is great and I do recommend. I was there last year and certainly I will be there this year. See you!

Comments (1)

Improvements and fixes in Firebird 2.1.2

The Firebird Development Team released Firebird 2.1.2 this week. This sub-release focus on stability. There are no big changes, they’re all in store for Firebird 2.5, but it is important nonetheless. The list of bugs fixed is impressive.

Bugs

Among several fixes, some deserve to be highlighted:

The last two bug-fixes directly affect Sinática Monitor users. This update is highly recommended.

Improvements

Besides the fixed bugs, a few improvements were included.

  • DPB user restriction. If you connect to Firebird Server using a non-sysdba user and some special attachment parameter, check to see if it is in the restricted parameters list. It is also possible that your connectivity layer may be adding special parameter to your DPB. In these cases Firebird will reject the attachments.
  • Possible to use MS C Runtime in a private folder. In the old days (2.0 and before), all you had to do to install a client was copy fbclient.dll to you application folder or the system folder. Runtime installation then became necessary starting from Firebird 2.1. This lead to client distribution problems as client installation became more complex. Firebird 2.1.2 allows you to once again deploy a client simply by copying fbclient.dll (or gds32.dll) and the appropriate runtime files.

To know more, visit the release notes.

Download Firebird 2.1.2 now!

Comments (2)

Sinática Monitor is here!

If you are curious to know the Product I was cooking for the last months, your wait is over.

It’s called Sinática Monitor for Firebird. And it was specially created to monitor your database and discover those hard-to-find problems.

Here’s an example:
Remember that transaction that got stuck and caused a major confusion because your server became extremely slow?
Sinática Monitor detects exactly which transaction is stuck and spares you the hard work of looking for it.
 
Here’s another one:
Remember that customer that complains about your system becoming unbearably slow every third Saturday?
Sinática Monitor is the ideal tool to help you find out what is going on. Whether it is a slow statement or one that is not using indexes, Sinática monitor points you to the problem in a simple and easy way.

And that’s just the beginning.

Visit out new site and see screenshots of Sinática Monitor in action.

Sinática Monitor is entirely free during the Beta period.

Download now and find out what it can do for your database.

And please don’t be shy! I want to hear from you. Send me your ideas and suggestions!

Comments (5)

Know your server

A post by Jeff Atwood got my attention last week. He reports how he had difficulties to find a problem in StackOverflow beta. They kept getting deadlock logs during the day and in the end the problem was related to MS SQL Server blocking readers:

You can attach the profiler to catch the deadlock event and see the actual commands that are deadlocking. I did that, and found there was always one particular SQL command involved:

UPDATE [Posts]
SET [AnswerCount] = @p1, [LastActivityDate] = @p2, [LastActivityUserId] = @p3
WHERE [Id] = @p0

If it detects a deadlock, SQL Server forces one of the deadlocking commands to lose — specifically the one that uses the least resources. The statement on the losing side varied, but in our case the losing deadlock statement was always a really innocuous database read, like so:

SELECT *
FROM [Posts]
WHERE [ParentId] = @p0

To fix the problem they had to instruct MS SQL Server to use dirty reads on each those selects. What kept hammering my head all these days was not how can modern databases still block readers. But the lesson we can take from the episode. Independently of server and its architectural limitations, the important thing is to understand it and also to know your application’s environment very well.

In the case of StackOverflow Jeff found that a possible solution was dirty reads. If the transactions performed by the website took a long time, dirty reads would not be an option. But knowing his application very well he knew that was not the case. Choosing dirty reads would have no consequences. Independently of what ACID purists would say. And I confess I turned my nose when I first read "dirty read".

Thanks to its multi-generational architecture Firebird does not block readers. So it’s natural that this problem may seem strange to us. But each architecture has its pros and cons. This same multi-generational architecture, if not correctly used, can be a problem. It’s the case of long running transactions or "stuck transactions".

Such transactions cause record versions to accumulate in the database. (These versions can also be called generations. It’s multi-generational architecture, remember?) The more versions accumulate more work Firebird has to do to find the correct version of each record. If stuck for long enough Firebird server can get slow to the point of looking like it’s dead. How much time depends of the database load and the server’s hardware. Could be a month, could be an hour.

I’ve seen it happen many times. In some of those occasions I saw managers argue for hours that MS SQL Server or Oracle don’t have such problem. The fact is that they have other architectural details that you must take into account in your application. For example, some databases block readers. Simply switching databases, as some of those managers suggested, is not a solution.

Although having StackOverflow powered by Firebird would not be a bad idea. ;)

Comments (0)

Forced-Writes and Firebird database corruption

If there were statistics on corrupted Firebird databases, I believe more than 80% of them would have something in common: they were running with forced-writes off.

Since Firebird 2.1 forced-writes also work in linux. With that in mind I put together a comparison between the two modes.

What are forced-writes and when to use them?

I hope DBAs who like to live dangerously find this useful.

Comments (0)
Next page »