k****i 发帖数: 128 | 1 hbase/big table/cassandra 单机上存储都是memtable和sst
同样leveldb和rocksdb这种embedded也是memtable和sst,但是leveldb在内存中有
index,而以上的nosql db都没有,所以read 要check所有的memtable和sst(一般用
bloomfilter优化). 为什么不能维护个index呢? |
|
w**z 发帖数: 8232 | 2 commit log is for durability. C* writes to memtable along with commit log.
In case node crashes before the memtable is flushed to disk, it will recover
from commit log.
For reads, it doesn't go to commit log, it goes to memtable and sstable and
merge them. |
|
b**********5 发帖数: 7881 | 3 我怎么觉得就是介绍一下HBase和cassandra的architecture,怎么用memtable, 然后
memtable满了以后, 就放到memfile里 |
|
b**********5 发帖数: 7881 | 4 这个题目, 就是cassandra和hbase的设计。 memtable, memfile, 要走cassadra
的路, 就是consistent hashing of the partition key, 要走hbase的路, 就是
hbase master帮你meta table里面存partition的info, 好像amazon的dynamo也是这么
用的? |
|
w**z 发帖数: 8232 | 5 i don't think C* has row locking at server side. it writes to Sstable/
memtable and conflicts are resovled at read time using the timestamp. it
doesn't do read before write.
row locking might be a client side driver implementation.
C* |
|
w**z 发帖数: 8232 | 6 as i said it is most likely a client driver feature. i have never seen row
lock in Cassandra code. it writes to memtable, i don't see how it locks.
That is one of the main reasons that C* can achieve the incredible write
throughput.
I searched, row lock it is astyanax specific.
http://github.com/Netflix/astyanax/wiki/Distributed-Row-Lock
hierarchy |
|
l********r 发帖数: 221 | 7 不好比吧,rmdb and nosql db, 两种完全不一样机制的数据库。Cassandra背后的机制
不是传统B+Tree, Memtable和Log-Structured Storage Table的方式使得数据写超快。
数据量大transaction不需要,当然go Cassandra啦。然后consistent hashing将数据
sharding分流大大提高scalability, oracle db不能比呀。 |
|
c******n 发帖数: 4965 | 8 I hated its memtable/sstable implementation,
and recently hacked it so that it uses BerkeleyDB for storage for fun.
if anybody are interested, we could discuss and share |
|
w**z 发帖数: 8232 | 9 不是很确定Hbase怎么做的,根据Google big table
应该是用 Memtable and LSM trees
Cassandra 里叫SSTable, 用 compaction 把SSTable compact起来。没有compact的就
在query 的时候merge
Hbase 应该同样的原理。 |
|