摘要: 解决的问题 HBase的Write Ahead Log (WAL)提供了一种高并发、持久化的日志保存与回放机制。每一个业务数据的写入操作(PUT / DELETE)执行前,都会记账在WAL中。 如果出现HBase服务器宕机,则可以从WAL中回放执行之前没有完成的操作。 本文主要探讨HBase的WAL 阅读全文
posted @ 2016-08-25 17:47 Yijian 阅读(12031) 评论(1) 推荐(3) 编辑
摘要: 解决的问题 当我们有多个消息的生产者线程,一个消费者线程时,他们之间如何进行高并发、线程安全的协调? 很简单,用一个队列。 当我们有多个消息的生产者线程,多个消费者线程,并且每一条消息需要被所有的消费者都消费一次(这就不是一般队列,只消费一次的语义了),该怎么做? 这时仍然需要一个队列。但是: 1. 阅读全文
posted @ 2016-08-23 15:13 Yijian 阅读(10015) 评论(0) 推荐(4) 编辑
摘要: 在这里: http://tech.meituan.com/java-memory-reordering.html 指令重排和内存可见性(缓存不一致)是两个不同的问题。 volatile关键字太强,即阻挡指令重排,又保证内存一致性。 unsafe.putOrderedXXX()只阻挡指令重排,不保证内 阅读全文
posted @ 2016-08-19 16:30 Yijian 阅读(1636) 评论(0) 推荐(0) 编辑
摘要: 问题 用Java获取本机IP地址,需要处理: 1. 多块网卡。 2. 排除loopback设备、虚拟网卡 看似简单的代码,写起来还是要小心一些的。 方案 HBase客户端获取本机IP的代码提供了一个很好的参考。没有特殊需求的话,拷贝过去用吧:) 阅读全文
posted @ 2016-08-17 15:58 Yijian 阅读(9262) 评论(0) 推荐(0) 编辑
摘要: HBase的数据写入操作,会先记录到HLog中,再真正写入到MemStore中。前者是对写入友好的格式,后者是对查询友好的格式。所以前者吞吐量更高,写入成功率大,提高了系统的可靠性,“基本”可以实现宕机后继续没有完成的数据更新操作。 API WAL interface提供了对外的WAL API。 其 阅读全文
posted @ 2016-08-17 14:13 Yijian 阅读(1990) 评论(0) 推荐(0) 编辑
摘要: 我的联系方式是 shanghaihyj@163.com。欢迎大家交流。 阅读全文
posted @ 2016-08-17 13:29 Yijian 阅读(118) 评论(0) 推荐(0) 编辑