powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Упрощенная самодельная Firebird-репликация
25 сообщений из 99, страница 1 из 4
Упрощенная самодельная Firebird-репликация
    #39555463
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сначала тезисно пройдусь по ТЗ:
1) ПО торгово-производственное, предполагается участие в репликации, в основном, не более 10-ти машин, за редким исключением - максимум нескольких десятков машин. Типичная конфигурация: две независимые точки, на одной 3-5 машин в локальной сети, на другой 3-5 машин операторов.
2) Базы все FB 2.5 (хотя возможен переход на тройку).
3) Репликация планируется асинхронная, через существенные промежутки времени (раз в 30-60 мин, например, в основном, обмен заказами).
4) Обмен через FTP-папку, xml-файлами, в которых содержатся "пакеты изменений". Выгружаются две сущности: справочники и заказы.
5) Все изменения записей будут отслеживаться в триггерах и вноситься в таблицу выгрузки.
5) Репликация Master-Master.
6) Дабы минимизировать конфликтные ситуации и обеспечить ссылочную целостность - физически данные не удаляются ни в одной таблице. Только скрытие, по boolean-полю DELETED.
7) Заказы, созданные на "другой" торговой точке не подлежат редактированию. Только "свои".

Теперь подробнее.
Схема Master-Master предполагает ряд тонких моментов, самый очевидный из которых - как быть с генераторами?
Предполагаю так: в отношении справочников - генераторы должны быть разумеется идентичны на всех машинах, участвующих в репликации. Что же до заказов - то тут генераторы на каждой машине свои конечно, однако чтобы был порядок, и в плане визуального восприятия заказов, и в отчетах\анализе - используются уникальные для каждой торговой точки integer-идентификаторы.

Далее, что сделать, чтобы одновременные изменения в справочниках на разных машинах не повлекли конфликты?
Тут вижу такое решение - монопольный доступ. Причем, прежде чем редактировать любой справочник, ПО должно обратиться к серверу (лучше реализовать через HTTP-REST-запрос? или можно также по ftp?) на получение состояния некоего флажка блокировки редакции справочников. Если он (флаг) установлен и известно кем - значит всем остальных доступ на редакцию сейчас запрещен. Соответственно, тот кто этот флаг возвел, он же его и снимает после завершения редактирования справочников. Финализация этого процесса предполагает выгрузку файла с изменениями и снятие флажка. Решение выглядит негибким, однако для данной задачи, возможно, вполне подходит, поскольку попытка одновременной редакции справочников будет крайне редким явлением.

Поскольку новичок в теме, прошу совета отцов. Что упустил, что посоветуете...
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555467
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftologicСхема Master-Master предполагает ряд тонких моментов, самый очевидный из которых - как
быть с генераторами?

В свете п.7 все ключи делаются составными: локальный генератор + идентификатор точки.
Для таблиц, не подпадающих под п.7, я рекомендую не мелочиться и использовать UUID в
качестве PK.

Softologic что сделать, чтобы одновременные изменения в справочниках на разных
машинах не повлекли конфликты?
Или тот же п.7, или просто забей: когда ситуация неоднозначна на уровне бизнесс-процесса,
техническими средствами её решать бесполезно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555468
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Softologicфизически данные не удаляются ни в одной таблице. Только скрытие, по boolean-полю DELETED.
7) Заказы, созданные на "другой" торговой точке не подлежат редактированию. Только "свои".

Теперь подробнее.
Схема Master-Master предполагает ряд тонких моментов, самый очевидный из которых - как быть с генераторами?Это мне не нравится. Менять ту же запись с обеих сторон. А коллизии другими, административными, логическими методами разруливать.
С генераторами я лично поступаю так: ПК из 2-х полей: DB_ID+RECORD_ID. Для центральной базы. Если все базы одинаковые и центра не будет - другой подход нужен. Диапазоны генераторов нужны.
"упрощенного" подхода не подучится в любом случае.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555472
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Softologicпопытка одновременной редакции справочников будет крайне редким явлением.

А должна быть абсолютно невозможной. Но я поясню почему в реальном мире на неё можно
забить: вот есть в справочнике "Иванов", на точке один решили "это не Иванов, а Петров" и
отредактировали справочник, а на точке два в то же самое время решили "это не Иванов, а
Сидоров" и тоже отредактировали. В результате после репликации обнаружится бардак в
бизнесс-процессах и заинтересованные стороны созвонятся и договорятся - "Петров или
Сидоров" и кто виноват в неправильном редактировании. Со стороны программы никаких
специальных действий для этого не требуется, кроме ведения лога "когда, кто, что и на что
поменял" чтобы можно было устроить разбор полётов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555533
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Softologic4) Обмен через FTP-папку, xml-файлами, в которых содержатся "пакеты изменений". Выгружаются две сущности: справочники и заказы.Какая-то лишняя сущность.

Диапазоны идентификаторов в ИНТ64, ГУИД по вкусу.

Купи готовый репликатор, это заметно дешевле разработки своего.
Там просто море сельхозинвентаря припрятано.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555554
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskySoftologic4) Обмен через FTP-папку, xml-файлами, в которых содержатся "пакеты изменений". Выгружаются две сущности: справочники и заказы.Какая-то лишняя сущность.

Диапазоны идентификаторов в ИНТ64, ГУИД по вкусу.

Купи готовый репликатор, это заметно дешевле разработки своего.
Там просто море сельхозинвентаря припрятано.

Не совсем понял почему лишняя...
И где продают дешевые репликаторы для тиражируемого софта с неограниченным числом лицензий?
IBReplicator что то совсем недешев: https://www.ibphoenix.com/shop/category/2
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555644
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ftp и xml лишние. ну по крайней мере мы не используем. парсить xml в поллямя строк то еще удовольствие. а вот если заготовить сразу пачку стейтметов ничего парсить не потребуется. у нас репликатор сам обменивается через сокеты запакованными пачками, фтп не нужен.

насчет ибрепликатора спроси прямо у Сибирякова, он же тут, никуда не делся.

насчет дорого дешево... как только сунешься писать всплывет много чего.... сгенерировать триггеры, написать мониторинг, то ли граф оболочку, то ли веб мордашку и тд. и тп.

У нас репликатор свой, затачавали по себя.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555666
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyпарсить xml в поллямя строк то еще удовольствие. а вот если заготовить сразу пачку стейтметов ничего парсить не потребуетсяСтейтменты - тоже не самый быстрый вариант. У нас в бинарном формате список данных полей передается, которые в параметры хранимок присваиваются, которые вместе с триггерами создаются.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555675
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevskyftp и xml лишние. ну по крайней мере мы не используем. парсить xml в поллямя строк то еще удовольствие. а вот если заготовить сразу пачку стейтметов ничего парсить не потребуется. у нас репликатор сам обменивается через сокеты запакованными пачками, фтп не нужен.

насчет ибрепликатора спроси прямо у Сибирякова, он же тут, никуда не делся.

насчет дорого дешево... как только сунешься писать всплывет много чего.... сгенерировать триггеры, написать мониторинг, то ли граф оболочку, то ли веб мордашку и тд. и тп.

У нас репликатор свой, затачавали по себя.

Ну ок, понял как без xml, со стейтментами... даже в принципе, с бинарниками понимаю, как YuRock предлагает. Но не понял как без ftp обойтись? Базы же географически раскиданы, обмен то в любом случае через интернет делать. Писать в MySQL-базу на сайте через php-запросы чтоль? Или новомодные яндекс-диски, гугл-драйвы использовать?
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555678
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftologicНо не понял как без ftp обойтись?

VPN + прямое подключение, например. На ваших объёмах должно хватить.
VPN + SMB тоже неплохой вариант.
FTP имеет проблему с атомарностью передачи, её надо будет обеспечивать дополнительными
средствами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555679
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Softologic,

ну вариантов много. Например написать на php мини-сервис который принимает json на входе и вносит изменения по этому json в нужные таблицы. В общем-то как именно забрасывать изменения в БД не так уж важно
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555680
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftologicНо не понял как без ftp обойтисьКак физический уровень обмена организован будет - другая задача. Как хочешь - так и делай. Хочешь - фтп. Но и неплохо было бы, чтобы была возможность передачи пакетов "онлайн" - на свой сервер, который сразу же их и в базу обрабатывает.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555711
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок, спасибо большое всем за помощь!
Тогда такой вопрос - вообще какой ценник у такого рода задачи? Понимаю, что вопрос риторический, все по разному себя оценивают, однако все же... быть может есть некая минимальная оценка? Кто за сколько бы взялся?
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555713
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftologicКто за сколько бы взялся?Уже говорил. Это не простая задача. Да еще и начать нужно с написания и согласования ТЗ. В итоге - будут месяцы работы (квалифицированного программиста, высокооплачиваемого), потом поддержка.
Не знаю, сколько стоят готовые решения, но очень вероятно, что дешевле.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555726
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockУже говорил. Это не простая задача. Да еще и начать нужно с написания и согласования ТЗ. В итоге - будут месяцы работы (квалифицированного программиста, высокооплачиваемого), потом поддержка.
Не знаю, сколько стоят готовые решения, но очень вероятно, что дешевле.
Про непростоту задачи я понимал с самого начала, и что готовые решения дешевле тоже. Хотя, повторюсь - для тиражируемого ПО с неограниченным числом лицензий... Это большой вопрос. И готовое может потянуть тыщ на 5 евро в год, как HQBird в Enterprise-редакции со встроенным репликатором.
Таки может кто минимальную планку назвал бы примерную, а? Для ориентиру...
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555727
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovSoftologicНо не понял как без ftp обойтись?

VPN + прямое подключение, например. На ваших объёмах должно хватить.
VPN + SMB тоже неплохой вариант.
FTP имеет проблему с атомарностью передачи, её надо будет обеспечивать дополнительными
средствами.

Да, VPN + прямое подключение, вероятно, оптимальный вариант.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555734
SoftologicYuRockУже говорил. Это не простая задача. Да еще и начать нужно с написания и согласования ТЗ. В итоге - будут месяцы работы (квалифицированного программиста, высокооплачиваемого), потом поддержка.
Не знаю, сколько стоят готовые решения, но очень вероятно, что дешевле.
Про непростоту задачи я понимал с самого начала, и что готовые решения дешевле тоже. Хотя, повторюсь - для тиражируемого ПО с неограниченным числом лицензий... Это большой вопрос. И готовое может потянуть тыщ на 5 евро в год, как HQBird в Enterprise-редакции со встроенным репликатором.
Таки может кто минимальную планку назвал бы примерную, а? Для ориентиру...
Готовое отлаженное решение гарантированно дешевле заказного.

Я бы взялся за такую работу. На постоянной основе, сидел бы да пилил.
Сперва бы ТЗ добили, потом модель построили, макет сети создали.
Пакет тестов бы написали, исходя из требований...
Отладили бы вопросы коллизий, сервисы вспомогательные создали.
Написание документации, поддержка оной в актуальном состоянии.
Прикладной API, сервиснный API, работа с серверами разных типов.
Работа в разных версиях ОС и вообще в разных ОС.
Поддержка линий связи низкого качества.
По мере уточнения ТЗ запускали бы новые итерации...
...
Красота. Как в оборонных НИИ времён СССР. Только без диссертаций.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555735
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftologicТаки может кто минимальную планку назвал бы примерную, а? Для ориентиру...Ну, пожалуйста. Если какой-то нищеброд типа меня согласится сделать тебе репликатор (свой адаптировать к твоей системе), это будет пару десятков килобаксов стоить. Ориентировочно, а так будет ++.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555741
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockSoftologicТаки может кто минимальную планку назвал бы примерную, а? Для ориентиру...Ну, пожалуйста. Если какой-то нищеброд типа меня согласится сделать тебе репликатор (свой адаптировать к твоей системе), это будет пару десятков килобаксов стоить. Ориентировочно, а так будет ++.
То есть от миллиона рублей так очень примерно. И это нищебродская оценка, я полагаю ?:)
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555742
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftologicYuRockпропущено...
Ну, пожалуйста. Если какой-то нищеброд типа меня согласится сделать тебе репликатор (свой адаптировать к твоей системе), это будет пару десятков килобаксов стоить. Ориентировочно, а так будет ++.
То есть от миллиона рублей так очень примерно. И это нищебродская оценка, я полагаю ?:)1. Я не в курсе курса рубля.
2. Это просто порядок. Сумма может возрасти в несколько раз. Все зависит от результатов работы над ТЗ. Которая тоже не бесплатна.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555747
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас по сути все есть, только адаптировать под тираж, черкни письмо, перешлю автору нашего репликатора.
Бюджет какой?

SoftologicНо не понял как без ftp обойтись?участники обмена видят друг друга поверх ВПН и обмениваются через TCP сокет зипованными пакетами.

SoftologicПисать в MySQL-базу на сайте через php-запросы чтоль? Или новомодные яндекс-диски, гугл-драйвы использовать?Мы ж не изверги какие. :) Только ФБ, сишные линуксовые программки и виндовая гуевая обертка с мониторингом, построителем триггеров. Да вот только виндовой серверной части нету, но скомпилить под винды при наличии исходников, пожалуй не является неразрешимой задачей, просто винда и сервер как-то у меня не стыкуются в кучу.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555751
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чую, нарисовывается тендер.

Время, которое у нас есть, -
это деньги, которых у нас нет. (c)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555754
Softologic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов РустамЧую, нарисовывается тендер.

Похоже обламаю всех сейчас :)
Проект-долгострой. Делается по-дружески практически. Поэтому термин "бюджет" не совсем уместен. Собственно, поэтому и спрашивал советов, как бы самому научиться то полезно.
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555758
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Softologic> Проект-долгострой. Делается по-дружески практически.

Ох и нахлебаешься потом "благодарности" да хлопот...

> Собственно, поэтому и спрашивал советов, как бы самому научиться то полезно.

Тут доморощенных репликато-делов хватает - появятся
вопросы - спрашивай, тебе и про триггера, и про ГУИДы,
и про транзакции и про всё остальное расскажут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Упрощенная самодельная Firebird-репликация
    #39555759
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Softologic...Делается по-дружески практически...
Вот так и теряют друзей.
...
Рейтинг: 0 / 0
25 сообщений из 99, страница 1 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Упрощенная самодельная Firebird-репликация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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