[ https://issues.apache.org/jira/browse/HDFS-7276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tsz Wo Nicholas Sze updated HDFS-7276: -------------------------------------- Attachment: h7276_20141027.patch h7276_20141027.patch: - Renames the conf key DFS_CLIENT_WRITE_MAX_PACKETS_KEY; see HDFS-7260. - Adds a performance test for comparing -# new byte[] without any limit, -# new byte[] with synchronization and a count for imposing a limit; and -# using ByteArrayManager. It turns out that ByteArrayManager is slighter better. - nAllocations=16384 {noformat} arrayLength=65536, nThreads=256, nAllocations=16384, maxArrays=1024 NewByteArrayWithoutLimit: 3306 NewByteArrayWithLimit: 3314 UsingByteArrayManager: 3278 arrayLength=65536, nThreads=256, nAllocations=16384, maxArrays=4096 NewByteArrayWithoutLimit: 3320 NewByteArrayWithLimit: 3313 UsingByteArrayManager: 3284 arrayLength=65536, nThreads=256, nAllocations=16384, maxArrays=16384 NewByteArrayWithoutLimit: 3342 NewByteArrayWithLimit: 3339 UsingByteArrayManager: 3306 arrayLength=65536, nThreads=256, nAllocations=16384, maxArrays=65536 NewByteArrayWithoutLimit: 3324 NewByteArrayWithLimit: 3320 UsingByteArrayManager: 3297 arrayLength=65536, nThreads=256, nAllocations=16384, maxArrays=262144 NewByteArrayWithoutLimit: 3322 NewByteArrayWithLimit: 3323 UsingByteArrayManager: 3284 {noformat} - nAllocations=32768 {noformat} arrayLength=65536, nThreads=256, nAllocations=32768, maxArrays=1024 NewByteArrayWithoutLimit: 6608 NewByteArrayWithLimit: 6648 UsingByteArrayManager: 6580 arrayLength=65536, nThreads=256, nAllocations=32768, maxArrays=4096 NewByteArrayWithoutLimit: 6572 NewByteArrayWithLimit: 6538 UsingByteArrayManager: 6451 arrayLength=65536, nThreads=256, nAllocations=32768, maxArrays=16384 NewByteArrayWithoutLimit: 6623 NewByteArrayWithLimit: 6613 UsingByteArrayManager: 6485 arrayLength=65536, nThreads=256, nAllocations=32768, maxArrays=65536 NewByteArrayWithoutLimit: 6564 NewByteArrayWithLimit: 6610 UsingByteArrayManager: 6488 arrayLength=65536, nThreads=256, nAllocations=32768, maxArrays=262144 NewByteArrayWithoutLimit: 6547 NewByteArrayWithLimit: 6556 UsingByteArrayManager: 6464 {noformat} > Limit the number of byte arrays used by DFSOutputStream > ------------------------------------------------------- > > Key: HDFS-7276 > URL: https://issues.apache.org/jira/browse/HDFS-7276 > Project: Hadoop HDFS > Issue Type: Improvement > Components: hdfs-client > Reporter: Tsz Wo Nicholas Sze > Assignee: Tsz Wo Nicholas Sze > Attachments: h7276_20141021.patch, h7276_20141022.patch, > h7276_20141023.patch, h7276_20141024.patch, h7276_20141027.patch > > > When there are a lot of DFSOutputStream's writing concurrently, the number of > outstanding packets could be large. The byte arrays created by those packets > could occupy a lot of memory. -- This message was sent by Atlassian JIRA (v6.3.4#6332)