[
https://issues.apache.org/jira/browse/CASSANDRA-279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12732897#action_12732897
]
Jonathan Ellis commented on CASSANDRA-279:
------------------------------------------
Re Michael's comments,
> Shouldn't snapshot directories be a list since it mirrors data file
> directories?
I didn't understand what Michael meant at first, but yes, we need one snapshot
directory per data directory since the reason to have multiple data dirs is to
have one per disk, and you can't create hard links across disks.
So really what we want to do is drop the snapshotdir configuration parameter
and just create a snapshots/ subdir for each data dir.
So to reassemble a snapshot you will have to look in each snapshots/ to see if
there are pieces there but that is unavoidable I think. (And not a Big Deal
with a little scripting.)
> Is there no way to expose the tag parameter to nodeprobe?
+1
> Also, if the output stream isn't going to be used it should probably not be
> passed to takeSnapshot.
+1
> finish snapshot support
> -----------------------
>
> Key: CASSANDRA-279
> URL: https://issues.apache.org/jira/browse/CASSANDRA-279
> Project: Cassandra
> Issue Type: New Feature
> Components: Core
> Reporter: Jonathan Ellis
> Assignee: Sammy Yu
> Attachments: 0001-Work-for-CASSANDRA-279.patch,
> 0001-Work-for-CASSANDRA-279.patch, 0002-Work-for-CASSANDRA-279.patch,
> 279-3.patch
>
>
> searching for "snapshot" in *.java shows a bunch of code for supporting
> snapshots via hard links.
> (this works b/c SSTables are immutable, once created.)
> this used to be more complete but when we dropped the JDK7 requirement we
> just removed the code that we couldn't do in JDK6 and hard link support was
> one of those.
> So what you would need to do here is:
> * create a hard link method (using Runtime.exec("ln") on linux / os x I
> imagine)
> * add a JMX hook to invoke this on the data files (this is where looking at
> the old codebase might help); ColumnFamilyStoreMBean.forceFlush is an example
> of an "Action" jmx interface. using jconsole to interact with JMX stuff is
> explained here: http://wiki.apache.org/cassandra/MemtableThresholds
> * add something to list the snapshots available via JMX
> * optionally make this all per-Table instead of per-database
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.