Summary:
Similarly to what is done for FUSE and ProjectedFS, the dispatcher is the glue
that sits in between the protocol specific bits and the inodes layer.
For now, this only implements "getattr" but it will be filled overtime as more
RPC can be answered properly.
Reviewed By: kmancini
Differential Revision: D26389795
fbshipit-source-id: 19cf3457feec2ebc100e632cb28c20b11fdde26d
Summary: This merely adds the various datastructures needed to implement GETATTR.
Reviewed By: kmancini
Differential Revision: D26389794
fbshipit-source-id: bda557a21386483449c18aa9e52f4f626b73e69f
Summary: A show-build-dir subcommand. Possibly useful for building a project and then running only one test or benchmark binary directly.
Reviewed By: wez
Differential Revision: D26502869
fbshipit-source-id: 0d8f6c42a2bbeb2440503a39c7fc770e3b3e4fff
Summary:
This was added in D26387205 (ca1249c269) to make the treemanifest store usage look
more like the file store usage, but it appears to cause read-after-write
failures. I'm not sure exactly why, but I think it's because something takes a
reference to the old store and writes to it, then something else reads from the
new store. Or vice versa.
Either way, reverting these three lines fixes it.
Reviewed By: singhsrb
Differential Revision: D26497708
fbshipit-source-id: e9afabed8d5f800260e647d5ed1513eed0bc60cd
Summary: Let's treat them like any other ids.
Reviewed By: StanislavGlebik
Differential Revision: D26453408
fbshipit-source-id: fb01bf9ca8871a147a41dded7eed6e3360466a44
Summary: just some boilerplate to make the use from SCS code clean and easy
Reviewed By: StanislavGlebik
Differential Revision: D26453406
fbshipit-source-id: efc280e0be14c3e0f145a489a9fd77b5c0eefa58
Summary: backfill_git_mapping was great for backfilling git mappings, let's use it for svn
Reviewed By: StanislavGlebik
Differential Revision: D26453407
fbshipit-source-id: 3ee61722ac729af5a2fc4187fda3341069bb53f6
Summary: now that we have the bonsai svn mapping let's thread it through blobrepo
Reviewed By: StanislavGlebik
Differential Revision: D26453409
fbshipit-source-id: 4100a9b16ffb3186735e20a766a1ef486d3c26c5
Summary:
Bonsai svnrev mapping will allow us to store the original svn revision number for repos that
were imported from svn at some point in time. This will allow scs_server to
easily respond to queries about commits identified by them.
The code is mostly copypasta from globalrevs
Reviewed By: krallin
Differential Revision: D26424833
fbshipit-source-id: 9825de52c23ab9386de1a9d0e0a9506c0a035a8a
Summary: This diff introduces a Python checkoutplan, which will be used later for Python code to interact with the Rust checkout infrastructure
Reviewed By: DurhamG
Differential Revision: D26437080
fbshipit-source-id: fe3517f4e2f15244a7c2cd290a41394e904db51b
Summary: This diff exposes treemanifest for public use and introduce method to borrow underlyning manifest for usage in rust
Reviewed By: DurhamG
Differential Revision: D26437079
fbshipit-source-id: d2d6cd2a4d1f108881d985932a36d48fed4b238d
Summary: This is most universal/flexible interface
Reviewed By: quark-zju
Differential Revision: D26410641
fbshipit-source-id: cae74675f89c0c1c05c84331c3ce0e78fd0b0b2f
Summary:
We rely on puts to the blobstore setting the generation number on chunks to ensure that there cannot be a race between puts, marks and deletes.
While not doing so should be harmless assuming mark is bug-free, we should still update the generation number on all referenced chunks when we elide a write, so that mark knows to ignore this chunk for now.
Reviewed By: mitrandir77
Differential Revision: D26469954
fbshipit-source-id: 32decedc69c8d4dcb1071a622b28e98ee36ea238
Summary: The latest libc has fixes for compiling on the M1 mac, let's update it.
Reviewed By: dtolnay
Differential Revision: D26476625
fbshipit-source-id: d9a997e69c428d53c51fc52353289a6510314c50
Summary:
This allows to create a changeset clone with p1 changed. Essentially, this is a
bonsai-only rebase without any safety checks. The safety of this operation
(i.e. the usability of the resulting changeset) is highly dependent on the
context the ultimate responsibility is on the person running this command. For
instance, this does not do *any conflict checks*. As such, this is really only
useful to rebase additions/deletions/modifications of unchanged files.
Reviewed By: StanislavGlebik
Differential Revision: D25947017
fbshipit-source-id: 4093c432e4f8ba2a647ee4b17c6840c33d13be81
Summary:
krallin noted that this test takes 60 seconds to finish. This happens because
of r2d2 connection timeout - by default it's 30 seconds, and
fast_validate_repository test fails while we are trying to get git connection.
Instead of failing immediately it waits for 30 seconds (I looked into r2e2
implementation - when trying to get a connection it waits on a condition variable which never gets
notified because of a failure).
to mitigate the issue let's return Result<..., Error> now
Reviewed By: krallin
Differential Revision: D26462872
fbshipit-source-id: 93bb38da20459dca4e3737352ab3b638e8e88a84
Summary:
Sort works differently on OSX. Let's set the locale in this case to get
consistent sorting across platforms.
Reviewed By: quark-zju
Differential Revision: D26438678
fbshipit-source-id: 80a5c758795fd9675b8b2b658521c0e9d6807366
Summary: There was unlimited `try_join_all` call during parents_check. With a big number of parents to check (i.e. `6fa5806aefccf8f6c5500d943ce214f1aaf170ce` in www) it may affect performance. In case of S3 blobstore it leads to huge increase of TCP connections. Let's limit it to 100 concurrent futures.
Reviewed By: krallin
Differential Revision: D26455123
fbshipit-source-id: 6d84831ea0de437527e1abd234a05ca4ba03c01d
Summary: This could be nice to log in Pushrebase. Right now we just log how many times we attempted it.
Reviewed By: krallin
Differential Revision: D26453550
fbshipit-source-id: 3aa49ccbbda387e9299b0a1673ac1b0bb0ecc8d3
Summary:
There was a memory leak in EdenAPI server caused by cloning `rctx` and
passing it into the error logging task. D26451527 (de46828572) fixed the memory leak.
Add a comment to warn others so that the memory leak isn't reintroduced.
Reviewed By: farnz
Differential Revision: D26459153
fbshipit-source-id: e6b5a97e511144f93dfdd29caa6f4c92d54be957
Summary:
There are existing metrics within blobimport, but it is not exported. Also there is scuba logging during commit which we can use to monitor backup blobimport process for large repos, which cause some trouble.
In the next diff in the stack I'm updating tw spec to add thrift port.
Reviewed By: StanislavGlebik
Differential Revision: D26452381
fbshipit-source-id: f5f0056760673e323d4e327327479ca5c95ff15c
Summary: We would like to consistently rate limit a percentage of hosts from a specific tier expressed as a subset of identities.
Reviewed By: krallin
Differential Revision: D26312370
fbshipit-source-id: d3fc9e892a8c9f62e22b079fa947a85078831687
Summary:
Over time EdenAPI server anonymous memory usage has been increasing in
line with the number of requests served. This is due to references to
`RequestContext` outliving the lifetime of a request, causing the contained
data to never be dropped.
`RequestContext::new()` spawns a task that is used for logging errors. The task
uses a clone of `RequestContext` and then loops over the messages received on
`error_rx`. However, the only way for `error_rx.next()` to return `None` is for
`error_tx` to be dropped which happens when `RequestContext` is dropped. As the
task has cloned `RequestContext`, `error_tx` won't be dropped whilst the task
is running. As a result, `RequestContext` won't get dropped until the server
shuts down.
Update `new()` to only clone the logger rather than an entire `RequestContext`.
Reviewed By: mzr
Differential Revision: D26451527
fbshipit-source-id: 535ed53d76830df7a5c98694b4293260b7d677cf
Summary:
Like it says in the title. This adds support for enabling slab rebalancing
that targets an even eviction age across all slabs, instead of trying to
maximize hit rate. It also lets us rebalance more often (right now we do it
every 5 minutes).
Reviewed By: HarveyHunt
Differential Revision: D26424323
fbshipit-source-id: a90e5a6b08cdfb01b5be8f995002bb5d5a38c4a2
Summary:
Timeseries is memory intensive and not really required in the current context
it is being used.
Reviewed By: chadaustin
Differential Revision: D26315632
fbshipit-source-id: ee51c3ad8bef6fce152aa787c8c4602f0b499f92