sapling/eden/mononoke
Liubov Dmitrieva e32102a1f1 skeleton lookup and upload API for files
Summary:
Files upload will be executed in 2 stages:

* check if content is already present
* upload missing files

The check api is generic, it could be used for any id type. Called 'lookup' API.

Reviewed By: markbt

Differential Revision: D28708934

fbshipit-source-id: 654c73b054790d5a4c6e76f7dac6c97091a4311f
2021-06-04 10:11:25 -07:00
..
admin thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
aliasverify thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
alpn rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
backfill_derived_data Do not alter rate limit inside derived data utils 2021-05-24 11:43:01 -07:00
benchmark_filestore thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
benchmarks Create InnerRepo container 2021-06-03 10:53:24 -07:00
blobimport manifold/client: take IOBufShared data as input for writes 2021-05-19 09:57:20 -07:00
blobimport_lib thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
blobrepo Use filenodes where available to speed up derived data for merges 2021-06-03 02:33:40 -07:00
blobrepo_utils mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
blobstore third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
blobstore_healer third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
blobstore_sync_queue mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
bonsai_git_mapping mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
bonsai_globalrev_mapping thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
bonsai_hg_mapping thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
bonsai_svnrev_mapping thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
bookmarks third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
bulkops mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
cache_warmup mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
changesets thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
cmdlib mononoke: option for how far back to peek at blobstore queue when scrubbing 2021-05-21 05:21:18 -07:00
cmds Make copy_blobstore_keys tool copy keys between inner blobstores 2021-06-04 09:27:26 -07:00
commit_rewriting mononoke: fix typos 2021-06-04 08:57:20 -07:00
common third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
derived_data Don't look at filenode history when they're both the same 2021-06-03 04:11:04 -07:00
edenapi_server mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
edenapi_service skeleton lookup and upload API for files 2021-06-04 10:11:25 -07:00
fastreplay Update to Rust 1.52.1 2021-05-19 22:13:47 -07:00
filenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
filestore thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
git mononoke: fix typos 2021-06-04 08:57:20 -07:00
gotham_ext Daily common/rust/cargo_from_buck/bin/autocargo 2021-05-25 17:03:52 -07:00
hgcli add compression support 2021-05-20 10:22:56 -07:00
hgproto rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
hook_tailer mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
hooks mononoke/hooks: add bonsai hash logging 2021-06-03 02:51:11 -07:00
lfs_import thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
lfs_import_lib thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
lfs_protocol rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_server mononoke/lfs_server: include oid in ObjectCannotBeSynced error 2021-06-01 02:57:07 -07:00
load_limiter rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
manifest rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
megarepo_api obtain repo without doing ACL checks 2021-06-03 12:32:54 -07:00
mercurial thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
metaconfig mononoke: sample harder in the walker 2021-05-06 07:07:02 -07:00
microwave Use InnerRepo on WarmBookmarksCache instead of BlobRepo 2021-06-03 10:53:24 -07:00
mononoke_api third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
mononoke_api_hg skeleton lookup and upload API for files 2021-06-04 10:11:25 -07:00
mononoke_hg_sync_job Daily common/rust/cargo_from_buck/bin/autocargo 2021-05-25 17:03:52 -07:00
mononoke_types third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
mutable_counters mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
newfilenodes thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
observability rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
permission_checker option to enforce authN 2021-05-20 01:06:04 -07:00
phases thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
pushrebase mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
pushrebase_mutation_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
quiet_stream mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
reachabilityindex Create InnerRepo container 2021-06-03 10:53:24 -07:00
regenerate_hg_filenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
repo_attributes megarepo_api: introduce a MegarepoApi struct to rule them all 2021-05-12 12:00:20 -07:00
repo_client third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
repo_factory Create InnerRepo container 2021-06-03 10:53:24 -07:00
repo_import reenable -debuginfo packages 2021-05-24 02:04:36 -07:00
revset mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
scs change the return format of poll requests to include the request result 2021-06-02 01:40:52 -07:00
scs_server mononoke: check if write is allowed before calling megarepo methods 2021-06-04 08:28:08 -07:00
segmented_changelog thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
server third-party/rust: update time to 0.2 2021-06-03 13:52:54 -07:00
sshrelay add compression support 2021-05-20 10:22:56 -07:00
statistics_collector thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
streaming_clone mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
tests Make copy_blobstore_keys tool copy keys between inner blobstores 2021-06-04 09:27:26 -07:00
time_window_counter rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
tunables mononoke: allow deriving data in parallel for independent commits 2021-06-03 02:23:15 -07:00
unbundle_replay thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
upload_globalrevs thrift/lib/rust: update to Bytes 1.x 2021-05-20 09:44:41 -07:00
walker mononoke: log checkpoint_name in walker pack info logging 2021-06-03 08:27:50 -07:00
Cargo.toml Move InnerRepo to different target 2021-06-03 10:53:24 -07: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