sapling/eden/mononoke
Egor Tkachenko f5b4489fc2 Derive the latest underived commit for bookmark instead of all one-by-one.
Summary:
Currently WBC on each bookmark change will try to find all underived cs_ids and will request derivation for them one-by-one. This is redundand because both old path (using derivation manager) and new path (DDS) doing that discovery internally and will derive all dependency.
This diff just removing the part when WBC asks for derivation of each commits and just requests the latest underived commit, however it will still doing discovery of underived commits.
The next step would be to add an API for DDS to answer queries about derived bookmarks locations. This way we could remove discovery part completely.

Reviewed By: RajivTS

Differential Revision: D44536860

fbshipit-source-id: 3867abdf095141b89da44242a35327da02ab05f8
2023-04-05 10:09:48 -07:00
..
acl_regions (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
admin (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
aliasverify (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
backfill_derived_data (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
benchmark_filestore (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
benchmarks (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
blobimport (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
blobimport_lib (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
blobrepo (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
blobrepo_utils (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
blobstore (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
blobstore_healer (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -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 Rename prepushrebase to in_critical_section and do it in the critical section 2023-02-14 10:08:48 -08:00
bonsai_globalrev_mapping (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
bonsai_hg_mapping (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
bonsai_svnrev_mapping (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
bookmarks Derive the latest underived commit for bookmark instead of all one-by-one. 2023-04-05 10:09:48 -07:00
bulkops (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
cache_warmup (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
cats bump version to 0.1.2 2022-10-20 12:08:11 -07:00
changesets (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
cmdlib (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
cmds (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
commit_rewriting (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
commit_traversal/slice_repository (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
common (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
derived_data (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
edenapi_service (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
features (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
filenodes (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
filestore (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
git Populate git extra headers in gitimport 2023-04-05 08:22:28 -07:00
gotham_ext (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
hgproto Fix clippy lints (1/N) 2023-03-10 09:41:25 -08:00
hook_tailer (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
hooks (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
land_service Rename BookmarkName to BookmarkKey 2023-02-22 08:53:04 -08:00
lfs_import_lib (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
lfs_protocol update to rust 1.64.0 2022-09-27 15:18:58 -07:00
lfs_server (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
manifest (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
megarepo_api (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
mercurial (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
metaconfig Derive Default on Enums 2023-03-24 13:41:24 -07:00
microwave Derive the latest underived commit for bookmark instead of all one-by-one. 2023-04-05 10:09:48 -07:00
mononoke_api (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
mononoke_api_hg (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -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 (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
mononoke_repos Worker per repo 2023-01-23 07:52:47 -08:00
mononoke_types (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
mutable_counters Log mutable counters to ODS 2022-12-09 09:24:56 -08:00
mutable_renames (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -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 (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
phases (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
pushrebase (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
pushrebase_mutation_mapping Rename prepushrebase to in_critical_section and do it in the critical section 2023-02-14 10:08:48 -08: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
reachabilityindex (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
regenerate_hg_filenodes (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
repo_attributes commit_graph_compat: clean up enable_writing_to_new_commit_graph and enable_reading_from_new_commit_graph 2023-04-05 03:20:07 -07:00
repo_authorization (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
repo_client (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
repo_factory caching: add cache mode parameter to command line with local-only option 2023-03-01 02:10:41 -08:00
repo_import (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
revset (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
scs (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
scs_server Remove useless into_iter() calls 2023-03-24 13:41:24 -07:00
segmented_changelog (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
server introduce h2 support 2023-04-05 03:53:22 -07:00
sharding_lib_ext move encode/decode repo_name used in cmdlib/sharding to lightweight sharding_lib 2023-02-24 05:54:46 -08:00
sshrelay third-party/rust: add experimental feature to zstd 2023-02-23 09:28:19 -08:00
statistics_collector (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
streaming_clone (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
tests introduce h2 support 2023-04-05 03:53:22 -07:00
time_window_counter bump version to 0.1.2 2022-10-20 12:08:11 -07:00
tools (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
tunables commit_graph_compat: clean up enable_writing_to_new_commit_graph and enable_reading_from_new_commit_graph 2023-04-05 03:20:07 -07:00
upload_globalrevs (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
walker (reland) rust/third-party: update to futures 0.3.28 2023-04-04 10:14:43 -07:00
wireproto_handler blobrepo: remove BlobRepo::get_blobstore 2023-01-26 10:13:22 -08:00
Cargo.toml introduce h2 support 2023-04-05 03:53:22 -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: