Lua GC算法中是否存在“循环引用”问题

前几周到北京参见Openresty 2017大会,在会上分享了Lua 5.1 GC原理相关的内容。

其中提到,Lua采用的扫描标记算法,较之Python等使用的引用计数算法,不会出现循环引用问题。会后,有人问我其中的原因,一时之间想不太清楚,最近终于有了空闲的时间,可以来整理一下思路了。

还是以代码来说明问题:

--启动gc回收并打印回收结果函数
function memColl()
    print("now collect")
    collectgarbage("collect")
    local c1 = collectgarbage("count")
   

线上存储服务崩溃问题分析记录

viagra pas

Codis架构笔记

Codis是起源于豌豆荚的redis Proxy项目,其主要目的是为了解决redis使用中的两个痛点:

  1. 难以动态的平行扩展增加新的redis服务.
  2. 难以运维管理.

它主要的架构是这样的:

系统扩展的三种维度

cialis sans ordonnance

经常提到一个系统的扩展性,只谈到垂直扩展和水平扩展,其中垂直扩展是提高系统内单个系统的处理能力,比如给机器加内存,换性能更高的机器等;水平扩展通俗一点说就是加更多的机器来处理请求,而不是试图提高单机的处理能力.

<<可扩展的艺术>>一书,将一个系统的可扩展性做了更多的划分和分析,它将一个系统的扩展性划分为以下三种维度:

灰度发布系统的实现(续)

灰度发布系统的实现

acheter viagra sans

Paxos原理与实现(二)实现与实践篇

上一部分描述了Paxos算法的原理,这部分根据 MIT 6.824 lab3 的内容,展开来讨论一下Paxos算法实现的过程中遇到的问题,以及如何将它运用到一个实际的K-V系统中.
我把这部分代码放在了github上.
这个实验包括两部分,第一部分是实现一个Paxos算法库,第二部分是基于这个Paxos库实现一个KV存储系统.

新申请了微信公众号

cialis prix

赶一赶时髦,开通了微信公众号,会同步一些这个博客的文章到上面去,公众号名字是”codedumpnote”.

Paxos原理与实现(一)原理篇

几年之前学习zookeeper的时候,就断续的学习过Paxos算法,对其中的原理和如何运用到实际环境中一知半解似懂非懂,以至于后面断断续续又花了不少时间在这上面,每一次的返工都没有达到自己想要的效果.直到最近,开始做

再谈同步/异步与阻塞/非阻塞

几年前写过一篇描写同步/异步以及阻塞/非阻塞的文章,今天回头来看bug不少,于是需要重新整理一下原来的描述.

同步/异步
首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.

Pages: 1 2 3 4 5 6 7 8 9 Next