sapling/eden/mononoke
Mark Juggurnauth-Thomas 392aafe6b7 changeset_info: use SortedVectorMap
Summary:
ChangesetInfo is immutable and its maps are stored in sorted order, so we
can use `SortedVectorMap` to load them more efficiently.

Reviewed By: mitrandir77

Differential Revision: D25615278

fbshipit-source-id: 2078adeddc8bd049985fb4efafe3090858a1bc0a
2021-03-11 04:28:43 -08:00
..
alpn autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
benchmarks benchmarks: add benchmark_large_directory 2021-03-11 04:28:42 -08:00
blobimport_lib repo_client: remove case conflict checks on upload 2021-03-10 03:51:42 -08:00
blobrepo benchmark: rename to benchmarks/simulated_repo 2021-03-11 04:28:42 -08:00
blobrepo_utils third-party/rust: update futures 2021-03-04 06:42:55 -08:00
blobstore mononoke: add a way to limit s3 blobstore 2021-03-11 00:55:14 -08:00
blobstore_sync_queue vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
bonsai_git_mapping vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
bonsai_globalrev_mapping vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
bonsai_hg_mapping vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
bonsai_svnrev_mapping vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
bookmarks repo_client: remove case conflict checks on upload 2021-03-10 03:51:42 -08:00
bulkops mononoke: add new bulkops benchmark for middle of repo bounds 2021-03-09 09:29:50 -08:00
cache_warmup third-party/rust: update futures 2021-03-04 06:42:55 -08:00
changesets mononoke: force mysql index for changeset queries by repo_id and id 2021-03-09 09:29:50 -08:00
cmdlib third-party/rust: update futures 2021-03-04 06:42:55 -08:00
cmds mononoke: add admin command to do blobstore upload 2021-03-10 11:16:19 -08:00
commit_rewriting vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
common mononoke: update async_limiter to tokio_shim 2021-03-10 11:01:28 -08:00
derived_data changeset_info: use SortedVectorMap 2021-03-11 04:28:43 -08:00
edenapi_server third-party/rust: update futures 2021-03-04 06:42:55 -08:00
edenapi_service vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
fastreplay third-party/rust: update futures 2021-03-04 06:42:55 -08:00
filenodes vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
filestore vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
git use smallvec for MPathElement and hash thrift types 2021-03-11 04:28:42 -08:00
gotham_ext vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
hgcli third-party/rust: update futures 2021-03-04 06:42:55 -08:00
hgproto third-party/rust: update futures 2021-03-04 06:42:55 -08:00
hook_tailer third-party/rust: update futures 2021-03-04 06:42:55 -08:00
hooks mononoke/hooks: exempt opsfiles from reviewers check 2021-03-10 08:44:13 -08:00
lfs_import_lib third-party/rust: update futures 2021-03-04 06:42:55 -08:00
lfs_protocol Format fbsource with rustfmt-2.0.0-rc.2 2021-02-27 18:46:09 -08:00
lfs_server vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
load_limiter vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
manifest vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
mercurial use smallvec for MPathElement and hash thrift types 2021-03-11 04:28:42 -08:00
metaconfig mononoke: add a way to limit s3 blobstore 2021-03-11 00:55:14 -08:00
microwave vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
mononoke_api vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
mononoke_api_hg vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
mononoke_hg_sync_job mononoke: use correct repo name in darkstorm sync job 2021-03-10 06:02:44 -08:00
mononoke_types mononoke_types: use SortedVectorMap for thrift maps 2021-03-11 04:28:42 -08:00
mutable_counters third-party/rust: update futures 2021-03-04 06:42:55 -08:00
newfilenodes mononoke/filenodes: group properly 2021-03-04 12:32:56 -08:00
observability autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
permission_checker vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
phases mononoke: force mysql index for phases query by repo_id and cs_id 2021-03-10 03:57:49 -08:00
pushrebase vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
reachabilityindex vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
regenerate_hg_filenodes third-party/rust: update futures 2021-03-04 06:42:55 -08:00
repo_client repo_client: remove case conflict checks on upload 2021-03-10 03:51:42 -08:00
repo_import third-party/rust: update futures 2021-03-04 06:42:55 -08:00
revset vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
scs_server scs: add stub implementation of megarepo svc 2021-02-24 07:45:12 -08:00
segmented_changelog segmented_changelog: update Builder with Bookmarks 2021-03-10 15:30:08 -08:00
server mononoke: add a way to limit s3 blobstore 2021-03-11 00:55:14 -08:00
sshrelay third-party/rust: update futures 2021-03-04 06:42:55 -08:00
tests mononoke: add an option to record committer fields in hg extras 2021-03-10 23:41:28 -08:00
time_window_counter vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
tunables repo_client: remove case conflict checks on upload 2021-03-10 03:51:42 -08:00
unbundle_replay vfs: introduce AsyncVfs 2021-03-05 21:47:51 -08:00
walker mononoke/walker: enable tunables 2021-03-10 11:11:37 -08:00
Cargo.toml benchmarks: add benchmark_large_directory 2021-03-11 04:28:42 -08:00
README.md mononoke: add README.md and the missing pieces for supporting cargo (#13) 2020-02-13 00:12:36 -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 early stages of 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 does not build yet.

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:

  • Full support for a standard cargo build.
  • Open source replacements for Facebook-internal services (blob store, logging etc).

The current goal is to get Mononoke working on Linux. Other Unix-like OSes may be supported in the future