You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Transactions are commited in CommitRequest.NON_TRANSACTIONAL mode #903
We've seen two copies of the archived_entity for the same entity. We've managed to reproduce it with two threads performing this concurrently (running separate Connections each, because httplib2 is not thread safe).
We managed to get the correct behaviour by plumbing through Transaction#id through Batch#commit. The result is that the above test code works as intended: one thread doest the complete transaction, the other one gets:
Also, this currently has a very clunky API, since there is no ConcurrentModificationException. This means that the opportunistic concurrency model of Datastore is poorly exposed to the end user.
RE: "opportunistic concurrency model of Datastore is poorly exposed to the end user." we expect the error status codes and error messages from the Datastore API (the RPC service) to be useful. If there are issues where they aren't useful, we should take it up with the API folks.
The ConcurrentModificationException in App Engine corresponds to one of these RPC statuses.
@mwitkow-io https://github.com/mwitkow-io Also I'd love to chat about
lack of thread-safety in httplib2 and how you address it. Want to hop on
a video chat?
We actually don't require use of it, but this is not at all clear from our
docs (and may never be).
—
Reply to this email directly or view it on GitHub #903 (comment)
.
Invite sent for 4pm your time (if you're free). I assumed you use the email listed on your GitHub profile. If 4pm doesn't work I gave you edit privileges on the event.
Invite sent for 4pm your time (if you're free). I assumed you use the
email listed on your GitHub profile. If 4pm doesn't work I gave you edit
privileges on the event.
—
Reply to this email directly or view it on GitHub #903 (comment)
.
Activity
mwitkow commentedon Jun 1, 2015
We managed to get the correct behaviour by plumbing through
Transaction#idthroughBatch#commit. The result is that the above test code works as intended: one thread doest the complete transaction, the other one gets:I think the right solution here would be to catch it in the
Transaction#commitand rethrow it asConcurrentModificationException.Merge pull request #904 from tseaver/903-pass_xact_id_during_commit
mwitkow commentedon Jun 1, 2015
What's the ETA on a version that supports it? :)
Also, this currently has a very clunky API, since there is no
ConcurrentModificationException. This means that the opportunistic concurrency model of Datastore is poorly exposed to the end user.dhermes commentedon Jun 4, 2015
@mwitkow-io I'm going to cut a release today (or tomorrow).
dhermes commentedon Jun 4, 2015
RE: "opportunistic concurrency model of Datastore is poorly exposed to the end user." we expect the error status codes and error messages from the Datastore API (the RPC service) to be useful. If there are issues where they aren't useful, we should take it up with the API folks.
The
ConcurrentModificationExceptionin App Engine corresponds to one of these RPC statuses.dhermes commentedon Jun 4, 2015
@mwitkow-io Also I'd love to chat about lack of thread-safety in
httplib2and how you address it. Want to hop on a video chat?We actually don't require use of it, but this is not at all clear from our docs (and may never be).
dhermes commentedon Jun 4, 2015
@mwitkow-io Also I'd love to chat about lack of thread-safety in
httplib2and how you address it. Want to hop on a video chat?We actually don't require use of it, but this is not at all clear from our docs (and may never be).
mwitkow commentedon Jun 4, 2015
Sure thing, would be great to chat!
I'm in London though, so 8h diff to MTV. 5pm tomorrow BST? Please send a
call invite :-)
On Thu, 4 Jun 2015 18:47 Danny Hermes notifications@github.com wrote:
dhermes commentedon Jun 4, 2015
Invite sent for 4pm your time (if you're free). I assumed you use the email listed on your GitHub profile. If 4pm doesn't work I gave you edit privileges on the event.
mwitkow commentedon Jun 4, 2015
Thanks, that works great :-)
On Thu, 4 Jun 2015 19:16 Danny Hermes notifications@github.com wrote:
Adding system test for datastore failed transactions.
Adding system test for datastore failed transactions.
chore(deps): update all dependencies (#903)
chore(deps): update all dependencies (#903)
chore: add experimental async data client (#920)
chore(deps): update dependency google-api-core to v1.28.0 (#903)
chore(main): release 1.9.0 (#903)
fix: __repr__ method in vector.py (#903)
fix: Added type hints to CloudLoggingHandler constructor (#903)
fix: Added type hints to CloudLoggingHandler constructor (#903)
chore: release 2.3.3 (#903)
chore: add experimental async data client (#920)
Docs: Add comment to setup.py (#905)
fix: Update Django Official Link to drop 2.2 and support 4.2 (#903)
chore(python): upgrade gcp-releasetool in .kokoro [autoapprove] (#903)