测试方案:

  1. 主线程将一个 Integer 对象发到 Channel 0
  2. 线程 i 将对象从 Channel i 不断搬运到 Channel i+1
  3. 最后一个线程从 Channel N-1 中拿到对象,做加和

为了保证公平,Go 中自行封装一个 Integer 而不是用 int 型;考虑到实际中大多数情况下 channel 里走的都是对象而非基本类型,这样是合理的。

阅读全文 »

经过一个月的学习,成功通过了 AWS 考试认证。不得不说相比从零开始闷声摸索,学习带来的收获还是很大的,避免了一些 AWS 的大坑,也了解了一些 best practice 的系统设计。

可惜这个博客并不是在 AWS 上(原因可能是贫穷)。

以下是我看过的学习资料:

阅读全文 »

找到这篇文章是在阅读 Kafka 文档时,一个名为 “Don't fear the filesystem!”的段落中提到的。文档指出,我们总是思维定势地以为磁盘很慢,内存很快。然而今天的计算机体系结构中,并非这么简单:

  • 因为操作系统 PageCache 的存在,磁盘操作可能很快
  • 虽然磁盘 IOPS 难以提高,但吞吐量在不断上升;换句话说,顺序读写磁盘非常快
  • CPU Cache 常常被忽略了,了解 CPU Cache 对提升内存读写性能至关重要

原文链接

当你开始深入 Varnish 的源代码后,应该会发觉它与你日常所见的一般应用软件有着明显不同,而这绝非偶然。

多年以来我的绝大部分时间花费在 FreeBSD 的内核开发上,而每每涉足用户空间编程,却总是毫无例外地发现那里的人们还在以1975年的方式工作。

阅读全文 »

题目:https://www.hackerrank.com/contests/w31/challenges/spanning-tree-fraction 一张连通图G=(V,E)上,每条边有a和b两个整数,求一个生成树使得Sum(a) / Sum(b) 最大,输出这个最大值的分数形式 p/q

,经过变换可得,,这种形式下 ai - bi * c 就退化为一条边的 cost,能方便得用 Prim 或 Kruskal 算法求出 cost 最大的生成树。

阅读全文 »

SQS - Simple Queue Service

SQS 是 AWS 的消息队列服务,用于暂存消息并等待接收者处理。

  • 不保证 FIFO,可能乱序到达
  • Visibility Timeout 最长 12 小时
  • 保证每条消息至少被传递一次(At least once),这意味着某些情况下可能传递多次,所以你写程序的时候要注意处理重复的消息
  • 每条消息最大 256 KB
    • 然而,依据 64 KB 的 Chunk 数量计费
    • 所以一个 256 KB 的消息可能产生 4 次费用:4 * 64 KB chunks
  • SQS 的消息没有优先级;如果你需要优先级,最佳实践是创建多个 SQS 队列
阅读全文 »

VPC

  • 把 VPC 想象成一个逻辑上的数据中心
  • 包含一个 IGW (Internet Gateway)或者 Virtual Private Gateway,Route Tables,Network ACLs,Subnets,Security Groups
  • 1 个 Subnet = 1 个可用区
  • Security Group 是有状态的,Network ACL 是无状态的
  • VPC 可以连接(peer)起来,甚至可以连接不同 AWS 账号的 VPC
  • 不能 transitive peer!如果 A 和 B 相连,B 和 C 相连,A 和 C 是联通的,必须手动连接 A 和 C
阅读全文 »

AWS 提供的数据库

  • RDS - OLTP
    • SQL Server
    • MySQL
    • PostgreSQL
    • Oracle
    • Aurora
    • MariaDB
  • DynamoDB - NoSQL
  • RedShift - OLAP
  • Elasticache - In Memory Caching
    • Memcached
    • Redis
阅读全文 »

花了一周翻译了 Google Cloud Platform 上的教学课程 TensorFlow and deep learning, without a PhD,分享给大家。

这篇文章对于初学者是很友好的,即使你对机器学习没有任何掌握也能跟着教程做完全部课程,并且 TensorFlow 的接口很简单,甚至不用掌握矩阵运算也能轻松使用。当然,如果你有一些线性代数和机器学习的先验知识,很多概念都是相通的,理解起来要更容易。

阅读全文 »
0%