世界中のさまざまな都市のリアルタイムの気温データを 10 分ごとに収集するアプリがあるとします。
次の GAE データストア モデルを使用すると、
class City(db.Model):
name = db.StringProperty()
class DailyTempData(db.Model):
date = db.DateProperty()
temp_readings = db.ListProperty(float, indexed=False) # appended every 10 minutes
そして cron.yaml など、
cron:
- description: read temperature
url: /cron/read_temps
schedule: every 10 minutes
私はすでに GAE のデータストア書き込み用の 1 日あたりの無料クォータに達しており、この問題を回避する方法を探しています。
毎日の終わりにのみ温度データを永続化することで、データストアへの書き込みを減らすことを考えています。これにより、(各都市の) 1 日あたりの書き込み量が 144 回から 1 回に効果的に減少します。
これを行う 1 つの方法は、memcache を一時的なスクラッチパッドとして使用することですが、データがランダムに削除される可能性があるため、その日のすべてのデータが失われる可能性があります。(質問はさておき: 経験上、計画外の立ち退きは実際にどのくらいの頻度で発生しますか?)
質問は次のとおりです。
- 説明されているように、データストアへの書き込みを減らすことができるようなメモリ/ストレージ機能 (cron ジョブ全体で永続的かつ保証されている) はありますか?
- そうでない場合、代替ソリューションは何ですか?
他の唯一の要件は、温度の読み取り値が (クライアント側に提供するために) いつでもアクセスできる必要があることです。