Month: September 2018

  • 给开始在日本学习工作的人的一点参考:在日本看病(1)

    最近到医院预约了拔智齿,突然想到对于一个到了人生地不熟的日本,而且不喜欢抱团的人来说,如何在日本学习或者工作的同时看病是一个很大的难题。语言是一方面,日本和国内大相径庭的看病方式也需要时间适应。所以,考虑了下,分享顺便也记录下自己的看病经历。 到现在为止,个人经历过的主要是皮肤科(皮膚科、ひふか),牙医(歯科、しか)。个人体质原因,不大感冒,没去过耳鼻咽喉科(耳鼻咽喉科、じびいんこうか)。不过今年春天好像得了花粉症(花粉症、かふんしょう),可能之后会去。 和国内不同,小毛小病这边不会去医院(病院、びょういん),而是先去诊所(クリニック)。直接去医院的话,会额外收一笔费用,而且你会等很长时间。

  • 登山笔记・关于登山

    随便聊一下「登山」这个概念。 比如说珠穆朗玛(8848m)和上海佘山(100m)同样是山,但爬这两座山是完全两个概念。 日语环境里,「登山(とざん)」是个大概念,去高尾山(599m)也是登山,去富士山(3776m)也是登山。 之前心血来潮查过知乎,好像在中国国内,普遍把徒步和登山的概念以山的高度作为区分,4km以上算登山但4km以下就只能划作徒步。不是很清楚这样划分的意义,但这种划分总让人觉得登山是专业的事情,不是普通人可以做的,门槛很高。 在日语环境下,登山便没有那么高的门槛。原先我也有芥蒂,都说自己是去徒步(hiking),同事们却听得一愣一愣的,反问你不是去登山了吗。后来想想确实没必要在自己内部划分这些,开心就好。 纵走(縦走)也好,徒步(ハイキング)也好,trekking(トレッキング)也好,划分的那么清楚自己心也累。 反正就是早起赶早班电车电车下来开始走,走到目的地偶尔住一天,绝大多数时候是休息片刻便立即动身,下山或者走向另一个山头。 回程累了电车上偶尔小睡30分钟。 回家泡个澡倒头就睡做个还在山上走的梦。 第二天起来享受着肌肉酸痛重新回归毫无偏离的日常生活。

  • 自适应分布式速率限制(distributed rate limiter)

    本文是针对xratelimiter的算法说明。 https://github.com/xnnyygn/xratelimiter 首先对rate limiter做一下简单介绍。 rate limiter主要用在限流,比如希望网站的访问在一定的量的时候,对于API有调用量限制,作为云服务商限制访问用户网站的流量等等。 常见的rate limiter算法有token bucket。具体算法这里不作展开。一般实现中,会有一个记录最后添加了token的时间戳,还有一个记录当前token数的变量。由于有两个变量,在使用redis实现集中式的token bucket时无法原子修改。

  • 基于GOSSIP的集群成员管理-失败检测

    本文是对于以下项目的算法说明。 https://github.com/xnnyygn/xgossip 失败检测即Failure Detection,在xgossip中主要是指由于网络或者节点当机问题导致无法正常通讯的问题的检测。除此之外,检测到之后系统如何处理也是需要根据实际需求来决定的。以下主要针对这两方面进行讲解。

  • 基于GOSSIP的集群成员管理-成员的加入和退出

    本文是对于以下项目的算法说明。 https://github.com/xnnyygn/xgossip 首先简单介绍一下GOSSIP。 GOSSIP据说最早见于论文《Epidemic Algorithms for Replicated  Database Maintenance》,对于GOSSIP有兴趣的人建议阅读一下此论文。 GOSSIP算法如论文标题是一种epidemic algorithm,可以理解为传染病的传播。有三个人A,B,C。A是传染源,当A传染给B,B传染给C之后,所有人都被传染了。在分布式系统中,可以把传染病类比为更新,当所有参与的节点都获取到了更新之后,集群达到最终一致状态。从这个角度来说,GOSSIP是一种弱一致性,或者说最终一致性算法。