@Override void retrieve(GarbageCollectableBlobStore blobStore, GarbageCollectorFileState fs, int batchCount) throws Exception { ((BlobTrackingStore) blobStore).getTracker() .get(fs.getAvailableRefs().getAbsolutePath()); }
@Override void track(GarbageCollectableBlobStore blobStore, GarbageCollectorFileState fs) { try { File f = File.createTempFile("blobiddownload", null); copyFile(fs.getAvailableRefs(), f); ((BlobTrackingStore) blobStore).getTracker().add(f); } catch (IOException e) { LOG.warn("Unable to track blob ids locally"); } }
private static void remove(BlobTracker tracker, File temp, Set<String> initAdd, List<String> ints) throws IOException { writeStrings(ints.iterator(), temp, false); initAdd.removeAll(ints); tracker.remove(temp); }
BlobTrackingStore trackingStore = (BlobTrackingStore) blobStore; if (trackingStore.getTracker() != null) { trackingStore.getTracker().close();
BlobTracker tracker = ((BlobTrackingStore) blobStore).getTracker(); if (tracker != null) { tracker.remove(idTempDeleteFile, Options.ACTIVE_DELETION);
BlobTrackingStore trackingStore = (BlobTrackingStore) blobStore; if (trackingStore.getTracker() != null) { trackingStore.getTracker().close();
@Override void retrieve(GarbageCollectableBlobStore blobStore, GarbageCollectorFileState fs, int batchCount) throws Exception { ((BlobTrackingStore) blobStore).getTracker() .get(fs.getAvailableRefs().getAbsolutePath()); }
@Override void track(GarbageCollectableBlobStore blobStore, GarbageCollectorFileState fs) { try { File f = File.createTempFile("blobiddownload", null); copyFile(fs.getAvailableRefs(), f); ((BlobTrackingStore) blobStore).getTracker().add(f); } catch (IOException e) { LOG.warn("Unable to track blob ids locally"); } }
BlobTracker tracker = ((BlobTrackingStore) blobStore).getTracker(); if (tracker != null) { tracker.remove(idTempDeleteFile, Options.ACTIVE_DELETION);
BlobTrackingStore trackingStore = (BlobTrackingStore) cfg.getBlobStore(); if (trackingStore.getTracker() != null) { trackingStore.getTracker().close();
@Override void retrieve(GarbageCollectableBlobStore blobStore, GarbageCollectorFileState fs, int batchCount) throws Exception { ((BlobTrackingStore) blobStore).getTracker() .get(fs.getAvailableRefs().getAbsolutePath()); }
@Override void track(GarbageCollectableBlobStore blobStore, GarbageCollectorFileState fs) { try { File f = File.createTempFile("blobiddownload", null); copyFile(fs.getAvailableRefs(), f); ((BlobTrackingStore) blobStore).getTracker().add(f); } catch (IOException e) { LOG.warn("Unable to track blob ids locally"); } }
private static Set<String> retrieve(BlobTracker tracker) throws IOException { Set<String> retrieved = newHashSet(); Iterator<String> iter = tracker.get(); while(iter.hasNext()) { retrieved.add(iter.next()); } if (iter instanceof Closeable) { closeQuietly((Closeable)iter); } return retrieved; }
private static Set<String> add(BlobTracker tracker, List<String> ints) throws IOException { Set<String> s = newHashSet(); for (String rec : ints) { tracker.add(rec); s.add(rec); } return s; }
private static Set<String> retrieveTracked(BlobTracker tracker) throws IOException { Set<String> retrieved = newHashSet(); Iterator<String> iter = tracker.get(); while(iter.hasNext()) { retrieved.add(iter.next()); } closeQuietly((Closeable)iter); return retrieved; }
private static Set<String> add(BlobTracker tracker, List<String> ints) throws IOException { Set<String> s = newHashSet(); for (String rec : ints) { tracker.add(rec); s.add(rec); } return s; }
private static Set<String> retrieve(BlobTracker tracker) throws IOException { Set<String> retrieved = newHashSet(); Iterator<String> iter = tracker.get(); log.info("retrieving blob ids"); while(iter.hasNext()) { retrieved.add(iter.next()); } if (iter instanceof Closeable) { close((Closeable)iter, true); } return retrieved; }
@Override public String writeBlob(InputStream stream, BlobOptions options) throws IOException { boolean threw = true; try { long start = System.nanoTime(); checkNotNull(stream); DataRecord dr = writeStream(stream, options); String id = getBlobId(dr); if (tracker != null && !InMemoryDataRecord.isInstance(id)) { try { tracker.add(id); log.trace("Tracked Id {}", id); } catch (Exception e) { log.warn("Could not add track id", e); } } threw = false; stats.uploaded(System.nanoTime() - start, TimeUnit.NANOSECONDS, dr.getLength()); stats.uploadCompleted(id); return id; } catch (DataStoreException e) { throw new IOException(e); } finally { //DataStore does not closes the stream internally //So close the stream explicitly Closeables.close(stream, threw); } }
private static void assertTrackedDeleted(Iterator<String> afterDeletions, GarbageCollectableBlobStore blobStore) throws IOException { List<String> afterDeletionIds = newArrayList(afterDeletions); // get the currently tracked ones ArrayList<String> trackedIds = newArrayList(((BlobTrackingStore) blobStore).getTracker().get()); assertEquals("Tracked ids length different from current blob list", trackedIds.size(), afterDeletionIds.size()); assertTrue("Tracked ids different from current blob list", newHashSet(trackedIds).equals(newHashSet(afterDeletionIds))); } }
@Override public String writeBlob(InputStream stream, BlobOptions options) throws IOException { boolean threw = true; try { long start = System.nanoTime(); checkNotNull(stream); DataRecord dr = writeStream(stream, options); String id = getBlobId(dr); if (tracker != null && !InMemoryDataRecord.isInstance(id)) { try { tracker.add(id); log.trace("Tracked Id {}", id); } catch (Exception e) { log.warn("Could not add track id", e); } } threw = false; stats.uploaded(System.nanoTime() - start, TimeUnit.NANOSECONDS, dr.getLength()); stats.uploadCompleted(id); return id; } catch (DataStoreException e) { throw new IOException(e); } finally { //DataStore does not closes the stream internally //So close the stream explicitly Closeables.close(stream, threw); } }