clair/database
Quentin Machu eeb13a02ba pgsql/migrations: add index on Vulnerability_Notification.deleted_at
`searchNotificationAvailable` never effectively use any indexes because:
- `notified_at < $1`, where $1 is a recent timestamp, returns the
  majority of the table and therefore it is cheaper for PostgreSQL
  to use a sequential scan on the table.
- there is no index for `deleted_at IS NULL`.
However, when Clair has been running for long enough, the grand majority
of rows (99%+) are expected to have a non-NULL `deleted_at` field. This
commit adds a new index on this very field in order to fetch the
remaining 1% in the blink of an eye.

In other words, instead of realizing a full table scan for each
`searchNotificationAvailable` query, we'll use the small branch of a new
index, reducing the total cost from over 30k to a mere 150 on a Clair
database that has already managed more than 1 000 000 notifications.
2016-12-06 14:39:52 +01:00
..
pgsql pgsql/migrations: add index on Vulnerability_Notification.deleted_at 2016-12-06 14:39:52 +01:00
database.go database: Allow specifying datastore driver by config 2016-05-11 15:29:13 -07:00
mock.go database: Mock Datastore interface 2016-05-20 12:01:30 -05:00
models.go api/database: add the layer name that add each feature in getLayer 2016-02-24 16:39:25 -05:00
namespace_mapping.go Add Ubuntu yakkety to the namespace mapping. 2016-10-24 21:08:02 -07:00