@Override public void deleteVersion(int versionNumber) throws IOException { for (int partition = 0; partition < domain.getNumParts(); ++partition) { PartitionRemoteFileOps fileOps = fileOpsFactory.getPartitionRemoteFileOps(remoteDomainRoot, partition); fileOps.attemptDelete(Cueball.getName(versionNumber, true)); fileOps.attemptDelete(Cueball.getName(versionNumber, false)); fileOps.attemptDelete(Curly.getName(versionNumber, true)); fileOps.attemptDelete(Curly.getName(versionNumber, false)); } } }
@Override protected void fetchVersion(DomainVersion domainVersion, String fetchRoot) throws IOException { String fileToFetch = Cueball.getName(domainVersion); LOG.info("Fetching from " + partitionRemoteFileOps + " file " + fileToFetch + " to " + fetchRoot); partitionRemoteFileOps.copyToLocalRoot(fileToFetch, fetchRoot); }
@Override public List<String> getRemotePartitionFilePaths(IncrementalUpdatePlan updatePlan, PartitionRemoteFileOps partitionRemoteFileOps) throws IOException { List<String> result = new ArrayList<String>(); for (DomainVersion domainVersion : updatePlan.getAllVersions()) { result.add(partitionRemoteFileOps.getRemoteAbsolutePath(Curly.getName(domainVersion))); result.add(partitionRemoteFileOps.getRemoteAbsolutePath(Cueball.getName(domainVersion))); } return result; } }
private Writer getWriter(DomainVersion domainVersion, PartitionRemoteFileOps partitionRemoteFileOps, int partitionNumber, Writer keyFileWriter) throws IOException { IncrementalDomainVersionProperties domainVersionProperties = getDomainVersionProperties(domainVersion); OutputStream outputStream = partitionRemoteFileOps.getOutputStream(getName(domainVersion.getVersionNumber(), domainVersionProperties.isBase())); return new CurlyWriter(outputStream, keyFileWriter, offsetNumBytes, valueFoldingCacheCapacity, blockCompressionCodec, compressedBlockSizeThreshold, offsetInBlockNumBytes); }
public static boolean isEmptyVersion(PartitionRemoteFileOps partitionRemoteFileOps, DomainVersion domainVersion) throws IOException { return !partitionRemoteFileOps.exists(Cueball.getName(domainVersion.getVersionNumber(), true)) && !partitionRemoteFileOps.exists(Cueball.getName(domainVersion.getVersionNumber(), false)); }
for (String deltaRemoteFile : deltaRemoteFiles) { offsetAdjustments[i] = totalOffset; InputStream deltaRemoteInputStream = partitionRemoteFileOps.getInputStream(deltaRemoteFile); try { LOG.info("Merging remote file " + deltaRemoteFile + " into file " + base.getPath());
@Override public Writer getWriter(DomainVersion domainVersion, PartitionRemoteFileOps partitionRemoteFileOps, int partitionNumber) throws IOException { IncrementalDomainVersionProperties domainVersionProperties = getDomainVersionProperties(domainVersion); return new CueballWriter(partitionRemoteFileOps.getOutputStream(getName(domainVersion.getVersionNumber(), domainVersionProperties.isBase())), keyHashSize, hasher, valueSize, getCompressionCodec(), hashIndexBits ); }
private void fetchCurlyVersion(DomainVersion version, String fetchRoot) throws IOException { String curlyFileToFetch = Curly.getName(version); LOG.info("Fetching from " + partitionRemoteFileOps + " for file " + curlyFileToFetch + " to " + fetchRoot); partitionRemoteFileOps.copyToLocalRoot(curlyFileToFetch, fetchRoot); }
@Override public Writer getCompactorWriter(DomainVersion domainVersion, PartitionRemoteFileOps partitionRemoteFileOps, int partitionNumber) throws IOException { IncrementalDomainVersionProperties domainVersionProperties = getDomainVersionProperties(domainVersion); // Note: We use the identity hasher since keys coming in are already hashed keys return new CueballWriter(partitionRemoteFileOps.getOutputStream(getName(domainVersion.getVersionNumber(), domainVersionProperties.isBase())), keyHashSize, new IdentityHasher(), valueSize, getCompressionCodec(), hashIndexBits ); }
@Override public void deleteVersion(int versionNumber) throws IOException { for (int partition = 0; partition < domain.getNumParts(); ++partition) { PartitionRemoteFileOps fileOps = fileOpsFactory.getPartitionRemoteFileOps(remoteDomainRoot, partition); fileOps.attemptDelete(Cueball.getName(versionNumber, true)); fileOps.attemptDelete(Cueball.getName(versionNumber, false)); } } }
@Override public List<String> getRemotePartitionFilePaths(IncrementalUpdatePlan updatePlan, PartitionRemoteFileOps partitionRemoteFileOps) throws IOException { List<String> result = new ArrayList<String>(); for (DomainVersion domainVersion : updatePlan.getAllVersions()) { result.add(partitionRemoteFileOps.getRemoteAbsolutePath(Cueball.getName(domainVersion))); } return result; } }
private void fetchCueballVersion(DomainVersion version, String fetchRoot) throws IOException { String cueballFileToFetch = Cueball.getName(version); LOG.info("Fetching from " + partitionRemoteFileOps + " for file " + cueballFileToFetch + " to " + fetchRoot); partitionRemoteFileOps.copyToLocalRoot(cueballFileToFetch, fetchRoot); }