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

Насколько справедливо утверждение "Because there is no such thing as

transaction isolation, any SELECT query that touches data in the middle of an UPDATE or DELETE modification (or a Collapse modification as we noted above) will get whatever data is currently in each part" из модной статьи https://blog.timescale.com/blog/what-is-clickhouse-how-does-it-compare-to-postgresql-and-timescaledb-and-how-does-it-perform-for-time-series-data/?utm_source=timescaledb&utm_medium=social&utm_campaign=abl-oct-2021&utm_content=clickhouse-benchmark-blog ?
Мне казалось, что select читает данные из партов, существовавших на момент начала запроса, и консистентность обеспечивается.

2 ответов

10 просмотров

парты иммутабельны. он либо есть либо нет. во время апдейта половина партов обновилась - другая нет - ваш селект вернет те парты что есть. поэтому мутации - сложная вещь которую лучше делать в бекграунде...

1. один select консистент. Сложные SELECT .... from t Join (select .... from t) // SELECT .... from t where in (select ..) -- не консистентны потому что это несколько селектов. Это решено в КХ транзакциях. (В том бенчмарке почти все запросы такие) 2. UPDATE or DELETE не атомарны, они обрабатывают партами, поэтому консистентный селект видит половину еще не удаленных строк и не видит половину удаленных

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

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

а через 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
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
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
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта