Skip to content

Commit 1b3b91d

Browse files
committed
Remove buffer copy
Signed-off-by: Alessandro Passaro <alexpax@amazon.co.uk>
1 parent ae41e99 commit 1b3b91d

File tree

3 files changed

+10
-26
lines changed

3 files changed

+10
-26
lines changed

mountpoint-s3-client/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ mountpoint-s3-fs = { path = "../mountpoint-s3-fs" }
6363
built = { version = "0.8.0", features = ["git2"] }
6464

6565
[features]
66-
restore_buffer_copy = []
6766
mock = ["dep:async-io", "dep:async-lock", "dep:md-5", "dep:rand", "dep:rand_chacha"]
6867
# Features for choosing tests
6968
s3_tests = []

mountpoint-s3-client/src/s3_crt_client/get_object.rs

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,17 @@ use futures::channel::mpsc::UnboundedReceiver;
1111
use futures::stream::FusedStream;
1212
use futures::{Stream, StreamExt};
1313
use mountpoint_s3_crt::http::request_response::{Header, Headers};
14-
use mountpoint_s3_crt::s3::buffer::Buffer;
1514
use mountpoint_s3_crt::s3::client::{MetaRequest, MetaRequestResult};
1615
use pin_project::pin_project;
1716
use tracing::trace;
1817

1918
use crate::error_metadata::ClientErrorMetadata;
2019
use crate::object_client::{
21-
Checksum, ChecksumMode, ClientBackpressureHandle, GetBodyPart, GetObjectError, GetObjectParams, ObjectClientError,
22-
ObjectClientResult, ObjectMetadata,
20+
Checksum, ChecksumMode, ClientBackpressureHandle, GetBodyPart, GetObjectError, GetObjectParams, GetObjectResponse,
21+
ObjectChecksumError, ObjectClientError, ObjectClientResult, ObjectMetadata,
2322
};
2423

25-
use super::{
26-
CancellingMetaRequest, GetObjectResponse, ObjectChecksumError, ResponseHeadersError, S3CrtClient, S3Operation,
27-
S3RequestError, parse_checksum,
28-
};
24+
use super::{CancellingMetaRequest, ResponseHeadersError, S3CrtClient, S3Operation, S3RequestError, parse_checksum};
2925

3026
impl S3CrtClient {
3127
/// Create and begin a new GetObject request. The returned [S3GetObjectResponse] is a [Stream] of
@@ -85,6 +81,7 @@ impl S3CrtClient {
8581

8682
let mut headers_sender = Some(event_sender.clone());
8783
let part_sender = event_sender.clone();
84+
8885
self.inner.meta_request_with_callbacks(
8986
options,
9087
span,
@@ -101,10 +98,11 @@ impl S3CrtClient {
10198
}
10299
},
103100
move |offset, data| {
104-
let body_part = GetBodyPart {
105-
offset,
106-
data: make_owned_bytes(data),
107-
};
101+
let owned_buffer = data
102+
.to_owned_buffer()
103+
.expect("buffers returned from GetObject can always be acquired");
104+
let bytes = Bytes::from_owner(owned_buffer);
105+
let body_part = GetBodyPart { offset, data: bytes };
108106
_ = part_sender.unbounded_send(S3GetObjectEvent::BodyPart(body_part));
109107
},
110108
parse_get_object_error,
@@ -150,19 +148,6 @@ impl S3CrtClient {
150148
}
151149
}
152150

153-
#[cfg(not(feature = "restore_buffer_copy"))]
154-
fn make_owned_bytes(data: &Buffer) -> Bytes {
155-
let owned_buffer = data
156-
.to_owned_buffer()
157-
.expect("buffers returned from GetObject can always be acquired");
158-
Bytes::from_owner(owned_buffer)
159-
}
160-
161-
#[cfg(feature = "restore_buffer_copy")]
162-
fn make_owned_bytes(data: &Buffer) -> Bytes {
163-
Bytes::copy_from_slice(data)
164-
}
165-
166151
#[derive(Debug)]
167152
enum S3GetObjectEvent {
168153
Headers(Headers),

mountpoint-s3-fs/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description = "Mountpoint S3 main library"
99

1010
[dependencies]
1111
mountpoint-s3-fuser = { path = "../mountpoint-s3-fuser", version = "0.1.0", features = ["abi-7-28"] }
12-
mountpoint-s3-client = { path = "../mountpoint-s3-client", version = "0.18.0", features = ["restore_buffer_copy"] }
12+
mountpoint-s3-client = { path = "../mountpoint-s3-client", version = "0.18.0" }
1313

1414
anyhow = { version = "1.0.98", features = ["backtrace"] }
1515
async-channel = "2.3.1"

0 commit comments

Comments
 (0)