node.js を使用して、EC2 Micro インスタンスの Firebase に大量のデータを集約しています。このアプリは、写真の多くのソースをスキャンし、URL、サイズ、出所、「いいね」など、各写真に関するメタデータの Firebase を維持します。
また、いくつかの集計インデックスを更新しています (日付別、いいね! など)。実際のコードは非常に単純です。
var db = new Firebase('https://my.firebaseio.com')
// Whenever the aggregator updates a photo, update the popularity inedx
db.child('photos').on('child_changed', function(snapshot) {
var instagram = snapshot.child('likes/instagram').val() || 0,
facebook = snapshot.child('likes/facebook').val() || 0,
likes = instagram + facebook
// Update popularity index
db.child('index/popularity').child(snapshot.name()).setWithPriority(true, likes)
})
私のインスタンス (t1.micro) には 615 MB の RAM しかないため、photos
更新中に Firebase がコレクションのすべての子をキャッシュするため、RAM が不足しています。
Firebase がメモリ内キャッシュで利用可能なすべての RAM を使い果たすのを防ぐ方法はありますか?