sapling/eden/mononoke
Haitao Mei 39d3400de2 new admin tool uses HashMap to cache the blobstores regarding a given repo_id
Summary:
This diff:
* Adds a new HashMap to store the blobstres, regarding a given repo_id, to avoid duplicated computation
* Removes some debugging output

Differential Revision: D46802649

fbshipit-source-id: 8ddf0243b192b5684af2d4a430cdb8873a78246d
2023-06-20 09:07:49 -07:00
..
acl_regions commit_graph: replace usages of LeastCommonAncestorsHint::is_ancestor and ReachabilityIndex::query_reachability (conditional on a tunable) (except in ChangesetPathContext) 2023-05-23 11:26:11 -07:00
admin delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
aliasverify Move sharding_lib_ext under cmdlib 2023-04-27 08:18:19 -07:00
backfill_derived_data replace slice_repository with CommitGraph::slice_ancestors and delete commit_traversal directory 2023-05-23 11:26:11 -07:00
benchmarks cmdlib_caching: remove deprecated cachelib options 2023-06-16 03:21:13 -07:00
blobimport derived_data/filenodes_derivation: reorganise file layout 2023-04-13 06:39:07 -07:00
blobimport_lib Remove everything about ContentMetadata 2023-05-04 03:59:59 -07:00
blobrepo Using BonsaiTagMapping in GitImport and RemoteGitImport 2023-05-30 12:20:40 -07:00
blobrepo_utils Remove unused raw-api feature from dashmap crate 2023-05-22 10:38:20 -07:00
blobstore Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
blobstore_healer Update clap from 4.1.11 to 4.2.4 2023-04-25 12:13:11 -07:00
blobstore_sync_queue (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
bonsai_git_mapping commit_graph: replace RangeNodeStream usages with new commit graph range_stream (conditional on a tunable for critical ones) 2023-04-28 10:24:20 -07:00
bonsai_globalrev_mapping Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
bonsai_hg_mapping Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
bonsai_svnrev_mapping Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
bonsai_tag_mapping Unit tests for bonsai_tag_mapping 2023-05-23 04:02:13 -07:00
bookmarks Clippy Fixes 2023-06-20 05:19:24 -07:00
bulkops Update strum and enable the derive feature 2023-06-13 03:32:44 -07:00
cache_warmup derived_data/filenodes_derivation: reorganise file layout 2023-04-13 06:39:07 -07:00
cats bump version to 0.1.2 2022-10-20 12:08:11 -07:00
changesets Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
cmdlib cmdlib_caching: remove deprecated cachelib options 2023-06-16 03:21:13 -07:00
cmds Clippy Fixes 2023-06-20 05:19:24 -07:00
commit_rewriting Clippy Fixes 2023-06-20 05:19:24 -07:00
common remove dependency on MononokeApp 2023-05-26 04:22:23 -07:00
derived_data Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
edenapi_service import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
features Expose fetch-key-list through the API and the CLI 2023-06-20 07:15:08 -07:00
filenodes Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
filestore Update strum and enable the derive feature 2023-06-13 03:32:44 -07:00
git Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
gotham_ext import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
hgproto Fix clippy lints (1/N) 2023-03-10 09:41:25 -08:00
hooks hooks: allow other nocommit spellings 2023-06-16 14:53:10 -07:00
land_service delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
lfs_import_lib Clippy fixes 2023-05-09 06:49:45 -07:00
lfs_protocol update to rust 1.64.0 2022-09-27 15:18:58 -07:00
lfs_server import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
manifest (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
megarepo_api Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
mercurial Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
metaconfig delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
microwave Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
mononoke_api delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
mononoke_api_hg used cached version of API 2023-05-25 06:40:27 -07:00
mononoke_configs (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
mononoke_hg_sync_job import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
mononoke_repos upgrade to parking_lot-0.12.1 2023-06-02 18:45:03 -07:00
mononoke_types newadmin: add the missing blobstore fetch decodings 2023-06-19 07:08:40 -07:00
mutable_counters Log mutable counters to ODS 2022-12-09 09:24:56 -08:00
mutable_renames Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
newfilenodes (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
observability update regex to 1.6.0 2022-10-31 21:28:04 -07:00
permission_checker Update openssl from 0.10.35 to 10.10.54 2023-06-05 06:35:30 -07:00
phases add new ods logging for bookmark fetching from phases crate 2023-05-31 13:57:24 -07:00
pushrebase delete reachabilityindex directory 2023-06-04 23:27:57 -07:00
pushrebase_mutation_mapping test_repo_factory: add method for building warm bookmarks cache 2023-04-25 12:45:33 -07:00
quiet_stream (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
rate_limiting bump version to 0.1.2 2022-10-20 12:08:11 -07:00
repo_attributes commit_graph: use fetch_edges_required and fetch_many_edges_required everywhere except in exists, changeset_parents and changeset_generation 2023-06-19 14:20:27 -07:00
repo_authorization mononoke/vpn_less: add new AuthorizationContext type to replace ad-hoc checks scattered across push code 2023-06-06 13:20:30 -07:00
repo_client Clippy Fixes 2023-06-20 05:19:24 -07:00
repo_factory cmdlib_caching: remove deprecated cachelib options 2023-06-16 03:21:13 -07:00
repo_import option to skip syncing empty commits 2023-06-15 08:46:20 -07:00
revset commit_graph: delete RangeNodeStream 2023-06-04 23:27:57 -07:00
scs Update autocargo component on FBS:master 2023-06-16 14:06:54 -07:00
scs_server Using BonsaiTagMapping in GitImport and RemoteGitImport 2023-05-30 12:20:40 -07:00
segmented_changelog upgrade to parking_lot-0.12.1 2023-06-02 18:45:03 -07:00
server import async-fcgi and http-body; add stream feature to hyper 2023-06-13 17:56:22 -07:00
sshrelay third-party/rust: add experimental feature to zstd 2023-02-23 09:28:19 -08:00
statistics_collector Shard statistics_collector command 2023-06-13 04:01:12 -07:00
streaming_clone Update clap from 4.1.11 to 4.2.4 2023-04-25 12:13:11 -07:00
tests Expose fetch-key-list through the API and the CLI 2023-06-20 07:15:08 -07:00
time_window_counter bump version to 0.1.2 2022-10-20 12:08:11 -07:00
tools new admin tool uses HashMap to cache the blobstores regarding a given repo_id 2023-06-20 09:07:49 -07:00
tunables option to skip syncing empty commits 2023-06-15 08:46:20 -07:00
walker walker: specify cache-mode default 2023-06-16 03:21:13 -07:00
wireproto_handler backsyncer: remove connections from TargetRepoDbs 2023-04-12 01:48:40 -07:00
Cargo.toml Extract redaction feature to its own crate 2023-06-20 07:15:08 -07:00
README.md mononoke: README.md update 2022-02-21 02:23:21 -08:00

Mononoke

Mononoke is a next-generation server for the Mercurial source control system, meant to scale up to accepting thousands of commits every hour across millions of files. It is primarily written in the Rust programming language.

Caveat Emptor

Mononoke is still in development. We are making it available now because we plan to start making references to it from our other open source projects.

The version that we provide on GitHub is omitting some functions.

This is because the code is exported verbatim from an internal repository at Facebook, and not all of the scaffolding from our internal repository can be easily extracted. The key areas where we need to shore things up are:

  • Support for running thrift based apis.
  • Production metadata SQL support (e.g. something like a MySQL backend). We provide sqlite in OSS for now.
  • Production blobstore storage backends (e.g. something like S3). We provide SQL (on sqlite) and File System backends currently in OSS.

Linux is Mononoke's primary target plaform with OSS CI also running on MacOS. Other Unix-like OSes may be supported in the future.

Subsystem Docs

Most of our documentation is in internal systems, however a few subsystems have in-repo markdown docs available: