杂谈——锤子科技

yangzhe1991 | 我是搞技术的 | 2015-12-31
杂谈——锤子科技
作为一个自认为算不上是锤粉和罗粉的人,第一次去现场听老罗讲相声。再顺便讲讲对锤子的看法。 在现场的感觉和看网络直播自然是不一样的。买的600元票,大概是这样的角度和位置: 不知道是不是苹果开的头,现在所有手机厂商都开发布会。至少在国内来说,能单纯让人们无论是否买手机都关注发布会的不多,但老罗做到了,这是很大的优势。但... [阅读全文]
ė 6没有评论 0

杂谈——信息的获取与控制

yangzhe1991 | 我是搞技术的 | 2015-12-27
本文的起因是微博上@纯银V 发起的针对豌豆荚一览的产品讨论,但本文不主要讨论这个话题。 都知道现在是个信息爆炸的时代。不仅获取信息的来源越来越多、越来越方便,每个来源能提供的内容也越来越丰富。这一切归功于互联网的发展——并不只是技术的发展,还有产品的发展。从过去定期看报纸、电视新闻,到后来用电脑上网看新闻,再到手机也能上网,... [阅读全文]
ė 6没有评论 0

codis,codis3.0和其他

yangzhe1991 | 我是搞技术的 | 2015-12-26
如不少人所看到的,Codis发布了3.0的alpha版。这个版本本来叫2.1的,但是因为改动比较大,直接改名叫3.0了。Codis发布至今一年有余,我参与Codis项目也有大半年,在这个继往开来的好日子里,有必要讲讲很多想法——只代表我个人的想法。 Codis是Redis的集群解决方案,这意味着他基于Redis,继承了Redis的部分优点,也继承了部分缺点。换句话说,让... [阅读全文]

Gossip、DHT和传说中的W+R>N

yangzhe1991 | 我是搞技术的 | 2015-10-15
Cassandra系列文章的第三篇。 在第一篇文章中提到过,Cassandra的每个节点都存储从key到node的路由信息,而且这个路由表是整个集群共同维护、修改的而非某个master修改的。如果有一个master来维护,那么想怎么分就怎么分,每个节点读取这个配置即可。但如果没有这个中心节点,相当于每个节点自己维护自己的路由配置,那么一定要保证根据一个特定... [阅读全文]

Cassandra的数据模型和CQL——Cassandra does not have SQL

yangzhe1991 | 我是搞技术的 | 2015-10-09
Cassandra系列文章的第二篇。 在说CQL之前,得先说一下BigTable。说BigTable前,得说下NoSQL。在说NoSQL之前,得说下关系型数据库。 关系型数据库是什么,其实我也说不好,甚至搜了一圈定义也没有搜到一个恰当的中文定义,好在搜到了个英文的定义觉得比较恰当: Relational database management systems (RDBMS) support the relational (... [阅读全文]

分布式数据库的取舍——Cassandra的选择及其后果

yangzhe1991 | 我是搞技术的 | 2015-10-07
想写的Cassandra系列文章的第一篇。 本文的中心思想是:不谈需求场景只谈利弊是耍流氓;只谈利不谈弊是臭流氓。 分布式数据库,自然是相对于传统的单机数据库。从传统的单机数据库到多机分布式数据库无非是有两大类需求:单机在性能或数据容量上扛不住;单机有单点问题,一旦挂了系统就挂了甚至数据都丢了。这两个核心需求决定了分布式数据库... [阅读全文]

准备写一系列文章系统性介绍下Cassandra

yangzhe1991 | 我是搞技术的 | 2015-09-23
本文作为一个提纲,分篇写好后把链接帖在这。 分布式数据库的取舍——Cassandra的选择及其后果 本文将列出分布式数据库在设计时需要考虑取舍的若干特性,并介绍Cassandra选择了哪些特性、放弃了哪些特性。 Cassandra的数据模型和CQL——Cassandra does not have SQL 本文将介绍Cassandra的数据模型和其自己的query语言。 Gossip、DHT和传说中的W+R... [阅读全文]

RAMP事务

yangzhe1991 | 我是搞技术的 | 2015-08-09
最近刚发现Cassandra计划在未来支持“RAMP事务”。这是SIGMOD2014的论文《Scalable Atomic Visibility with RAMP Transactions》引入的概念。本文算是读论文的笔记吧。 RAMP的全称是“Read Atomic MultiPartition”,就是分布式的“读原子性”。文章定义出一种新的隔离性——Read Atomic Isolation。简单说就是在分布式数据库中一个对多行同时写入的事务,需... [阅读全文]

当多线程的数据库使用了为单线程设计的协议……

yangzhe1991 | 我是搞技术的 | 2015-05-22
因为redis是单线程,请求都是串行,所以协议的设计很简单(陋),client也假定数据库是单线程所以也比较简单,比如有了pipeline后完全没有搞异步接口的必要,其他语言不知道,Java的jedis应该是没有的,全是同步阻塞的。 但一旦扩展成多线程,比如codis,一个client在一个业务逻辑内一次读多个key,在基于当前的redis client的接口的情况下,因... [阅读全文]

Cassandra&HBase源码阅读之“顺序”读写

yangzhe1991 | 我是搞技术的 | 2015-05-21
除了redis这类单线程的数据库,一般的多线程数据库在读写数据的时候必然会涉及到资源的抢占或同时操作一行数据带来的版本控制问题。说白了就是,某次读可以读到哪些写、需要屏蔽哪些写、需要暂时阻塞住哪些请求。于是就需要将读写请求维护出一个“顺序”来。 Cassandra不需要太多的保证读写顺序,因为最后都是靠时间戳控制版本。需要考虑顺序的主... [阅读全文]
Ɣ回顶部