Using condensed bitmap representation for filtering of datasets
AssigneeWorkday, Inc.
InventorAndreas Garnaes
Life of this patent
Estimating the term…
Abstract
Disclosed are techniques for increasing the speed of pairwise comparison operations in a database system. In an embodiment, a method is disclosed comprising receiving a network request identifying a user; identifying a plurality of segments associated with the user; loading a plurality of bitmaps associated with the plurality of segments, each bitmap in the plurality of bitmaps representing a set of users associated with a segment; comparing pairs of bitmaps from the plurality of bitmaps to generate a set of overlaps; filtering the plurality of segments based on the set of overlaps to generate an anonymized set of segments; and returning aggregated data associated with the anonymized set of segments in response to the network request.
Claims20
A method comprising:
- receiving, by a processor, a network request identifying a user;
- identifying, by the processor, a plurality of segments associated with the user;
- loading, by the processor, bitmaps associated with the plurality of segments, each bitmap representing a set of users who have provided responses within a corresponding segment;
- generating, by the processor, overlaps by comparing pairs of bitmaps selected from the bitmaps, each overlap identifying shared users appearing in both bitmaps of a bitmap pair;
- determining, by the processor, a difference in cardinality between overlapping segment pairs;
- generating, by the processor, anonymized segments by excluding, from the plurality of segments, at least one segment of an overlapping segment pair when the difference in cardinality is below a specified threshold, wherein the excluded segment is the segment having a greater number of members in the overlapping segment pair;
- and
- returning, by the processor, aggregated data associated with the anonymized segments in response to the network request, the aggregated data omitting data associated with the excluded segment.
A non-transitory computer-readable storage medium for tangibly storing computer program instructions capable of being executed by a computer processor, the computer program instructions defining steps of:
- receiving a network request identifying a user;
- identifying a plurality of segments associated with the user;
- loading bitmaps associated with the plurality of segments, each bitmap representing a set of users who have provided responses within a corresponding segment;
- generating overlaps by comparing pairs of bitmaps selected from the bitmaps, each overlap identifying shared users appearing in both bitmaps of a bitmap pair;
- determining a difference in cardinality between overlapping segment pairs;
- generating anonymized segments by excluding, from the plurality of segments, at least one segment of an overlapping segment pair when the difference in cardinality is below a specified threshold, wherein the excluded segment is the segment having a greater number of members in the overlapping segment pair;
- and
- returning aggregated data associated with the anonymized segments in response to the network request, the aggregated data omitting data associated with the excluded segment.
A device comprising:
- a processor;
- and
- a storage medium for tangibly storing thereon program logic for execution by the processor, the program logic comprising:
- logic, executed by the processor, for receiving a network request identifying a user;
- logic, executed by the processor, for identifying a plurality of segments associated with the user;
- logic, executed by the processor, for loading bitmaps associated with the plurality of segments, each bitmap representing a set of users who have provided responses within a corresponding segment;
- logic, executed by the processor, for generating overlaps by comparing pairs of bitmaps selected from the bitmaps, each overlap identifying shared users appearing in both bitmaps of a bitmap pair;
- logic, executed by the processor, for determining a difference in cardinality between overlapping segment pairs;
- logic, executed by the processor, for generating anonymized segments by excluding, from the plurality of segments, at least one segment of an overlapping segment pair when the difference in cardinality is below a specified threshold, wherein the excluded segment is the segment having a greater number of members in the overlapping segment pair;
- and
- logic, executed by the processor, for returning aggregated data associated with the anonymized segments in response to the network request, the aggregated data omitting data associated with the excluded segment.
Dependencies are inferred from the claim text.