Hi Brett,

This is a reasonable suggestion for subscribers particularly given the
error rates that I was seeing before this week.

However our implementation of the hub is still experiencing high
latency (> 3000 ms) since monday on even the simple publish ping and
failure rates of 15 % on push_event. The errors are all related to
DataStore timeouts, contention, failures.

/work/pull_feeds
2164     24%

/work/push_events
932      15%

/
487      6.7%

/work/subscription_cleanup
27       4.8%

/work/event_cleanup
26       4.6%

/work/poll_bootstrap
3        2.4%

If you have any way to determine why our instance is performing so
poorly this week on google appengine I would appreciate it. We are
currently live and preparing to find an alternative to this service.

appID : bringit-pshb-test-1


On Sep 17, 12:52 pm, Brett Slatkin <[email protected]> wrote:
> Yep that's been frustrating. Looks much better now. There's always
> going to be some errors in the hub like this which means we may repeat
> delivery for some feeds. That's why it's essential for subscribers to
> use feed entry IDs (in Atom and RSS2) to de-dupe feed entries. Such
> idempotent behavior means it's a waste of bandwidth but causes no
> other side-effects.
>
>
>
> On Wed, Sep 15, 2010 at 4:45 PM, pkarp <[email protected]> wrote:
> > Hello,
>
> > The Appengine Datastore has been throwing lots of timeout and
> > contention errors these last couple of days (9/14, 9/15) due to
> > latency spikes. One error in particular has resulted in duplicate
> > items getting pushed to subscribers.
>
> > At the end of a push_event, after all the subscribers have been
> > notified a datastore Delete is performed. When this error occurs the
> > hub attempts to process the push_event again resulting in duplicate
> > items getting sent to subscribers. Even though the datastore has given
> > up performing
>
> > The push_event log entries include the normal debug messages
> > concluding with the following:
>
> > EventToDeliver complete: ...  delivery_mode = normal
>
> > too much contention on these datastore entities. please try again.
> > Traceback (most recent call last):
> >  File "/base/python_runtime/python_lib/versions/1/google/appengine/
> > ext/webapp/__init__.py", line 513, in __call__
> >    handler.post(*groups)
> >  File "/base/data/home/apps/bringit-pshb-test-1/1-0-alpha.
> > 343674745300678296/main.py", line 648, in decorated
> >    return func(myself, *args, **kwargs)
> >  File "/base/data/home/apps/bringit-pshb-test-1/1-0-alpha.
> > 343674745300678296/main.py", line 2672, in post
> >    work.update(more_subscribers, failed_callbacks)
> >  File "/base/data/home/apps/bringit-pshb-test-1/1-0-alpha.
> > 343674745300678296/main.py", line 1544, in update
> >    self.delete()
> >  File "/base/python_runtime/python_lib/versions/1/google/appengine/
> > ext/db/__init__.py", line 940, in delete
> >    datastore.Delete(self.key(), rpc=rpc)
> >  File "/base/python_runtime/python_lib/versions/1/google/appengine/
> > api/datastore.py", line 397, in Delete
> >    raise _ToDatastoreError(err)
> > TransactionFailedError: too much contention on these datastore
> > entities. please try again.

Reply via email to