Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
mayton, понаписали много, может чего пропустил, но не увидел ответа на вопрос: почему нельзя поднимать копию локально на мастере? Мое решение на этом основано, Сибиряков почти тоже самое предлагает. Суть в том что локально на мастере держим предыдущую копию, считаем обновление, сохраняем его и далее раздаем слэйвам. С точки зрения трафика это самый экономный алгоритм, минимум ненужной и служебной инфы. Просто передал три таблички: это добавить, это поменять, это удалить. Даже Меркл сожрет больше ресурсов как вычислительных, так и трафика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:50 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T В общем если хочешь называть хэш контрольной суммой и писать CRC, пусть будет так. Имеется в виду криптографический хеш, ведь вы именно их обсуждали. Не какие-то другие, про какие сейчас говоришь, а именно криптографические. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:55 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
hVostt Dima T В общем если хочешь называть хэш контрольной суммой и писать CRC, пусть будет так. Имеется в виду криптографический хеш, ведь вы именно их обсуждали. Не какие-то другие, про какие сейчас говоришь, а именно криптографические. Да, но других просто нет разрядностью выше 64 бит, можно свой велосипед изобрести, но зачем, если уже есть готовый с нужными свойствами. Чем криптографический хэш не подходит на роль контрольной суммы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 17:59 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
mayton Если таблица (table1) большая. От 1 млн строк и мы детектируем удалённые - то нам надо чтобы 1 экземпляр приложения репликатор открыл два курсора на master/slave и после merge принял решение об удалённых datarows. Нет. Понятное дело, я говорю про локальную таблицу, на мастере. На слейв ты передаёшь уже вычисленные данные. Собственно всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:02 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T Чем криптографический хэш не подходит на роль контрольной суммы? Медленный. Этого не видно на малых данных (при разработке и тестировании), видно на больших (продакшен). Зачем фигнёй страдать, когда быстрых и качественных checksum алгоритмов вагон и тележка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:04 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T Суть в том что локально на мастере держим предыдущую копию Суть любого решения к этому и сводится. Там дальше детали. Это либо триггер -- самый быстрый. Либо сравнение со снепшотом и вычисление изменений -- долгий. Но оба приводят к ожидаемому результату: посылка на слейв только дельты изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:06 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T Просто передал три таблички: это добавить, это поменять, это удалить. Вообще и одной достаточно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:06 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
hVostt, ты то че повелся? реплика либо в системе уже предусмотрена, либо это детская игрушка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:10 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
hVostt Dima T Чем криптографический хэш не подходит на роль контрольной суммы? Медленный. Этого не видно на малых данных (при разработке и тестировании), видно на больших (продакшен). Зачем фигнёй страдать, когда быстрых и качественных checksum алгоритмов вагон и тележка? Ты все-таки меня не перечитал Dima T Думаю никакой твой "быстрый и качественный" тут рядом не окажется по производительности. То что встроено в железо быстрее на порядки программных аналогов. Как-то тестил AES встроенный и программный, разница более чем в 100 раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:14 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
ViPRos hVostt, ты то че повелся? реплика либо в системе уже предусмотрена, либо это детская игрушка Да я прост пытаюсь понять в чём состоит проблема. Может не вижу чего-то. Но пока не покидает ощущение, что ожидается хитровывернутое решение с переподвыподвертом. Простые решения не найс :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:15 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T Ты все-таки меня не перечитал Dima T Думаю никакой твой "быстрый и качественный" тут рядом не окажется по производительности. То что встроено в железо быстрее на порядки программных аналогов. Как-то тестил AES встроенный и программный, разница более чем в 100 раз. Я хз откуда дровишки. Но вот бенчи: https://github.com/Cyan4973/xxHash Второе. Сталкивался с этим сам. Можешь сам побенчить, может на твоём проце sha-1 считается в 1 такт, и мне придётся признать, что фигню сморозил :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:17 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Как бы если решение нужно на коленке, и пофигу чё там и как, лишь бы шевелилось, можно что угодно взять, что под руку подвернётся (читай, есть в вашей стандартной библиотеке). Но мы жы тут о высоком, не? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:19 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T mayton, понаписали много, может чего пропустил, но не увидел ответа на вопрос: почему нельзя поднимать копию локально на мастере? Мое решение на этом основано, Сибиряков почти тоже самое предлагает. Суть в том что локально на мастере держим предыдущую копию, считаем обновление, сохраняем его и далее раздаем слэйвам. С точки зрения трафика это самый экономный алгоритм, минимум ненужной и служебной инфы. Просто передал три таблички: это добавить, это поменять, это удалить. Даже Меркл сожрет больше ресурсов как вычислительных, так и трафика. Ты предлагаешь для каждой таблички из RDS создавать и хранить ее копию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:23 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
hVostt Dima T Ты все-таки меня не перечитал пропущено... Думаю никакой твой "быстрый и качественный" тут рядом не окажется по производительности. То что встроено в железо быстрее на порядки программных аналогов. Как-то тестил AES встроенный и программный, разница более чем в 100 раз. Я хз откуда дровишки. Но вот бенчи: https://github.com/Cyan4973/xxHash Второе. Сталкивался с этим сам. Можешь сам побенчить, может на твоём проце sha-1 считается в 1 такт, и мне придётся признать, что фигню сморозил :) Бенчить пока не готов, но вот нестыковки авторcompiled with Visual 2010 on a Windows Seven 32-bit box. А в интеле оно появилось в 2013 году. Я так понимаю это следствие хайпа с майнингом. Просто глянь как я удивлялся по поводу аппаратного AES 21847765 , может сам захочешь потестить аппаратный SHA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:39 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Я не вижу много пользы от применения быстрых или очень-очень быстрых хеш функций в этой задаче. Мой опыт общения с БД мне просто подсказывает что надо сконцетрировать своё внимание на другом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:46 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
mayton Я не вижу много пользы от применения быстрых или очень-очень быстрых хеш функций в этой задаче. Если с триггером, то да. Вообще хеши не нужны никакие. Триггер записывает факт создания/удаления/изменения по факту. Ничего ни с чем сравнивать не нужно. Если без триггера, то нам нужны контрольные суммы всех строк вести. И сравнивать хеши всех строк со снепшотом этих хешей. Скорость расчёта контрольной суммы в данном случае очень-очень важна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:54 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
mayton Dima T mayton, понаписали много, может чего пропустил, но не увидел ответа на вопрос: почему нельзя поднимать копию локально на мастере? Мое решение на этом основано, Сибиряков почти тоже самое предлагает. Суть в том что локально на мастере держим предыдущую копию, считаем обновление, сохраняем его и далее раздаем слэйвам. С точки зрения трафика это самый экономный алгоритм, минимум ненужной и служебной инфы. Просто передал три таблички: это добавить, это поменять, это удалить. Даже Меркл сожрет больше ресурсов как вычислительных, так и трафика. Ты предлагаешь для каждой таблички из RDS создавать и хранить ее копию? RDS это что? Мастер-база? Если да, то предлагаю именно это. И периодически считать разницу 22075921 и хранить разницу. Если таблички из кучи полей, то для экономии места есть смысл хранить не копию таблицы, а копию ключей и хэшей от неключевых полей. Этот алгоритм на самый запущенный случай когда мы мастер базу можем только читать. Если мы может там поковырять чего-нибудь: поле добавить, триггер, индекс, то возможны решения проще и эффективнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:17 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T Просто глянь как я удивлялся по поводу аппаратного AES 21847765 , может сам захочешь потестить аппаратный SHA В принципе из AES можно соорудить 128-мибитный велосипед, там скорость шифрования 6 Гб/сек на i7-6700K ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:21 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
hVostt mayton Я не вижу много пользы от применения быстрых или очень-очень быстрых хеш функций в этой задаче. Если с триггером, то да. Вообще хеши не нужны никакие. Триггер записывает факт создания/удаления/изменения по факту. Ничего ни с чем сравнивать не нужно. Если без триггера, то нам нужны контрольные суммы всех строк вести. И сравнивать хеши всех строк со снепшотом этих хешей. Скорость расчёта контрольной суммы в данном случае очень-очень важна. С триггером наподобие аудита последнего доступа к строке мы можем лишь отслеживать факт обновления строки. Но не удаления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:32 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T mayton пропущено... Ты предлагаешь для каждой таблички из RDS создавать и хранить ее копию? RDS это что? Мастер-база? Если да, то предлагаю именно это. И периодически считать разницу 22075921 и хранить разницу. Если таблички из кучи полей, то для экономии места есть смысл хранить не копию таблицы, а копию ключей и хэшей от неключевых полей. Этот алгоритм на самый запущенный случай когда мы мастер базу можем только читать. Если мы может там поковырять чего-нибудь: поле добавить, триггер, индекс, то возможны решения проще и эффективнее. Я потихоньку ввожу терминологию. Чтоб не писать длинные слова. Посмотри выше я описал что это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:33 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T Этот алгоритм на самый запущенный случай когда мы мастер базу можем только читать. Если мы может там поковырять чего-нибудь: поле добавить, триггер, индекс, то возможны решения проще и эффективнее. Ну я ж писал 3) Репликатор может в делать upgrade схемы на Master или Slave как будет удобно кастомеру. Пример: Код: plaintext 1. Может я как-то невнятно или неотчотливо. Так вы спрашивайте. Вообще по ТЗ. Я разумеется не смогу вам запретить велосипедить как вы хотите. С мега-хешами и с временными файлами на upload. Но я сам лично буду стараться придерживаться тех пунктов которые описал. А описал я их на основании своего опыта наблюдения за продуктовыми системами и на основании видимых потребностей владельцев БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:37 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
mayton hVostt пропущено... Если с триггером, то да. Вообще хеши не нужны никакие. Триггер записывает факт создания/удаления/изменения по факту. Ничего ни с чем сравнивать не нужно. Если без триггера, то нам нужны контрольные суммы всех строк вести. И сравнивать хеши всех строк со снепшотом этих хешей. Скорость расчёта контрольной суммы в данном случае очень-очень важна. С триггером наподобие аудита последнего доступа к строке мы можем лишь отслеживать факт обновления строки. Но не удаления. Не, отслеживаем все, может разных СУБД по-разному, но если есть триггер, то отследишь все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:38 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
mayton Может я как-то невнятно или неотчотливо. Так вы спрашивайте. Спрашиваю: триггеры можно? Триггеры решают проблему без всяких извратов с хэшами и прочего оверхеда, уже предлагал 22075918 , пролистал топик, ты просто не ответил, я решил что нельзя, а надо было тупо переспросить ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:56 |
|
||
|
Оффлайн-тяпничная репликация
|
|||
|---|---|---|---|
|
#18+
Dima T mayton Может я как-то невнятно или неотчотливо. Так вы спрашивайте. Спрашиваю: триггеры можно? Триггеры решают проблему без всяких извратов с хэшами и прочего оверхеда, уже предлагал 22075918 , пролистал топик, ты просто не ответил, я решил что нельзя, а надо было тупо переспросить ((( Отвечаю - можно. Делай триггеры. Но не забудь про откат и автономные транзакции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 19:59 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39924814&tid=1339829]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 271ms |
| total: | 534ms |

| 0 / 0 |
