技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 查看专题: 存储
    Seaweedfs 是一个非常优秀的由 golang 开发的分布式存储开源项目, 虽然在我刚开始关注的时候它在 github.com 上面只有 star 50+, 但是我觉得这个项目是一个几千 star 量级的优秀开源项目。 Seaweedfs 的设计原理是基于 Facebook 的一篇图片存储系统的论文 Facebook-Haystack, 论文很长,但是其实原理就几句话,可以看看 Facebook图片存储系统Haystack , 我觉得Seaweedfs是青出于蓝而胜于蓝。
    一般说来,ATA是一个控制器技术术,而IDE是一个匹配它的磁盘驱动器技术,但是两个术语经常可以互用。ATA是一个花费低而性能适中的接口,主要是针对台式机而设计的,销售的大多数ATA控制器和IDE磁盘都是更高版本的,称为ATA – 2和ATA – 3,与之匹配的磁盘驱动器称为增强的IDE。
    这里重点讲LVM的概念和操作,看完这篇文档,你会了解LVM是什么,里面有哪些概念,如何把LUN划分到LV挂载到服务器上,双机切换是怎么对存储进行处理的。至于存储如何跟服务器连上,如何做RAID策略,如何划分LUN,这里不涉及。
    Sheepdog是一个分布式对象存储系统,专为虚拟机提供块存储,号称无单点、零配置、可线性扩展(省略更多优点介绍)。本文主要关注其性能究竟如何,测试版本为目前的最新稳定版0.7.4。
    计算机是由硬件和软件组成的, 而所有软件的唯一目标就是尽可能最大化的利用下层硬件能够提供的特性,完成上层的功能。 所以才会有人说,硬件是骨头,软件是血肉,骨头决定生物的形态,软件决定生物的神态。不过,依然请放心,我们不会讨论复杂的东西, 作为一个软件工程师,也没有人会要求我们去写一个磁盘存储器的硬件驱动代码~在这里,我们只讨论那些为了后面我们理解软件存储而锁需要掌握的硬件知识。
    要介绍 RAID技术的原因,其实是因为目前大部分分布式存储在做的事情其实 RAID在很多年前就已经做到了,所以如果你希望做存储相关的事情,那么 RAID是必须要理解,但不一定要用到的概念:)
    可以预见,在未来,对于追求iops的数据读写类应用来说,将用户经常访问的热点数据全部从传统磁盘搬到ssd上面应该是个趋势。自此,磁盘将是新的磁带,闪存是新的磁盘,内存为王。
    要介绍 RAID技术的原因,其实是因为目前大部分分布式存储在做的事情其实 RAID在很多年前就已经做到了,所以如果你希望做存储相关的事情,那么 RAID是必须要理解,但不一定要用到的概念:)  
    计算机是由硬件和软件组成的, 而所有软件的唯一目标就是尽可能最大化的利用下层硬件能够提供的特性,完成上层的功能。 所以才会有人说,硬件是骨头,软件是血肉,骨头决定生物的形态,软件决定生物的神态。不过,依然请放心,我们不会讨论复杂的东西, 作为一个软件工程师,也没有人会要求我们去写一个磁盘存储器的硬件驱动代码~在这里,我们只讨论那些为了后面我们理解软件存储而锁需要掌握的硬件知识。
    xfs文件系统会把inode存储在磁盘最开始的这1T空间里,如果这部分空间被完全填满了,那么就会出现磁盘空间不足的错误提示了。解决办法就是在挂载时,指定 inode64 选项。
    二叉树: 一个根节点,每个节点下挂着最多2个子节点。、 概念: 度:结点的分支数,二叉树度为2。 深度:树的层次。 二叉排序树: 二叉树的基础上,每个节点上都有一个数字,节点上的数字都比右节点上的大。 应用场景: 基于内存的排序数据结构,写入时将数据写入到对应的位置。数据可能会出现倾斜,可以想到数字写入顺序如果不是50-20-60-18-55,而是18-20-50-55-60,那么二叉树就会退变为链表。 B-树: B-树每个节点上包含着数据和指针,每个指针指向其一个子节点的位置,并且数据的个数为指针的2d-1个。这里的d是指针的个数,同时也是树的“度”。 B-树的查找需要一次对每个节点进行二分查找,直至找到或返回null。通常,可以引入布朗过滤器等方式加速查找。 B-树的写入、删除时要进行分裂、合并、转移等操作,越是非顺序的插入就越容易碰到这些高性能消耗的操作。
    html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
    数据的存储方式对应用程序的整体性能有着极大的影响。对数据的存取,是顺利读写还是随机读写?将数据放磁盘上还将数据放flash卡上?多线程读写对性能影响?面对着多种数据存储方式,我们如何选择?本文给大家提供了一份不同存储模式下的性能测试数据,方便大家在今后的程序开发过程中可以利用这份数据选择合适的数据存储模式。
    HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile。
    在NoSQL的许多产品中,我们通过benchmark可以看到的都是写性能极度提升,而读性能并没有太大的涨幅甚至相对传统RDBMS还有下降。比如Cassandra,MongoDB这两个NoSQL的杰出代表。究其原因,我们可能会想到是因为当前UGC模式已经发展到白热化,用户产生内容导致读写比已经接近或者说小于1:1。
    单机存储引擎解决单机读写问题,Merge-Dump存储引擎设计成一种通用的存储引擎,同时支持数据写入,随机读取和顺序扫描功能。顺序扫描功能应用很广,比如MapReduce批处理,同一个广告主的所有关键词广告统计,用户浏览所有的收藏信息,淘宝卖家管理大量的商品等。简单的KV系统只需要支持随机读取,而类似Bigtable这样的通用表格系统需要考虑基于主键的顺序扫描功能。
    OSDI 10中有一篇Facebook图片存储系统Haystack的论文,名称为”Finding a needle in Haystack: Facebook’s photo storage”。从这篇论文可以看出,数据量大的应用有时也并不复杂。 我们先给Facebook图片存储系统算一笔账。Facebook目前存储了260 billion图片,总大小为20PB,通过计算可以得出每张图片的平均大小为20PB / 260GB,约为800KB。用户每周新增图片数为1 billion (总大小为60TB),平均每秒钟新增的图片数...
    SQL Azure简介 SQL Azure是Azure存储平台的逻辑数据库,物理数据库仍然是SQL Server。一个物理的SQL Server被分成多个逻辑分片(partition),每一个分片成为一个SQL Azure实例,在分布式系统中也经常被称作子表(tablet)。和大多数分布式存储系统一样,SQL Azure的数据存储三个副本,同一个时刻一个副本为Primary,提供读写服务,其它副本为Secondary,可以提供最终一致性的读服务。每一个SQL Azure实例的允许的最大数据量可以为1GB...
    HBase简介 HBase
    Redis作者antirez是一个非常勤奋的开发者,在Redis性能已经非常惊人的情况下持续不断开发新的特性,比如从新的cluster源代码看到,作者已经把Dynamo及Paxos一些核心的思想考虑进去并进行了一些简洁的实现。相比其它产品如Memcached则几年没什么大变化,在Web 2.0时代,Memcached已经非常不够用,技术人员需要考虑做很多额外工作才能让Memcached适应新的变化和需求。 antirez在1月5日Google Groups发表了一篇Redis diskstore文章,...
[ 共40篇文章 ][ 第1页/共2页 ][ 1 ][ 2 ]
赞助商广告
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1