sapling/eden/mononoke
Rajiv Sharma 06ebc4e017 Added DeletionMode + Ephemeral Store NewAdmin command outline
Summary:
Key changes in this diff include:
- Introduced the `ephemeral_store` new admin command for working with data stored within bubbles (snapshots for now).
- Implemented the outline for `list`, `cleanup` and `info` subcommands within `ephemeral_store`.
- Added deletion checks based on `BubbleDeletionMode` configuration flag within `ephemeral_store`.

Reviewed By: yancouto

Differential Revision: D34936192

fbshipit-source-id: 4f0b1f759112585ad165332e141687be0c39cedd
2022-03-21 15:37:30 -07:00
..
admin redaction: ensure admin tools use correct form of redaction 2022-03-15 03:46:43 -07:00
aliasverify rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
alpn restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
backfill_derived_data rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
benchmark_filestore rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
benchmarks mercurial_derived_data: make MappedHgChangesetId inner value private 2022-03-21 10:58:18 -07:00
blobimport rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
blobimport_lib Support logging commit cloud commits uploaded via edenapi to scribe 2022-02-21 10:22:27 -08:00
blobrepo tests/utils: migrate to facet-based repos 2022-03-21 10:58:18 -07:00
blobrepo_utils restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
blobstore Added DeletionMode + Ephemeral Store NewAdmin command outline 2022-03-21 15:37:30 -07:00
blobstore_healer rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
blobstore_sync_queue restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
bonsai_git_mapping bonsai_git_mapping: make builder interface consistent 2022-02-15 09:21:21 -08:00
bonsai_globalrev_mapping third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
bonsai_hg_mapping third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
bonsai_svnrev_mapping third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
bookmarks tests/utils: migrate to facet-based repos 2022-03-21 10:58:18 -07:00
bulkops restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
cache_warmup restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
changesets changesets_creation: separate code to save new changesets to its own crate 2022-03-21 10:58:18 -07:00
cmdlib tools/admin: add redaction subcommand 2022-03-21 10:58:18 -07:00
cmds mercurial_derived_data: make MappedHgChangesetId inner value private 2022-03-21 10:58:18 -07:00
commit_rewriting tests/utils: migrate to facet-based repos 2022-03-21 10:58:18 -07:00
common Cache the actual mutable history entries 2022-03-08 10:58:27 -08:00
derived_data mercurial_derived_data: make MappedHgChangesetId inner value private 2022-03-21 10:58:18 -07:00
edenapi_service Copy file to another bubble using as little memory as possible. 2022-02-17 11:05:38 -08:00
filenodes third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
filestore Add filestore copy method 2022-02-17 11:05:38 -08:00
git third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
gotham_ext restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
hgproto restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
hook_tailer restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
hooks Update commitsizelimit to use 64bit 2022-03-21 10:36:39 -07:00
lfs_import rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
lfs_import_lib restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
lfs_protocol restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
lfs_server fix ipv6 address handling in LFS server 2022-03-17 08:48:06 -07:00
manifest restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
megarepo_api third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
mercurial make mononoke's mercurial bundle code use legacy zstd library 2022-03-17 10:16:32 -07:00
metaconfig Added DeletionMode + Ephemeral Store NewAdmin command outline 2022-03-21 15:37:30 -07:00
microwave third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
mononoke_api tests/utils: migrate to facet-based repos 2022-03-21 10:58:18 -07:00
mononoke_api_hg Support logging commit cloud commits uploaded via edenapi to scribe 2022-02-21 10:22:27 -08:00
mononoke_hg_sync_job changeset_fetcher: switch to ArcChangesetFetcher type 2022-02-17 03:18:15 -08:00
mononoke_types tools/admin: add redaction subcommand 2022-03-21 10:58:18 -07:00
mutable_counters restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
mutable_renames third-party: update tracing and related crates 2022-03-16 15:36:55 -07:00
newfilenodes Support TTLs in cachelib variant of caching_ext 2022-03-08 03:10:41 -08:00
observability restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
permission_checker restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
phases changeset_fetcher: switch to ArcChangesetFetcher type 2022-02-17 03:18:15 -08:00
pushrebase tests/utils: migrate to facet-based repos 2022-03-21 10:58:18 -07:00
pushrebase_mutation_mapping mononoke: set rewritedates: false to fix flakiness in save_mapping_pushrebase_hook test 2022-02-23 09:22:44 -08:00
quiet_stream restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
rate_limiting restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
reachabilityindex tests/utils: migrate to facet-based repos 2022-03-21 10:58:18 -07:00
regenerate_hg_filenodes blobrepo: use bonsai hg mapping method only 2022-02-14 00:49:20 -08:00
repo_attributes repo_cross_repo: add a new attribute to encapsulate cross repo state 2022-02-17 08:50:08 -08:00
repo_client Daily common/rust/cargo_from_buck/bin/autocargo 2022-02-24 01:42:53 -08:00
repo_factory Added DeletionMode + Ephemeral Store NewAdmin command outline 2022-03-21 15:37:30 -07:00
repo_import repo_import: switch to using a facet container instead of BlobRepo 2022-02-17 08:50:08 -08:00
revset changeset_fetcher: switch to ArcChangesetFetcher type 2022-02-17 03:18:15 -08:00
scs x2p get_env return an enum in rust 2022-03-21 13:28:39 -07:00
scs_server Use mutable renames in the commit diff method 2022-02-25 04:19:24 -08:00
segmented_changelog changeset_fetcher: switch to ArcChangesetFetcher type 2022-02-17 03:18:15 -08:00
server treat client disconnections separately to failures 2022-03-04 08:13:05 -08:00
sshrelay restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
statistics_collector rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
streaming_clone restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
tests tools/testtool: port admin create-bonsai to the test tool 2022-03-21 10:58:18 -07:00
time_window_counter restore getdeps build (#109) 2022-02-11 01:42:04 -08:00
tools Added DeletionMode + Ephemeral Store NewAdmin command outline 2022-03-21 15:37:30 -07:00
tunables Fetch sitever for mutable renames from tunables 2022-03-08 03:10:41 -08:00
unbundle_replay bookmarks_movement: convert to using repo attributes 2022-02-17 08:50:07 -08:00
upload_globalrevs rename clap to clap-old in most of mononoke 2022-02-16 05:26:16 -08:00
walker mercurial_derived_data: make MappedHgChangesetId inner value private 2022-03-21 10:58:18 -07:00
Cargo.toml changesets_creation: separate code to save new changesets to its own crate 2022-03-21 10:58:18 -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: