IP Library Granted Patent US 9,922,093
Granted Patent B2
US 9,922,093 · App. 15/053,981 · Granted Mar 20, 2018

Managing presentation of online content

Inventors: Lifeng Sang (San Jose, CA); Vlad Schlosberg (San Francisco, CA); Sahil Handa (Santa Clara, CA); Pedro Oguri (Mountain View, CA)
Assignee: Microsoft Technology Licensing, LLC
G06F17/30528G06F17/30867G06F17/30887G06F21/10G06F21/604H04L51/32H04L63/105H04L67/2842
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,922,093
App. No.
15/053,981
Granted
Mar 20, 2018
Kind
B2
Abstract

A method and apparatus for selectively publishing user-provided content items to other users is provided. In some instances, the content items are excluded from being rendered to a user according to one or more blocks that block the user from viewing content items provided by certain members. Managing blocks and excluding content is more efficiently achieved through the implementation of a Bloom filter that contains the blocked pairs of users. The Bloom filter can, using few computing resources, be queried to determine if a block does not exist between two users. If the Bloom filter returns an indication that a block might exist, the apparatus determines if a block is stored in an LRU cache of recently retrieved blocks. If the LRU cache does not identify a block, then a call to retrieve one or more blocked pairs is made to a data storage.

Claims (65)

1. A method comprising:

receiving, by a computing system, a first instruction, initiated by a first user using a computing device, to block a second user such that content items associated with the second user are not presented to the first user;

updating, by the computing system, a Bloom filter to indicate that the first user has possibly blocked the second user;

receiving, by the computing system, a second instruction, initiated by the first user, to retrieve a plurality of content items associated with a plurality of users that includes the second user;

in response to receiving the second instruction:

determining, based on the Bloom filter, that the first user is possibly blocked from viewing content items associated with the second user;

accessing, from data storage, a record indicating that the first user has blocked the second user;

identifying, within the plurality of content items, one or more content items associated with the second user;

based on the one or more content items being identified, preventing the one or more content items associated with the second user from being displayed on a graphical user interface of the computing device of the first user.

2. The method of claim 1 , further comprising, in response to receiving the second instruction, storing, in a cache, the record indicating that the first user has blocked the second user.

3. The method of claim 2 , further comprising:

receiving a third instruction, initiated by the first user, to retrieve additional content items;

retrieving, from the cache, the record indicating that the first user has blocked the second user;

identifying, within the additional content items, one or more content items associated with the second user;

based on the one or more content items being identified, preventing the one or more content items associated with the second user from being displayed on the graphical user interface of the computing device of the first user.

4. The method of claim 2 , wherein the cache is configured to store the record when a page is being rendered on the graphical user interface of the computing device of the first user.

5. The method of claim 2 , wherein the cache comprises a Least Recently Used (LRU) cache.

6. The method of claim 2 , wherein the cache stores one or more query strings that correspond to blocked pairs.

7. The method of claim 1 , further comprising:

determining that a set of users has blocked the second user;

storing, in a pre-cache memory, a set of user identifiers associated with the set of users who have each blocked the second user, the set of user identifiers comprising a first identifier of the first user.

8. The method of claim 7 , further comprising:

in response to receiving the second instruction:

querying the pre-cache memory;

determining, while querying the pre-cache memory, that the first user is blocked from receiving content items associated with the second user.

9. The method of claim 1 , further comprising:

in response to the second instruction and the determination that the first user is possibly blocked from viewing content items associated with the second user;

accessing, from data storage, at least one additional record indicating that the first user has blocked at least one additional user;

identifying, within the plurality of content items, one or more content items associated with the at least one additional user;

based on the one or more content items being identified, preventing the one or more content items associated with the at least one additional user from being displayed on the graphical user interface of the computing device of the first user.

10. The method of claim 9 , further comprising:

storing, in a cache, the at least one additional record indicating that the first user has blocked the at least one additional user.

11. A system comprising:

one or more processors;

non-transitory computer-readable storage media storing instructions which, when executed by the one or more processors, cause performance of:

receiving a first instruction, initiated by a first user using a computing device, to block a second user such that content items associated with the second user are not presented to the first user;

updating a Bloom filter to indicate that the first user has possibly blocked the second user;

receiving a second instruction, initiated by the first user, to retrieve a plurality of content items associated with a plurality of users that includes the second user;

in response to receiving the second instruction:

determining, based on the Bloom filter, that the first user is possibly blocked from viewing content items associated with the second user;

accessing, from data storage, a record indicating that the first user has blocked the second user;

identifying, within the plurality of content items, one or more content items associated with the second user;

based on the one or more content items being identified, preventing the one or more content items associated with the second user from being displayed on a graphical user interface of the computing device of the first user.

12. The system of claim 11 , wherein the instructions when executed further cause performance of, in response to receiving the second instruction, storing, in a cache, the record indicating that the first user has blocked the second user.

13. The system of claim 12 , wherein the instructions when executed further cause performance of:

receiving a third instruction, initiated by the first user, to retrieve additional content items;

retrieving, from the cache, the record indicating that the first user has blocked the second user;

identifying, within the additional content items, one or more content items associated with the second user;

based on the one or more content items being identified, preventing the one or more content items associated with the second user from being displayed on the graphical user interface of the computing device of the first user.

14. The system of claim 12 , wherein the cache is configured to store the record when a page is being rendered on the graphical user interface of the computing device of the first user.

15. The system of claim 12 , wherein the cache comprises a Least Recently Used (LRU) cache.

16. The system of claim 12 , wherein the cache stores one or more query strings that correspond to blocked pairs.

17. The system of claim 11 , wherein the instructions when executed further cause performance of:

determining that a set of users has blocked the second user;

storing, in a pre-cache memory, a set of user identifiers associated with the set of users who have each blocked the second user, the set of user identifiers comprising a first identifier of the first user.

18. The system of claim 17 , wherein the instructions when executed further cause performance of:

in response to receiving the second instruction:

querying the pre-cache memory;

determining, while querying the pre-cache memory, that the first user is blocked from receiving content items associated with the second user.

19. The system of claim 11 , wherein the instructions when executed further cause performance of:

in response to the second instruction and the determination that the first user is possibly blocked from viewing content items associated with the second user, accessing, from data storage, at least one additional record indicating that the first user has blocked at least one additional user;

identifying, within the plurality of content items, one or more content items associated with the at least one additional user;

based on the one or more content items being identified, preventing the one or more content items associated with the at least one additional user from being displayed on the graphical user interface of the computing device of the first user.

20. The system of claim 19 , wherein the instructions when executed further cause performance of:

storing, in a cache, the at least one additional record indicating that the first user has blocked the at least one additional user.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2017
From: LINKEDIN CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 044746/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2016
From: SANG, LIFENG; SHLOSBERG, VLAD; OGURI, PEDRO; HANDA, SAHIL
To: LINKEDIN CORPORATION
Reel/Frame 038856/0477 →
Continuity (2)
Continuation 14755893 · Jun 30, 2015
Related Publication 20170004179A1 · Jan 5, 2017