Having fairly significant connectivity stability issues whenever there is some concurrency. What is unique about Gcloud is they use unix sockets for an internal connection between their app components and the database. DB load is overall minimal.
connection looks like this:
String dbSocketDir = Environment.GetEnvironmentVariable("DB_SOCKET_PATH") ?? "/cloudsql";
String instanceConnectionName = Environment.GetEnvironmentVariable("INSTANCE_CONNECTION_NAME");
var connectionString = new MySqlConnectionStringBuilder()
{
// The Cloud SQL proxy provides encryption between the proxy and instance.
SslMode = MySqlSslMode.None,
Server = String.Format("{0}/{1}", dbSocketDir, instanceConnectionName),
UserID = Environment.GetEnvironmentVariable("DB_USER"),
Password = Environment.GetEnvironmentVariable("DB_PASS"),
Database = Environment.GetEnvironmentVariable("DB_NAME"),
ConnectionProtocol = MySqlConnectionProtocol.UnixSocket,
};
sqlConstr = connectionString.ConnectionString;
OrmLiteConnectionFactory factory = new OrmLiteConnectionFactory(sqlConstr, MySqlDialect.Provider);
container.Register<IDbConnectionFactory>(c => factory);
stack trace here (sorry, don’t have textual version of stack trace.