-
Notifications
You must be signed in to change notification settings - Fork 536
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
feat(core)!: implement write returns metadata #5562
Conversation
8591861
to
5c98d37
Compare
Well, well, well... Let's do our best to permit this since it's not harmful. Technically, we don't allow users to parse the ETag value; instead, they should store it and compare it with values from the same source. I'm guessing the issue lies in part of our code assuming that the ETag must contain |
No. The issue is that I compare the Etag from |
That's really surprising. Let's disable the Ceph RADOS test and create an issue to track it. I believe such a bug isn't worth our workaround. |
The results are the same across Ceph RADOS, Minio and S3 |
81aeb13
to
ddc3de5
Compare
I still created a workaround by adding prefix and suffix " for Etag in the test if they are not included. I think this approach is simpler, what do you think ? |
Perhaps we should introduce |
Would
if a service returns
Make sense ! Making it explicit is better. |
Wow, they've already had a PR for this issue: ceph/ceph#60477 |
Gently push. Hi, @Xuanwo I've provided some replies, do you have any suggestions ? |
I prefer to align with exists
That's nice, maybe we can disable ceph test for now... |
ddc3de5
to
a1e0b0a
Compare
Hi, @Xuanwo Would you mind taking some time to review this PR at your convenience? since it involves a lot of files, it may become difficult to merge if it takes too long. |
1773dd4
to
ffcecb4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly LGTM! Only some small polishment changes to do.
…e_returns_metadata logic for fs
…nderlying services don't return content_length
dae34cb
to
742c1e7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @meteorgan for this great work!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @meteorgan for this great work!
Which issue does this PR close?
Part of #5557
Rationale for this change
What changes are included in this PR?
write returns metadata
forOperator
andBlockingOperator
write_has_content_length
for all services and implement the logic for themwrite returns metadata
logic for serviceS3
,fs
,monoiofs
,hdfs
andwebhdfs
Metadata
after writingAre there any user-facing changes?
Yes.
write
,write_with
inOperator
returnsResult<Metadata>
instead ofReturn<()>
Writer.close()
returnsReturn<Metadata>
instead ofReturn<()>
write
inBlockingOperator
returnsReturn<Metadata>
instead ofReturn<()>
FunctionWrite.call()
used byBlockingOperator
returnsReturn<Metadata>
instead ofReturn<()>