warm_bookmarks_cache: switch to BonsaiDerived::derive03

Reviewed By: krallin

Differential Revision: D24900121

fbshipit-source-id: abce207db0ef51797b278cd448fb41b5e54875cb
This commit is contained in:
Mark Juggurnauth-Thomas 2020-11-13 01:43:31 -08:00 committed by Facebook GitHub Bot
parent 26aaa544b0
commit 875754fda4
2 changed files with 30 additions and 38 deletions

View File

@ -694,7 +694,6 @@ mod tests {
use fixtures::linear;
use futures::future::TryFutureExt;
use futures_ext::FutureExt;
use futures_old::Future as OldFuture;
use maplit::hashmap;
use mutable_counters::SqlMutableCounters;
use sql_construct::SqlConstruct;
@ -717,9 +716,7 @@ mod tests {
assert_eq!(bookmarks, HashMap::new());
let master_cs_id = resolve_cs_id(&ctx, &repo, "master").await?;
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), master_cs_id)
.compat()
.await?;
RootUnodeManifestId::derive03(&ctx, &repo, master_cs_id).await?;
let bookmarks = init_bookmarks(&ctx, &repo, &warmers).await?;
assert_eq!(
@ -753,9 +750,7 @@ mod tests {
bookmark(&ctx, &repo, "master").set_to(new_master).await?;
master = new_master;
}
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), master)
.compat()
.await?;
RootUnodeManifestId::derive03(&ctx, &repo, master).await?;
let derived_master = master;
info!(ctx.logger(), "creating 5 more underived commits");
@ -773,9 +768,7 @@ mod tests {
hashmap! {BookmarkName::new("master")? => (derived_master, BookmarkKind::PullDefaultPublishing)}
);
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), master)
.compat()
.await?;
RootUnodeManifestId::derive03(&ctx, &repo, master).await?;
let bookmarks = init_bookmarks(&ctx, &repo, &warmers).await?;
assert_eq!(
bookmarks,
@ -795,9 +788,7 @@ mod tests {
let warmers = Arc::new(warmers);
let derived_master = resolve_cs_id(&ctx, &repo, "master").await?;
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), derived_master)
.compat()
.await?;
RootUnodeManifestId::derive03(&ctx, &repo, derived_master).await?;
for i in 1..50 {
let new_master = CreateCommitContext::new(&ctx, &repo, vec!["master"])
@ -830,9 +821,7 @@ mod tests {
.add_file("somefile", "content")
.commit()
.await?;
RootUnodeManifestId::derive(ctx.clone(), repo.clone(), derived_master)
.compat()
.await?;
RootUnodeManifestId::derive03(&ctx, &repo, derived_master).await?;
bookmark(&ctx, &repo, "master")
.set_to(derived_master)
.await?;
@ -1036,10 +1025,13 @@ mod tests {
if cs_id == failing_cs_id {
futures_old::future::err(anyhow!("failed")).boxify()
} else {
RootUnodeManifestId::derive(ctx, repo, cs_id)
.map(|_| ())
.from_err()
.boxify()
async move {
RootUnodeManifestId::derive03(&ctx, &repo, cs_id).await?;
Ok(())
}
.boxed()
.compat()
.boxify()
}
}
}),
@ -1115,15 +1107,14 @@ mod tests {
let repo = linear::getrepo(fb).await;
let ctx = CoreContext::test_mock(fb);
RootUnodeManifestId::derive(
ctx.clone(),
repo.clone(),
RootUnodeManifestId::derive03(
&ctx,
&repo,
repo.get_bonsai_bookmark(ctx.clone(), &BookmarkName::new("master")?)
.compat()
.await?
.unwrap(),
)
.compat()
.await?;
let derive_sleep_time_ms = 100;
@ -1135,15 +1126,14 @@ mod tests {
how_many_derived.with_write(|map| {
*map.entry(cs_id).or_insert(0) += 1;
});
tokio::time::delay_for(Duration::from_millis(derive_sleep_time_ms))
.map(|_| {
let res: Result<_, Error> = Ok(());
res
})
.compat()
.and_then(move |_| RootUnodeManifestId::derive(ctx, repo, cs_id).from_err())
.map(|_| ())
.boxify()
async move {
tokio::time::delay_for(Duration::from_millis(derive_sleep_time_ms)).await;
RootUnodeManifestId::derive03(&ctx, &repo, cs_id).await?;
Ok(())
}
.boxed()
.compat()
.boxify()
}
}),
is_warm: Box::new(|ctx, repo, cs_id| {

View File

@ -16,7 +16,6 @@ use futures::{
future::{FutureExt, TryFutureExt},
};
use futures_ext::FutureExt as OldFutureExt;
use futures_old::Future as OldFuture;
use mononoke_types::{ChangesetId, Generation};
use mutable_counters::MutableCounters;
use slog::info;
@ -109,10 +108,13 @@ async fn check_if_present_in_hg(
pub fn create_derived_data_warmer<D: BonsaiDerived>(ctx: &CoreContext) -> Warmer {
info!(ctx.logger(), "Warming {}", D::NAME);
let warmer: Box<WarmerFn> = Box::new(|ctx: CoreContext, repo: BlobRepo, cs_id: ChangesetId| {
D::derive(ctx, repo, cs_id)
.map(|_| ())
.map_err(Error::from)
.boxify()
async move {
D::derive03(&ctx, &repo, cs_id).await?;
Ok(())
}
.boxed()
.compat()
.boxify()
});
let is_warm: Box<IsWarmFn> =