Skip to content
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

Developers using FileStream find it to be high performance and robust #40359

Closed
12 tasks done
Tracked by #44314
benaadams opened this issue Aug 5, 2020 · 8 comments
Closed
12 tasks done
Tracked by #44314
Assignees
Labels
area-System.IO Bottom Up Work Not part of a theme, epic, or user story Cost:XL Work that requires one engineer more than 4 weeks Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries tenet-performance Performance related issue User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@benaadams
Copy link
Member

benaadams commented Aug 5, 2020

(Note .CopyToAsync is pretty good; for certain combinations of flags)

P0

P1

P2

Moved to Future

Rosyln has their own workarounds for FileStream issues; and NuGet recently moved to mmap for better performance NuGet/NuGet.Client#3524

Edit by carlossanlop: To focus on the Async/Sync improvements, I'm removing 3 issues from the list that are separate from that topic.
_Edit by @adamsitnik: Proiorities

@benaadams benaadams added the tenet-performance Performance related issue label Aug 5, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-System.IO untriaged New issue has not been triaged by the area owner labels Aug 5, 2020
@danmoseley
Copy link
Member

Thanks for collecting these into an “epic” 🙂 This is a candidate for some code debt work before 6.0 feature work starts.

@carlossanlop carlossanlop added this to the Future milestone Aug 6, 2020
@carlossanlop carlossanlop removed the untriaged New issue has not been triaged by the area owner label Aug 7, 2020
@danmoseley
Copy link
Member

@JeremyKuhne you've been a vocal advocate of improving FileStream in the past. Is there anything you want to add to this meta-issue?

@Jozkee Jozkee added the Epic Groups multiple user stories. Can be grouped under a theme. label Oct 9, 2020
@carlossanlop
Copy link
Member

Thank you @benadams for compiling the list.

May I suggest to focus this epic specifically for improving sync/async in FileStream, which seems to be the main topic of most of those issues? If agreed, then these issues can be removed from the epic and addressed separately:

@marek-safar marek-safar added tracking This issue is tracking the completion of other related issues. and removed Epic Groups multiple user stories. Can be grouped under a theme. labels Oct 22, 2020
@jeffhandley
Copy link
Member

@stephentoub What do you think about #8307, #29173, and #28444 -- do you think those are standalone enough to treat separately from the bigger collection of issues? If so, we can go ahead and get started on those soon.

@stephentoub
Copy link
Member

do you think those are standalone enough to treat separately from the bigger collection of issues?

Yes

@Jozkee Jozkee added Bottom Up Work Not part of a theme, epic, or user story User Story A single user-facing feature. Can be grouped under an epic. labels Nov 17, 2020
@danmoseley danmoseley changed the title FileStream's performance is disappointing and buggy Developers using FileStream find it to be high performance and robust Nov 29, 2020
@danmoseley
Copy link
Member

Changed title to "user story terms" even though it's clearly not describing the current state.

@benaadams
Copy link
Member Author

io_uring for file I/O on Linux? 😉 https://www.scylladb.com/2020/05/05/how-io_uring-and-ebpf-will-revolutionize-programming-in-linux/

@marek-safar marek-safar removed the tracking This issue is tracking the completion of other related issues. label Nov 30, 2020
@jeffhandley jeffhandley self-assigned this Dec 17, 2020
@jeffhandley jeffhandley modified the milestones: Future, 6.0.0 Jan 12, 2021
@danmoseley danmoseley added the Priority:1 Work that is critical for the release, but we could probably ship without label Jan 13, 2021
@carlossanlop carlossanlop added the Cost:XL Work that requires one engineer more than 4 weeks label Jan 14, 2021
@Tragetaschen
Copy link
Contributor

Tragetaschen commented Apr 29, 2021

Since this is also about robustness: Writing files synchronously on Linux (at least with ext4) doesn't follow Posix to call fsync. This has (at least for me) resulted in a corrupt file (zero length) from otherwise valid code.

#32600

@adamsitnik adamsitnik added this to To do in System.IO - FileStream via automation May 13, 2021
System.IO - FileStream automation moved this from To do to Done Jul 19, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 18, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.IO Bottom Up Work Not part of a theme, epic, or user story Cost:XL Work that requires one engineer more than 4 weeks Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries tenet-performance Performance related issue User Story A single user-facing feature. Can be grouped under an epic.
Projects
Development

No branches or pull requests

10 participants