/** * Derive file name from identifier. */ private static String getFileName(DataIdentifier identifier) { String name = identifier.toString(); return getFileName(name); }
/** * Derive file name from identifier. */ private static String getFileName(DataIdentifier identifier) { String name = identifier.toString(); return getFileName(name); }
/** * Derive file name from identifier. */ private static String getFileName(DataIdentifier identifier) { String name = identifier.toString(); return getFileName(name); }
@Override public void onAbort(AsyncUploadResult result) { DataIdentifier identifier = result.getIdentifier(); File file = result.getFile(); String fileName = getFileName(identifier); try { // remove from failed upload map if any. uploadRetryMap.remove(identifier); asyncWriteCache.remove(fileName); LOG.info( "Async Upload Aborted. Dataidentifer [{}], file [{}] removed from AsyncCache.", identifier, file.getAbsolutePath()); } catch (IOException ie) { LOG.warn("Cannot remove pending file upload. Dataidentifer [ " + identifier + "], file [" + file.getAbsolutePath() + "]", ie); } }
@Override public void onAbort(AsyncUploadResult result) { DataIdentifier identifier = result.getIdentifier(); File file = result.getFile(); String fileName = getFileName(identifier); try { // remove from failed upload map if any. uploadRetryMap.remove(identifier); asyncWriteCache.remove(fileName); LOG.info( "Async Upload Aborted. Dataidentifer [{}], file [{}] removed from AsyncCache.", identifier, file.getAbsolutePath()); } catch (IOException ie) { LOG.warn("Cannot remove pending file upload. Dataidentifer [ " + identifier + "], file [" + file.getAbsolutePath() + "]", ie); } }
@Override public void onAbort(AsyncUploadResult result) { DataIdentifier identifier = result.getIdentifier(); File file = result.getFile(); String fileName = getFileName(identifier); try { // remove from failed upload map if any. uploadRetryMap.remove(identifier); asyncWriteCache.remove(fileName); LOG.info( "Async Upload Aborted. Dataidentifer [{}], file [{}] removed from AsyncCache.", identifier, file.getAbsolutePath()); } catch (IOException ie) { LOG.warn("Cannot remove pending file upload. Dataidentifer [ " + identifier + "], file [" + file.getAbsolutePath() + "]", ie); } }
public void deleteFromCache(DataIdentifier identifier) throws DataStoreException { try { // order is important here recLenCache.remove(identifier); String fileName = getFileName(identifier); asyncWriteCache.delete(fileName); cache.delete(fileName); } catch (IOException ioe) { throw new DataStoreException(ioe); } }
public void deleteFromCache(DataIdentifier identifier) throws DataStoreException { try { // order is important here recLenCache.remove(identifier); String fileName = getFileName(identifier); asyncWriteCache.delete(fileName); cache.delete(fileName); } catch (IOException ioe) { throw new DataStoreException(ioe); } }
public void deleteFromCache(DataIdentifier identifier) throws DataStoreException { try { // order is important here recLenCache.remove(identifier); String fileName = getFileName(identifier); asyncWriteCache.delete(fileName); cache.delete(fileName); } catch (IOException ioe) { throw new DataStoreException(ioe); } }
@Override public synchronized int deleteAllOlderThan(long min) throws DataStoreException { Set<DataIdentifier> diSet = backend.deleteAllOlderThan(min); // remove entries from local cache for (DataIdentifier identifier : diSet) { recLenCache.remove(identifier); cache.delete(getFileName(identifier)); } try { for (String fileName : asyncWriteCache.deleteOlderThan(min)) { diSet.add(getIdentifier(fileName)); } } catch (IOException e) { throw new DataStoreException(e); } LOG.info( "deleteAllOlderThan exit. Deleted [{}]records. Number of records deleted [{}]", diSet, diSet.size()); return diSet.size(); }
@Override public synchronized int deleteAllOlderThan(long min) throws DataStoreException { Set<DataIdentifier> diSet = backend.deleteAllOlderThan(min); // remove entries from local cache for (DataIdentifier identifier : diSet) { recLenCache.remove(identifier); cache.delete(getFileName(identifier)); } try { for (String fileName : asyncWriteCache.deleteOlderThan(min)) { diSet.add(getIdentifier(fileName)); } } catch (IOException e) { throw new DataStoreException(e); } LOG.info( "deleteAllOlderThan exit. Deleted [{}]records. Number of records deleted [{}]", diSet, diSet.size()); return diSet.size(); }
@Override public synchronized int deleteAllOlderThan(long min) throws DataStoreException { Set<DataIdentifier> diSet = backend.deleteAllOlderThan(min); // remove entries from local cache for (DataIdentifier identifier : diSet) { recLenCache.remove(identifier); cache.delete(getFileName(identifier)); } try { for (String fileName : asyncWriteCache.deleteOlderThan(min)) { diSet.add(getIdentifier(fileName)); } } catch (IOException e) { throw new DataStoreException(e); } LOG.info( "deleteAllOlderThan exit. Deleted [{}]records. Number of records deleted [{}]", diSet, diSet.size()); return diSet.size(); }
/** * This method deletes record from {@link Backend} and then from * {@link LocalCache} */ @Override public void deleteRecord(DataIdentifier identifier) throws DataStoreException { String fileName = getFileName(identifier); synchronized (this) { try { // order is important here recLenCache.remove(identifier); asyncWriteCache.delete(fileName); backend.deleteRecord(identifier); cache.delete(fileName); } catch (IOException ioe) { throw new DataStoreException(ioe); } } }
/** * This method deletes record from {@link Backend} and then from * {@link LocalCache} */ @Override public void deleteRecord(DataIdentifier identifier) throws DataStoreException { String fileName = getFileName(identifier); synchronized (this) { try { // order is important here recLenCache.remove(identifier); asyncWriteCache.delete(fileName); backend.deleteRecord(identifier); cache.delete(fileName); } catch (IOException ioe) { throw new DataStoreException(ioe); } } }
/** * This method deletes record from {@link Backend} and then from * {@link LocalCache} */ @Override public void deleteRecord(DataIdentifier identifier) throws DataStoreException { String fileName = getFileName(identifier); synchronized (this) { try { // order is important here recLenCache.remove(identifier); asyncWriteCache.delete(fileName); backend.deleteRecord(identifier); cache.delete(fileName); } catch (IOException ioe) { throw new DataStoreException(ioe); } } }
/** * Get stream of record from {@link LocalCache}. If record is not available * in {@link LocalCache}, this method fetches record from {@link Backend} * and stores it to {@link LocalCache}. Stream is then returned from cached * record. */ InputStream getStream(DataIdentifier identifier) throws DataStoreException { InputStream in = null; try { String fileName = getFileName(identifier); InputStream cached = cache.getIfStored(fileName); if (cached != null) { return cached; } in = backend.read(identifier); return cache.store(fileName, in); } catch (IOException e) { throw new DataStoreException("IO Exception: " + identifier, e); } finally { IOUtils.closeQuietly(in); } }
/** * Get stream of record from {@link LocalCache}. If record is not available * in {@link LocalCache}, this method fetches record from {@link Backend} * and stores it to {@link LocalCache}. Stream is then returned from cached * record. */ InputStream getStream(DataIdentifier identifier) throws DataStoreException { InputStream in = null; try { String fileName = getFileName(identifier); InputStream cached = cache.getIfStored(fileName); if (cached != null) { return cached; } in = backend.read(identifier); return cache.store(fileName, in); } catch (IOException e) { throw new DataStoreException("IO Exception: " + identifier, e); } finally { IOUtils.closeQuietly(in); } }
/** * Get stream of record from {@link LocalCache}. If record is not available * in {@link LocalCache}, this method fetches record from {@link Backend} * and stores it to {@link LocalCache}. Stream is then returned from cached * record. */ InputStream getStream(DataIdentifier identifier) throws DataStoreException { InputStream in = null; try { String fileName = getFileName(identifier); InputStream cached = cache.getIfStored(fileName); if (cached != null) { return cached; } in = backend.read(identifier); return cache.store(fileName, in); } catch (IOException e) { throw new DataStoreException("IO Exception: " + identifier, e); } finally { IOUtils.closeQuietly(in); } }
@Override public DataRecord getRecord(DataIdentifier identifier) throws DataStoreException { String fileName = getFileName(identifier); try { if (getLength(identifier) > -1) { LOG.trace("getRecord: [{}] retrieved using getLength", identifier); if (minModifiedDate > 0) { touchInternal(identifier); } usesIdentifier(identifier); return new CachingDataRecord(this, identifier); } else if (asyncWriteCache.hasEntry(fileName, minModifiedDate > 0)) { LOG.trace("getRecord: [{}] retrieved from asyncUploadmap", identifier); usesIdentifier(identifier); return new CachingDataRecord(this, identifier); } } catch (IOException ioe) { throw new DataStoreException("error in getting record [" + identifier + "]", ioe); } throw new DataStoreException("Record not found: " + identifier); }
@Override public DataRecord getRecord(DataIdentifier identifier) throws DataStoreException { String fileName = getFileName(identifier); try { if (getLength(identifier) > -1) { LOG.trace("getRecord: [{}] retrieved using getLength", identifier); if (minModifiedDate > 0) { touchInternal(identifier); } usesIdentifier(identifier); return new CachingDataRecord(this, identifier); } else if (asyncWriteCache.hasEntry(fileName, minModifiedDate > 0)) { LOG.trace("getRecord: [{}] retrieved from asyncUploadmap", identifier); usesIdentifier(identifier); return new CachingDataRecord(this, identifier); } } catch (IOException ioe) { throw new DataStoreException("error in getting record [" + identifier + "]", ioe); } throw new DataStoreException("Record not found: " + identifier); }