184 похожих чатов

Есть несколко вопросов по Buffer таблице: > Заметим, что даже для

таблиц типа Buffer не имеет смысла вставлять данные по одной строке, так как таким образом будет достигнута скорость всего лишь в несколько тысяч строк в секунду…
Понимаю что это довольно условно, но имеется ввиду запись в одну таблицу или в общем по кластеру.
Сейчас есть одна табличка, в нее идет порядка 4k одиночных записей в секунду, можно ли обойтись Buffer?
Так же несовсем понятен смысл этого
> Если таблица назначения является реплицируемой, то при записи в таблицу Buffer будут потеряны некоторые ожидаемые свойства реплицируемых таблиц.
Может кто-то расшифровать?

7 ответов

14 просмотров

1 можно 2 у replicated таблиц есть фича -- дедупликация инсертов. Если инсерт совпадает до бита с одним из предыдущих, он будет пропущен. буферная таблица склеивает инсерты, поэтому они не совпадают до бита, поэтому дедупликация инсертов не работает

Grisha-Egorov Автор вопроса
Denny [Altinity]
1 можно 2 у replicated таблиц есть фича -- дедупл...

По поводу второго это относится только ко вставкам из buffer, правильно? Или при вставке из того же rabbitmq ожидать такого же поведения?

Grisha Egorov
По поводу второго это относится только ко вставкам...

rabbitmq по другому работает. buffer пересортировывает инсерты которые вы повторяете с клиента, а повторяете по причине timeout / сетевой проблемы. rabbitmq engine выбирает из очереди, собирает блок, и делает инсерты сам, и повторяет сам внутри до успеха.

Denny [Altinity]
rabbitmq по другому работает. buffer пересортиро...

а он при этом ack посылает в очередь что обработал ДО INSERT или после? и где он блок хранит? на диске?

Grisha-Egorov Автор вопроса
Denny [Altinity]
rabbitmq по другому работает. buffer пересортиро...

Если я правильно понимаю, мне достаточно добавить к buffer таблице уникальное поле например с uuid чтобы такого не случилось, а в репликатед таблице это поле не обязательно должно быть

Slach [altinity]
а он при этом ack посылает в очередь что обработал...

я не смотрел, наверное как в кафке, ack после успеха инсерта, блок в памяти, зачем на диске

Grisha Egorov
Если я правильно понимаю, мне достаточно добавить ...

все неправильно поняли. Дедупликация инсертов это вообще не про это, читайте доку про репликацию.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта