Zum Hauptinhalt springen

Garnet Code Structure

In der folgenden Liste beschreiben wir die C#-Projekte, die Teil der Garnet Visual Studio-Projektmappe sind, sowie die Ordner, die sie enthalten.

  • \.azure\pipelines folder
    • Beschreibung: Enthält .yml-Dateien und andere Ressourcen für die Ausführung von CI/CD-Pipelines in Azure DevOps.
  • \.github\workflows folder
    • Beschreibung: Enthält .yml-Dateien und andere Ressourcen für die Ausführung von CI/CD-Pipelines in GitHub Actions.
  • \benchmark folder
    • BDN.benchmark
      • Beschreibung: Ein Benchmarking-Tool, das die BenchmarkDotNet-Bibliothek verwendet. Dies ist derzeit das bevorzugte Tool für das Benchmarking verschiedener Garnet-Funktionalitäten. Verwenden Sie die Argumente der Befehlszeile, um Ihre Ausführung zu konfigurieren.
    • Resp.benchmark
      • Beschreibung: Ein Benchmark-Tool zur Ausgabe von RESP-Befehlen an den Garnet-Server. Weitere Details finden Sie auf der Resp-Benchmark-Seite hier.
  • \charts\garnet folder
    • Beschreibung: Enthält ein Helm-Chart für Garnet.
  • \hosting\Windows folder
    • Garnet.worker
      • Beschreibung: Eine App zum Hosten von Garnet als Windows-Dienst.
  • \libs folder
    • storage\Tsavorite folder
      • Beschreibung: Projektmappe, Quellcodes und Tests für die Tsavorite-Bibliothek.
    • Garnet.client project
      • Beschreibung: Clients, die mit dem Garnet-Server mit eingeschränkter Funktionalität verwendet werden können.
    • Garnet.cluster project
      • Beschreibung: Die Garnet Cluster-Implementierung.
    • Garnet.common project
      • Beschreibung: Netzwerkschicht-Implementierung und allgemeine Tools, die für die Verarbeitung von Anfragen und Antworten verwendet werden.
    • Garnet.host project
      • Beschreibung: Die Hosting-Klasse, die den Garnet-Server instanziiert.
    • Garnet.resources project
      • Beschreibung: Enthält große Textressourcen, die bei Bedarf dynamisch geladen werden können, um die Garnet-Binärdateien nicht zu überlasten.
    • Garnet.server project
      • Beschreibung: Sämtliche APIs für die Schlüsseloperationen, ACL-Befehle, Checkpointing, Metriken, Transaktionen, die Garnet-Server-API und die Speicherimplementierung mit RESP.
  • \main folder
    • GarnetServer project
      • Beschreibung: Das Hauptprogramm (Einstiegspunkt), in dem die Garnet-Server-ausführbare Datei mithilfe des Hosts erstellt wird.
  • \metrics folder
    • HdrHistogram project
      • Beschreibung: Projekt zur Erstellung von High Dynamic Range (HDR) Histogrammen, die für Diagramme verschiedener Servermetriken verwendet werden.
  • \playground folder
    • Bitmap project
      • Beschreibung: Ein Projekt, das verschiedene Bitmap-Operationen mit Tsavorite ausführt.
    • ClusterStress project
      • Beschreibung: Ein Projekt in Arbeit, das Lasttests für einen Garnet-Server im Cluster-Modus ausführt.
    • CommandInfoUpdater project
      • Beschreibung: Ein Tool zur Aktualisierung von RESP-Befehlsmetadaten (Infos, Dokumentation) mithilfe eines lokalen RESP-Servers (Anweisungen zur Verwendung finden Sie unter: Hinzufügen von Befehlsinformationen).
    • Embedded.perftest project
      • Beschreibung: Ein Tool zur Ausgabe von RESP-Befehlen an den Garnet-Server, wobei der Netzwerkstapel umgangen wird.
    • GarnetClientStress project
      • Beschreibung: Ein Projekt zum Ausführen von Lasttests gegen die GarnetClient-Bibliothek.
    • GarnetJSON project
      • Beschreibung: Eine Bibliothek, die ein Beispiel-Garnet-Modul definiert, das Operationen auf JSON-Zeichenfolgen ausführen kann.
    • MigrateBench project
      • Beschreibung: Ein Tool, das entwickelt wurde, um die Leistung und Robustheit des Migrationsvorgangs zu testen, indem Batch-Migrationsanfragen zwischen mehreren Knoten ausgeführt werden.
    • SampleModule project
      • Beschreibung: Eine Bibliothek, die ein Beispiel-Garnet-Modul definiert, das benutzerdefinierte Befehle, Transaktionen und Prozeduren ausführen kann.
    • TstRunner project
      • Beschreibung: Konsolenanwendung zum Ausführen von Schlüsselmigrationsbefehlen.
  • \samples folder
    • GarnetClientSample project
      • Beschreibung: Beispiel für die Verwendung von GarnetClient.
    • MetricsMonitor project
      • Beschreibung: Konsolen-App zum Abrufen von Latenzmetriken mit StackExchange.Redis.
  • \test folder
    • Garnet.test project
      • Beschreibung: Projekt für Garnet-Server-Unit-Tests, einschließlich Unit-Tests von RESP-Befehlen.
    • Garnet.test.cluster project
      • Beschreibung: Projekt für Cluster-Unit-Tests.
    • testcerts folder
      • Beschreibung: Selbstsignierte Zertifikate für Testzwecke, wenn TLS aktiviert ist.
  • \website folder
    • Beschreibung: Dateien für die Dokumentationswebsite von Garnet.
  • root folder
    • Beschreibung: Editorconfig-Datei, Docker-Dateien usw.