The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (PostgreSQL)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Синхронизация содержимого таблицы для PostgreSQL 9.1, xintrea (ok), 04-Мрт-20, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


5. "Синхронизация содержимого таблицы для PostgreSQL 9.1"  +/
Сообщение от odmin (??), 05-Мрт-20, 04:38 

>[оверквотинг удален]
> Скорость репликации не важна. Достаточно, если синхронизация будет происходить периодически.
> В минуту каждый хост может добавить в таблицу от 0 до
> ~1000 новых записей. В любой момент сеть может «развалиться» и хосты
> не смогут видеть друг друга, при этом новые записи будут создаваться.
> После восстановления сети все новые записи должны засинхронизироваться на всех хостах.
> Не факт, что все хосты будут работать одновременно. Может 4 хоста работать,
> а 1 быть выключен. После его включения он должен принять все
> данные, которые «пропустил» когда был выключен. Может быть и наоборот: работает
> только 1 хост, остальные выключены. После включения остальных хостов, данные с
> первого хоста должны перетечь на все остальные.

с вашими устаревшими версиями - вам нужно менять структуру приложения, по простому будут две базы, одна postgres на чтение и синхронизируется она стандартными средствами репликации stream master slave + wal (в 9.1 это должно быть),
вторая база это sqlite локальный кеш на запись.
далее понятно, дополнительно отдельный процесс на синхронизацию локальных данных в глобальную базу, назад они вернутся через репликацию.

Ответить | Правка | Наверх | Cообщить модератору

6. "Синхронизация содержимого таблицы для PostgreSQL 9.1"  +/
Сообщение от odmin (??), 05-Мрт-20, 04:41 

> с вашими устаревшими версиями - вам нужно менять структуру приложения, по простому
> будут две базы, одна postgres на чтение и синхронизируется она стандартными
> средствами репликации stream master slave + wal (в 9.1 это должно
> быть),
> вторая база это sqlite локальный кеш на запись.
> далее понятно, дополнительно отдельный процесс на синхронизацию локальных данных в глобальную
> базу, назад они вернутся через репликацию.

с вашей одной таблицей эта задача решается на коленке за неделю, с перерывами на развлечения, и самое главное никаких конфликтов по данным не будет.

Ответить | Правка | Наверх | Cообщить модератору

7. "Синхронизация содержимого таблицы для PostgreSQL 9.1"  +/
Сообщение от odmin (??), 05-Мрт-20, 04:56 
>> с вашими устаревшими версиями - вам нужно менять структуру приложения, по простому
>> будут две базы, одна postgres на чтение и синхронизируется она стандартными
>> средствами репликации stream master slave + wal (в 9.1 это должно
>> быть),
>> вторая база это sqlite локальный кеш на запись.
>> далее понятно, дополнительно отдельный процесс на синхронизацию локальных данных в глобальную
>> базу, назад они вернутся через репликацию.
> с вашей одной таблицей эта задача решается на коленке за неделю, с
> перерывами на развлечения, и самое главное никаких конфликтов по данным не
> будет.

это я описал структуру один мастер остальные все slave, но если вам нужна структура где все равны то менять структуру приложения нужно 100%, заводить в базу для каждого хоста свою таблицу, и отдельным процессом их и синхронизировать. Далее в приложении уже запросом вытаскивать ваши данные со всех этих таблиц.

Ответить | Правка | Наверх | Cообщить модератору

9. "Синхронизация содержимого таблицы для PostgreSQL 9.1"  +/
Сообщение от xintrea (ok), 05-Мрт-20, 08:59 
> по простому
> будут две базы, одна postgres на чтение и синхронизируется она стандартными
> средствами репликации stream master slave + wal (в 9.1 это должно быть),
> вторая база это sqlite локальный кеш на запись.
> далее понятно, дополнительно отдельный процесс на синхронизацию локальных данных в глобальную
> базу, назад они вернутся через репликацию.

Хех, вы не поверите, но синхронизация на основе пары PostgreSQL + SQLite (для кеша) у меня уже сделано. Но по архитектуре (не моей), в один момент времени назначается только один мастер с PostgreSQL. Это и есть глобальная база. Но сеть может распасться, и в отвалившемся сегменте возникнет еще один мастер. И так до пяти штук. А когда сеть обратно соберется, нужно на всех этих мастерах (т. е. бывших глобальных базах) засинхронизировать данные, чтобы везде получились идентичные таблицы (сортировка в них составная - время+UUID).

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

31. "Синхронизация содержимого таблицы для PostgreSQL 9.1"  +/
Сообщение от ACCA (ok), 06-Мрт-20, 04:52 
> бывших глобальных базах) засинхронизировать данные, чтобы везде получились идентичные
> таблицы (сортировка в них составная - время+UUID).

Ага. И у тебя никогда время не уезжало.

Про это и говорится в теореме CAP - в общем виде хрен чего у тебя получится. А в частных случаях, бывает что и повезёт.

Ответить | Правка | Наверх | Cообщить модератору

32. "Синхронизация содержимого таблицы для PostgreSQL 9.1"  +/
Сообщение от Аноним (32), 06-Мрт-20, 08:33 
> Ага. И у тебя никогда время не уезжало.

Ыыы, 5 к 1, что еще в Local Time Zone...


Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру