Я не нашел ни одного документа, который бы разъяснил, как Postgres обрабатывает запрос-ответ для асинхронного c неблочного запроса на уровне протокола сокета.
В качестве примера, предложите только два запроса - sql в pg-клиенте, которые используют одно сокетное соединение с pg-сервером. Я предполагаю, что есть два способа обработки операции asy c:
- клиент не может отправить вторую команду до того, как первый запрос не ответит.
client socket1 server
-----query1---------->
<----response1--------
------query2--------->
<-----response1-------
сокет отправляет два запроса в одно и то же время и отдельный ответ уникальным флагом.
client socket1 server
-------query1 + uid:msg1----->
-------query2 + uid:msg2----->
<------response2 + uid:msg2---
<------response1 + uid:msg1---
Я думаю, что это должен быть второй способ обработки запроса как реального асинхронного c процесса, но я ' не могу найти ни одного ресурса из документа . Вопрос:
- Какой из них является Postgres дескриптор асин c операция сокета?
- Если использовать первый способ и почему?