Hazelcast или AppScale для управления параллельными вычислительными задачами над общим набором данных

Начинаем новый проект и ищем совет по подходящей платформе. В настоящее время мы думаем, что это Hazelcast или AppScale, поскольку общий (но ограниченный) опыт нашей команды охватывает более старую версию Hazelcast и GAE. Оба, очевидно, также могут быть настроены на EC2, что может быть самым простым способом удовлетворить ожидаемую потребность в процессоре.

Профиль проблемы

1). Наши данные состоят из множества небольших записей, хранящихся по дате (но не всегда по времени). Некоторые из них представляют собой небольшие числовые записи (бизнес-статистика, выглядит как ежедневная информация о погоде или котировки фондовых рынков), а некоторые представляют собой объемный текст (записи в файлах журнала). Объемы данных не огромны, порядка сотен в день от 1к до 50к каждый.

2). Очень-очень большое количество экземпляров вычислительно дорогостоящих числовых моделей (подумайте о симуляторах Монте-Карло) постоянно работают над окнами фиксированного размера одних и тех же данных.

3). Ряд агентов мониторинга предоставляют данные.

4). Большие (более длительные периоды времени) наборы одних и тех же данных должны обрабатываться в автономном режиме один раз в день.

С помощью Hazelcast мы добавляли бы входящие данные на карты и использовали бы службу Executor для запуска моделей поверх общих данных. Вероятно использование Tomcat для обеспечения минимального внешнего доступа к сетке по мере необходимости.

С помощью AppScale мы могли бы добавлять таблицы для каждого типа данных и использовать API очередей задач для создания числовых моделей. Сервлеты, развернутые в AppScale согласно GAE, обеспечивают интерфейс.

Вопрос

Что следует использовать для таких требований - AppScale или Hazelcast? То есть - для проблемы, как указано, есть ли какие-либо отличительные факторы в пользу / против любой платформы, которые мы должны учитывать?


person Capn Sparrow    schedule 29.09.2014    source источник


Ответы (1)


Если вы предпочитаете / требуете распределенную сервис-ориентированную модель программирования (набор задач), тогда ответ - AppScale. Если вы предпочитаете / требуете модель параллельного программирования (абстракция с одной машиной), тогда ответ - Hazelcast. AppScale также является полноценной облачной платформой (а не только хранилищем данных), которая позволяет вам делать больше с вашим приложением по мере его развития. Если вы выберете AppScale, вы можете настроить временные ограничения для задач и настроить платформу с библиотеками, которые вы хотите использовать, для ваших вычислительно затратных методов.

person user2888205    schedule 29.09.2014