It's hard to say here if we're talking about the same thing, but
here's how I would do it:

 * Updates go through to the backend, which stores write deltas in ram
(not the total).
 * Reads read-through memcache into the datastore.
 * The backend writes deltas to the datastore in batch, updating
memcache, then purging the delta from memory.
 * The backends can write once every 5 mins or 30s or however long
you're comfortable having read data be stale.  More freshness == more
datastore expense.  It's a simple dial.

This system is not limited by backend RAM since each backend stores
only deltas - you can probably run the smallest size.  It won't be
limited by read volume, which will come almost entirely from memcache.
 It will be limited by max request throughput on the backend.  Given
the update is practically a no-op, how many QPS can a single backend
serve?  That's your limit (times the number of backends running).

I think you'd be hard-pressed to find a better solution to this
problem on GAE.  It does require that reads be stale to with a
controlled bound, though.

Jeff

On Thu, Sep 29, 2011 at 5:47 AM, Peter Dev <dev133...@gmail.com> wrote:
> Price:
> - with backends lets say 3 B2 machines = 350USD/Month
> - UrlFetch Data Sent/Received                         0,15USD/GB
>
> Limit:
> - URL Fetch Daily Limit 46,000,000 calls
>  this can be a problem...but I see it is possible to request an
> increase
>
> Write data parallel in DB: Task Queue with rate every 30second could
> be a solution
> (check timestamps in cache and write in DB)
>
> RESET counters = empty cache in Backends & reset counter of object in
> DB
>
> Backends cache = HashMap with shared counter values
> or
> counter values without sharding
> (just increment value in java hashmap is fast enough)
>
> With backends we don’t need sharding I think....what do you think? Thx.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine for Java" group.
> To post to this group, send email to google-appengine-java@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to