sbtがpomやjarを解決する際の無駄なhttpアクセス

改善されてくれ! (sbtというよりivyのほうが悪い可能性ありそうだけど)
3
KAWACHI Takashi @kawachi

sbt update の通信を眺めてた。 .pom がある resolver を見つけたあと、 .pom.sha1 は .pom と同じサーバに最初から問い合わせてるけど、 .jar はまた最初の resolver から舐めてる pic.twitter.com/ewMIt7KgJe

2015-10-10 00:18:04
拡大
KAWACHI Takashi @kawachi

ホストまでの距離もあるけど、.pom や .pom.sha1 は HEAD しないでいきなり GET のほうがいいんじゃないかなあ

2015-10-10 00:19:08
KAWACHI Takashi @kawachi

repo.typesafe.comdl.bintray.com に 302 で飛ばされるのだけど、200ms ずつくらい地味に効いてくる。しかも Keep-Alive きかない。 302 だから?

2015-10-10 00:21:25
KAWACHI Takashi @kawachi

.pom.sha1 を取りに行く時になぜか HEAD -> 200, HEAD -> 200, GET -> 200 と HEAD が2つ走ってる。なぞい

2015-10-10 00:25:09
Kenji Yoshida @xuwei_k

maven centralがhttp2に対応したりしないんですかね(対応したとしてどのくらい効果あるのか知らんけど)

2015-10-10 00:28:45
がくぞ @gakuzzzz

そういえばsbtのupdate、米国だけど速いけど日本だと遅いとかそういうのあるのかな?

2015-10-10 00:31:07
Toshiyuki Takahashi @tototoshi

なるほどmaven centralからのダウンロードが遅いならmaven centralの近くに引っ越せばいいのか

2015-10-10 00:32:03
KAWACHI Takashi @kawachi

repo.typesafe.comrepo.scala-sbt.org の 302 redirect が削れると少しは速くなりそう。二回目以降は直接 dl.bintray.com へ問い合わせられたらなー

2015-10-10 00:33:05
がくぞ @gakuzzzz

そういえば Play1 だとどのartifactがどのresolverにあるのか明示してた気がする。手間だったけど余計なリクエスト減らせるという意味ではよかったのかな

2015-10-10 00:33:39
KAWACHI Takashi @kawachi

update の最初で resolvers の中でリダイレクトするやつを洗い出してリダイレクト先につなぐようにするには [検索]

2015-10-10 00:37:42
KAWACHI Takashi @kawachi

例えばこの ivy.xml と ivy.xml.sha1 の取得ですが、現状合計 2134ms です。 redirect を除くと 1104ms になります。 pic.twitter.com/tdA4wGcAcM

2015-10-10 00:43:48
拡大
KAWACHI Takashi @kawachi

@kawachi HEAD しないで GET しちゃえば 445ms ということになります #とらぬ狸

2015-10-10 00:44:49
KAWACHI Takashi @kawachi

sbt professionals の方々がなんとかしてくれるのをお祈りしよう

2015-10-10 00:46:30
山本ユースケ™️ @yusuke

@xuwei_k セキュリティ的にもhttpは廃止してほしいですよねー

2015-10-10 00:47:53
KAWACHI Takashi @kawachi

あと分かるのは、resolvers は先頭からトライするっぽいので、ヒットしやすい resolver を先に持ってきたほうがいいですね。repo.typesafe.com, repo.scala-sbt.org が先頭なのは果たして良いのだろうか?

2015-10-10 01:05:16
KAWACHI Takashi @kawachi

@kawachi repo1.maven.org のほうが先にあったほうがヒット高いかも?

2015-10-10 01:06:48
∃ugene 🥙yokot∀ @eed3si9n_ja

.@kawachi この近辺の改善したいという案件は Network API と呼んでます。あとオーストラリアから異様に遅いらしい問題は Help the Australian problem と呼んでいます。 - github.com/sbt/sbt/issues…

2015-10-10 03:10:49