web-dev-qa-db-ja.com

Slick 3.0はデータベースドライバーレベルでリアクティブ/非同期ですか?どのデータベース用ですか?

Slickはこれまで、クエリへの応答でソケットI/Oの待機を内部的にブロックするJDBCドライバーに依存してきました。すべての未処理のデータベース呼び出しには、ソケットでブロックするスレッドが必要です。したがって、ReactiveMongo、postgresql-async、mysql-asyncと同じ意味では、実際には反応しません。これらは、ずっと非同期です。

Slick 3.0では、この点に関して何か変更がありますか?それとも私はこれについて混乱していますか?

28
Ed Staub

ドライバーレベルまで非同期ではありませんが、それは問題ではありません。適切な設定では、データベース接続を待機しているブロッキングスレッドの数は少ないはずです。したがって、それらは多くのリソースを消費しません。 Slickはそれらを管理し、ブロックするスレッドを独自のスレッドプールにスケジュールするため、計算の邪魔になりません。 「ネイティブ」非同期ドライバーは、おそらくマイナーなスピードアップを追加しますが、メジャーなスピードアップは追加しません。 Slickは、将来のある時点でそれをサポートする可能性があります。 「リアクティブ」の主な利点は、Slickが3.0ですでに実装していることです。より詳細な説明はここにあります: https://www.parleys.com/tutorial/reactive-slick-database-programming

27
cvogt