これまで、MongoDB(Node.js + Mongoose)を使用してユーザーに属する投稿を保存し、後でそれらを取得してストリームに表示できるようにしました(Facebook、Twitterなど)。
最近、ユーザーが自分のストリームを深く検索できるようにすることが必要になりました。MongoDBの検索が不十分だったため、サーバーにElasticSearchを実装しました(CentOS、FWIWを実行しているAmazon EC2 m1.largeインスタンス)。
私の質問:MongoDB(ユーザーのストリームがキャッシュされる場所)とElasticSearch(検索される場所)の間でデータを複製しているところにいます。
キャッシュをElasticSearchに完全に移動し、MongoDBをすべて一緒に削除することに不利な点はありますか?ストレージを2倍にするのはもったいないようで、このデータにアクセスしている場所は他にありません(投稿のストリームを表示/検索するときにのみ使用されます)。
具体的には、パフォーマンスに関して何も見逃していないことを確認したいと思います。私はMongoDBをボトルネックとして減らすというアイデアが好きですが、ElasticSearchのメモリオーバーヘッドについて心配しています。MongoDBは、私のクラウドセットアップでは独自のサーバーで実行されますが、ElasticSearchはnode.jsと同じインスタンスで実行されます。これは、ElasticSearchサーバーがもっとあることを意味します(node.jsサーバーは自動スケーリング配列にあります)が、それぞれが専用サーバーではありません( MongoDBとは異なります)。