Size: a a a

Архитектура ИТ-решений

2021 March 09

PD

Phil Delgyado in Архитектура ИТ-решений
Так я про это и писал - у реляционок пока нет нормального механизма для современной многопоточности. Реактивные драйверы сыроваты
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
Так я про это и писал - у реляционок пока нет нормального механизма для современной многопоточности. Реактивные драйверы сыроваты
У mssql вроде проблем особых нет, поддержка async/await для c# из коробки
источник

S

Sdobridnuk in Архитектура ИТ-решений
Phil Delgyado
Так я про это и писал - у реляционок пока нет нормального механизма для современной многопоточности. Реактивные драйверы сыроваты
Думаю не столько в многопоточности - как в сохранении контекста каждого коннекта - это же надо по каждому transaction log вести, (или snapshot journal), deadlock-и между участниками разруливать..  Тут скорее надо из ACID какую то буковку убирать, как обязательную
источник
2021 March 10

PD

Phil Delgyado in Архитектура ИТ-решений
Vladimir Romanko
У mssql вроде проблем особых нет, поддержка async/await для c# из коробки
хмм, а как там это реализованно для транзакций и для соединений?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Sdobridnuk
Думаю не столько в многопоточности - как в сохранении контекста каждого коннекта - это же надо по каждому transaction log вести, (или snapshot journal), deadlock-и между участниками разруливать..  Тут скорее надо из ACID какую то буковку убирать, как обязательную
Не обязательно, та же FoundationDB вполне сочетает строгий ACID, распределенность и асинхронный драйвер. Но она чуть ли не единственная
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
хмм, а как там это реализованно для транзакций и для соединений?
Методы в апи для открытия соединений, коммита и отката транзакций имеют асинхронные версии и вполне себе работают, о проблемах я не слышал. Разве что с ними sql server ещё эффективнее можно сделать бутылочным горлышком, чем с синхронными версиями 😁
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Vladimir Romanko
Методы в апи для открытия соединений, коммита и отката транзакций имеют асинхронные версии и вполне себе работают, о проблемах я не слышал. Разве что с ними sql server ещё эффективнее можно сделать бутылочным горлышком, чем с синхронными версиями 😁
ээ, в каком апи, как оно под капотом, какое вообще соединение при асинхронной работе?
источник

AM

Alexey Mergasov in Архитектура ИТ-решений
надо использовать линтер ))))
источник

AM

Alexey Mergasov in Архитектура ИТ-решений
там парсер в одном треде всегда ))))
источник

AM

Alexey Mergasov in Архитектура ИТ-решений
всегда асинхронный , ух летает .
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
ээ, в каком апи, как оно под капотом, какое вообще соединение при асинхронной работе?
Api: dotnet, OLE DB Driver, Native Client etc. Вопрос про соединение не понял, почему для асинхронной работы требуется какое-то особое соединение? Насколько я понимаю, используется обычный пул соединений, соединение на время транзакции  из пула извлекается, после окончания возвращается обратно. Но, видимо, я не вижу подвоха в вопросе :)
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Vladimir Romanko
Api: dotnet, OLE DB Driver, Native Client etc. Вопрос про соединение не понял, почему для асинхронной работы требуется какое-то особое соединение? Насколько я понимаю, используется обычный пул соединений, соединение на время транзакции  из пула извлекается, после окончания возвращается обратно. Но, видимо, я не вижу подвоха в вопросе :)
А где тут асинхронная работа? Все равно все в пул упирается.
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
А где тут асинхронная работа? Все равно все в пул упирается.
Асинхронность - это про потоки, насколько я понимаю
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Vladimir Romanko
Асинхронность - это про потоки, насколько я понимаю
Угу. Но тут число потоков, выполняющих запросы не может быть больше числа соединений в пуле (а каждое соединение - это тоже отдельный тред).
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
Угу. Но тут число потоков, выполняющих запросы не может быть больше числа соединений в пуле (а каждое соединение - это тоже отдельный тред).
Почему каждое соединение - это отдельный тред?
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Vladimir Romanko
Почему каждое соединение - это отдельный тред?
А, да, это не обязательно. А id соединения передается в каждом запросе API и все запросы асинхронны?
источник

AM

Alexey Mergasov in Архитектура ИТ-решений
спека дждбц - это один тред полит весь пул., сложность просто в синхронном залипании на время отклика
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
А, да, это не обязательно. А id соединения передается в каждом запросе API и все запросы асинхронны?
Как там оно под капотом работает не знаю, но в апи асинхронно открывается соединение, получается объект соединения и далее через этот объект выполняются все запросы
источник

PD

Phil Delgyado in Архитектура ИТ-решений
Vladimir Romanko
Как там оно под капотом работает не знаю, но в апи асинхронно открывается соединение, получается объект соединения и далее через этот объект выполняются все запросы
Запросы синхронные или как?
источник

VR

Vladimir Romanko in Архитектура ИТ-решений
Phil Delgyado
Запросы синхронные или как?
Асинхронные
источник