摘要: 01-可见性、原子性、有序性 源头之一:缓存导致的可见性问题 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到,我们称为可见性. 源头之二:线程切换带来的原子性问题 例如:count += 1,在cpu指令级别上 指令 1:首先,需要把变量 count 从内存加载到 CPU 的寄存器; 指 阅读全文
posted @ 2021-07-28 20:20 sixinshuier 阅读(68) 评论(0) 推荐(0) 编辑
摘要: Hbase Hlog的持久化等级 SKIP_WAL:只写缓存,不写HLog日志。因为只写内存,因此这种方式可以极大地提升写入性能,但是数据有丢失的风险。在实际应用过程中并不建议设置此等级,除非确认不要求数据的可靠性。 ASYNC_WAL:异步将数据写入HLog日志中。 SYNC_WAL:同步将数据写 阅读全文
posted @ 2021-07-28 16:43 sixinshuier 阅读(144) 评论(1) 推荐(0) 编辑
摘要: Hbase 写入流程大致分为三个步骤: 1.客户端请求 首先在meta cache 根据rowKey查找该rowKey对应的Region Server,如果有则直接发送请求到RegionServer。 如果客户端缓存中没有查到对应的rowkey信息,需要首先到ZooKeeper上/hbase-roo 阅读全文
posted @ 2021-07-28 14:58 sixinshuier 阅读(163) 评论(1) 推荐(1) 编辑
摘要: thrift RPC基本原理 RPC(Remote Procedure Call),远程过程调用,大部分的RPC框架都遵循如下三个开发步骤: 定义一个接口说明文件:描述了对象(结构体)、对象成员、接口方法等一系列信息; 通过RPC框架所提供的编译器,将接口说明文件编译成具体的语言文件; 在客户端和服 阅读全文
posted @ 2021-07-28 14:02 sixinshuier 阅读(580) 评论(0) 推荐(0) 编辑