|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
Насколько я в курсе, вызовы API сериализуются в пределах коннекта на уровне Y-valve. А что если исключить из картины Y-valve и работать непосредственно с плагином движка? Насколько в этом случае можно распараллелиться без особой опасности для жизни и здоровья? Два запроса в одной транзакции точно устроят гонки за объектами транзакции (сейфпоинтами и т.п.), а как насчёт разных транзакций в разных потоках? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 18:33 |
|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, а что ты такое пытаешься сделать? Shared snapshot из 4.0 не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 18:49 |
|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
Симонов Дениса что ты такое пытаешься сделать? В качестве гимнастики для ума я пытаюсь выдумать асинхронное API и/или сетевой протокол. Сейчас оно работает с полным квитированием, то бишь, например: старт транзакции-ожидание подтверждения от сервера-препарирование запроса-ожидание-выполнение-ожидание-фетч-ожидание. Если исключить хотя бы половину этих ожиданий, то есть старт-препарирование-ожидание-выполнение-фетч-ожидание, то на сетях с высокой латентностью можно было бы ускориться раза в два. Часть ожиданий уже убрали в двойке, но их ещё осталось достаточно. И вот тут встаёт вопрос очерёдности обработки пакетов. Две простейшие идеи приходящие в голову: 1) Одна очередь, Х потоков выбирают задания и выполняют их. 2) Х очередей по одной на поток и используемая очередь фиксируется на коннект/транзакцию. В первом случае проблема очевидна: препарирование может обогнать старт транзакции и обломиться. Во-втором случае есть риск, что два тяжёлых коннекта встанут в одну очередь пока остальные будут бездельничать. Если бы было возможно привязывать к потоку не коннект, а хотя бы транзакцию - риск уменьшается. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 19:08 |
|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
DS> А что если исключить из картины Y-valve и работать DS> непосредственно с плагином движка? Насколько в этом DS> случае можно распараллелиться без особой опасности ? Почему бы не спросить это в девеле? Тут тебе что-то ответить на этот счёт могут два с половиной человека, да и то без особого желания... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 19:54 |
|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамПочему бы не спросить это в девеле? Во-первых, с некоторых пор меня напрягает английский. Во-вторых, там те же самые два с половиной человека с тем же самым желанием. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 20:05 |
|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
Там 4.5 - ещё Саша и Кальтенбруннер, кроме местных 2,5. :) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 20:16 |
|
Параллельность движка Firebird
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Насколько я в курсе, вызовы API сериализуются в пределах коннекта на уровне Y-valve. А что если исключить из картины Y-valve и работать непосредственно с плагином движка? Насколько в этом случае можно распараллелиться без особой опасности для жизни и здоровья? там тоже мьютекс на аттач ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2021, 20:48 |
|
|
start [/forum/topic.php?fid=40&fpage=9&tid=1560162]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 169ms |
0 / 0 |