[
https://issues.apache.org/jira/browse/HADOOP-11183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14332418#comment-14332418
]
Thomas Demoor commented on HADOOP-11183:
----------------------------------------
I ran with the mark as unstable suggestion and implemented your suggestions.
{quote}
write()
2. If I created a 1-byte buffer, would that tail recursion trigger a stack
overflow? If so, some checks in ctor may be good, such as just hard coded
minimum & upping low values to it.
{quote}
No, the exector's linkedblockingqueue blocks writes once max.total.tasks are
waiting.
{quote}
Can we have flush() do a partial write? Would that gain anything in durability
terms? At the very least, it may make timing of writes more consistent with
other filesystems.
{quote}
AWS has a minimum upload size of 5MB, so if the buffer is currently smaller
.... I can think of a workaround but it's messy.
{quote}
I can think of some more tests here. If S3AFastOutputStream added a counter of
#of uploads, a test could grab that stream and verify that writes triggered it,
flushes triggered it, 0-byte-writes didn't, close cleaned up, etc. Also be
interesting to time & compare classic vs fast operations & print that in the
test results.
{quote}
I agree we should add these over time. Counting async operations, is
non-trivial however.
> Memory-based S3AOutputstream
> ----------------------------
>
> Key: HADOOP-11183
> URL: https://issues.apache.org/jira/browse/HADOOP-11183
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: fs/s3
> Affects Versions: 2.6.0
> Reporter: Thomas Demoor
> Assignee: Thomas Demoor
> Attachments: HADOOP-11183-004.patch, HADOOP-11183-005.patch,
> HADOOP-11183-006.patch, HADOOP-11183.001.patch, HADOOP-11183.002.patch,
> HADOOP-11183.003.patch, design-comments.pdf
>
>
> Currently s3a buffers files on disk(s) before uploading. This JIRA
> investigates adding a memory-based upload implementation.
> The motivation is evidently performance: this would be beneficial for users
> with high network bandwidth to S3 (EC2?) or users that run Hadoop directly on
> an S3-compatible object store (FYI: my contributions are made in name of
> Amplidata).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)