powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Кто работает с GT.M?
10 сообщений из 10, страница 1 из 1
Кто работает с GT.M?
    #38300531
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы иметь представление, кто работал и работает с GT.M?
Если конкретно, то сейчас у меня ступор связан с репликацией... по существу думаю об использовании Business Continuity (BC) репликации. Но не могу понять можно ли сделать например так: два (и более) равноправных инстанса, наше веб приложение передает запросы равномерно между двумя (и более) инстансами...
Попробую нарисовать здесь как работает сейчас на примере одного инстанса:

Backend Instance:
GT.M (6.0-001) с модулями рутин (условно Backend API)
C++ Backend демон, который создает N GT.M Workers в отдельных процессах,
GT.M Worker также написан на C++ и использует GT.M Call-Ins, получает запросы и отправляет ответы посредством Shared Memory.

Frontend Instance:
PHP приложение, написанное согласно паттерну MVC, в моделях вызываются запросы посредством разработанного PHP расширения
PHP расширение, в котором реализована поддержка Backend API
C++ Gateway демон, который передает запросы и получает ответы от C++ Backend демона по защищенному TCP соединению, запросы же он получает от PHP расширения и ему же отдает ответ.

GT.M - [GT.M Workers - Backend] -------- Gateway - [PHP Extension - PHP App]

Для масштабирования Backend'а на примере двух инстансов мне надо две такие схемы Frontend -- Backend, и на стороне Frontend реализовать балансировщик веб-запросов между двумя схемами (но это не моя задааи). Моя задача - как сделать возможность добавления-изменения-удаления глобалов в GT.M для двух этих инстансов, при этом чтобы данные синхронизировались.
В Business Contiunity репликации есть главный инстанс и вторичный инстанс, и как я понял (или плохо понял?) бизнес логика (Backend API) работает только с главным, а вторичному только передает изменения в главном.

Тоесть бизнес логику и передачу изменений ко вторичному нельзя применить?

PS: Почему так запутано решение это другой вопрос. Мне ответы интересны по репликации данных.
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38309181
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
K.S. Bhaskar ответил вот так:

Owing to requirements of transaction integrity for the applications that run on GT.M and the eventual consistency that the CAP theorem imposes, GT.M does not currently support multiple Master/Master operation.

You can certainly implement replication at the application level. For example, create triggers that log updates to a global from where application processes stream updates to other instances.

Теперь сижу и думаю, что зря выбрал GT.M. Но прийдется как то выходить из ситуации. И изучаю подробнее основные SQL/NoSQL базы данных.

Даже не знаю, в Cache' лучще обстоят дела с репликацией?
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38309267
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не совсем понял суть необходимого, но опишу то что понял.
а понял я что вам нужно реализовать балансировку нагрузки на сервер путем распарралеливания и так чтобы данные были одни на всех серверах.

как это решается на Cache`.
Там есть такая технология как ECP , которая позволяет иметь 1+ ECP-сервер (сервера данных), и 1+ ECP-клиенты (сервера приложений).
как первых так и вторых может быть больше одного, тут как настроите. конечно желательно когда ECP-клиентов больше чем EСP-серверов, для этого все это и делается.

В такой конфигурации вы имеете несколько ECP-клиентов, которые подключаются к ECP-серверу для получения/сохранения данных.
за контролем целостности следит ECP-сервер. т.к. данные хранятся на ECP-сервере, то запрошенные данные одним ECP-клиентом измененные на другом, будут актуальны на момент запроса. ECP-клиент кеширует у себя запрашиваемые данные. соответственно нагрузка на сеть может быть минимальна. при этом есть возможность пользоваться например БД для временных данных которые не требуется "реплицировать" и данные оттуда нужны только для текущего ECP-клиента, тогда эта бд должна быть локальной для текущего ECP-клиента.

вам остается только настроить балансировку нагрузки на все эти ECP-клиенты, это умеет и CSPGateway через который и работает WEB в Cache`.

Наличие нескольких ECP-серверов, намного усложняет конфигурацию но позволит вынести часть данных на другой сервер когда один сервер например не справляется с дисковыми операциями.

Ко всему этому можно конечно еще добавить Mirroring чтобы обеспечить отказоусточивость на уровне ECP-серверов, тогда при выходе его из строя, сразу включается запасной сервер и ECP-клиенты быстро переключаются на него, со стороны веб-клиента будет минимальная задержка
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38309310
SergeyLee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Вы правильно поняли то, что мне нужно :)
Спасибо за ответ. Буду думать. Вообще то разработанное решение может и без распараллеливания справится. По сути, увы, самая тормозящая часть это фронтенд. Да и в целом можно было бы проще реализовать все (если бы еще и не требование "как можно лучше спрятать базу данных от взломщиков"). На стороне бекенда скорость порядка 10000 запросов/секунду (нашего API), что я еще могу ускорить еще в 2-3 раза. Но фронтенд запрашивает запросы со скоростью порядка 500 запросов в секунду. Поэтому мы пока думаем распараллелить фронтенд балансировщиком запросов к веб-серверу. А бекенд соответственно сможет легко обслуживать 20 (10000/500) фронтендов. Теоретически :) поскольку я таким еще не занимался. Да и у нас нет таких специалистов.

На будущее думаю уже лучше выбирать БД, от Cache' отказался не я, а начальство :) посколько платно.
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38309646
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyLeeВообще то разработанное решение может и без распараллеливания справится. По сути, увы, самая тормозящая часть это фронтенд.Откуда тогда потребность в "хитрой" репликации бэкэнда? Стоит ли бороться за масштабирование, если и так всё хорошо? Делайте спокойно на GT.M, оставаясь в рамках стандартного MUMPS. Глядишь, и в Cache когда-нибудь перерастёте, если GT.M перестанет справляться... хорошие системы иногда живут дольше, чем иное начальство ))
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38309974
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть GT.M-овцам будет интересно:
в Cache' без какого-либо анонса появилась утилита конвертации БД из GT.M в Cache':^%GTMCVT. По крайней мере, в версии 2012.2 она есть.
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38310079
2acid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Maslov,
а обратная утилита есть (из Cache в GT.M )?
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38310572
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2acidа обратная утилита есть (из Cache в GT.M )?
Зачем она ИС?
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38310587
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько лет назад переносили в GT.M. Сами писали. Сначала перенесли бэкап БД, потом останавливали-таки систему для докатывания из журнала.
...
Рейтинг: 0 / 0
Кто работает с GT.M?
    #38338728
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2acid,
Можно сохранить на стороне Cache глобалов утилитой %GO,
а на стороне GT.M утилитой MUPIP ..
Код: plsql
1.
mupip load -format=go /usr/install/cadre.go
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Кто работает с GT.M?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]