GemStone

Супер Smalltalk

Обычно Smalltalk имеет некоторые ограничения, особенно в областях параллелизма и распределенной обработки. Эти ограничения не присущи дизайну языка. Скорее, это вопрос реализации. GemStone / S - фантастическая реализация, устраняющая эти недостатки. Я просто хотел обратить на это ваше внимание.

Что такое GemStone?

Решение ограничений традиционного Smalltalk:

  1. Пространство объекта ограничено одной виртуальной машиной.
  2. Пространство объекта ограничено одним хостом.
  3. Пространство объекта ограничено доступной оперативной памятью.
  4. Изменения объекта (с момента последнего сохранения образа) теряются при выходе из ВМ.

А именно,

- Пространство объектов, видимое тысячам виртуальных машин на тысячах машин.

- Пространство объекта ограничено диском, а не оперативной памятью.

- Изменения объекта, управляемые транзакциями ACID:

  • Атомный
  • Последовательный
  • Изолированные
  • Прочный

- Изменения объекта гарантированно сохраняются после фиксации.

Ключевые особенности GemStone

Масштабируемость

- Миллиарды объектов.

- Тысячи пользователей.

- Тысячи машин.

- Тысячи транзакций в секунду.

- Терабайты данных.

Параллелизм

- Несколько пользовательских сессий.

- Встроенная база данных транзакций:

  • Совершить
  • Прервать
  • Продолжать

- Оптимистичный параллелизм (уменьшение количества конфликтов).

- Пессимистический параллелизм (блокировки чтения / записи на уровне объекта).

- Пространства имен (общие и частные).

Безопасность

- Безопасность на уровне объекта (права пользователя, группы, мира).

- Безопасность входа

  • Традиционный идентификатор пользователя / пароль
  • Единый вход (GSSAPI / Kerberos)
  • LDAP
  • PAM
  • Сертификаты X509 (новое в 3.5)

- Привилегированные операции

  • #Вывоз мусора
  • #OtherPassword
  • #SystemControl

Поддержка очень больших коллекций

- Коллекции из миллионов предметов.

- Оптимизирован поиск с использованием индексов b-дерева:

  • Индексы равенства (a = b)
  • Индексы идентичности (a == b)
  • Сниженные индексы конфликтов

Интерфейсы для других Smalltalks

- VisualWorks®: GemBuilder для VisualWorks®.

- VA Smalltalk®: GemBuilder для VA Smalltalk®.

- Pharo: tODE, gt4Gemstone - скоро появится встроенная поддержка Pharo.

- Нефрит / Жадеит (Дельфин).

Интерфейсы для других языков

- C / C ++: GemBuilder для C.

- Java: GemBuilder для Java.

Интерфейсы к реляционным базам данных

- Oracle: GemConnect для Oracle.

- Sybase: GemConnect для Sybase (с открытым исходным кодом).

Лицензирование

Хотя GemStone / S является коммерческим продуктом, доступна Community Edition, которую каждый может бесплатно использовать для любых целей! Это чертовски круто.