Kosovo ni je Srbija?
***
Napisałem to w marcu 2008 i jakoś się przeleżało w brudnopisie. Obecna wojna w Gruzji jest w pewnym sensie kontynuacją sprawy Kosowa...
***
Nie wiem wiele o historii Serbii. A o Albanii jeszcze mniej. Pogłoski i strzępki emocji, najbardziej chyba ukształtował moje poglądy Underground Kusturicy i jakieś przebitki z historii powszechnej, mniej prawdziwa wiedza.
Ale parzę swoimi oczami, z pozycji Polaka, mieszkańca tej części Europy a nie innej, z taką a nie inną historią. I także przez pryzmat tej historii postrzegam tamte kraje.
Czy naprawdę musieliśmy się w to mieszać, uznając niepodległość Kosowa? Czemu?
Bo wszyscy tak samo? OK, może i dobre podejście ale nie zaspokaja pragnienia odpowiedzi na tytułowe pytanie.
Bo wiemy lepiej, komu należy się kawał ziemi między słowiańskim, prawosławnym obszarem centralnych Bałkanów, a sunnickim obszarem nieco dalej, skrawkiem byłego imperium otomańskiego, zamieszkanym przez lud słowiańskim raczej nie będący?
Bo mamy w dupie decyzję ONZ, ustanawiającą wyraźnie protektorat a nie - bagatela - oddzielne państwo?
Bo są na świecie jeszcze jacyś prawosławni, którzy nas nie nienawidzą? No to teraz na pewno zaczną, bo zabrać im Kosowo, to tak jakby Polsce sieknąć Jasną Górę z Częstochową i kawałkiem ziemi - no powiedzmy tak do Ojcowa.
Bo obszar kulturowy muzułmański jest nam chwilowo bliższy z racji krótkoterminowych interesów USA?
Bo wolimy radosny step od jakichś tam klasztorów, miasteczek, dróg których nie wiedzieć czemu tyle nabudowali tam Serbowie?
Bo tak zajebiście dużo zawdzięczamy Albanii? Co przepraszam, radio Tirana?
Bo - co najlepsze - uznajemy prawo ludności do pokojowego samostanowienia? W kolejce już czeka Kraj Basków, Naddniestrze, Katalonia, Cypr turecki, inni, dopiero daleko, na samym końcu, po Kaszubach, Pomorzu, Śląsku i Łemkach - Czeczenia.
No dobra. Tak jak mówię to raczej emocje niż stuprocentowe argumenty.
Być może - i taką możliwość dopuszczam - z perspektywy długofalowego, strategicznego interesu Polski jest to uzasadnione.
Ale nich żadne dzieciaki ogłupione propagandą nie wmawiają mi że to jest sprawiedliwe. Sprawiedliwe to są bierki i niektóre gry planszowe.
Postgres partitioning performance – rules vs triggers
Rafal Pietrak asked a question about postgres performance in partitioning scenarios.
The problem is, in classical partitioning approach you decide into which partition put the data basing only on the inserted data itself.
But we consider also situation when you want to make this decision basing on current database content.
For example we have some "driving" or "routing" table which tells us which partition is currently active.
Please read the above post for more background.
I prepared 4 test cases, for all combinations of rule versus trigger and static versus dynamic aka table-driven partitioning.
Test was performed on PostgreSQL 8.3.3 on Linux, commodity desktop box.
To make things short, here are the results of two test runs (links point to test scripts):
/what is measured: INSERT of 10000 rows/
Partitioning with RULEs, no dynamic routing:
2444.293 ms 2516.314 ms
Partitioning with RULEs, with dynamic routing:
42380.037 ms 39248.666 ms
Partitioning with TRIGGER, no dynamic routing:
14512.787 ms 14669.310 ms (but see the update below)
Partitioning with TRIGGER, with dynamic routing:
13486.808 ms 13904.370 ms
Conclusion:
If you have to do some database lookup to decide which partition data belongs to, use a trigger on master table.
If you have a well defined static set of rules, use PostgreSQL rule system.
Update (2010/06/15)
depesz wrote an article in which he noticed some problems with above test case.
First, he points out that the trigger in "Partitioning with TRIGGER, no dynamic routing" example is horribly written. And he is right. In this particular case, partition assignment logic is so simple it can be expressed in 5 lines instead of 1005 lines of code. This makes trigger-based solution an order of magnitude faster.
Second, he says that bulk inserts are not so common - so measuring them is not-so-relevant. This heavily depends on the flavour of database you are working on. For OLTP systems, depesz's statement is obviously true, but for analytic (OLAP and BI) systems, bulk inserts are more common.
Third, in general I agree that rules should be avoided. Triggers are more readable and understood by most database-literate programmers. Rules ... well the first rule of using PostgreSQL rules is "DO NOT USE RULES".
(end of update)