Cassandra中如何进行SQL操作

NoSQL数据库设计的目的是可伸缩(scalability),然而,缺点就是使用原始的key-value数据模型,同时,正如NoSQL这个名字一样,不支持SQL。这个问题貌似很严重,常用的SQL操作,比如“SELECT”,“JOIN”,“GROUP”,“SORT”如何支持?本文就这个问题,如何在Cassandra这个最著名的NoSQL数据库之一中,非常自然而高效地实现所有这些SQL操作。

理解本文所述方法之前,你需要先学习一下Cassandra的数据模型。这里有一篇

继续阅读

百度所有搜索结果出链家品牌专区事件case study

事件讨论:
1.这是百度品专的一个BUG。所有购买品专的关键词都不会出现品专,没有购买品专的会出现链家的品专,这就是搜有的词出现链家品专有的没有出现了。
2.百度品专是CPT广告,点击多少对费用是没有影响,所以猜测这次链家花了多少钱的可以放心了。
3.流量太大,链家的网站挂了。
4.品专出BUG的同时,百度爱玩也出问题了,同一时间消失。

继续阅读

分布式存储设计和思考

source:《分布式存储设计和思考》 author:赖春波

存储系统的分类
词典服务:只读访问
Cache系统:无持久化
文件系统:文件接口,POSIX接口
KV系统:KV接口
Table系统:Table接口
传统数据库:满足ACID,主要用MySQL
分布式锁服务:分布式选举,主要用ZooKeeper

功能(读/写/列索引/条件查询/事务/权限…)

继续阅读

你可能不知道的Bash Shell快捷键

CTRL 键相关的快捷键:
Ctrl + a – Jump to the start of the line
Ctrl + b – Move back a char
Ctrl + c – Terminate the command //用的最多了吧?
Ctrl + d – Delete from under the cursor
Ctrl + e – Jump to the end of the line
Ctrl + f – Move forward a char
Ctrl + k – Delete to EOL
Ctrl + l – Clear the screen //清屏,类似 clear 命令
Ctrl + r – Search the history backwards //查找历史命令

继续阅读

32位和64位linux的内存区划分

在类似linux这样的多任务OS中,每个进程都在各自独立的内存沙盒中运行,即虚拟寻址空间(virtual address space)。对于32位的系统,单进程寻址空间一般为4GB,虚拟地址和物理地址通过OS与进程协商后的页表(page table)来映射,操作系统kernel为每个进程维护一系列页表。

kernelUserMemorySplit

继续阅读

MySQL索引背后的数据结构及算法原理

原文链接:http://blog.codinglabs.org/articles/theory-of-mysql-index.html
(由于本屌师觉得此文实在是写的太好,怕哪天看不到了所以转载至此,建议大家直接看原文!原文著者若要申明版权请留言联系)

摘要

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。

继续阅读

新浪微博架构笔记

source:《构建可扩展的微博架构》 author:Tim Yang

对比博客和微博
博客:发表、浏览、留言
属于一个Content Manager System
相关技术 LAMP:
-MySQL master/slavehttp://chauncey.info/wp-admin/themes.php?page=custom-background
-Memcached
-PHP
-CDN

微博 产品:
-Real-time
-关注关系
-信息聚合

信息聚合:微博两种信息聚合的设计模式

继续阅读