小编Bör*_*örg的帖子

Windows Azure PaaS(Web角色)的真正替代品?

我正在寻找Windows Azure PaaS(平台即服务)产品的替代品,满足以下要求:

  1. 该平台应提供高可用性和可伸缩性.
  2. 平台应该为我管理/更新应用程序服务器和操作系统.
  3. 该平台应提供某种形式的NoSQL数据库(如Azure Table Storage或SimpleDB).
  4. 该平台应该本身支持ASP.NET MVC,即应该为我自动管理/修补IIS和运行时环境.

虽然亚马逊满足第1项和第3项,但它仅提供IaaS(基础架构即服务),这意味着我仍然有很大的管理开销.

那么问题是,Windows Azure有哪些替代方案可以提供大致相同的功能集?欢迎任何建议!

asp.net asp.net-mvc azure nosql cloud-hosting

39
推荐指数
1
解决办法
1万
查看次数

为什么在MongoDB中许多会话比一个会话快?

要在MongoDB中使用事务,您必须首先开始一个会话。当您有许多事务时,您可以重用现有会话或为每个事务创建一个新会话。

我对这两个选项进行了基准测试(下面的代码),结果令人困惑。与为所有事务使用单个会话相比,为每个事务使用全新会话似乎要快得多(快2到3倍)。

谁能解释为什么会这样?后台如何进行工作?它们的含义是什么?这意味着什么成本(以及何时以及为什么)?我真的很想了解,感谢您提出任何建议。

Stopwatch sw = new Stopwatch();

coll1.InsertOne(new BsonDocument { { "Seq", 0 } });
sw.Start();
for (int i = 1; i <= reps; i++) {
    using (var session = client.StartSession()) {
        session.StartTransaction();
        coll1.InsertOne(session: session, document: new BsonDocument { { "Seq", i } });
        session.CommitTransaction();
    }
}
sw.Stop();
Console.WriteLine($"{reps / sw.Elapsed.TotalSeconds} OP/s with fresh sessions.");

coll2.InsertOne(new BsonDocument { { "Seq", 0 } });
sw.Restart();
using (var session = client.StartSession()) {
    for (int i = 1; i <= reps; i++) …
Run Code Online (Sandbox Code Playgroud)

c# performance mongodb mongodb-.net-driver

10
推荐指数
1
解决办法
308
查看次数