键值对模型是一种常用的数据模型,在很多NoSQL大数据系统中被采用。
另一方面,键值存储也作为底层存储支持上层更复杂的数据模型(列存模型、关系模型)
例如,Facebook的数据库就构建于自己开发的MyRock存储基础上,MyRock的核心结构是基于LSM树的键值存储系统,性能和空间利用率优于传统数据库系统。
键值存储的核心是索引结构,如何组织键值对数据,按照常见的索引方式可以分为:

       1)基于哈希索引

       2LSM树索引

       3B树索引

       4)其他索引

这几类键值存储系统。

hash索引简单高效,单点查询性能高,不支持范围查询。如果键值系统不需要支持范围查询,hash索引是很好的选择。

例如常见的分布式键值缓存系统,包括MemcachedRedis等,一般不需要范围查询。

Memcached:内存键值缓存系统,一个分布式键值缓存系统,经常用做数据库等系统的上层缓存,在Facebook公司的后台系统中大量使用
Memcached的索引结构是二级Hash索引,在分布式层面采用一致性Hash索引每个节点负责数据键一个范围,在查询时首先通过计算定位数据所在节点;然后在每个节点通过内部Hash算法定位数据所在位置(也可能缓存不命中)

Web 服务器读取数据时先读 Memcached 服务器,若 Memcached 没有所需的数据,则向数据库请求数据,然后 Web 再把请求到的数据发送到 Memcached,如下图所示:

下图所示为 Memcached 的分布式

RAMCloud:分布式内存键值存储系统,Stanford大学于设计和开发2009年启动,是基于Raft分布式协议,以内存为存储介质,性能卓越,系统可用性高,能在1-2秒内恢复失效节点

如下图,分布式系统的每个节点由masterbackup两部分构成:

Master是维护内存键值系统的程序,主要内存空间用来存储键值对数据。
键值对采用日志方式存储,用追加写的模式,并且通过后台垃圾回收来回收旧版本的内存空间;
少量内存空间来维护一个hash索引,通过哈希查询定位到键值对所在的地址。
因为传统malloc管理内存的方式会产生大量的内存碎片,内存空间利用率实际很低,这种log-structured的方式可以显著提升空间利用率。
backup是负责数据持久化的程序。
master中的数据也会更新到其他节点的backup中,首先写入内存中的缓冲区,缓冲区满之后,写入外存进行持久化存储。
为了保证backup缓冲区中的数据安全,每个节点需要配置大约64MBNVRAM(带电池的内存)来作为缓冲区设备。

数据组织与存储(一)相关推荐

  1. 【大数据管理】数据组织与存储(二)

    B 树和 B+ 树索引能够很好支持点查询和范围查询,因此是传统键值系统常用的索引结构. 但对于数据主要存储于外存的键值存储系统, B/B+ 树在更新单个键值对时,很可能需要更新外存中的整个数据块,产生 ...

  2. 彻底理解大数据 HDFS 分布式文件系统,这篇就够了

    来源:https://www.cnblogs.com/cainiao-chuanqi/p/11420490.html 文件系统的基本概述 文件系统定义:文件系统是一种存储和组织计算机数据的方法,它使得 ...

  3. mysql按条件提取数据库_SQL中的where条件,在数据库中提取与应用浅析

    1        问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语 ...

  4. 从属关系mysql_关系型数据库基础概念:MySQL系列之开篇

    一.基础概念 数据(Data)是描述事物的符号记录,是指利用物理符号记录下来的.可以鉴别的信息. 1.数据库(Database,DB)是指长期储存在计算机中的有组织的.可共享的数据集合.数据要按照一定 ...

  5. shell 删除了hdfs 文件_知识干货 | 大数据全解 HDFS分布式文件系统

                                                                                      HDFS概述 Hadoop分布式文件 ...

  6. mysql 数据库系统开发_MySQL------数据库系统概述

    一.数据库基本概念 数据.数据库.数据库管理系统和数据库系统是数据库中最常用的四个基本概念: 数据库:长期存储在计算机中有组织的.可共享的数据集合: → 数据库的特点:1.具有较小的冗余度:2.较高的 ...

  7. 简述mysql的概念及作用_数据库 简答题

    第一章 数据库概述 1.简述数据管理技术发展的三个阶段以及各个阶段的特点 数据库管理技术发展经过了人工管理阶段,文件系统阶段,数据库系统阶段. (1)人工管理阶段 ???1. 数据不单独保存 ???2 ...

  8. 数据库系统概论:第十二章 数据库管理系统

    12.1 数据库管理系统的基本功能 1. 数据库定义和创建 2. 数据组织.存储.管理 3. 数据存取 4. 数据库事务管理和运行管理 5. 数据库的建立和维护 6. 其他功能 12.2 数据库管理系 ...

  9. 数据库系统概论:第一章 绪论

    1.1 数据库系统概论 1.1.1 数据库系统概论 1. 数据 描述事物的符号记录称为是数据; 数据的解释叫做语义,他与数据时密不可分的; 记录是计算机中表示和储存数据的一种格式或者一个方法; 2. ...

  10. 【数据库复习】第一章绪论

    目录 一.数据库系统概述 1.1四个基本概念 1.2数据库管理技术的产生和发展 1.3数据库系统的特点 二.数据模型 2.1两类数据模型 2.2概念模型 2.3 数据模型的组成要素 2.4常用的数据模 ...

最新文章

  1. java命令执行类,这里设置了classpath,系统变量里的classpath将失效
  2. 【项目实战】---使用ajax完毕username是否存在异步校验
  3. tableau必知必会之通过服务器视图的全屏实现多媒体展示
  4. oracle01507报错,oracle报错ORA-01507
  5. 设计模式 工厂方法_工厂设计模式–一种有效的方法
  6. Golang 在十二赞的深度应用
  7. Secure CRT修改文件夹的颜色
  8. mesh gradient的求法
  9. 使用jquery实现局部刷新DIV
  10. Mac 软件使用心得 极简软件清单
  11. IsPostBack详解
  12. docker容器中使用vlc将视频文件推成rtsp流
  13. 有了这四个网站 再也不用花钱啦
  14. 微信小程序体验版打开调试模式才能正常调用接口问题
  15. STM32中GPIO工作原理详解
  16. Facebook账号注册需要注意什么?Facebook养号技巧?
  17. 专访深度学习之父Geoffrey Hinton:人工智能的向量之舞
  18. C-C++学生成绩管理系统
  19. 5.6.2 低通滤波器(理想低通+巴特沃斯低通滤波器)
  20. internal compiler error

热门文章

  1. 多边形Polygon
  2. 土地日度交易数据2000-2022
  3. 关于word粘贴图片显示不全的解决办法
  4. Windows 下使用PDH 获取CPU 使用率
  5. dreamweaver cs6 连接mysql_dreamweaver cs6连接数据库的具体流程讲述
  6. 非北京户口的驾照到期换证小攻略(仅供参考)
  7. 山东标梵讲解浅谈移动端开发技术
  8. 买服务器上国外网站,国外服务器怎么买?
  9. 笔记本计算机风扇声音大怎么办,教你怎么从解决笔记本风扇狂转、噪音过大!-电脑风扇声音大怎么办...
  10. React 16 源码解析笔记 02 - JSX 转换为 ReactElement 的过程