package org.fastcatsearch.job.indexing; import java.io.IOException; import org.fastcatsearch.common.io.Streamable; import org.fastcatsearch.exception.FastcatSearchException; import org.fastcatsearch.ir.IRService; import org.fastcatsearch.ir.config.CollectionContext; import org.fastcatsearch.ir.config.DataInfo.SegmentInfo; import org.fastcatsearch.ir.io.DataInput; import org.fastcatsearch.ir.io.DataOutput; import org.fastcatsearch.job.Job; import org.fastcatsearch.service.ServiceManager; /** * 증분색인시 이전 revisionUUID가 일치하는지 여부확인. * 일치하는 노드만 증분색인 데이터 전송 대상이 된다. * */ public class GetCollectionIndexRevisionUUIDJob extends Job implements Streamable { private static final long serialVersionUID = -9020411832250747477L; @Override public JobResult doRun() throws FastcatSearchException { String collectionId = getStringArgs(); IRService irService = ServiceManager.getInstance().getService(IRService.class); CollectionContext collectionContext = irService.collectionContext(collectionId); SegmentInfo lastSegmentInfo = collectionContext.dataInfo().getLastSegmentInfo(); String lastRevisionUUID = lastSegmentInfo.getRevisionInfo().getUuid(); return new JobResult(lastRevisionUUID); } @Override public void readFrom(DataInput input) throws IOException { args = input.readString(); } @Override public void writeTo(DataOutput output) throws IOException { output.writeString(getStringArgs()); } }