  NoSQL document stores are becoming increasingly popular as backends in web
development. Not only do they scale out to large volumes of data, many systems
are even custom-tailored for this domain: NoSQL document stores like Google
Cloud Datastore have been designed to support massively parallel reads, and
even guarantee strong consistency in updating single data objects. However,
strongly consistent updates cannot be implemented arbitrarily fast in
large-scale distributed systems. Consequently, data objects that experience
high-frequent writes can turn into severe performance bottlenecks. In this
paper, we present AutoShard, a ready-to-use object mapper for Java applications
running against NoSQL document stores. AutoShard's unique feature is its
capability to gracefully shard hot spot data objects to avoid write contention.
Using AutoShard, developers can easily handle hot spot data objects by adding
minimally intrusive annotations to their application code. Our experiments show
the significant impact of sharding on both the write throughput and the
execution time.
