Search in sources :

Example 1 with TableSaveFile

use of org.voltdb.sysprocs.saverestore.TableSaveFile in project voltdb by VoltDB.

the class SnapshotScanAgent method getSnapshotScanResults.

private VoltTable getSnapshotScanResults(String path) {
    List<SnapshotResultRow> results = new ArrayList<SnapshotResultRow>();
    List<File> relevantFiles = retrieveRelevantFiles(path);
    if (relevantFiles == null) {
        results.add(new SnapshotResultRow(m_messenger.getHostId(), m_hostname, "", SnapshotPathType.SNAP_PATH.toString(), "", 0, 0, "", "FALSE", 0, "", "", 0, "", "FAILURE", m_errorString));
    } else {
        for (final File f : relevantFiles) {
            if (f.getName().endsWith(".digest")) {
                continue;
            }
            if (f.canRead()) {
                try {
                    FileInputStream savefile_input = new FileInputStream(f);
                    try {
                        TableSaveFile savefile = new TableSaveFile(savefile_input, 1, null);
                        String partitions = "";
                        for (int partition : savefile.getPartitionIds()) {
                            partitions = partitions + "," + partition;
                        }
                        if (partitions.startsWith(",")) {
                            partitions = partitions.substring(1);
                        }
                        SnapshotPathType stype = SnapshotPathType.SNAP_PATH;
                        if (f.getParent().equals(VoltDB.instance().getCommandLogSnapshotPath())) {
                            stype = SnapshotPathType.SNAP_CL;
                        } else if (f.getParent().equals(VoltDB.instance().getSnapshotPath())) {
                            stype = SnapshotPathType.SNAP_AUTO;
                        }
                        results.add(new SnapshotResultRow(m_messenger.getHostId(), m_hostname, f.getParent(), stype.toString(), f.getName(), savefile.getTxnId(), savefile.getTimestamp(), savefile.getTableName(), savefile.getCompleted() ? "TRUE" : "FALSE", f.length(), savefile.isReplicated() ? "TRUE" : "FALSE", partitions, savefile.getTotalPartitions(), f.canRead() ? "TRUE" : "FALSE", "SUCCESS", ""));
                    } catch (IOException e) {
                        SNAP_LOG.warn(e);
                    } finally {
                        savefile_input.close();
                    }
                } catch (IOException e) {
                    SNAP_LOG.warn(e);
                }
            } else {
                SnapshotPathType stype = SnapshotPathType.SNAP_PATH;
                if (f.getParent().equals(VoltDB.instance().getCommandLogSnapshotPath())) {
                    stype = SnapshotPathType.SNAP_CL;
                } else if (f.getParent().equals(VoltDB.instance().getSnapshotPath())) {
                    stype = SnapshotPathType.SNAP_AUTO;
                }
                results.add(new SnapshotResultRow(m_messenger.getHostId(), m_hostname, f.getParent(), stype.toString(), f.getName(), 0L, f.lastModified(), "", "FALSE", f.length(), "FALSE", "", -1, f.canRead() ? "TRUE" : "FALSE", "SUCCESS", ""));
            }
        }
    }
    Collections.sort(results, new Comparator<SnapshotResultRow>() {

        @Override
        public int compare(SnapshotResultRow r1, SnapshotResultRow r2) {
            return r1.compareTo(r2);
        }
    });
    VoltTable sortedResults = constructFragmentResultsTable();
    for (SnapshotResultRow row : results) {
        sortedResults.addRow(row.hostId, row.hostName, row.path, row.name, row.txnid, row.created, row.table, row.completed, row.size, row.isReplicated, row.partitions, row.totalPartitions, row.readable, row.result, row.errMsg, row.pathType);
    }
    return sortedResults;
}
Also used : TableSaveFile(org.voltdb.sysprocs.saverestore.TableSaveFile) ArrayList(java.util.ArrayList) IOException(java.io.IOException) FileInputStream(java.io.FileInputStream) SnapshotPathType(org.voltdb.sysprocs.saverestore.SnapshotPathType) VoltFile(org.voltdb.utils.VoltFile) TableSaveFile(org.voltdb.sysprocs.saverestore.TableSaveFile) File(java.io.File)

Aggregations

File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 SnapshotPathType (org.voltdb.sysprocs.saverestore.SnapshotPathType)1 TableSaveFile (org.voltdb.sysprocs.saverestore.TableSaveFile)1 VoltFile (org.voltdb.utils.VoltFile)1