Homec4science

Add aggregated facts to the Facts application

Authored by epriestley <git@epriestley.com> on Jul 27 2012, 22:46.

Description

Add aggregated facts to the Facts application

Summary:
Some facts are aggregations of other facts. For example, we may compute how many times each macro is used in each object as a "raw fact":

Dnnn uses macro "psyduck" 6 times.

But we want to present this data in aggregate form, e.g. "order macros by popularity". We can do this at runtime and it probably won't be too awful a query, but we can also aggregate it cheaply:

Macro "psyduck" is used 3920 times across all objects.

...and then do a query like "select macros ordered by usage".

"Aggregate" facts support facts like this. The aggregate facts I've implemented are:

  • Count of all objects.
  • Count of objects of type X.
  • Last time facts were updated.

These clearly fit the "aggregate" facts template well. I'm not 100% sure macros do. We can use this table to answer a question like "What are the most popular macros, ordered by use?" We can also use it to answer a question like "What are the most popular macros in the last 6 months?", if we build a specific fact for that. But we can't use it to answer a question like "What are the most popular macros between times X and Y?". Maybe that's important; maybe not.

This seems like a good fit for at least some types of facts.

I'll de-magic the keys a bit in the next diff.

Test Plan: Ran the engines and got some aggregated facts about other facts.

Reviewers: vrana, btrahan

Reviewed By: vrana

CC: aran

Maniphest Tasks: T1562

Differential Revision: https://secure.phabricator.com/D3089

Details

Committed
epriestley <git@epriestley.com>Jul 27 2012, 22:46
Pushed
aubortJan 31 2017, 17:16
Parents
rPH05bf6bef8151: Jump to correct line in Blame previous revision
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH486f7c1e8e23: Add aggregated facts to the Facts application (authored by epriestley <git@epriestley.com>).Jul 27 2012, 22:46