sapling/eden/mononoke
Liubov Dmitrieva 20ad5b713e support streaming for file uploads rather than buffering the whole content
Summary:
support streaming for file uploads rather than buffering the whole content

This is a preferable way for big files. We are currently using LFS endpoint instead for big files but not in snapshots.

Also, it we enable streaming, we have an option not to use LFS endpoint for file uploads in the future.

**[Land after hg release with D30100887 (fe8ed9d28c) has been fully rolled out]**

Reviewed By: yancouto

Differential Revision: D30158390

fbshipit-source-id: b62c498b8bdf23a5f413f6e4b71d7433906e4611
2021-08-12 07:41:30 -07:00
..
admin rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
aliasverify rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
alpn rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
backfill_derived_data rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
benchmark_filestore rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
benchmarks Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
blobimport rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
blobimport_lib rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
blobrepo mononoke: remove unused function 2021-08-12 01:10:40 -07:00
blobrepo_utils Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
blobstore Don't specify repoid when rewrapping RepoBlobstore 2021-08-11 07:34:08 -07:00
blobstore_healer rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
blobstore_sync_queue rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_git_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_globalrev_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_hg_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bonsai_svnrev_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bookmarks rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
bulkops rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
cache_warmup rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
changesets rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
cmdlib rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
cmds Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
commit_rewriting Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
common Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
derived_data Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
edenapi_server rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
edenapi_service support streaming for file uploads rather than buffering the whole content 2021-08-12 07:41:30 -07:00
fastreplay rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
filenodes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
filestore On lookup call, return file size metadata 2021-08-05 09:29:45 -07:00
git Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
gotham_ext rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
hgcli rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
hgproto mononoke: support reading streaming changelog chunks with tag 2021-08-10 05:13:54 -07:00
hook_tailer rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
hooks Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
lfs_import rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
lfs_import_lib rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
lfs_protocol rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
lfs_server rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
manifest rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
megarepo_api Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
mercurial rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
metaconfig rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
microwave rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
mononoke_api Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
mononoke_api_hg support streaming for file uploads rather than buffering the whole content 2021-08-12 07:41:30 -07:00
mononoke_hg_sync_job rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
mononoke_types Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
mutable_counters rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
newfilenodes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
observability rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
permission_checker rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
phases rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
pushrebase Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
pushrebase_mutation_mapping rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
quiet_stream rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
rate_limiting rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
reachabilityindex rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
regenerate_hg_filenodes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
repo_attributes rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
repo_client Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
repo_factory Delete RepoBlobstoreArgs 2021-08-10 06:09:23 -07:00
repo_import rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
revset rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
scs rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
scs_server Use safe cxx signature for metadata creation 2021-08-11 05:23:27 -07:00
segmented_changelog rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
server rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
sshrelay rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
statistics_collector rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
streaming_clone mononoke: use add_opt in streaming_clone 2021-08-11 13:51:57 -07:00
tests support streaming for file uploads rather than buffering the whole content 2021-08-12 07:41:30 -07:00
time_window_counter rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
tunables rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
unbundle_replay rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
upload_globalrevs rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -07:00
walker Use FileChange enum instead of Option<FileChange> 2021-08-11 08:56:40 -07:00
Cargo.toml rust: remove chashmap from cargo vendoring 2021-08-04 07:31:08 -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