Ответ 1
Если вы хотите масштабировать несколько виртуальных машин, вы можете взглянуть на GemStone/S.
Помните, однако, что GemStone является фирменным коммерческим продуктом. Таким образом, вам придется заплатить за это. Тем не менее, модель ценообразования, как правило, разработана таким образом, что, если вам нужна более крупная версия, вы, как правило, также должны платить пользователям за это издание. Цены начинаются с 0 $для версии 4 GiByte disk/1 GiByte RAM/1.
Еще одна вещь, которую следует отметить, это то, что GemStone Smalltalk - это собственный диалект, поэтому ваш код Squeak, вероятно, не будет работать без изменений, но его довольно легко переносить. (Например, инженеры GemStone создали адаптер, который позволяет загружать пакеты системы Monticello (Squeak version control system) в GemStone/S, также они обычно обеспечивают, чтобы Seaside работал.)
Итак, что такое GemStone? В принципе, это распределенная виртуальная машина с автоматическим сохранением объекта. Это проще всего объяснить по сравнению с обычной Smalltalk VM. Если у вас две виртуальные машины Smalltalk, работающие бок о бок, каждая из них имеет свою собственную память объектов (т.е. То, что управляет сборщик мусора). И эта память объектов находится в ОЗУ. В GemStone все виртуальные машины в кластере имеют одну и ту же память объектов и живут на диске, а не в ОЗУ. Таким образом, вам не нужна база данных, даже объектно-ориентированная, потому что ваши объекты "там всегда", везде, все время.
(Это только очень упрощенное описание. Например, куча на самом деле не разделена между виртуальными машинами. Это не имеет смысла, вы не захотите реплицировать каждый временный объект, созданный по сети. глобальный объект репозитория (в основном, словарь) и точно так же, как сборщик мусора начнет с какого-то известного корневого объекта, а затем сохранит все объекты, доступные оттуда, и удалит те, которые этого не делают, GemStone начнет с глобального объект репозитория, и сохраняйте/реплицируйте только те объекты, которые доступны оттуда.)
В GemStone также есть функции базы данных, поэтому доступ к глобальному репозиторию завершается транзакциями ACID, и есть язык запросов, основанный на SQL, но Smalltalkish.
У GemStone есть хорошее устройство, которое они называют " GLASS" (для GemStone, Linux, Apache, Seaside и Smalltalk), аналогичные скважине "LAMP" (Linux, Apache, MySQL и PHP). GLASS включает бесплатное издание GemStone с предустановленным Seaside и все настройки с Apache, работающие поверх Xubuntu, все аккуратно упаковано в образ диска VMWare.