MCPcopy
hub / github.com/minio/minio-go / putObjectRDMA

Method putObjectRDMA

rdma.go:63–91  ·  view source on GitHub ↗
(_ context.Context, bucketName, objectName string,
	opts PutObjectOptions,
)

Source from the content-addressed store, hash-verified

61}
62
63func (c *Client) putObjectRDMA(_ context.Context, bucketName, objectName string,
64 opts PutObjectOptions,
65) (UploadInfo, error) {
66 h, err := c.rdma()
67 if err != nil {
68 return UploadInfo{}, err
69 }
70
71 bucketC := C.CString(bucketName)
72 defer C.free(unsafe.Pointer(bucketC))
73 objectC := C.CString(objectName)
74 defer C.free(unsafe.Pointer(objectC))
75
76 var etagBuf, checksumBuf [64]C.char
77 n := C.miniocpp_put_object(h.cptr, bucketC, objectC,
78 opts.RDMABuffer, C.size_t(opts.RDMABufferSize),
79 nil, nil, &etagBuf[0], &checksumBuf[0])
80 if n < 0 {
81 return UploadInfo{}, fmt.Errorf("RDMA put: %s", lastRDMAError())
82 }
83
84 return UploadInfo{
85 Bucket: bucketName,
86 Key: objectName,
87 Size: int64(n),
88 ETag: C.GoString(&etagBuf[0]),
89 ChecksumCRC64NVME: C.GoString(&checksumBuf[0]),
90 }, nil
91}
92
93func (c *Client) getObjectRDMA(_ context.Context, bucketName, objectName string,
94 opts GetObjectOptions,

Callers 1

PutObjectMethod · 0.95

Calls 2

rdmaMethod · 0.95
lastRDMAErrorFunction · 0.85

Tested by

no test coverage detected