Question / Guidance: MinIO Implementation
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
Rechercherichtung
Beginnen Sie mit dem Vergleich der vorgeschlagenen MSBuildCacheMinioStoragePlugin.cs mit der AzureBlobStorage-Implementierung und prüfen Sie die ICacheClient-, IContentStore-, IContentSession-, IMetadataStore-, IPublishingStore- und verwandten Schnittstellen von BuildXL. Bestimmen Sie, welche MinIO-Cache-Komponenten tatsächlich erforderlich sind, und dokumentieren Sie anschließend einen festgelegten Implementierungsumfang sowie einen Testansatz.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
After reading more about MSBuildCache and BuildXL I wanted to ask a few questions to see if implementing MinIO as a cache is feasible and at what level it should be implemented.
- Is the expectation of this repository to hide the internals of BuildXL? The reason I ask is BuildXL seems to be on GitHub but has a decent amount of internal vs public stuff going on. Not clear to me if extending functionality from that repository is recommended.
- If it is recommended to extend functionality from that repository any guidance on a Minio approach? This is what I've currently got in my notes so far:
- Use AzureBlobStorage as an example.
- Careful of classes that seem generic but have Azure specific functionality. May not be able to re-use as much as initially hoped.
- Create MSBuildCacheMinioStoragePlugin.cs
- MSBuildCacheMinioStoragePlugin.cs will implement CreateCacheClientAsync that returns a CasCacheClient to satisfy ICacheClient requirement.
- The CasCacheClient expects a local cache and remote cache. The local cache is already handled. The remote cache must be a Minio compatible remote cache implementation.
- To create a Minio compatible remote cache client we must implement:
- MinioContentStore to satisfy IContentStore requirement.
- MinioContentSession to satisfy IContentSession requirement.
- MinioContentStore and MinioContentSession will be injected into OneLevelCache and "just work" given those new Minio classes are implemented correctly.
- MinioMetadataStore to satisfy IMetadataStore requirement.
- MinioMetadataStore will be injected into MetadataStoreMemoizationDatabase. DatabaseMemoizationStore will "just work" given new Minio classes are implemented correctly.
- IPublishingStore and IPublishingSession looks like they need to be implemented but ran out of time during investigation. Look later to determine requirements.
- IBlobCacheTopology does not seem required but might want to mimic flow anyways to keep things the same.
- Overall very involved. Overhead of learning BuildXL is very high. Testing / debuggability also seems difficult.
Does everything around BuildXL and having to extend that sound correct if we want a Minio / S3 implementation? Am I overstating or understating how involved this is?
Any guidance would be appreciated!
- Vorherrschende Sprache
- C#
- Sterne
- 64
- Forks
- 24
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/MSBuildCache
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
microsoft/MSBuildCache#154 ·
-
Bound Azure Pipelines selector history and publish costEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
microsoft/MSBuildCache#164 · 2 Kommentare ·
-
Materialize outputs after recursively memoized cache hitsEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 48/100
microsoft/MSBuildCache#167 · 2 Kommentare ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
microsoft/MSBuildCache#159 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
microsoft/MSBuildCache#155 · 1 Kommentar ·
Alle Issues in microsoft/MSBuildCache
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
Esri/calcite-dotnet-toolkit#30 · 1 Reaktion ·
-
VideoViewer: rotated (portrait phone) videos shown sideways when system decimal separator is a commaOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Volodymyr-Petrunin/Bankomaten#45 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
thekid/inotify-win#45 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
AvaloniaUI/Avalonia#22420 ·
Maintainer antworten meist innerhalb von 1 Tag