Hi, All.нужна БД легкая без особых наворотов, но надежная, для хранения и обработки данных, которые очень часто меняются, поэтому главное требование - быстрый доступ к базе и данным.
вот и решил все это добро хранить исключительно в памяти а не на диске. раньше пользовал shared memory и IPC::ShareLite только вот столкнулся с залипами из-за потери блокировок.ПС: ну и модуль на perl нужен для БД этой чтоб был, а то писать нужно perl-e.
сенкс за советы
>нужна БД легкая без особых наворотов, но надежная, для хранения и обработки
>данных, которые очень часто меняются, поэтому главное требование - быстрый доступ
>к базе и данным.
>
>вот и решил все это добро хранить исключительно в памяти а не
>на диске. раньше пользовал shared memory и IPC::ShareLite только вот столкнулся
>с залипами из-за потери блокировок.
>
>ПС: ну и модуль на perl нужен для БД этой чтоб был,
>а то писать нужно perl-e.Создать раздел в памяти и положить туда какой-нибудь sqlite ?
>Hi, All.
>
>нужна БД легкая без особых наворотов, но надежная, для хранения и обработки
>данных, которые очень часто меняются, поэтому главное требование - быстрый доступ
>к базе и данным.Типа стандартного типа %hash в perl ?
>вот и решил все это добро хранить исключительно в памяти а не
>на диске. раньше пользовал shared memory и IPC::ShareLite только вот столкнулся
>с залипами из-за потери блокировок.Если из разных процессов использовать pthread_mutex - то это проблема не только этого модуля и не только этого языка.
>ПС: ну и модуль на perl нужен для БД этой чтоб был,
>а то писать нужно perl-e.Если нужно хранение в сортированном порядке, то посмотри в сторону бинарных деревьев самобалансирующихся деревьев:
- AVL (сильно-сбалансированное дерево, Tree::Fat (J/JP/JPRIT/Tree-Fat-1.111.tar.gz));
- Red-Black или RB (слабо-балансированное дерево).Если не то, то опиши поподробней задачу, глядишь и прояснится с модулем. Чем модуль ShareLite нравится, и только ли проблемы с блокировкой, или другие имеются ?
Даже если искомого модуля в природе не существует, то платишь бабки и получаешь модуль на C :)
вообще, если любая программа постоянно считывает какие-то файлы,
то они буферизуются ОС. И уже большинство чтений/записей до обращения к
винту не доходят. К тому же практически все серьезные БД должны организовывать
свою буфферизацию, т.е. операции эти не будут даже системные вызовы тревожить,
что еще быстрее.
Так, что, бери MySql, Postgress, Oracle;
И в конфигах увеличивай размер внутренних буфферов.
Если у тебя на сервере 1-2 гига оп. памяти, то вся БД через какое-то время
окажется в ней, а во время простоя системы, будет происходить синхронизация буфферов,
как на уровне самой системы БД, так и на уровне ОС.Так что проблемы, в принципе, с этим ни какой нет.
http://freshmeat.net/articles/view/305/
V mysql est' tablici tipa MEMORY (HEAP)
memcached?