This action will force synchronization from Gitee 极速下载/Sourcegraph, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
This is a high level overview of our architecture at Sourcegraph so you can understand how our services fit together.
Here are the services that compose Sourcegraph.
The frontend serves our web app and hosts our GraphQL API.
Application data is stored in our Postgresql database.
Session data is stored in redis.
Typically there are multiple replicas running in production to scale with load.
Proxies all requests to github.com to keep track of rate limits and prevent triggering abuse mechanisms.
There is only one replica running in production. However, we can have multiple replicas to increase our rate limits (rate limit is per IP).
Mirrors repositories from their code host. All other Sourcegraph services talk to gitserver when they need data from git. Requests for fetch operations, however, should go through repo-updater.
This is a IO and compute heavy service since most Sourcegraph requests will trigger 1 or more git commands. As such we shard requests for a repo to a specific replica. This allows us to horizontally scale out the service. The service is stateful (maintaining git clones). However, it only contains data mirrored from upstream code hosts.
Sourcegraph extensions add features to Sourcegraph, including language support. Many extensions rely, in turn, on language servers (implementing the Language Server Protocol) to provide code intelligence (hover tooltips, jump to definition, find references).
Periodically runs saved searches and sends notification emails. Only one replica should be running.
Repo-updater (which may get renamed since it does more than that) tracks the state of repos, and is responsible for automatically scheduling updates ("git fetch" runs) using gitserver. Other apps which desire updates or fetches should be telling repo-updater, rather than using gitserver directly, so repo-updater can take their changes into account. Only one replica should be running.
Provides on-demand search for repositories. It scans through a git archive fetched from gitserver to find results.
This service should be scaled up the more on-demand searches that need to be done at once. For a search the frontend will scatter the search for each repo@commit across the replicas. The frontend will then gather the results. Like gitserver this is an IO and compute bound service. However, its state is a cache which can be lost at anytime.
Provides search results for repositories that have been indexed.
This service can only have one replica. Typically large customers provision a large node for it since it is memory and CPU heavy.
We forked zoekt.
Indexes symbols in repositories using Ctags. Similar in architecture to searcher, except over ctags output.
Syntect is a Rust service that is responsible for syntax highlighting.
Horizontally scalable, but typically only one replica is necessary.
We publish browser extensions for Chrome, Firefox, and Safari, that provide code intelligence (hover tooltips, jump to definition, find references) when browsing code on code hosts. By default it works for open-source code, but it also works for private code if your company has a Sourcegraph deployment.
It uses GraphQL APIs exposed by the frontend to fetch data.
Our editor extensions provide lightweight hooks into Sourcegraph, currently.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。