小编Dee*_*ngh的帖子

DynamoDB并发写入

我有一个现有的DynamoDB表,该表具有属性说

-------------------------------------------------- -------
hk(哈希键)| rk(范围键)| a1 | a2 | a3 |
-------------------------------------------------- -------


我有一个现有的DynamoDb客户端,它将仅更新a1的现有记录。我想创建第二个writer(DDB客户端),它也将更新现有记录,但是仅适用于a2和a3。
如果两个ddb客户端都尝试在同一时间更新同一记录(a1为1,a2和a3为其他记录),DynamoDb是否保证所有a1 a2 a3都更新为正确的值(所有三个新值)?使用保存行为UPDATE_SKIP_NULL_ATTRIBUTES是否足以满足此目的,还是我需要实现某种乐观锁定?如果不是,那么DDB是否为此提供了即时的服务?

amazon-web-services nosql amazon-dynamodb

5
推荐指数
1
解决办法
2790
查看次数

递归树的时间复杂度

递归调用 Fn(1),Fn(2),Fn(3),...,Fn(n-1) 来求解 Fn(n) 的函数 Fn(n) 的时间复杂度是多少。Fn(1) =1 作为基本条件给出。它会是 O(n^n) 或更少。我认为它应该小于 O(n^n) 但我无法找到一种方法来获得这种递归的正确复杂性。

Fn(4) 的递归树将是这样的

              Fn(4)
         /        |     \
      Fn(3)    Fn(2)   Fn(1)
     /   \        /
   Fn(2) Fn(1) Fn(1)
   /
Fn(1)
Run Code Online (Sandbox Code Playgroud)

algorithm recursion time-complexity

2
推荐指数
1
解决办法
4509
查看次数

无法访问的代码 - 尝试捕获 - 最终

我知道如果java找到一行代码,保证控件永远不会到达,那么编译器会报告无法访问的代码错误.
考虑以下代码.

    static int method1() {

        try{ return 1; }
        catch(Exception e){ }  // LINE-1
        finally{ }
        System.out.println("abc");  //LINE-2
        return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码
1中, try块保证通过返回1退出,但是在finally块(LINE-2以后)之后仍然可以到达.
2.如果我评论catch块(LINE-1),则LINE-2变得无法访问.

为什么会如此.编译器是否能够在case-1的try块中看到无条件返回.

java return exception unreachable-code

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