Skip to content

Commit

Permalink
fix link
Browse files Browse the repository at this point in the history
  • Loading branch information
weyo committed Jul 19, 2016
1 parent 1bb20e9 commit 2d05cf2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Manual/zh/Trident-Tutorial.md
Expand Up @@ -229,7 +229,7 @@ Trident 通过下面两件事情解决了这个问题:
1.Trident 中为每个数据块标记了一个唯一的 id,这个 id 就叫做“事务 id”(transaction id)。如果数据块由于失败回滚了,那么它持有的事务 id 不会改变。
2. State 的更新操作是按照数据块的顺序进行的。也就是说,在成功执行完块 2 的更新操作之前,不会执行块 3 的更新操作。

基于这两个基础特性,你的 state 更新就可以实现恰好一次(exactly-once)的语义。与仅仅向数据库中存储计数不同,这里你可以以一个原子操作的形式把事务 id 和计数值一起存入数据库。在后续更新这个计数值的时候你就可以先比对这个数据块的事务 id。如果比对结果是相同的,那么就可以跳过更新操作 —— 由于 state 的强有序性,可以确定数据库中已经包含有当前数据库的额值。而如果比对结果不同,就可以放心地更新计数值了。
基于这两个基础特性,你的 state 更新就可以实现恰好一次(exactly-once)的语义。与仅仅向数据库中存储计数不同,这里你可以以一个原子操作的形式把事务 id 和计数值一起存入数据库。在后续更新这个计数值的时候你就可以先比对这个数据块的事务 id。如果比对结果是相同的,那么就可以跳过更新操作 —— 由于 state 的强有序性,可以确定数据库中已经包含有当前数据块的值。而如果比对结果不同,就可以放心地更新计数值了。

当然,你不需要在拓扑中手动进行这个操作,操作逻辑已经在 State 中封装好了,这个过程会自动进行。同样的,你的 State 对象也不一定要实现事务 id 标记:如果你不想在数据库里耗费空间存储事务 id,你就不用那么做。在这样的情况下,State 会在出现失败的情形下保持“至少处理一次”的操作语义(这样对你的应用也是一件好事)。在[这篇文章][3]里你可以了解到更多关于如何实现 State 以及各种容错性权衡技术。

Expand Down
7 changes: 4 additions & 3 deletions README.md
Expand Up @@ -2,7 +2,7 @@

本项目是 Apache Storm 官方文档的中文翻译版,致力于为有实时流计算项目需求和对 Apache Storm 感兴趣的同学提供有价值的中文资料,希望能够对大家的工作和学习有所帮助。

虽然 Storm 的正式推出已经有好几个年头了,发行版也已经到了 0.10.x(甚至官方文档已经到了 1.0.0-SNAPSHOT),但是目前网络上靠谱的学习资料仍然不多,很多比较有价值的资料都过时了(甚至官方网站自己的资料都没有及时更新,这大概也是发展太快的社区的通病),而较新的资料大多比较零碎,在关键内容的描述上也有些模棱两可,给初学者带来了很大的困扰。本人自己在初学 Storm 的阶段就非常痛苦,一直想有一份较系统、实用的资源来方便学习。最近借着整理工作的机会,就下定决心通过官方文档的翻译梳理出 Storm 的技术路线,于是就有了这个翻译项目。由于本人水平有限,翻译中仍然存在不少问题,还请大家不吝斧正。如果对本项目有任何问题,欢迎在本项目页面中提出,或者直接给本人发邮件(ivicoco at gmail.com),谢谢。
虽然 Storm 的正式推出已经有好几个年头了,发行版也已经到了 1.0.x(甚至官方文档已经到了 2.0.0-SNAPSHOT),但是目前网络上靠谱的学习资料仍然不多,很多比较有价值的资料都过时了(甚至官方网站自己的资料都没有及时更新,这大概也是发展太快的社区的通病),而较新的资料大多比较零碎,在关键内容的描述上也有些模棱两可,给初学者带来了很大的困扰。本人自己在初学 Storm 的阶段就非常痛苦,一直想有一份较系统、实用的资源来方便学习。最近借着整理工作的机会,就下定决心通过官方文档的翻译梳理出 Storm 的技术路线,于是就有了这个翻译项目。由于本人水平有限,翻译中仍然存在不少问题,还请大家不吝斧正。如果对本项目有任何问题,欢迎在本项目页面中提出,或者直接给本人发邮件(ivicoco at gmail.com),谢谢。

>说明:如果没有特殊声明,本项目文档中所述 Storm 版本均为 0.9.x 版本。
Expand All @@ -13,7 +13,8 @@
原文资料来源(官方网站):

~~[http://storm.apache.org/documentation/Documentation.html](http://storm.apache.org/documentation/Documentation.html)~~
[http://storm.apache.org/releases/0.9.6/Documentation.html](http://storm.apache.org/releases/0.9.6/Documentation.html)

[http://storm.apache.org/releases/0.9.6/index.html](http://storm.apache.org/releases/0.9.6/index.html)

---

Expand All @@ -25,7 +26,7 @@
- [消息的可靠性保障][4]
- [容错性][5]
- [命令行操作][6]
- [理解 Storm 拓扑的并行度(parallelism)概念][7]
- [理解 Storm 拓扑的并发数(parallelism)概念][7]
- [FAQ][8]

---
Expand Down

0 comments on commit 2d05cf2

Please sign in to comment.