Релиз MagLev 1.0, альтернативной реализации Ruby VM со встроенным NoSQL-хранилищем

18 ноября 2011 года

Представлен релиз проекта MagLev 1.0 (Архивная копия от 16 февраля 2013 на Wayback Machine), в рамках которого подготовлена альтернативная реализация окружения для выполнения программ на языке Ruby, построенного на основе использования 64-разрядной виртуальной машины VMware GemStone/S (Архивная копия от 11 декабря 2012 на Wayback Machine), изначальной созданной для языка Smalltalk. Код проекта распространяется под лицензией MIT, но используемая виртуальная машина GemStone/S является проприетарным продуктом. Бесплатная версия GemStone/S лимитирована возможностью использования кэша размером не более 2 Гб (на общий размер хранимых данных нет ограничений, ограничен только размер кэша).

Окружение 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 с большой долей вероятности будет находится в кэше, что значительно ускоряет доступ к этому коду.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Релиз MagLev 1.0, альтернативной реализации Ruby VM со встроенным NoSQL-хранилищем», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.