new Thread(this).start();
new DiscoveryThread().start();
}
public IndexLogInfo getIndexInfo(String code) {
IndexLogInfo info = new IndexLogInfo();
IndexLog log = new IndexLog(code, root, IndexLog.DEFAULT_SEGMENT_SIZE);
List<Segment> optimizedSegments = log.getOptimizedSegments();
int optimizedCount = 0;
long lastTimestamp = 0;
for (Segment segment : optimizedSegments) {
info.add_to_optimized_segments(segment.getInfo());
optimizedCount = segment.recordCount;
lastTimestamp = segment.timestamp;
}
info.set_optimized_record_count(optimizedCount);
info.set_last_optimization_timestamp(lastTimestamp);
long unoptimizedCount = 0;
int unoptimizedSegments = 0;
boolean unsortedSegments = false;
for (Segment segment : log.getSegments()) {
if (segment.timestamp > lastTimestamp) {
unoptimizedCount += segment.recordCount;
if (segment.isSorted()) {
unoptimizedSegments++;
info.add_to_sorted_segments(segment.getInfo());
} else {
unsortedSegments = true;
info.add_to_unsorted_segments(segment.getInfo());
}
}
}
if (unsortedSegments) unoptimizedSegments++;
info.set_unoptimized_record_count(unoptimizedCount);
info.set_unoptimized_segments(unoptimizedSegments);
return info;
}