0%

模板练习

数组

Gossip 算法

在一个有界网络中,每个node传播message给随机的几个节点,经过杂乱无章的通信,最终所有节点都会达成一致。每个节点有可能知道所有的节点,也可能仅仅知道几个邻居节点,最后状态都是一致的,又称为反熵。

优点

  • 可扩展性
    • 使用$O(\log N)$ rounds 到达所有nodes,N为node的个数。
  • 容错
    • 从源头节点到目的节点路径不止一条,可以在不规则为止连接性的网络中运行。
  • 健壮性
    • 故障节点不会阻止其他节点发送消息,每个节点都可以随意加入和退出,不会严重啊影响服务质量
    • 但是如果消息有关于故障节点或者恶意节点,那么系统就不健壮
  • 收敛速度
    • 指数收敛速度

流程

两个概念

  • Cycle 传播一个消息的轮数
  • Fanout 每轮种node通信的节点数
  1. 周期性散播消息
  2. 每轮随机选择fanout个节点散播消息
  3. 每轮散播消息都选择尚未发送过的节点进行散播
  4. 收到消息的节点不再往send节点散播

Goosip 和 raft
raft是强一致性的,而gossip是最终一致

例子

  • Riak 使用gossip协议分享并通信ring state和bucket properties
  • CASSANDRA 分享周围nodes和自己的信息
  • serf:go实现的服务发现和治理的框架

POSIX thread

Portable operating system interface (POSIX) 是IEEE Computer Society为维持操作系统兼容性定义的一套标准。

POSIX 线程库规定了C/C++的线程API,相比于fork这种创造新进程的方式,使用线程开销更小。

  • 多处理器用多线程:效果最好
  • 单处理器使用多线程: 也有增益(一个线程等IO,另外的执行)

适用场景

  • 多任务同时进行
  • 阻止潜在的长时间IO等待
  • 一些地方很多CPU周期
  • 必须响应异步
  • 优先级中断
阅读全文 »

常用技巧

  1. 折叠
    • ctrl = 折叠代码
    • shift ctrl =展开代码
  2. 缩进整理 ctrl i(==全选+ctrl i==)
  3. 跳转到第几行 ctrl g
  4. F5运行,F10 debug,shift+F5 退出Debug模式
  5. doc 取代help,直接跳出文档(由于外网,网络可能不稳定)
阅读全文 »

动机

全双工系统可以使得频谱利用率为原来的两倍。传统的通信系统一般都是半双工系统,例如在时域区分上下行的TDD和在频域区分上下行信号的FDD,带内全双工(In-Band
Full-Duplex)讲的就是在同频率上同时进行收发,这样的话在如今如此紧张的频谱情形下能使频谱利用率加倍,那将十分有用。

阅读全文 »

减脂

有氧和少吃不是最好方法:

原因:

热量缺口(有氧+少吃)->

  • 代谢下降
  • 蛋白质降低,掉肌肉
  • 脂肪吸收效率提高: 复胖速度快

正确的减脂思路

  • 确定摄入的热量
  • 亏空用锻炼放上
  • 做力量训练,提高基础代谢
  • 控制饮食
  • 训练之后吃碳水,均匀摄入脂肪,蛋白质
  • 避免糖脂混合物,鲜榨果汁,避免果糖
  • 可以少食多餐
  • 咖啡因➕绿茶 协同效果好早晨或者训练前补充咖啡,早上喝绿茶
  • 2g速溶咖啡大概50mg咖啡因
  • 人体咖啡因一天小于400mg,不会有影响
    不要一上来就是低碳水高蛋白,会给肾脏压力大
阅读全文 »

常用

  • tmux new -s window_name
  • ctrl + b + d : detach 当前的window
  • tmux a -t window_name
  • ctrl + b + w : 看一下window, panne

使用场景

  • 维护管理终端正在运行的程序
  • 执行多个任务
  • 远程使用时尤其方便,断开连接也不会挂掉正在跑的东西
    阅读全文 »