sapling/eden/mononoke
Mateusz Kwapich 9fd7f0d2b4 improve the check for conflicts during insert
Summary:
Before we assumed that if the rows_affected length doesn't match the number of
entries we were trying to insert we have a conflict. Let's verify if we really
have conflict or we're trying to insert the same entry twice.

Reviewed By: krallin

Differential Revision: D20343219

fbshipit-source-id: 19e032439fdd65f5fe1afe1a10b401bc2fe33462
2020-03-10 05:47:05 -07:00
..
apiserver rust-shed: add no-op memcache_stub implementation to the shed 2020-03-10 01:07:46 -07:00
benchmark mononoke/microwave: add support for changesets 2020-03-05 11:57:43 -08:00
blobimport_lib/src mononoke/filestore: update store_bytes to chunk content 2020-03-06 07:43:07 -08:00
blobrepo mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
blobrepo_utils mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
blobstore blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -08:00
blobstore_sync_queue mononoke/blobstore_sync_queue: delete in smaller batches 2020-02-20 12:26:50 -08:00
bonsai_git_mapping improve the check for conflicts during insert 2020-03-10 05:47:05 -07:00
bonsai_globalrev_mapping rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
bonsai_hg_mapping rust-shed: add no-op memcache_stub implementation to the shed 2020-03-10 01:07:46 -07:00
bookmarks mononoke: change error of log messages 2020-03-06 10:24:24 -08:00
cache_warmup/src mononoke/cache_warmup: conditionally use microwave for faster warmup 2020-03-05 11:57:43 -08:00
changesets rust-shed: add no-op memcache_stub implementation to the shed 2020-03-10 01:07:46 -07:00
cmdlib mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
cmds mononoke/filestore: make FilestoreConfig Copy and pass it by value 2020-03-06 02:00:23 -08:00
commit_rewriting rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
common rust-shed: add no-op memcache_stub implementation to the shed 2020-03-10 01:07:46 -07:00
config_structs/repos mononoke/cache_warmup: conditionally use microwave for faster warmup 2020-03-05 11:57:43 -08:00
derived_data mononoke: allow to derive changeset info 2020-03-09 16:41:53 -07:00
edenapi_server/src rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
fastreplay/src mononoke/fastreplay: don't sample errors 2020-03-04 08:43:26 -08:00
filenodes mononoke/microwave: create repository snapshots for faster cache warmup 2020-03-04 04:02:18 -08:00
filestore/src mononoke/filestore: update store_bytes to chunk content 2020-03-06 07:43:07 -08:00
git mononoke/filestore: make FilestoreConfig Copy and pass it by value 2020-03-06 02:00:23 -08:00
gotham_ext/src rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
hgcli rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
hgproto rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
hook_tailer mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
hooks rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
lfs_import_lib/src mononoke: update internals to Bytes 0.5 2020-02-27 08:08:28 -08:00
lfs_protocol autocargo: Strip line comments 2020-02-26 16:31:52 -08:00
lfs_server/src mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
manifest rust: Rename tokio_preview:: to tokio:: 2020-03-05 14:25:10 -08:00
mercurial mercurial_types: add mock functions for generating commit IDs 2020-03-09 07:24:46 -07:00
metaconfig mononoke/cache_warmup: conditionally use microwave for faster warmup 2020-03-05 11:57:43 -08:00
microwave mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
mononoke_api/src mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
mononoke_types mononoke/filestore: update store_bytes to chunk content 2020-03-06 07:43:07 -08:00
newfilenodes rust-shed: add no-op memcache_stub implementation to the shed 2020-03-10 01:07:46 -07:00
phases rust-shed: add no-op memcache_stub implementation to the shed 2020-03-10 01:07:46 -07:00
pushrebase/src rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
reachabilityindex rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
repo_client mononoke: introduce BlobrepoBuilder 2020-03-09 12:05:57 -07:00
revset rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
scs_server/src rust: Rename tokio_preview:: to tokio:: 2020-03-05 14:25:10 -08:00
segmented_changelog/src rust: Rename futures_preview:: to futures:: 2020-03-03 11:01:20 -08:00
server mononoke: make sql_ext OSS buildable 2020-03-06 01:33:38 -08:00
sshrelay autocargo: Strip line comments 2020-02-26 16:31:52 -08:00
tests improve the check for conflicts during insert 2020-03-10 05:47:05 -07:00
walker/src mononoke: walker: add ability to walk all published bookmarks 2020-03-10 05:26:35 -07:00
Cargo.toml blobstore: cover more blobstores to make them OSS buildable 2020-03-06 01:33:38 -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