[
https://issues.apache.org/jira/browse/CASSANDRA-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12715334#action_12715334
]
Jonathan Ellis commented on CASSANDRA-208:
------------------------------------------
Another related link: http://wiki.apache.org/hadoop/Hbase/NewFileFormat
My take is that the designs are different enough that their reasons for moving
to a single file don't really apply to cassandra.
- the old MapFile has a bunch of properties that make it general enough for
Hadoop core but inefficient for hbase (e.g. storing the CF name once per key,
keys appearing multiple times in the index)
- they only index one key per block, so their index is much much smaller than
ours, and they can get away with storing the index at the end of the file as
cassandra currently does
> Even if we take out the row index and BF, data is still mixed with column
> index.
Not at the SSTable key/value level. To sstable the value is just byte[] so the
fact that CF serializes with indexes is an implementation detail. (To the
degree that SSTable or SF does care, that is an encapsulation violation -- one
of the reasons this code is one of the less pleasant parts of cassandra to work
in.)
I will get a patch together that will implement the file splitting I proposed
and we will see how that looks. I think that's going to get us to a stable 0.3
fastest; if we want to radically re-think how indexing works (so we can go back
to index-at-the-end-of-one-file) then I think that is a change to make in 0.4.
(The non-sparse index Cassandra uses may be necessary if you want to support
large CF rows, or you will waste too much time scanning through those rows
looking for keys when you only get to within 128 keys from the index.)
One thing that piqued my curiosity: what is the hbase "row index?" Looks like
their "key index" is like our sstable indexes (with the difference mentioned
above, that it only indexes one key per block).
> jvm crashes intermittently during compaction
> --------------------------------------------
>
> Key: CASSANDRA-208
> URL: https://issues.apache.org/jira/browse/CASSANDRA-208
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: trunk
> Environment: arch: x86_64
> os: Linux version 2.6.18-92.1.22.el5
> java: nio2-ea-bin-b99-linux-x64-05_feb_2009
> Reporter: Jiansheng Huang
> Assignee: Jonathan Ellis
> Priority: Critical
> Fix For: 0.3
>
>
> jvm crashes intermittently during compaction. Our test data set is not that
> big, less than 10 GB.
> When jvm is about to crash, we see that it consumes a lot of memory
> (exceeding the max heap size).
> The excessive memory usage during compaction is caused by the maintenance of
> blockIndexes_ in SSTable. this blockIndexes_ was only introduced to the
> apache version.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.