@Override public Collection<HStoreFile> getCompactedFiles() { return this.storeEngine.getStoreFileManager().getCompactedfiles(); }
@VisibleForTesting public synchronized void closeAndArchiveCompactedFiles(boolean storeClosing) throws IOException { // ensure other threads do not attempt to archive the same files on close() archiveLock.lock(); try { lock.readLock().lock(); Collection<HStoreFile> copyCompactedfiles = null; try { Collection<HStoreFile> compactedfiles = this.getStoreEngine().getStoreFileManager().getCompactedfiles(); if (CollectionUtils.isNotEmpty(compactedfiles)) { // Do a copy under read lock copyCompactedfiles = new ArrayList<>(compactedfiles); } else { LOG.trace("No compacted files to archive"); } } finally { lock.readLock().unlock(); } if (CollectionUtils.isNotEmpty(copyCompactedfiles)) { removeCompactedfiles(copyCompactedfiles, storeClosing); } } finally { archiveLock.unlock(); } }
StoreFileManager sfm = storeEngine.getStoreFileManager(); Collection<HStoreFile> currentFiles = sfm.getStorefiles(); Collection<HStoreFile> compactedFiles = sfm.getCompactedfiles(); if (currentFiles == null) currentFiles = Collections.emptySet(); if (newFiles == null) newFiles = Collections.emptySet();
@Override public boolean evaluate() throws Exception { for (HRegion region : cluster.getRegions(tn)) { for (HStore store : region.getStores()) { Collection<HStoreFile> files = store.getStoreEngine().getStoreFileManager().getCompactedfiles(); if (null != files && !files.isEmpty()) { LOG.debug(region.getRegionInfo().getEncodedName() + " still has compacted files"); return false; } } } return true; } }
private void closeCompactedFile(int index) throws IOException { Collection<HStoreFile> files = this.store.getStoreEngine().getStoreFileManager().getCompactedfiles(); HStoreFile sf = null; Iterator<HStoreFile> it = files.iterator(); for (int i = 0; i <= index; i++) { sf = it.next(); } sf.closeStoreFile(true); store.getStoreEngine().getStoreFileManager().removeCompactedFiles(Lists.newArrayList(sf)); }
private static List<Path> findCompactedStorefilePaths(TableName tableName) throws Exception { List<Path> paths = new ArrayList<>(); for (Region region : TEST_UTIL.getRSForFirstRegionInTable(tableName) .getRegions(tableName)) { for (HStore store : ((HRegion) region).getStores()) { Collection<HStoreFile> compactedfiles = store.getStoreEngine().getStoreFileManager().getCompactedfiles(); if (compactedfiles != null) { for (HStoreFile storefile : compactedfiles) { paths.add(storefile.getPath()); } } } } return paths; }
Collection<HStoreFile> initialCompactedFiles = fileManager.getCompactedfiles(); assertTrue(initialCompactedFiles == null || initialCompactedFiles.isEmpty()); Collection<HStoreFile> compactedFilesPreClean = fileManager.getCompactedfiles(); assertNotNull(compactedFilesPreClean); assertTrue(compactedFilesPreClean.size() > 0); Collection<HStoreFile> compactedFilesPostClean = fileManager.getCompactedfiles(); assertEquals(1, compactedFilesPostClean.size()); for (HStoreFile origFile : compactedFilesPreClean) {
assertEquals(refSFCount+1, ((HStore)region.getStore(familyNameBytes)).getStoreEngine().getStoreFileManager() .getCompactedfiles().size()); assertEquals(0, ((HStore)region.getStore(familyNameBytes)).getStoreEngine().getStoreFileManager() .getCompactedfiles().size());
store.getStoreEngine().getStoreFileManager().getCompactedfiles(); compactedfiles = store.getStoreEngine().getStoreFileManager().getCompactedfiles(); for(HStoreFile file : compactedfiles) { assertEquals("Refcount should be 3", 3, ((HStoreFile) file).getRefCount()); ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles().size()); while (scanCompletedCounter.get() != 3) { Thread.sleep(100); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); for (HStoreFile file : compactedfiles) { assertEquals("Refcount should be 0", 0, file.getRefCount()); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); assertTrue(compactedfiles.isEmpty());
store.getStoreEngine().getStoreFileManager().getCompactedfiles(); ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles().size()); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); assertTrue(compactedfiles.isEmpty());
store.getStoreEngine().getStoreFileManager().getCompactedfiles(); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); for(HStoreFile file : compactedfiles) { assertEquals("Refcount should be 3", 0, ((HStoreFile) file).getRefCount()); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); assertTrue(compactedfiles.isEmpty());
@Override public boolean evaluate() throws Exception { for (HRegion region : cluster.getRegions(tn)) { for (HStore store : region.getStores()) { Collection<HStoreFile> files = store.getStoreEngine().getStoreFileManager().getCompactedfiles(); if (null != files && !files.isEmpty()) { LOG.debug(region.getRegionInfo().getEncodedName() + " still has compacted files"); return false; } } } return true; } }
private void closeCompactedFile(int index) throws IOException { Collection<HStoreFile> files = this.store.getStoreEngine().getStoreFileManager().getCompactedfiles(); HStoreFile sf = null; Iterator<HStoreFile> it = files.iterator(); for (int i = 0; i <= index; i++) { sf = it.next(); } sf.closeStoreFile(true); store.getStoreEngine().getStoreFileManager().removeCompactedFiles(Lists.newArrayList(sf)); }
private static List<Path> findCompactedStorefilePaths(TableName tableName) throws Exception { List<Path> paths = new ArrayList<>(); for (Region region : TEST_UTIL.getRSForFirstRegionInTable(tableName) .getRegions(tableName)) { for (HStore store : ((HRegion) region).getStores()) { Collection<HStoreFile> compactedfiles = store.getStoreEngine().getStoreFileManager().getCompactedfiles(); if (compactedfiles != null) { for (HStoreFile storefile : compactedfiles) { paths.add(storefile.getPath()); } } } } return paths; }
Collection<HStoreFile> initialCompactedFiles = fileManager.getCompactedfiles(); assertTrue(initialCompactedFiles == null || initialCompactedFiles.isEmpty()); Collection<HStoreFile> compactedFilesPreClean = fileManager.getCompactedfiles(); assertNotNull(compactedFilesPreClean); assertTrue(compactedFilesPreClean.size() > 0); Collection<HStoreFile> compactedFilesPostClean = fileManager.getCompactedfiles(); assertEquals(1, compactedFilesPostClean.size()); for (HStoreFile origFile : compactedFilesPreClean) {
assertEquals(refSFCount+1, ((HStore)region.getStore(familyNameBytes)).getStoreEngine().getStoreFileManager() .getCompactedfiles().size()); assertEquals(0, ((HStore)region.getStore(familyNameBytes)).getStoreEngine().getStoreFileManager() .getCompactedfiles().size());
store.getStoreEngine().getStoreFileManager().getCompactedfiles(); compactedfiles = store.getStoreEngine().getStoreFileManager().getCompactedfiles(); for(HStoreFile file : compactedfiles) { assertEquals("Refcount should be 3", 3, ((HStoreFile) file).getRefCount()); ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles().size()); while (scanCompletedCounter.get() != 3) { Thread.sleep(100); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); for (HStoreFile file : compactedfiles) { assertEquals("Refcount should be 0", 0, file.getRefCount()); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); assertTrue(compactedfiles.isEmpty());
store.getStoreEngine().getStoreFileManager().getCompactedfiles(); ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles().size()); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); assertTrue(compactedfiles.isEmpty());
store.getStoreEngine().getStoreFileManager().getCompactedfiles(); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); for(HStoreFile file : compactedfiles) { assertEquals("Refcount should be 3", 0, ((HStoreFile) file).getRefCount()); compactedfiles = ((HStore) store).getStoreEngine().getStoreFileManager().getCompactedfiles(); assertTrue(compactedfiles.isEmpty());