I am reading the kafka design documentation ( http://sna-projects.com/kafka/design.php) and I came across this (under constant time suffices) :
Intuitively a persistent queue could be built on simple reads and appends to files as is commonly the case with logging solutions. Though this structure would not support the rich semantics of a BTree implementation, but it has the advantage that all operations are O(1) and reads do not block writes or each other. This has obvious performance advantages since the performance is completely decoupled from the data size--one server can now take full advantage of a number of cheap, low-rotational speed 1+TB SATA drives. Though they have poor seek performance, these drives often have comparable performance for large reads and writes at 1/3 the price and 3x the capacity. It is right to say that Cassandra takes advantage of this? the commit log write is using append and sstables are only read after they were written. Shimi