Let's say I have two tables (column families) defined through CQL.
CREATE TABLE a (
pk uuid,
cka int,
val text,
PRIMARY KEY (pk, cka)
);
CREATE TABLE b (
pk uuid,
ckb text,
val1 boolean,
val2 decimal,
PRIMARY KEY (pk, ckb)
);
If I now insert a row into each table with the same partition key:
INSERT INTO a (pk, cka, val)
VALUES ('f47ac10b-58cc-4372-a567-0e02b2a3d379', 5, 'hi');
INSERT INTO b (pk, ckb, val1, val2)
VALUES ('f47ac10b-58cc-4372-a567-0e02b2a3d379', 'x', 'hello', 'hey');
Will there now be 1 or 2 rows on the storage level?
There will be 2.
Data in Cassandra is written into "memtables", and then flushed to "SSTables" on-disk. Both memtables and SSTables are maintained on a per-column family basis, so rows in different column families (tables) will always create distinct rows at the storage level.
See http://www.datastax.com/docs/1.1/dml/about_writes
Cassandra writes are first written to a commit log (for durability), and then to an in-memory table structure called a memtable. A write is successful once it is written to the commit log and memory, so there is very minimal disk I/O at the time of write. Writes are batched in memory and periodically written to disk to a persistent table structure called an SSTable (sorted string table). Memtables and SSTables are maintained per column family. Memtables are organized in sorted order by row key and flushed to SSTables sequentially (no random seeking as in relational databases).