重复依赖于Azure中的日期时间的rowkey的概率是多少

时间:2011-01-21 12:14:06

标签: azure-storage azure-table-storage

是否有可能在Azure表中重复一个RowKey,这个表是这样构造的?

string.Format("{0:d19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks)

这也是一样的问题:

在我们为Ticks获取新值之前,我的webrole会创建两个记录吗?

我想以反向时间顺序返回实体。预计此表不会不断添加新实体,但希望会有许多插入事务。

解决方案

好的,这是我遇到的解决方案感谢Mark Seeman:

string.Format(“{0:d19} + {1}”,DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks,Guid.NewGuid()。ToString(“N”))

使用Guid,我确信不会重复该rowkey。

1 个答案:

答案 0 :(得分:4)

当并发写入次数接近无穷大时,获得多个相同rowkey的概率 1 :)

说真的,Tick是100纳秒。现代处理器的运行速度是每个Tick有数百个CPU周期,因此相同的Ticks将会发生

事实上,我昨天刚与我的一位客户交谈。他有这个确切的问题,并且不得不围绕它来确保它的独特性。

考虑引入一个真正独特的组件(例如GUID)作为(可排序)组合的一部分。