HDFS-10448. CacheManager#addInternal tracks bytesNeeded incorrectly when dealing with replication factors other than 1 (Yiqun Lin via cmccabe)
This commit is contained in:
parent
7adc4d1769
commit
46f1602e89
@ -396,8 +396,7 @@ private void checkLimit(CachePool pool, String path,
|
||||
if (pool.getLimit() == CachePoolInfo.LIMIT_UNLIMITED) {
|
||||
return;
|
||||
}
|
||||
if (pool.getBytesNeeded() + (stats.getBytesNeeded() * replication) > pool
|
||||
.getLimit()) {
|
||||
if (pool.getBytesNeeded() + stats.getBytesNeeded() > pool.getLimit()) {
|
||||
throw new InvalidRequestException("Caching path " + path + " of size "
|
||||
+ stats.getBytesNeeded() / replication + " bytes at replication "
|
||||
+ replication + " would exceed pool " + pool.getPoolName()
|
||||
@ -441,7 +440,7 @@ private CacheDirectiveStats computeNeeded(String path, short replication) {
|
||||
}
|
||||
}
|
||||
return new CacheDirectiveStats.Builder()
|
||||
.setBytesNeeded(requestedBytes)
|
||||
.setBytesNeeded(requestedBytes * replication)
|
||||
.setFilesCached(requestedFiles)
|
||||
.build();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user