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());