下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 NoSQL误用和常见陷阱分析(孙立)

NoSQL误用和常见陷阱分析(孙立).pdf

NoSQL误用和常见陷阱分析(孙立)

zjznet
2011-10-26 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《NoSQL误用和常见陷阱分析(孙立)pdf》,可适用于IT/计算机领域

孙立qunarcomweibocomsunli误用和常见陷阱分析大纲被误用的NoSQLNoSQL陷阱NoSQL与MySQLNoSQL无处不在NoSQL运维被误用的NoSQL非常容易出现的错误使用方法循环网络调用• Memcached的循环和批量GET对比Map<String, String> result=new HashMap<String, String>()      for (int i = ,len=keyslength i < len i) {           循环获取memcached数据               resultput(keysi, memcacheGet(keysi))    }使用批量get协议 Map<String,Object>objMap=clientget(ArraysasList(keys))倍性能的影响个key消耗ms个key消耗ms循环网络调用• Redis的循环和批量GET对比Map<String, String> result=new HashMap<String, String>()      for (int i = ,len=keyslength i < len i) {           循环获取memcached数据               resultput(keysi, jredisget(keysi))    }循环从redis get数据 jredismget(keys)个key消耗ms个key消耗ms倍性能的影响不压缩大数据• 压缩的分类不压缩NoSQ存储压缩外部client压缩不压缩大数据• 内部压缩和外部压缩内部压缩webwebwebNoSQL内部压缩可以减小存储提升IO性能不能提升网络IO性能Web外部压缩Web外部压缩Web外部压缩外部压缩可以减小存储提升IO性能并且能够提升网络IO性能不压缩大数据• 压缩对比内部压缩webwebwebWeb外部压缩Web外部压缩Web外部压缩无压缩的原始数据压缩后的数据(**)(*)=qps(**)(*)=qpsMb网卡单条数据KB的理论qpsCPU消耗可扩展CPU消耗不可扩展跨语言交互NoSQLserializePHPOther能unserializeNoSQL某压缩算法JAVAOther能解压吗?NoSQL陷阱NoSQL是一个新兴的话题大量的NoSQL产品也都是新出来的难免出现各式各样的陷阱。不能避免陷阱但是得掉进去可以爬出来。官方数据很美好• 官方数据• 很少有提及缺点的TokyoCabinet的官方数据。实际测试你会发现数据增加后速度会骤减场景错误• Redis做持久存储– 单点、复制问题– 数据超过内存性能急剧下降– 扩容问题• Redis做Cache存储– 性能极高– 数据结构丰富– 可以持久化、避免雪崩现象细节描述不清楚• Ttserver=>兼容memcached协议不支持memcached的flag参数早期版本increment与memcached不一致Stats命令不一致缓存重建• 系统重启后大部分请求到磁盘• 整个系统的性能可能出现抖动• 出现连锁雪崩反应NoSQL陷阱bit问题• TtserverGB(bit)• MongodbGB(bit)Ttserver在bit下到达g数据大小将出现无法启动的现象版本升级问题• 版本升级带来兼容问题(官方未声明的)• 版本升级可能导致适用场景变化NoSQL与MySQL不要犹豫该用MySQL还是NoSQL在你还没有掌握NoSQL前最好先在小项目尝试下。选择NoSQL需要考虑• 数据的安全性是否久经考验• 事务性的保障• 数据的重要性• 是否有DBA运维• 未来的业务需求变化性能之争差别在哪里?• 普通磁盘的IOPS(几百个)• 寻道时间、延迟时间• 顺序读和顺序写吞吐上百MBS随机写变顺序写内存索引热数据cache读写算法优化(场景化)网络协议优化NoSQL在普通磁盘的优化如果是SSDNoSQL无处不在不管你信不信你很可能早已在接触NoSQL了。Memcached缓存SVN使用的BDB比如:为什么要构建自己的NoSQL• 考察清楚场景和需求• 现有产品满足需求成本高• 针对特殊场景也许比想象的简单• 可掌控构建自己的NoSQL• IP查询TreeMap<IPEntry,String>可轻松完成构建自己的NoSQL• 通过MySQL构建GETSETDELETEMySQL接口封装MySQLMySQL这样也是NoSQLNoSQL运维并不像官方宣称的那样NoSQL无需DBA运维运维NoSQL并不容易• 文档齐全吗?• 网上交流多嘛?• 周边工具齐全吗?• 出现意外问题你能搞定吗?出现意外问题很难求助到人监控运维之本• IO• CPU• 延迟• QPS• 抖动• 数据量除了操作系统最基本的监控还应该监控备份很重要• 避免单点• 定期数据库备份• 开发前做好切换准备(能切换到其他产品)谢谢!

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/29

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利