-
Notifications
You must be signed in to change notification settings - Fork 1.1k
DATAMONGO-2393 - Fix GridFS upload and download adapters #799
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Execution time and test order changed by using JUnit5. This commit fixes some of the issues related to index creation where actually not needed.
…download stream. We now rely on an outer drain-loop when GridFS reads complete on the same thread instead of using recursive subscriptions to avoid StackOverflow. Previously, we recursively invoked subscriptions that lead to an increased stack size.
AsyncInputStreamAdapter now properly splits and buffers incoming DataBuffers according the read requests of AsyncInputStream.read(…) calls. Previously, the adapter used the input buffer size to be used as the output buffer size. A larger DataBuffer than the transfer buffer handed in through read(…) caused a BufferOverflow.
Extract read requests into inner class.
We now allow consuming GridFS files using a configurable chunk size. The default chunk size is now 256kb.
333d12a
to
c952a0d
Compare
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
…download stream. We now rely on an outer drain-loop when GridFS reads complete on the same thread instead of using recursive subscriptions to avoid StackOverflow. Previously, we recursively invoked subscriptions that lead to an increased stack size. Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
AsyncInputStreamAdapter now properly splits and buffers incoming DataBuffers according the read requests of AsyncInputStream.read(…) calls. Previously, the adapter used the input buffer size to be used as the output buffer size. A larger DataBuffer than the transfer buffer handed in through read(…) caused a BufferOverflow. Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
Extract read requests into inner class. Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
We now allow consuming GridFS files using a configurable chunk size. The default chunk size is now 256kb. Original Pull Request: #799
christophstrobl
added a commit
that referenced
this pull request
Oct 31, 2019
Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
…download stream. We now rely on an outer drain-loop when GridFS reads complete on the same thread instead of using recursive subscriptions to avoid StackOverflow. Previously, we recursively invoked subscriptions that lead to an increased stack size. Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
AsyncInputStreamAdapter now properly splits and buffers incoming DataBuffers according the read requests of AsyncInputStream.read(…) calls. Previously, the adapter used the input buffer size to be used as the output buffer size. A larger DataBuffer than the transfer buffer handed in through read(…) caused a BufferOverflow. Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
Extract read requests into inner class. Original Pull Request: #799
christophstrobl
pushed a commit
that referenced
this pull request
Oct 31, 2019
We now allow consuming GridFS files using a configurable chunk size. The default chunk size is now 256kb. Original Pull Request: #799
christophstrobl
added a commit
that referenced
this pull request
Oct 31, 2019
Original Pull Request: #799
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Use drain loop for same-thread processing in GridFS download stream.
We now rely on an outer drain-loop when GridFS reads complete on the same thread instead of using recursive subscriptions to avoid StackOverflow. Previously, we recursively invoked subscriptions that lead to an increased stack size.
AsyncInputStreamAdapter
now properly splits and buffers incomingDataBuffer
s according to the read requests ofAsyncInputStream.read(…)
calls.Previously, the adapter used the input buffer size to be used as the output buffer size. A larger
DataBuffer
than the transfer buffer handed in throughread(…)
caused a BufferOverflow.Support configurable chunk size.
We now allow consuming GridFS files using a configurable chunk size. The default chunk size is now 256kb.
Should be backported to 2.2.x.
Related ticket: DATAMONGO-2393.