sapling/eden/mononoke
Alex Hornby 2ff9ad0fea rust: async sql queries macros
Summary:
Async the query macros.  This change also migrates most callsites, with a few more complicated ones handle as separate diffs, which temporarily use sql01::queries in this diff.

With this change the query string is computed lazily (async fn/blocks being lazy) so we're not holding the extra memory of query string as well as query params for quite as long.  This is of most interest for queries doing writes where the query string can be large when large values passed (e.g. Mononoke sqlblob blobstore )

Reviewed By: krallin

Differential Revision: D26586715

fbshipit-source-id: e299932457682b0678734f44bb4bfb0b966edeec
2021-03-04 01:52:41 -08:00
..
alpn autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
benchmark autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
blobimport_lib autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
blobrepo rust: async sql queries macros 2021-03-04 01:52:41 -08:00
blobrepo_utils common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
blobstore rust: async sql queries macros 2021-03-04 01:52:41 -08:00
blobstore_sync_queue rust: async sql queries macros 2021-03-04 01:52:41 -08:00
bonsai_git_mapping rust: async sql queries macros 2021-03-04 01:52:41 -08:00
bonsai_globalrev_mapping rust: async sql queries macros 2021-03-04 01:52:41 -08:00
bonsai_hg_mapping rust: async sql queries macros 2021-03-04 01:52:41 -08:00
bonsai_svnrev_mapping rust: async sql queries macros 2021-03-04 01:52:41 -08:00
bookmarks rust: async sql queries macros 2021-03-04 01:52:41 -08:00
bulkops common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
cache_warmup autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
changesets rust: async sql queries macros 2021-03-04 01:52:41 -08:00
cmdlib mononoke: Don't create separate ConfigStore's in tests 2021-03-03 03:52:41 -08:00
cmds rust: async sql queries macros 2021-03-04 01:52:41 -08:00
commit_rewriting rust: async sql queries macros 2021-03-04 01:52:41 -08:00
common common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
derived_data common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
edenapi_server autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
edenapi_service autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
fastreplay mononoke: Don't create separate ConfigStore's in tests 2021-03-03 03:52:41 -08:00
filenodes autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
filestore common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
git Better GitRepo name in gitimport logs. 2021-03-01 09:54:07 -08:00
gotham_ext autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
hgcli autocargo v2: rollout and replace v1 in all use-cases 2021-03-02 06:43:29 -08:00
hgproto autocargo v2: documentation and config update before rollout 2021-03-02 06:43:29 -08:00
hook_tailer autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
hooks mononoke/validate-owners: implement secure-owners check 2021-03-03 12:40:07 -08:00
lfs_import_lib autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
lfs_protocol Format fbsource with rustfmt-2.0.0-rc.2 2021-02-27 18:46:09 -08:00
lfs_server common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
load_limiter autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
manifest common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
mercurial rust: async sql queries macros 2021-03-04 01:52:41 -08:00
metaconfig autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
microwave autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
mononoke_api common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
mononoke_api_hg common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
mononoke_hg_sync_job rust: async sql queries macros 2021-03-04 01:52:41 -08:00
mononoke_types common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
mutable_counters rust: async sql queries macros 2021-03-04 01:52:41 -08:00
newfilenodes rust: async sql queries macros 2021-03-04 01:52:41 -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 autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
phases rust: async sql queries macros 2021-03-04 01:52:41 -08:00
pushrebase common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
reachabilityindex common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
regenerate_hg_filenodes autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
repo_client rust: async sql queries macros 2021-03-04 01:52:41 -08:00
repo_import common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
revset autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
scs_server scs: add stub implementation of megarepo svc 2021-02-24 07:45:12 -08:00
segmented_changelog rust: async sql queries macros 2021-03-04 01:52:41 -08:00
server change hipster action in check_if_trusted 2021-03-03 06:35:11 -08:00
sshrelay autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
tests mononoke: use darkstorm repo id as a counter repo id if specified 2021-03-03 12:03:53 -08:00
time_window_counter autocargo v1: reformating of oss-dependencies, workspace and patch sections and thrift files to match v2 2021-02-25 15:10:56 -08:00
tunables common/rust: use fbinit-tokio 2021-03-03 04:09:15 -08:00
unbundle_replay rust: async sql queries macros 2021-03-04 01:52:41 -08:00
walker rust: async sql queries macros 2021-03-04 01:52:41 -08:00
Cargo.toml common/rust: use fbinit-tokio 2021-03-03 04:09:15 -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