个人简介

Echo Blog


江湖无名 安心练剑
  • LevelDB-04-SSTable
    SSTable文件 SSTable是Bigtable中至关重要的一块,对于LevelDb来说也是如此,对LevelDb的SSTable实现细节的了解也有助于了解Bigtable中一些实现细节。 本节内容主要讲述SSTable的静态布局结构,我们曾在“LevelDb日知录之二:整体架构”中说过,SSTable文件形成了不同Level的层级结构, 至于这个层级结构是如何形成的我们放在后面Co...
    2018-09-06 23:44:19 | Cache
  • LevelDB-03-log
    Log 上节内容讲到log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据。 因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及Dump到磁盘的SSTable文件,LevelDB也可以根据log文件恢复内存的Memtable数据结构内容,不会造成系统丢失数据,在这点上LevelDb和Bigtabl...
    2018-09-06 23:44:19 | Cache
  • LevelDB-02-为什么这么快
    整体架构 LevelDb本质上是一套存储系统以及在这套存储系统上提供的一些操作接口。为了便于理解整个系统及其处理流程,我们可以从两个不同的角度来看待LevleDb:静态角度和动态角度。从静态角度,可以假想整个系统正在运行过程中(不断插入删除读取数据),此时我们给LevelDb照相,从照片可以看到之前系统的数据在内存和磁盘中是如何分布的,处于什么状态等;从动态的角度,主要是了解系统是如何写入...
    2018-09-06 23:44:19 | Cache
  • LevelDB-01-入门
    LevelDB LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. Features 键和值是任意的字节数组。 数据按键存储。 ...
    2018-09-06 23:44:19 | Cache
  • Memcached
    Memcached 官方定义 Memcached 是免费和开源、高性能、分布式内存对象缓存系统,本质上是通用的,但用于通过减轻数据库负载来加速动态web应用程序。 Memcached是内存中的一个键值存储,用于存储来自数据库调用、API调用或页面呈现结果的任意数据块(字符串、对象)。 Memcached简单而强大。其简单的设计促进了快速部署,易于开发,并解决了大型数据缓存所面临的许多...
    2018-09-06 23:44:19 | Cache
  • Serializable
    序列化 概念 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。 但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。 使用Java对象序列化,在保存对象时,会把其状态保存为一...
    2018-09-06 03:44:07 | Java
  • Serializable ID-02-序列化标识
    Serializable ID 作用 简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。 在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。 不写的弊端 当实现 j...
    2018-09-06 03:44:07 | Java
  • Dubbo in action
    记录 dubbo 中常见的问题总结。 基础概念 手写 dubbo simple rpc dubbo dubbo 的概念 dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含: 集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 远程通讯: 提供对多种基于长连接...
    2018-09-06 03:36:05 | Dubbo