#c# #.net #http #snowflake-cloud-data-platform
#c# #.net #http #snowflake-cloud-data-platform
Вопрос:
В настоящее время я проверяю задержку при подключении к Snowflake из Snowflake Connector для библиотеки .NET. Я заметил, что первый вызов при запуске консольного приложения представляет собой некоторую форму «холодного запуска», когда для подключения к этому вызову обычно требуется ~ 1 сек. По сравнению с ~ 70 мс для последующих вызовов. Приведенный ниже график показывает это более четко.
Мой вопрос: почему это так?
Я попытался проверить код в модуле snowflake connector, но, похоже, результат заканчивается HTTP-вызовом : var response = await Snowflake.Data.Core.HttpUtil.getHttpClient().SendAsync(request, linkedCts.Token).ConfigureAwait(false);
. Я предполагаю, что начальная задержка может иметь какое-то отношение к тому, как работает HTTP, но я не знаю, правда ли это. В любом случае, я думаю, что эта начальная задержка не повлияет на мое веб-приложение, поскольку оно основано на сервере, и мои тесты для этого сценария показывают, что задержка влияет только на первый вызов REST, а не на последующие.
О, и вот код, который я запускаю, чтобы проверить задержку (с опущенными циклами for и прочим):
Stopwatch latencyConnectionWatch;
using (Snowflake.Data.Client.SnowflakeDbConnection conn = new Snowflake.Data.Client.SnowflakeDbConnection())
{
conn.ConnectionString = connectionString;
latencyConnectionWatch = Stopwatch.StartNew();
conn.Open();
latencyConnectionWatch.Stop();
conn.Close();
}
Комментарии:
1. Возможно, вы уже решили эту проблему, но это может быть задержка запуска хранилища вычислений Snowflake, а не задержка соединителя dot net.
2. Да, похоже, это связано с протоколом HTTPS, а не с модулем.