Patent ID: 8700628

Claim:
A method, comprising: at a server system having one or more processors and memory storing one or more programs for execution by the one or more processors to perform the method, in response to each of a plurality of occurrences of a first predefined trigger: receiving an annotation of a respective entity by an author, the respective entity having an entity identifier, the annotation having a scope that identifies a range of access to the annotation; identifying one or more database entries in a database, a respective database entry including a first value and a second value, wherein the first value includes a real-time count of a number of users who have shared a respective page, and wherein the second value includes an offline count of a number of users who have shared the respective page, each database entry corresponding to a respective index key comprising an entity-scope combination, the entity-scope combination corresponding to a respective entity and a respective scope; and updating the first value in each of the one or more identified entries without updating the second value in each of the one or more identified entries; receiving, from a computer system or device distinct from the server system, a request for one or more annotations, the request identifying an entity and a scope; and responding to the request by: retrieving, for an index key comprising an entity-scope combination corresponding to the entity and scope identified in the request, an annotation value from a database entry for the index key, the annotation value corresponding to the first value and the second value of the database entry for the index key; and sending, to the computer system or device, information corresponding to the retrieved annotation value in response to the request, wherein prior to receiving the request, in response to each of a plurality of occurrences of a second predefined trigger: retrieving a plurality of annotations; aggregating the retrieved annotations for respective index keys to produce aggregated values, wherein each aggregated value is for a respective index key; identifying a plurality of index keys corresponding to the index keys of a plurality of the aggregated values; and updating the second values of database entries corresponding to the identified index keys with aggregated values for the identified index keys.