Wenn du über Teams und CI-Farmen auf der ganzen Welt verfügst, kann die Leistung deiner primären GitHub Enterprise Server-Instanz beeinträchtigt sein. Aktive Georeplikate können zwar die Leistung von Leseanfragen verbessern, doch geht dies zu Lasten des Schreibdurchsatzes. Um die Auslastung deiner primären Instanz zu verringern und die Leistung des Schreibdurchsatzes zu verbessern, kannst du einen Repositorycache konfigurieren, eine asynchrone schreibgeschützte Spiegelung von Repositorys, die sich in der Nähe dieser geografisch verteilten Clients befinden.
Indem deine Repositorydaten in der Nähe von CI-Farmen und verteilten Teams bereitgestellt werden, macht ein Repositorycache es überflüssig, dass GitHub Enterprise Server dieselben Git-Daten mehrfach über eine lange Netzwerkverbindung übertragen muss, um mehrere Clients zu bedienen. Wenn beispielsweise deine primäre Instanz in Nordamerika ist und deine Präsenz in Asien auch groß ist, profitierst du davon, den Repositorycache in Asien einzurichten, damit er dort von CI-Runnern genutzt werden kann.
Der Repositorycache lauscht auf die primäre Instanz, unabhängig davon, ob es sich um eine einzelne Instanz oder einen georeplizierten Satz von Instanzen handelt, um Änderungen an Git-Daten vorzunehmen. CI-Farmen und andere leseintensive Verbraucher klonen aus dem Repositorycache und rufen daraus ab, anstatt aus der primären Instanz. Änderungen werden in regelmäßigen Abständen einmal pro Cacheinstanz und nicht einmal pro Client verteilt. Git-Daten werden in der Regel innerhalb von mehreren Minuten nach dem Pushen der Daten an die primäre Instanz im Repositorycache angezeigt. Der cache_sync
-Webhook kann von CI-Systemen verwendet werden, um auf Daten zu reagieren, die im Cache verfügbar sind.
GitHub Enterprise Server speichert sowohl Git- als auch Git Large File Storage-Daten (Git LFS) zwischen.
Du hast präzise Kontrolle darüber, welche Repositorys mit dem Repositorycache synchronisiert werden dürfen. Git-Daten werden nur an den von dir angegebenen Speicherorten repliziert.
Du kannst die Zwischenspeicherung von Repositorys konfigurieren, indem du einen speziellen Replikattyp erstellst, der als Repositorycache bezeichnet wird. Weitere Informationen findest du unter Konfigurieren eines Repository-Caches.