среда, 26 августа 2009 г.

FluidDB: вступление

Одна из важнейших задач, в условиях сегодняшнего количества и структурированности данных — возможность рационально хранить и обрабатывать их. Для этого человечество последние пять десятилетий усердно работает, придумывая разнообразные СУБД, отличающиеся способом хранения данных, организации доступа и обработки, интерфейсом взаимодействия и вообще, часто — специализацией под конкретные тип, структуру данных. Начиная с первых навигационных СУБД, соответствующих хранению данных на ленточных носителях, которые позже развились в табличные и реляционные структуры, и не заканчивая набирающими обороты сегодня т.н. key-value хранилищами, на протяжении всей эволюции хранилищ можно проследить некоторые направления её развития: сначала структуры и алгоритмы были сильно скованы возможностями железа, и разработчикам СУБД нередко приходилось идти на компромиссы между скоростью работы и гибкостью использования продукта. С ростом вычислительной мощи компьютерных систем, с усовершенствованием устройств хранения данных мы получили возможность неимоверно усложнять реализацию СУБД, например внедряя триггеры, хранимые процедуры, используя объектно-ориентированные реляционные СУБД, что, со временем, привело нас к ситуации, которую мы имеем. В чём-то она схожа с трендами в языках программирования. Как выразился Tim Berners-Lee о принципе наименьших возможностей (Principle of Least Power):

Computer Science in the 1960s to 80s spent a lot of effort making languages which were as powerful as possible. Nowadays we have to appreciate the reasons for picking not the most powerful solution but the least powerful. The reason for this is that the less powerful the language, the more you can do with the data stored in that language. If you write it in a simple declarative from, anyone can write a program to analyze it in many ways. … If, for example, a web page with weather data has RDF describing that data, a user can retrieve it as a table, perhaps average it, plot it, deduce things from it in combination with other information. At the other end of the scale is the weather information portrayed by the cunning Java applet. While this might allow a very cool user interface, it cannot be analyzed at all. … This the only way to find out what a Java applet means is to set it running in front of a person.

То есть на сегодняшний день для абсолютного большинства решений как в ЯП, так и в системах хранения данных, гибкость достигается за счёт простоты. Тут можно вспомнить о ставших особо популярными в последние годы скриптовых языках, распространении json, как формата передачи данных, популяризации key-value store.

Сегодня я хочу рассказать об одном инновационном подходе к хранению данных, который раннее нигде не встречал — FluidDB, разработки отличных ребят из Fluidinfo.

вторник, 30 июня 2009 г.

ICFPC-09 отчёт

Я давно ничего не писал в блог, но сейчас появился отличный повод! Речь идёт о недавно завершившемся мероприятии под названием ICFPC (ICFP contest, или соревнование приуроченное ко всемирной конференции ICFP).