ensure only single origin Get request is in flight per hash. protects against thundering herd. #45

Merged
lyoshenka merged 5 commits from thundering_herd into master 2020-10-15 03:16:35 +02:00
Showing only changes of commit f043516a14 - Show all commits

View file

@ -93,6 +93,19 @@ func reflectorCmd(cmd *cobra.Command, args []string) {
}
blobStore = store.NewDBBackedStore(blobStore, db)
//this shouldn't go here but the blocklist logic requires the db backed store to be the outer-most store for it to work....
//having this here prevents uploaded blobs from being stored in the disk cache
if !disableUploads {
reflectorServer = reflector.NewServer(blobStore)
reflectorServer.Timeout = 3 * time.Minute
reflectorServer.EnableBlocklist = !disableBlocklist
err = reflectorServer.Start(":" + strconv.Itoa(receiverPort))
if err != nil {
log.Fatal(err)
}
}
}
if reflectorCmdCacheDir != "" {
@ -103,16 +116,6 @@ func reflectorCmd(cmd *cobra.Command, args []string) {
blobStore = store.NewCachingBlobStore(blobStore, store.NewDiskBlobStore(reflectorCmdCacheDir, 2))
}
if !disableUploads {
reflectorServer = reflector.NewServer(blobStore)
reflectorServer.Timeout = 3 * time.Minute
reflectorServer.EnableBlocklist = !disableBlocklist
err = reflectorServer.Start(":" + strconv.Itoa(receiverPort))
if err != nil {
log.Fatal(err)
}
}
peerServer := peer.NewServer(blobStore)
err = peerServer.Start(":" + strconv.Itoa(tcpPeerPort))
if err != nil {