|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
Необходимо принять решение о том, как работать с базой данных (СУБД) GT.M и так как я новичок в этом, то прошу указать ошибки мышления или выбора :) Есть так называемый (мной) Storage Backend (классная информация кстати: http://highscalability.com/blog/2012/6/5/thesis-concurrent-programming-for-scalable-web-architectures.html). Storage Backend предназначен для делегирования функций по работе с базой данных. Что то подобное (или точно такое) - M/DB или MiniM. Немного поработав с GT.M посредством вызовов C++ Call-Ins ( http://tinco.pair.com/bhaskar/gtm/doc/books/pg/UNIX_manual/ch11s05.html) и слегка копируя идею GlobalsDB Java API я начал разработку своего GT.M C++ Wrapper. Это первый вариант работы с базой данных в Storage Backend. Второй вариант это Client/Server, например M/Wire. Это вариант я как раз собираюсь опробовать в ближайшее время в полной мере. Но необходимо понять какой вариант лучше для моего Storage Backend. Я могу размещать Storage Backend на одном физическом сервере с базой данных и значит будет работать мой GT.M C++ Wrapper. Конечно я могу сделать (как в GlobalsDB Java API) создание соединений (опять же каких? TCP? и как я буду выполнять Call-Ins для базы данных, с которой соединился?). Но я могу реализовать второй вариант, больше бизнес-логики реализовав на стороне базы данных (СУБД) в виде M рутин. Что выбрать и где я ошибаюсь? Вот в чем вопрос... PS: никак не могу выделить время на чтение книг-текстов по MUMPS... Модератор: подправил название темы ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 15:20 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
Но я могу реализовать второй вариант, больше бизнес-логики реализовав на стороне базы данных (СУБД) в виде M рутин. Будет Вам скорость(самая большая, это прямой доступ) и гибкость обработки БД. Можно попробовать и первый вариант и в конце сравнить варианты. Вот тогда и все прояснится... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 16:44 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
SergeyLee, По соседству есть два форума "Проектирование БД" и "Разработка информационных систем". Там на такие посты ответ короткий - ТЗ в студию! Какие данные, какая обработка, сколько пользователей, какие запросы - не имея представления об этом невозможно что-то рекомендовать. Код: sql 1. 2. 3.
Вариант 1. Ставите на каждый сервер свой Wrapper, которые взаимодействуют с GT.M через Ваш любимый Call-Ins, а по TCP взаимодействуют с Супер-Wrapper, к которому подключаются пользователи. Вариант 2. Плюньте на Call-Ins, подключайтесь к серверам GT.M через TCP. Возьмите за основу M/Wire, посмотрите http://karataev.nm.ru/cache/mdapi.html , здесь есть примеры клиентских программ. Упор сделайте не на мампсовские SET и KILL, а на XECUTE и DO, т.е. на вызов прикладных программ и функций. P.S.Так и не пойму, для чего Вам нужен C++ Wrapper. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 17:00 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
DirksDRSergeyLee, По соседству есть два форума "Проектирование БД" и "Разработка информационных систем". Там на такие посты ответ короткий - ТЗ в студию! Какие данные, какая обработка, сколько пользователей, какие запросы - не имея представления об этом невозможно что-то рекомендовать. Код: sql 1. 2. 3.
Вариант 1. Ставите на каждый сервер свой Wrapper, которые взаимодействуют с GT.M через Ваш любимый Call-Ins, а по TCP взаимодействуют с Супер-Wrapper, к которому подключаются пользователи. Вариант 2. Плюньте на Call-Ins, подключайтесь к серверам GT.M через TCP. Возьмите за основу M/Wire, посмотрите http://karataev.nm.ru/cache/mdapi.html , здесь есть примеры клиентских программ. Упор сделайте не на мампсовские SET и KILL, а на XECUTE и DO, т.е. на вызов прикладных программ и функций. P.S.Так и не пойму, для чего Вам нужен C++ Wrapper. Спасибо :) Ну я так и предполагал :) Но интуиция это такое... А почему C++ Wrapper? Да просто это первое, что я сделал ручками и получилось :) Буду теперь смотреть M/Wire 100% уверенным, что иду в правильном направлении... Такс) А по поводу ТЗ и другого форума... Я тут уже как бы устроился как дома))) а там еще не был))) Проектирование БД - это проектирование данных) Информационные системы как бы уже продумано все) она не очень и сложная как по архитектуре, мне как раз нужен был механизм работы с базой данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2012, 17:17 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
DirksDR, спустя 2 года таки пришли к выводу, что надо писать логику работы с данными на стороне М (GT.M) и промежуточный слой (TCP) буду разрабатывать на основе ZeroMQ на стороне фронтенда будет логика работы с интерфейсом и выполнение логики на стороне М в виде сообщений, содержащих соответствующие функции неизвестно правда когда эта вторая версия тронется с места полным ходом, нужно столько работы для определения технического задания, что даже не знаю когда все свершится :) с моей стороны будет медленное "познание" ZeroMQ, написание промежуточного слоя, и затем простейшего примера с его использованием - пример бекенда и пример фронтенда... но это все 8 часов в неделю... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 17:21 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
SergeyLee, спустя 2 года таки пришли к выводу, что надо писать логику работы с данными на стороне М (GT.M) Я постоянно об этом говорил. Хочешь скорость-используй прямой доступ к глобалям. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2014, 17:28 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
Valeriu, А я передавал своим коллегам эту мысль, но они не внимали ей, пока не возникло несколько ситуаций, после которых начальник отдела (он же основной разработчик фронтенда на PHP) начал решительно ломать систему в сторону "пишем всем на М", что тоже несовсем правильно (наверное). Я хочу писать на М только логику работы с данными, а формирование страниц по крайней мере на первых порах - на PHP, JavaScript. Можно конечно формировать страницы (HTML+JavaScript) и на М, но на это надо потратить время - спроектировать каркас, возможность формирования страниц по шаблону (шаблонизатор на М) и прочее. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 13:03 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
SergeyLee, Я хочу писать на М только логику работы с данными, а формирование страниц по крайней мере на первых порах - на PHP, JavaScript Я думаю, что это правильный подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 13:10 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
ValeriuЯ думаю, что это правильный подход. Какой смысл привлекать еще один язык если ГТ.М поддерживает работу с вэбом? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 14:06 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
krvsa, Много об этом говорят, но на чистом М если честно, я приложений мало видел. Например Роб Твид (EWD.js) предлагает вообще отказаться от М на стороне клиента и все писать на JS, а М использовать чисто как хранилище. Выше есть пост DataBallet, где автор предлагает писать на М, но примеров мало совсем. Помню на МСМ-е была попытка на PDQweb, но тоже не взлетело. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:49 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
Ну не на чистом M но только на Cache, много приложений я думаю, ну а по поводу клиента на чем же еще его писать. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 15:56 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
ValeriuМного об этом говорят, но на чистом М если честно, я приложений мало видел. Так где найти тот хостинг с Кащеем! Кабы он был... И был бесплатным... Я бы всю траву примял!!! ValeriuНапример Роб Твид (EWD.js) предлагает вообще отказаться от М на стороне клиента и все писать на JS, а М использовать чисто как хранилище. Так М - серверный язык. Как его на клиенте использовать? Я лишь писал про формирование страниц... Зачем это делать на ПХП, цепляясь к М? Если можно гененрть самим М. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:04 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
krvsa, Конечно на серверной стороне. Очепятка. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:12 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
Это будет примерно на одних Write Write "<!DOCTYPE html>",! Write ! Write "<html>",! Write "<head>",! Write " <title>Index</title>",! ...... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:15 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
ValeriuЭто будет примерно на одних Write И в чем криминал? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:24 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
Для удобства конечного разработчика делается набор из процедур и функций... С их помощью все и строится... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:26 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
ValeriuЭто будет примерно на одних Write Write "<!DOCTYPE html>",! Write ! Write "<html>",! Write "<head>",! Write " <title>Index</title>",! ......Ну при большом желании, можно написать нормальный фрейморк на M, и тогда можно например по $text, вытаскивать шаблон, из своей же рутины, и вставлять нужные поля. а сейчас нормальное приложение должно возвращать в большинстве случаев только например JSON. а HTML На основе шаблонов генерируется на стороне браузера. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 16:29 |
|
GT.M Storage Backend решение
|
|||
---|---|---|---|
#18+
DAiMorНу при большом желании, можно написать нормальный фрейморк на M, и тогда можно например по $text, вытаскивать шаблон, из своей же рутины, и вставлять нужные поля. а сейчас нормальное приложение должно возвращать в большинстве случаев только например JSON. а HTML На основе шаблонов генерируется на стороне браузера. а я об этом и писал SergeyLeeно на это надо потратить время - спроектировать каркас, возможность формирования страниц по шаблону (шаблонизатор на М) и прочее. собственно заняться этим некогда в рабочее время, а в свободное время я стремлюсь к другим областям программирования :) собственно я могу же резко переместить свое внимание на другие области - мобильные приложения, разработка игр, то, что мне интереснее, плюс выгодно, пока что я сижу выгодно на текущем продукте, но мне не нравится то, как им управляют :) сейчас правда я частично перевожу документацию и пишу некоторое описание GT.M и MUMPS для своих же коллег, для того, чтобы их быстро обучить этому, а дальше уже все пойдет-поедет, но это все планы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2014, 20:18 |
|
|
start [/forum/topic.php?fid=39&msg=38773580&tid=1556788]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 158ms |
0 / 0 |