Релиз MagLev 1.0, альтернативной реализации Ruby VM со встроенным NoSQL-хранилищем
Окружение MagLev полностью совместимо с веткой Ruby 1.8.7 и включает в себя встроенную поддержку специализированного объектно-ориентированного распределённого NoSQL-хранилища, обеспечивающего выполнение ACID-транзакций и поддерживающего оптимизацию за счет кэширования в оперативной памяти. Благодаря данному хранилищу программное окружение на базе MagLev может обеспечить прозрачную обработку значительного объема (терабайт) данных и кода, даже если они не вмещаются в оперативную память. При этом не делается отличий, какие именно типы объектов, классов, блоков данных и нитей могут быть сохранены и выполнены.
По мнению автора проекта, MagLev скорее стоит рассматривать даже не как Ruby VM с интегрированной БД, а как NoSQL БД, использующую язык Ruby для манипулирования хранимыми данными. Отличительной чертой MagLev является высокая производительность, которая достигается благодаря задействованию высокопроизводительного JIT-компилятора GemStone/S VM, на лету преобразующего псевдокод в машинные инструкции, что позволяет добиться производительности близкой к выполнению нативного кода.
Некоторые особенности MagLev:
- Единое пространство имён для хранения объектов. Сохранение и извлечение данных производится без привязки к отдельным БД, код выполняется в контексте единой базы данных. При этом нет необходимости следить какие данные следует сохранить - все изменения объектов и их сохранение обслуживается автоматически;
- В хранилище могут быть сохранены объекты Ruby, процессы, лямбда-функции, состояние нитей и продолжения (continuations). Например, можно остановить, скопировать, записать и перезапустить определенную нить кода, а затем выполнить копию на другой VM;
- Метод обеспечения постоянного хранения в MagLev оперирует сохранением на диске состояния объектов в том же в формате, в каком они находятся в кэше. Т.е. не требуется прибегать к дополнительным преобразованиям и сериализации;
- Транзакции при работе с хранилищем удовлетворяют условиям ACID (Атомарность, Согласованность, Изолированность и Долговечность), что позволяет запустить несколько виртуальных машин поверх одного хранилища. VM могут запускаться на разных компьютерах, при этом будет обеспечена целостность и актуальность состояния совместно используемых объектов и кода;
- При запуске новой копии MagLev VM, код ранее выполняемый в других экземплярах MagLev VM с большой долей вероятности будет находится в кэше, что значительно ускоряет доступ к этому коду.
Источник: http://www.opennet.ru/opennews/art.shtml?num=32344
|
0 | Tweet | Нравится |
|