Scalable current leaderboard using delta-encoded updates
First Claim
1. A computer-implemented method performed by a data processing apparatus comprising a snapshot generator, a server and a storage, the method comprising:
- receiving, by the snapshot generator, entries, wherein each of the entries comprises an identifier and a score;
sorting, by the snapshot generator, the entries by the scores according to a sorting criteria to obtain a leaderboard;
ranking, by the snapshot generator, each of the entries with a rank according to the position of the entry on the leaderboard, wherein each of the entries further comprises the rank;
dividing, by the snapshot generator, the entries from the leaderboard into a plurality of groups, wherein each of the groups comprises consecutive entries from the leaderboard and at least one of the entries is included both in a position at the end of a first of the groups and at the beginning of a second of the groups, and wherein the groups are ordered sequentially;
storing, in the storage, the leaderboard in the form of the groups;
updating, by the snapshot generator, the first group with at least one score version comprising an entry that includes an addition indicator;
sorting, by the snapshot generator, the entries in the first group according to the sorting criteria to obtain an updated group; and
transmitting, by the server to the client device, the updated group.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and techniques are provided for providing a scalable current leaderboard. Entries may be received. The entries may include an identifier and a score. The entries may be sorted according to a sorting criterion to obtain a leaderboard. The entries may be ranked with a rank according to the position of the entry on the leaderboard. The entry may include the rank. The leaderboard may be divided into buckets. Each bucket may include consecutive entries from the leaderboard. One of the entries may be included at the end of a first buckets and at the beginning of a second buckets. The buckets may be ordered sequentially. The bucket may be updated with score versions to produce an updated bucket, where the score versions may include new versions and old versions.
8 Citations
33 Claims
-
1. A computer-implemented method performed by a data processing apparatus comprising a snapshot generator, a server and a storage, the method comprising:
-
receiving, by the snapshot generator, entries, wherein each of the entries comprises an identifier and a score; sorting, by the snapshot generator, the entries by the scores according to a sorting criteria to obtain a leaderboard; ranking, by the snapshot generator, each of the entries with a rank according to the position of the entry on the leaderboard, wherein each of the entries further comprises the rank; dividing, by the snapshot generator, the entries from the leaderboard into a plurality of groups, wherein each of the groups comprises consecutive entries from the leaderboard and at least one of the entries is included both in a position at the end of a first of the groups and at the beginning of a second of the groups, and wherein the groups are ordered sequentially; storing, in the storage, the leaderboard in the form of the groups; updating, by the snapshot generator, the first group with at least one score version comprising an entry that includes an addition indicator; sorting, by the snapshot generator, the entries in the first group according to the sorting criteria to obtain an updated group; and transmitting, by the server to the client device, the updated group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-implemented method performed by a client device in communication with a computer that comprises a snapshot generator, a server and a storage, the method comprising:
-
transmitting, by the client device, a request for a leaderboard, wherein the request comprises at least one of an identifier for a desired entry, a score for a desired entry, a rank for a desired entry, and a general request for the leaderboard associated with a default desired entry, wherein entries for the leaderboard are divided into a plurality of groups, wherein each of the groups comprises consecutive entries from the leaderboard and at least one of the entries is included both in a position at the end of a first of the groups and at the beginning of a second of the groups, and wherein the groups are ordered sequentially, wherein the first group is updated with at least one score version comprising an entry that includes an addition indicator to indicate an addition of the desired entry into the first group, and wherein the entries in the first group are sorted according to a sorting criteria to obtain an updated group; receiving, by the client device, the updated group comprising the desired entry; and displaying the desired entry and entries consecutive with the desired entry from the updated group. - View Dependent Claims (22, 23, 24)
-
-
25. A computer-implemented system for stitching tables comprising:
-
a storage comprising scores, score versions, and a leaderboard, wherein the leaderboard comprises groups, and configured to receive entries and store the entries with the scores and the score versions; a snapshot generator configured to generate the leaderboard from the scores and divide the leaderboard into the groups, wherein each of the groups comprises consecutive entries from the leaderboard and at least one of the entries is included both in a position at the end of a first of the groups and at the beginning of a second of the groups, wherein the groups are ordered sequentially, wherein the first group is updated with at least one score version comprising an entry that includes an addition indicator, and wherein the entries in the first group are sorted according to a sorting criteria to obtain an updated group; and a request server, coupled to the storage and configured to receive requests for the leaderboard, receive one of the groups, update the one of the groups with the score versions to generate an updated group, and transmit the updated group. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
-
32. A system comprising:
- one or more computers, wherein at least one of the one or more computers comprises a snapshot generator and a server, and one or more storage devices storing instructions which are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising;
receiving, by the snapshot generator, entries, wherein each of the entries comprises an identifier and a score; sorting, by the snapshot generator, the entries by the scores according to a sorting criteria to obtain a leaderboard; ranking, by the snapshot generator, each of the entries with a rank according to the position of the entry on the leaderboard, wherein each of the entries further comprises the rank; dividing, by the snapshot generator, the entries from the leaderboard into groups, wherein each of the groups comprises consecutive entries from the leaderboard and at least two of the groups comprise a number of the same entries, wherein the same entries are in a position at the end of the first of the at least two groups and at the beginning of the second of the at least two groups, and wherein the groups are ordered sequentially; updating, by the snapshot generator, the first group with at least one score version comprising an entry that includes an addition indicator; sorting, by the snapshot generator, the entries in the first group according to the sorting criteria to obtain an updated group; and storing, in the one or more storage devices, the leaderboard in the form of the groups. - View Dependent Claims (33)
- one or more computers, wherein at least one of the one or more computers comprises a snapshot generator and a server, and one or more storage devices storing instructions which are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising;
Specification