Почему CockroachDB может закрывать соединение при большом вводе данных?

У меня есть база данных Cockroach on Kubernetes (AWS) и код Python для загрузки некоторых данных, основанных на psycopg2. Но когда я пытаюсь выполнить сложный запрос для 100К строк данных, получаю разрыв соединения после некоторого ожидания со следующей ошибкой:

psycopg2.DatabaseError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

Единственные подозрительные записи в журналах о тараканах - это защита:

vendor/google.golang.org/grpc/server.go:666  grpc: Server.Serve failed to create ServerTransport: connection error: desc = "transport: http2Server.HandleStreams failed to receive the preface from client: EOF"

Первоначально я думал, что проблема связана с psycopg2.connection объект и добавил keepalives_ параметры к connect() вызов. И даже встроил некоторую пользовательскую функцию соединения, которая запускает простой запрос SQL, чтобы проверить, открыто ли соединение. Но кажется, что сам сервер ломает это, поскольку исключение поднимается во время cursor.execute(sql_query) бежит.

Есть мысли, почему такое может случиться?

1 ответ

В настоящее время CockroachDB не справляется со «слишком большим вводом» идеальным образом, но мы надеемся улучшить его. См. https://github.com/cockreachdb/cockroach/issues/50330

Другие вопросы по тегам