The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

18.11.2011 15:57

Представлен релиз проекта MagLev 1.0, в рамках которого подготовлена альтернативная реализация окружения для выполнения программ на языке Ruby, построенного на основе использования 64-разрядной виртуальной машины VMware GemStone/S, изначальной созданной для языка 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 с большой долей вероятности будет находится в кэше, что значительно ускоряет доступ к этому коду.



  1. Главная ссылка к новости (http://www.infoq.com/news/2011...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/32344-ruby
Ключевые слова: ruby, nosql, database, maglev
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (7) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, PGI520BK (?), 16:59, 18/11/2011 [ответить]  
  • –1 +/
    А тесты? Где тесты? Ау!
     
     
  • 2.2, Andrey Mitrofanov (?), 17:28, 18/11/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не иначе, лицензия этого опен-кора включает подписку о нетестировании и нераспространении результатов.
     
  • 2.4, Anonym1 (?), 18:44, 18/11/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    "код ранее выполняемый в других экземплярах MagLev VM с большой долей вероятности будет находится в кэше, что значительно ускоряет доступ к этому коду"
    Это только мне напоминает оригинальный способ использования Swap-file некоторых версий Windows?
    Боюсь, что тесты не будут однозначны ввиду этой особенности subject-а.
     
     
  • 3.5, ми (?), 21:23, 19/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    При чем здесь Windows? В строительстве операционных систем разделяемые библиотеки использоваться начали еще в Unix.
     
     
  • 4.7, Anonym1 (?), 23:40, 19/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Имелась в виду политика кеширования всего-всего когда-либо загруженного в память. С хранением там до бесконечности. И сбрасыванием самых старых записей только при переполнении кеша, а не по истечению контрольного времени, в другой, болеее медленный кеш (swap-file), который их хранит до перезагрузки системы либо до завершения загружавшего приложения...
     
     
  • 5.8, Аноним (-), 16:28, 20/11/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Полагаю swap в Linux работает так же? И чем хорошо сакральное контрольное время?
     

  • 1.6, Skynin (?), 23:07, 19/11/2011 [ответить]  
  • +/
    Новый MUMPS :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру