Software Developer`s Journal published my article

Posted by Sergey Enin 17 January 2013 at 17:33

My article regarding algorithms, which are used by Cassandra`s internal storage was published by Software Developer`s Journal. Hooray!))))

Mostly, I focused on description why using of log-structured merge-tree provides so huge performance gain.

There are a lot interesting articles in that issue, including interview with Jonathan Ellis(CTO and founder of Datastax). You can buy magazin with 20% discount (just for my blog readers), following the link -

Posted in ,  | Tags , ,

Cassandra: internal storage based on log-structured merge-tree

Posted by Sergey Enin 18 October 2012 at 03:05

Typically, I am facing with a lot of questions from many developers about how internally Apache Cassandra storage works. So, I think it is good idea to tell something about how Cassandra internally deals with data. The article describes what data structures Cassandra uses to provide such fast access(especially write-access) to Data.

NoSql is not equal Schema-less

NoSql equals schema-less: this sentence isn`t valid, especially for Cassandra. Cassandra(starting from version 0.7) encourages developer to share schema information to achieve more transparency.

For example, creating ColumnFamily(Table) with CQL:
CREATE TABLE timeline (
user_id varchar,
tweet_id int,
author varchar,
body varchar,
PRIMARY KEY (user_id));
Looks pretty similar to SQL? But it does not work in a similar way. In RDBMS storage engine is based on b-trees[1], while Apache Cassandra implements log-structured merge-tree[2]. The rough difference between RDBMS and Cassandra - if you will insert something with primary key(not full row) into RDBMS, resources is allocated to complete row. Unlike it, in Cassandra each row is sparse: it is stores just columns present in inserted data. Thus is possible, also according use of log-structured merge-tree.

Posted in , ,  | Tags , , , , , , , , , , ,

Certified ScrumMaster

Posted by Sergey Enin 16 October 2012 at 15:03

Recently, I received the designation of "Certified ScrumMaster" by ScrumAlliance.

Posted in  | Tags

Apache Cassandra 1.1 - Part 1: basic architecture

Posted by Sergey Enin 19 August 2012 at 09:40

Apache Cassandra 1.1


I`ve been working with Cassandra for last ~7 months. I mostly writting Ruby 'drivers' for more easy and consistence access for Cassandra data.  In my opinion, generally, a lot of software engeeners has got of understanding what Cassandra data model provides and how it could be used.

I decided to start series of articles about Cassandra, how data is stored and processed within Cassandra and how we can work with Cassandra from Ruby specifically to cover lack of understanding. Hope, it will helps developers, who are newbie in world of BigData and NoSql.

Posted in ,  | Tags , , ,

Procs, Lambdas and closure.

Posted by Sergey Enin 29 August 2011 at 22:13

We are all use blocks in our ruby programs, but what if we`d like to store somewhere or pass anonymous code to some method. 

It is neccessary to do for example in Strategy pattern, where

1) we are defining or load some strategies;

2) we are passing one of strategy to object to call some action;


For that purpose Proc and lambda are very usefull.

Posted in ,  | Tags , , , , , , , ,