zl程序教程

您现在的位置是:首页 >  其它

当前栏目

理性选择key-value Store

选择 Key value Store 理性
2023-09-11 14:16:01 时间

开源产品固然好,但是各种场景的数据需求确实多少有些差距,利用现有的软硬件资源面对现有的问题快速做出调整是才是数据库工程师的真正价值。

key-value store由于本身实现不像成熟RDBMS那么复杂,换句话说开发周期不常,性能更是由于去掉了ACID的约束,从一个个benchmark上看对比起主流开源关系型数据库mysql innodb的曲线都非常好看,op/s号称高一个数量级的不是没有,request latency更是有redis类似的内存性数据库,在高并发的场景下99.95%响应在1ms以下一点也不惊奇。其实对于了解oltp数据系统的同学来说,这其实一点也不神奇。
提高DB端的响应延迟。因为我本身也有计算、多个api调用提交(整体响应时间以最慢api时间为准:-) )、网络等开销(这个尤其适用于有专有技术平台的公司场景),因为及时我有其他复杂逻辑托我后腿了,我也不想因DB的响应延迟拖后腿,因为这个我们不可控。 Memcache只是缓存 典型的应用场景:

$key = md5($key);

if(!($value = $_SGLOBAL[memcache]- get($key))){ //Cache中没有,则从My SQL中查询

$query = $this- query($key,$type);

while($item = $this- fetch_array($query)){

$result[] = $item;

}

$value = $result;

//将Key和Value写入MemCache

$_SGLOBAL[memcache]- set($key,$result,0,$MEMCACHE_LIFETIME);

}

return $value;

}


先去mc查询,没有就查db,查上来顺手种下mc 但是Memcache只能作为缓存,缓存顾名思义,需要预热、程序逻辑种植,不能持久化存储。 系统因为各种原因的mc穿透导致db无响应导致百页的情况,应该最为常见。
如果可能请不要Sharding    了解类Mysql DB的同学知道,replication很可能成为DB资源瓶颈,所以我们业务在评估资源的时候发现要面对一堆数据库配置和五花八门的Hash函数,所以我们感叹:你们后端的同学能不能给点力,不让我开发周期一拖再拖。更不能接受的就是因为db要resharding,我们还要花大量时间改造代码。 多数nosql产品对开发友好    面向文档的(mongoDB),直接存储json(Couchbase),多种内存结构hashset,list…(redis) …等等 尝试下新技术    nosql听上去很霸气
安全性及可用性    kvDB的大多数都是支持持久化数据的。可用性就是指同步数据的方式,最常见就是replication。效率和可靠性都是需要考量的。 我要尝试下新技术    nosql听上去很霸气 可见开发和运维人员对与数据库系统是不一样的,短期和中长期的效益都很重要。
基于JAVA,写操作较多,读少 动态的查询,定义索引而非map/reduce。数据变化快,磁盘不够用,可以使用MongoDB 有大量数据,但更新不大,需要预先定义查询 数据快速变化,数据库大小可以预见(适合内存存取数据)

简单的类似Cassandra

或Dynamo的功能,较强的单点容错性和扩展性

随机数据、实时读取海量数据
股价系统,数据分析,实时数据采集以及实时通信场景 销售点数据采集。工厂控制系统。需要零停机时间的场景

喜欢bigTable,需要随即、实时的读写大数据(Big Data)


当然这个对比有很多问题,很多产品是解决不是同一个问题,故不应该列在里面,更奇怪的是没有把mysql列入里面,mysql(注意这里不是指handlersocket plugin)能做很多nosql做不了的事情,用作nosql DB同样的功能更为容易,为什么不拿出来对比下。

之前围绕着Mysql,Redis,LevelDB,Hbase做过一些不同目的的性能测试,也算对这些产品的性能有了大概了解,未来需要对性能数据完善一下!

Mysql 内存访问性能测试

 原文发布时间为:2013-10-11

本文来自云栖社区合作伙伴“Linux中国”


不能错过的分布式ID生成器(Leaf ),好用的一批 Leaf是美团推出的一个分布式ID生成服务,名字取自德国哲学家、数学家莱布尼茨一句话:“There are no two identical leaves in the world.”(“世界上没有两片相同的树叶”),取个名字都这么有寓意,美团程序员牛掰啊!
HASH哈希游戏源码丨HASH哈希游戏系统开发(规则及详细)丨HASH哈希游戏开发成品源码部署 区块链在防止篡改和提供对添加到链中的块的公开验证方面是独一无二的。如果一个块被修改,它的哈希值会发生变化,并且所有后续块不再指向正确的哈希值,从而使它们失效。不法分子需要遍历所有以下区块并重新计算其哈希值以修改区块链。
微软KV Store Faster如何巧妙实现1.6亿ops | 前沿 微软18年在sigmod上发表了论文Faster: A Concurrent Key-Value Store with In-Place Updates,介绍了一款支持高并发的kv store,在单台机器上可实现1.6亿ops的高吞吐,远胜于其它纯内存数据结构的性能。亮点在于1.6亿的高吞吐,并且支持超出内存大小的数据量,实现方式比较新颖,虽然faster在工程上会有比较多的限制,比较难产品化,但是实现对于优化kv引擎的方向有一定的启发意义,值得学习一下
简单通透理解: 为什么不建议使用 index 作为 key 值 云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 今天探讨一个我们前端面试中经常会遇到的一个问题。 使用 index 作为 key 值有什么问题呢? 在我们日常开发中我们经常会和 key 值打交道。
App Store 4.3 大礼包被拒解决方案-本地差异化 从2017年年底开始, Apple似乎做了很大的升级, 让众多开发者陷入困境, 不单单是马甲, 就连正常的 App 也被误伤; 周围很多开发者向我 求救 , 诉说新品处于【等待审核】或【正在审核】状态长达一两个月的; 似乎 iOS 开发者不单单只是开发项目, 高效上新和稳定更新 App 变得愈发重要。
热点Key的发现与解决之道 在2018数据库直播大讲堂峰会-Redis专场中阿里云数据库组的梁盼从热点Key产生的原因,造成的问题开始讲解。通过在热点Key问题解决上以往的方法与阿里的方法的对比,形象的表述了阿里云在解决热点Key问题上所提方案的可行性与优越性。