mirror of https://github.com/apache/cassandra
Faster startup by only scanning each directory for temporary files once
patch by Jeff Jirsa; reviewed by Joel Knighton for CASSANDRA-12114
This commit is contained in:
parent
904137c384
commit
864e009b08
|
|
@ -1,4 +1,5 @@
|
||||||
3.0.9
|
3.0.9
|
||||||
|
* Faster startup by only scanning each directory for temporary files once (CASSANDRA-12114)
|
||||||
* Respond with v1/v2 protocol header when responding to driver that attempts
|
* Respond with v1/v2 protocol header when responding to driver that attempts
|
||||||
to connect with too low of a protocol version (CASSANDRA-11464)
|
to connect with too low of a protocol version (CASSANDRA-11464)
|
||||||
* NullPointerExpception when reading/compacting table (CASSANDRA-11988)
|
* NullPointerExpception when reading/compacting table (CASSANDRA-11988)
|
||||||
|
|
|
||||||
|
|
@ -581,6 +581,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
|
||||||
public static void scrubDataDirectories(CFMetaData metadata)
|
public static void scrubDataDirectories(CFMetaData metadata)
|
||||||
{
|
{
|
||||||
Directories directories = new Directories(metadata, initialDirectories);
|
Directories directories = new Directories(metadata, initialDirectories);
|
||||||
|
Set<File> cleanedDirectories = new HashSet<>();
|
||||||
|
|
||||||
// clear ephemeral snapshots that were not properly cleared last session (CASSANDRA-7357)
|
// clear ephemeral snapshots that were not properly cleared last session (CASSANDRA-7357)
|
||||||
clearEphemeralSnapshots(directories);
|
clearEphemeralSnapshots(directories);
|
||||||
|
|
@ -594,10 +595,15 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
|
||||||
for (Map.Entry<Descriptor,Set<Component>> sstableFiles : directories.sstableLister(Directories.OnTxnErr.IGNORE).list().entrySet())
|
for (Map.Entry<Descriptor,Set<Component>> sstableFiles : directories.sstableLister(Directories.OnTxnErr.IGNORE).list().entrySet())
|
||||||
{
|
{
|
||||||
Descriptor desc = sstableFiles.getKey();
|
Descriptor desc = sstableFiles.getKey();
|
||||||
|
File directory = desc.directory;
|
||||||
Set<Component> components = sstableFiles.getValue();
|
Set<Component> components = sstableFiles.getValue();
|
||||||
|
|
||||||
for (File tmpFile : desc.getTemporaryFiles())
|
if (!cleanedDirectories.contains(directory))
|
||||||
tmpFile.delete();
|
{
|
||||||
|
cleanedDirectories.add(directory);
|
||||||
|
for (File tmpFile : desc.getTemporaryFiles())
|
||||||
|
tmpFile.delete();
|
||||||
|
}
|
||||||
|
|
||||||
File dataFile = new File(desc.filenameFor(Component.DATA));
|
File dataFile = new File(desc.filenameFor(Component.DATA));
|
||||||
if (components.contains(Component.DATA) && dataFile.length() > 0)
|
if (components.contains(Component.DATA) && dataFile.length() > 0)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue