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