github.com/pbberlin/tools@v0.0.0-20160910141205-7aa5421c2169/dsu/ancestored_urls/doc.go (about) 1 /* Package ancestored_urls demonstrates updating and querying objects 2 with and without an *ancestor*. 3 4 Objects without ancestor can be inserted frequently. 5 But retrieval is not consistent. 6 Objects *with* an ancestor should be inserted < one per sec. 7 8 Both types of objects can be *updated* only 1/sec. 9 10 The ancestored objects can be consistently queried. 11 12 Queries to non-anchestor-attached objects are only eventually consistent, 13 except for queries by primary key. 14 15 If updates >> 1/sec are required, 16 then sharding is required. 17 18 If insert and updates are distributed, 19 make sure they are not "clustered" (concentrated) on a few "hot tablets". 20 http://stackoverflow.com/questions/3251188/scalability-of-concurrent-writes-to-app-engine-datastore 21 22 The auto-generated IDs are said to be "clustering". 23 In my own experience (2014 - 4 years later), they are 24 somewhat distributed: 25 5629499534213120 26 5649050225344512 27 5724160613416960 28 29 http://stackoverflow.com/questions/6027219/hot-tablets-problem-possible-when-using-app-engine-auto-generated-ids 30 */ 31 package ancestored_urls