You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/08/07 19:08:16 UTC
svn commit: r802093 -
/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Author: jbellis
Date: Fri Aug 7 17:08:16 2009
New Revision: 802093
URL: http://svn.apache.org/viewvc?rev=802093&view=rev
Log:
include index and bloom filter in snapshots. patch by Sammy Yu; reviewed by jbellis for CASSANDRA-353
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=802093&r1=802092&r2=802093&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Fri Aug 7 17:08:16 2009
@@ -1473,16 +1473,26 @@
sstableLock_.readLock().lock();
try
{
- for (String filename : new ArrayList<String>(ssTables_.keySet()))
+ for (SSTableReader ssTable : new ArrayList<SSTableReader>(ssTables_.values()))
{
- File sourceFile = new File(filename);
-
+ // mkdir
+ File sourceFile = new File(ssTable.getFilename());
File dataDirectory = sourceFile.getParentFile().getParentFile();
String snapshotDirectoryPath = Table.getSnapshotPath(dataDirectory.getAbsolutePath(), table_, snapshotName);
FileUtils.createDirectory(snapshotDirectoryPath);
+ // hard links
File targetLink = new File(snapshotDirectoryPath, sourceFile.getName());
- FileUtils.createHardLink(new File(filename), targetLink);
+ FileUtils.createHardLink(sourceFile, targetLink);
+
+ sourceFile = new File(ssTable.indexFilename());
+ targetLink = new File(snapshotDirectoryPath, sourceFile.getName());
+ FileUtils.createHardLink(sourceFile, targetLink);
+
+ sourceFile = new File(ssTable.filterFilename());
+ targetLink = new File(snapshotDirectoryPath, sourceFile.getName());
+ FileUtils.createHardLink(sourceFile, targetLink);
+
if (logger_.isDebugEnabled())
logger_.debug("Snapshot for " + table_ + " table data file " + sourceFile.getAbsolutePath() +
" created as " + targetLink.getAbsolutePath());