Calvin's Marbles


  • 首页

  • 关于

  • 归档

  • 标签

  • 搜索

分布式一致性和分布式共识协议

发表于 2017-09-20

随着请求量的增大,为了高可用和容错,常常采用维护多个冗余副本的办法来实现,因此需要维护这些副本之间的一致性。

随着数据量的增大,单个节点难以承载所有数据,分布式系统还会将数据进行分区,如何维护分区间事务是一个问题。

分布式集群搭建在网络上,而网络通信是复杂的,数据包的丢失、重复、乱序需要被妥善处理,此外节点宕机或者网络分区的情况也需要被考虑。CAP 理论认为一致性、可用性和分区容错不可能同时做到。

分布式系统中常出现以下的一些应用场景:分布式锁、负载均衡、发布订阅模型、选举、分布式队列。

本篇文章以 DDIA 以及作者的讲解视频为骨架,辅以业界的相关实现,来综述性探讨上述的一些问题。

  1. 本文中的一些共识方面的理论性问题被迁移到专题文章中。
  2. 另一些事务方面的问题被迁移到专题文章中。
阅读全文 »

数据库系统中的事务

发表于 2017-09-20

本文主要讲述数据库中事务的控制模型、事务隔离等级和事务并发控制。

本文从分布式一致性和分布式共识协议一文中分离。主要以 DDIA 和 A Critique of ANSI SQL Isolation Levels 这篇论文为脉络。

阅读全文 »

黄山游记

发表于 2017-08-20

黄山之行屡屡被耽搁,终于在第四次勉强成行。

阅读全文 »

Manacher算法

发表于 2017-08-11

我们知道优化非启发性算法的方法常常包括使用定理、利用计算机的架构特点、使用恰当的数据结构以及动态规划等。而动态规划的核心理念就是减少重复计算。
对于回文串问题的Manacher算法来说,我们要重用0..(i-1)的结果,那怎么重用呢?假设i和j关于p(i > p > j)对称,那么R[i]便可通过R[j]求得。
计算最长回文串的暴力算法是O(n^2),而马拉车算法能够在O(n)时间内解决问题。

阅读全文 »

不动点组合子Y-Combinator

发表于 2017-07-28

不管怎样,可以把 lambda 当做一个匿名函数来看待,那么这个匿名函数如何在递归调用的时候引用自己呢?Haskell B. Curry给出了Y不动点组合子(Y Combinator,当然不是那个著名的公司啦)可以解决这个问题。在本文中:

  1. 基于 Haskell 如何在匿名函数中调用自己
    1. 在其他语言中,如何解决 Lazy Evaluation 的问题
    2. 自定义的 fix 中,如何避免递归调用 fix
  2. 基于 Python 的 Demo
    1. Python 如何在匿名函数中调用自己
    2. Python 中的 Y Combinator
    3. Z Combinator
  3. 基于 C++ 的 Demo
  4. 为什么通过找不动点可以解决自我调用的问题
    1. 什么是不动点
    2. 不动点和本问题的联系
  5. 简单的 lambda 演算
  6. 证明 Y-Combinator 的性质 Y f = f (Y f)
    讨论 Y-Combinator 的类型
阅读全文 »

神器Continuation

发表于 2017-07-24

Continuation、Coroutine和Generator是异步编程中的一些概念。通过Continuation能够实现Coroutine和Generator。

Continuation常有两种实现,一种是以call/cc(call with current contination)为代表的语言级别的实现;另一种对于不能原生支持Continuation的语言但是支持闭包(函数作为一等公民)的语言,可以使用CPS(continuation-passing style)来实现Continuation。

阅读全文 »

贵州游记

发表于 2017-07-11

一直以来,贵州一直出现在卓林的自黑之中。什么江苏六州、南京四省省会,和伟哥那段“贵州山水甲天下”、“贵州简称赣”的梗更是屡屡被提起。于是今年暑假在他的热情邀请下,我们去贵州进行了一次非常幸运与快乐的旅行。主要行程包括镇远-凯里-安顺-麻尾-荔波。

阅读全文 »

魔方公式总结

发表于 2017-06-09

基本规律

  1. x, y, z系操作后不影响面的转动方向
    例如对于公式y’ U’ (R’ U R),经过y’后变为U’ F’ U F,只有转R变成了转F,但方向是不变的
  2. 常用手法
    1. fsc1: R U R’ U’
      将当前槽起到顶层
    2. fsc2: U R U’ R’
      fsc1的反操作
    3. s: U’ F’ U F
    4. t: U R U’ R
阅读全文 »

Word用法

发表于 2017-05-20

微软Office产品的特点是看上去非常弱智,但实际用起来各种棘手。比较麻烦的有自动添加引用文献、设置多级标题、自动续表等工作。这里介绍以下我的方法。

阅读全文 »

明史之太祖本纪

发表于 2017-05-20

去敦煌玩回来的时候,卓林兄说其实明史是写的不错的,建议我读读。

阅读全文 »
1…161718…25
Calvin Neo

Calvin Neo

243 日志
152 标签
RSS
GitHub Twitter Weibo
Links
  • xqq
  • wenwen
  • zyyyyy
© 2015 - 2025 Calvin Neo   Hosted by Coding Pages
版权声明
由 Hexo 强力驱动
主题 - NexT.Muse