Friday, March 24, 2006

Synchronous notification landed in cvs.

Hi all,

I finally could get synchronous notification done. It is in cvs now.

What is synchronous notification?
Up to now, in order to get notifications from postgresql, Npgsql clients would need to call empty commands. If application didn't do that, only on next NpgsqlCommand.Execute* call notification would be delivered.
Now with synchronous notification, client applications are notified as soon as message arrives, hence the name synchronous notification.

On current code, it is disabled by default. To enable it, you have to put syncnotification=true in your connection string.

How it works?

When you enable synchronous notification, Npgsql will create another thread to check is data arrived in socket. To do that, it uses Socket.Poll method. When Npgsql is idle, this thread is running. It is stopped as soon as any NpgsqlCommand.Execute* method is called and resumed when this call returns.

Side effects:

Because of synchronization of threads, there is performance drop when using synchronous notification. So, if you want max performance, don't use it. Synchronous notification is more valuable on desktop applications where they have more idle cycles and need more "real time" notifications.

Please, give it a try and let me know if you find any problems.

This blog is now subscribed in

Hi all,

Magnus Hagander added this blog to the list of blogs in! Thank you very much, Magnus. As I said before, this is a honor to me :)

Monday, March 20, 2006

Synchronous notification is working!!

Hi all,

I finally got the synchronization problems fixed and now Npgsql supports synchronous notification!

Right now the code is only on my devel machine. I will commit the code to cvs this week. I'm still doing more tests. All tests I did up to now passed ok!

Thursday, March 16, 2006

Npgsql synchronous notification status...

Hi all,

After recovering from my myopia surgery, I started to play with the long ago requested synchronous notification support in Npgsql. With it, you will be able to receive notifications from Postgresql server as soon as they are posted.

Right now it can handle correctly the notifications, but I'm having some problems when sync'ing the notification thread. This notification thread will be checking for notifications from server with Socket.Poll calls.

As soon as I got this sync problem done, I will commit it to cvs. Stay tunned.

Saturday, March 11, 2006

Music genoma really exists...

Well, I think it is around for some time, but just today I had a look at Pandora site.

I have to admit that I started to really believe in music genoma!! It really exists! Each new music Pandora presented to my ears was 90% close to what I like. :) I don't say 100% because there were some bad choices. But for sure this is just a matter of time and fine tunning. I just listened to 8 songs.

Pandora is really an excellent way of getting personal playlists.

If you don't know it yet, give it a try:

Thursday, March 09, 2006

Eu também falo Português do Brasil :)

Olá pessoal,

Alguns colegas meus me perguntaram porque o meu blog estava todo em inglês. Eu falei para eles que era apenas uma questão de audiência. No entanto o fato de eu escrever em Inglês não impede que os meus amigos deixem comentários em Português. Podem escrever à vontade! :)

Valeu pelo apoio e por me chamar a atenção para esse fato.

Até a próxima!