アプリケーション(シングルクライアント)をマルチテナントアプリケーションに変換しています。
以前は、いくつかの設定(めったに変更されない/非常に頻繁にアクセスされる)をグローバル変数(ハッシュ)に格納していました。このグローバル変数の値は、アプリケーションの起動時にDBから取得されました。明らかに、これらの設定はクライアント/テナントに固有です。
現在、いくつかのオプションが表示されていますが、どれも適切ではないようです。
- グローバルハッシュを保持しますが、テナントの概念を導入します
$global[:client1][:settingX]
が、これは良い/スケーラブル/安全ではありません - 毎回DBを呼び出しますが、パフォーマンスが低下することを恐れています(DBへの追加の呼び出しは最大40回)
Memcacheでできることはありますか?しかし、オプションからどこから始めればよいのかわかりません。
注:アプリケーションはHerokuでホストされています