更新说明: 本文编写时最新的Cassandra版本为2.2,最新的稳定版本为2.1.8 2016年6月23日,增加一篇译文,当下最新版本为3.7 最新的Cassandra 2.1 或者更高的版本支持3种压缩策略,各有优劣,在2.2的版本的说明文档中,有对这三种策略的详细说明,部分翻译如下. 文档链接:http://docs.datastax.com/en/cassandra/2.2/cassandra/dml/dmlHowDataMaintain.html?scroll=dmlHowDataWr…
微信小程序自推出以来,逐渐发展,目前正受到越来越多的青睐.其中很重要的一点得益于小程序的轻量级特性,每个小程序最多不超过2MB,招之即来挥之即去,相比于几十上百兆的APP,用户进入小程序,或者说,小程序获取新用户,的成本大大降低. 但与之相应的,是开发资源的限制.由于轻量级特性,小程序的代码包体积.可用内存空间.可用存储空间等均受限制.如何在有效支持业务逻辑的同时,尽量减少资源占用,在小程序开发环境中显得尤为重要.代码包体积是其中的一个重要方面,本文将就此进行分析与探讨. 背景 本文内容基于小程…
瀑布式分页 如果你的应用只需要瀑布式的分页,那么,Cassandra可以很好的支持,不过记得要指定好排序顺序. CLUSTERING ORDER BY (add_time DESC); 常见的分页,跳页问题 许多产品喜欢设计可以跳页的分页逻辑比如下面这种 首页 1 3 4 5 下一页 GO [ ] 页 由于Cassandra不支持类似mysql的 "Limit start,length" 也没有其他数据库的 "top + 子查询",遇到这种需求的时候,非常不方便.…
一.为什么Bitmap需要高效加载? 现在的高清大图,动辄就要好几M,而Android对单个应用所施加的内存限制,只有小几十M,如16M,这导致加载Bitmap的时候很容易出现内存溢出.如下异常信息,便是在开发中经常需要的: java.lang.OutofMemoryError:bitmap size exceeds VM budget 为了解决这个问题,就出现了Bitmap的高效加载策略.其实核心思想很简单.假设通过ImageView来显示图片,很多时候ImageView并没有原始图片的尺寸那…
iPhone指令集   本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击这里),现在先说说不同型号的iPhone都使用的是什么指令集: ARMv8/ARM64 = iPhone 5s, iPad Air, Retina iPad Mini ARMv7s = iPhone 5, iPhone 5c, iPad 4 ARMv7  = iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3…
教程翻译自Seastar官方文档:https://www.scylladb.com/2018/06/12/scylla-leverages-control-theory/ 转载请注明出处:https://www.cnblogs.com/morningli/p/16170046.html 从鸟瞰的角度来看,数据库的任务很简单:用户插入一些数据,然后再获取它.但是当我们仔细观察时,事情变得更加复杂.例如,为了持久性,数据需要进入提交日志,需要被索引,并且被多次重写以便可以轻松获取. 所有这些任务都是…
本文翻译主要来自Datastax的cassandra1.2文档.http://www.datastax.com/documentation/cassandra/1.2/index.html.此外还有一些来自于相关官方博客. 该翻译作为ISE实验室大数据组Laud的学习材料的一部分,适合对Cassandra已经有一定了解的读者. 未经本人许可,请勿转载. 简述数据模型 1.不是sql(没有事务.没有join),但是不仅仅是kv 2.来自于Google BigTable的灵感. 3.基于列族的. 例…
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zNZQhb07Nr/article/details/79832392 HBase应用场景很广泛.社区前面有一系列文章. 大家能够到社区看看看.张少华同学本篇主要讲HBase的MOB压缩分区策略介绍,很赞.大力推荐! 社区系列文章: 新数仓系列:HBase关键能力和特性梳理 HBase 和 Cassandra的浅谈 新数仓系列:Hbase周边生态梳理(1) HBase设计之rowkey设计 介绍 H…
写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是个人对cassandra的认知.尽量将我的理解通过引用的方式标注,以示区别.另外文档翻译是项长期并有挑战的工作,如果你愿意加入cassandra git book,可以发信给我.当然你也可以加入我们的QQ群,104822562.一起学习探讨cassandra. 如何写 Cassandra写的时候分好…
========================================================= gossip协议1.点对点(peer to perr)的网络通信协议,节点间地位相同.2.两个节点间断性地交换自身信息及其知道的信息,每秒最多和群集中三个节点交换信息.3.每条交换信息中包含版本信息,新版本的信息会覆盖掉就版本的信息.4.通过多次交换各节点能获取到整个群集其他节点的信息. ===============================================…
cassandra自带测试工具cassandra-stress.nodetool proxyhistograms可以在多个节点运行,发现最慢的协调节点.nodetool tablehistograms可以查看特定表的性能. 利用tracing去跟踪某个特定表和相关查询.可以知道每个查询涉及的客户端和节点之间的通信和每一步的时间.设置tracing,可以使用cqlsh设置 TRACING ON,然后查询,再TRACING OFF.也可以通过驱动去查询tracing的结果.nodetool setr…
先看懂文献1和2 1. 先了解sstable.SSTable: Sorted String Table [2] [10] WiscKey:  类似myisam, key value分离, 根据ssd优化,降低io放大. 2. 再了解Compaction 三种 from 太阁技术秀:一起聊聊cassandra 1)SizeTieredCompactionStrategy (STCS):每四个数据块压一块,对于insert多的系统好. 2)LeveledCompactionStrategy(LCS)…
Cassandra 是什么? Apache Cassandra 以其可扩展性和容错分布式数据库系统而被人所熟知.Cassandra 起源于Facebook 最初创建于 Amazon Dynamo 和谷歌 BigTable 的一个项目,并从此成长为一个在苹果和 Netflix 等公司大量使用的开源系统.以下是一些 Cassandra 的关键属性: 高扩展性和高可用性(Cassandra 集群是分散的,因此没有单点故障) 可以近似线性的(集群扩大一倍,吞吐量扩大2倍) 非常高的写入吞吐量和良好的读取…
不多说,直接上干货!  最近我开始在windows环境中使用Cassandra,虽然在Cassandra站点的安装命令非常清楚和精简,我仍然在环境配置上遇到一些问题.所以我想为后来者分享下我的经验. 官网下载地址 http://cassandra.apache.org/ http://cassandra.apache.org/download/ http://www.apache.org/dyn/closer.lua/cassandra/3.11.1/apache-cassandra-3.11.…
网龙是一家游戏公司,以前是做网络在线游戏的,现在开始慢慢转型,开始从事在线教育. 在线教育已经做了5-6年时间了.为什么我们会用Cassandra呢?那我们就来介绍今天的议题. 首先介绍我们的业务背景, 第二部分深入介绍使用场景,然后介绍运维监控. 最后,我们实践过程中有踩一些坑,这些坑我们拿来分享一下. 关于业务背景.网龙现在是一家在线教育公司.我们的很多app, 比如说“网教通” IM推送服务,还有一些针对智慧校园和智慧教室的物联网服务, 这些服务每天会产生数据达十亿条, 我们设计选型上曾经…
cassandra SLF4J API记录日志,具体采用Logback实现.在终端启动cassandra时,可以向程序输入-f,就能在终端看到这个输出.Java Mangement Extensions,JMX.JMX是java API,主要采用两种方式管理.首先利用JMX可以从内存,线程池和CPU等java应用通用的一些方面了解健康状况.其次,利用JMX可以分析应用中的监测的特定方面.监测是指在应用代码外加一个包装器,从应用向JVM提供hook(钩子),使JVM能够收集数据供外部工具使用.包括…
1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代. 因此,本文的主要内容就是分析5.X版本的AssetBundle机制(包括创建资源包.压缩资源包.加载资源包和从资源包中加载/卸载资源等几个方面)及其关键的API使用方式并总结一些对项目的建议(例如根据不同的情景,选择不同的包体加载方案等等). 2.AssetBundle系统的新功能 本小节包括: AssetBund…
导读 目前的迁移技术,都是通过向QEMUFILE中直接写入裸内存数据来达到传送虚拟机的目的端,这种情况下,发送的数据量大,从而会导致更高的迁移时间(total time)和黑宕时间(downtime).本文介绍的方法,在发送前对客户机内存进行压缩,在目的端接收到内存后,进行对数据进行解压缩,从而恢复客户机的内存. 1.技术原理 使用带压缩技术的迁移后,传输的数据总量会减少60%,总迁移时间减少70%+,同时宕机时间减少50%以上.一方面,压缩/解压缩的过程会消耗CPU周期而加大了迁移的时间:另一…
之前比较关注如何使用Cassandra,但是真正想大规模使用前提还是需要搞清楚备份机制,确保数据安全. 本文主要内容来自文档 "Cassandra2.2"的翻译.最后部分为真实操作案例. 这里假设你已经了解了Cassandra的压缩.墓碑.数据一致性. 原始文档链接:http://docs.datastax.com/en/cassandra/2.2/cassandra/operations/opsBackupRestore.html 备份和数据恢复 关于镜像 Cassandra 通过直…
查询优化是传统数据库中最为重要的一环,这项技术在传统数据库中已经很成熟.除了查询优化, Spark SQL 在存储上也进行了优化,从以下几点查看 Spark SQL 的一些优化策略. (1)内存列式存储与内存缓存表       Spark SQL 可以通过 cacheTable 将数据存储转换为列式存储,同时将数据加载到内存进行缓存. cacheTable 相当于在分布式集群的内存物化视图,将数据进行缓存,这样迭代的或者交互式的查询不用再从 HDFS 读数据,直接从内存读取数据大大减少了 I/O…
我们总是希望 PNG 图像的容量能够小些.小些.再小些.优化 PNG 图像,可以用以下几个工具: 1.Optipng Optipng 是命令行工具,直接在其后追加所需优化的 PNG 图像即可 2.PngGauntlet 其他 PNG 优化工具,包括 pngrewrite.pngcrush.pngout (win32).pngnq 等. 从本质上来看,这些工具主要做以下优化: 1.选择最合适的图像类型 2.选择最合适的过滤方式 3.选择最合适的压缩策略以及选择性的减少颜色深度 相关文章: PNG格…
本文系原创,转载请注明出处~ 小喵的博客:https://www.miaoerduo.com 博客原文(排版更精美):https://www.miaoerduo.com/c/dlib人脸关键点检测的模型分析与压缩.html github项目:https://github.com/miaoerduo/dlib-face-landmark-compression 人脸关键点检测的技术在很多领域上都有应用,首先是人脸识别,常见的人脸算法其实都会有一步,就是把人脸的图像进行对齐,而这个对齐就是通过关键点…
Hbase有两种压缩 策略:minor和major.Minor compactions通常选择几个临近的小的storefiles把他们重写成一个.Minors 不会丢掉已删除或者过期的cells,只有major compactions才会做这些.有时一次Minor compactions将会选择一个store里的全部storefiles,因此,它实际上是一次局部的major compaction. 当进行完一次major compaction以后所有的store都只有一个storefiles,这…
一.背景 前端开发中,特别是移动端,Javascript代码压缩已经成为上线必备条件. 如今主流的Js代码压缩工具主要有: 1)Uglify http://lisperator.net/uglifyjs/2)YUI Compressor http://developer.yahoo.com/yui/compressor/3)Google Closure Compiler https://developers.google.com/closure/compiler/ 自从jQuery等流行库使用U…
1. 计数器应用 2. 数据清洗(ETL) 在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据.清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序. LogMapper.java @Override protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String[] fi…
闲话策略 策略,有很多解释.但鄙人个人比较看重这点: 策略,是为了实现某个目标或者针对某些问题而制定的应对方案,以最终实现目标.比如为实现生娃而XXOO. 因此在本框架中,策略(Strategy),则是为了实现某些功能或者处理某些特定问题而制定的通用方案或者规则.粗浅一点,你可以理解为XXOO这种方式,不管用啥姿势,归根到底都离不开活塞运动. 如果还不明白,我们举个文明点的例子,比如发送短信,这是系统中常用的功能,也许短信服务商有很多,实现发短信的方式也有很多,但是对于系统来说,只需要的是发送短…
Unity5.X 新版AssetBundle使用方案及策略   1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代.因此,本文的主要内容就是分析5.X版本的AssetBundle机制(包括创建资源包.压缩资源包.加载资源包和从资源包中加载/卸载资源等几个方面)及其关键的API使用方式并总结一些对项目的建议(例如根据不同的情景,选择不同的包体加载方案等等). 2.Ass…
1.概览 Unity3D 5.0版本之后的AssetBundle机制和之前的4.x版本已经发生了很大的变化,一些曾经常用的流程已经不再使用,甚至一些老的API已经被新的API所取代. 因此,本文的主要内容就是分析5.X版本的AssetBundle机制(包括创建资源包.压缩资源包.加载资源包和从资源包中加载/卸载资源等几个方面)及其关键的API使用方式并总结一些对项目的建议(例如根据不同的情景,选择不同的包体加载方案等等). 2.AssetBundle系统的新功能 2.1.AssetBundle系…
一.更改日志输出级别 config/log4j.properties中日志的级别设置的是TRACE,在长时间运行过程中产生的日志大小吓人,所以如果没有特殊需求,强烈建议将其更改成INFO级别.具体修改方法如下所示,将config/log4j.properties文件中最后的几行中的TRACE改成INFO,修改前如下所示: log4j.logger.kafka.network.RequestChannel$=TRACE, requestAppender log4j.additivity.kafka…
1.    在pom.xml文件中,引入wro4j-maven-plugin插件 <plugin> <groupId>ro.isdc.wro4j</groupId> <artifactId>wro4j-maven-plugin</artifactId> <version>${wro4j.version}</version> <executions> <execution> <id>opt…