This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/util
Joseph Schorr b5bb76cdea Optimize repository search by changing our lookup strategy
Previous to this change, repositories were looked up unfiltered in six different queries, and then filtered using the permissions model, which issued a query per repository found, making search incredibly slow. Instead, we now lookup a chunk of repositories unfiltered and then filter them via a single query to the database. By layering the filtering on top of the lookup, each as queries, we can minimize the number of queries necessary, without (at the same time) using a super expensive join.

Other changes:
- Remove the 5 page pre-lookup on V1 search and simply return that there is one more page available, until there isn't. While technically not correct, it is much more efficient, and no one should be using pagination with V1 search anyway.
- Remove the lookup for repos without entries in the RAC table. Instead, we now add a new RAC entry when the repository is created for *the day before*, with count 0, so that it is immediately searchable
- Remove lookup of results with a matching namespace; these aren't very relevant anyway, and it overly complicates sorting
2017-03-09 19:47:55 -05:00
..
config Fix typo 2017-02-24 12:23:18 -05:00
metrics feature(app.py): adding queue_metrics to queues 2017-02-14 16:01:28 -05:00
migrate Read the number of unscanned clair images from the block allocator 2017-02-21 19:13:51 -05:00
registry Fix docker versioning library to support new versioning scheme 2017-02-22 16:08:17 -05:00
saas Increase cloudwatch send timeout to reduce how often we hit the API 2017-02-01 13:09:00 -05:00
secscan Batch QSS notifications after initial scan 2017-03-01 15:42:49 -05:00
security DNS name check got reversed; breaks wildcards 2017-01-29 11:51:37 -05:00
test util.failover: re-raise exceptions on failure 2017-03-01 00:40:47 -05:00
vendor Fix tarfile to support non-unicode pax fields 2015-08-07 11:56:38 -04:00
__init__.py mv JWK-canonicalization util.security.fingerprint 2016-04-29 14:05:16 -04:00
asyncwrapper.py Write our users to Marketo as leads. 2016-10-14 16:29:11 -04:00
backfillreplication.py fix identation according to lint 2016-06-08 15:55:47 -04:00
backoff.py Add exponential backoff of login attempts. 2014-09-02 15:27:05 -04:00
cache.py *: fix legacy imports 2016-09-28 20:17:14 -04:00
canonicaljson.py Add a uniqueness hash to derived image storage to break caching over tags 2016-06-20 16:34:52 -04:00
dict_wrappers.py Fix port mapping for ACI conversion from newer Docker manifests. 2016-12-20 14:01:06 -05:00
disableabuser.py Add tool for handling abusing users 2017-01-13 14:42:03 -05:00
dockerfileparse.py Fix Dockerfile parsing for unicode and add testing 2015-08-31 14:32:26 -04:00
dynamic.py Set up the build logs to use our fake build logs on test and local. 2014-05-09 18:45:11 -04:00
expiresdict.py Use the instance service key for registry JWT signing 2016-06-07 11:58:10 -04:00
failover.py util.failover: re-raise exceptions on failure 2017-03-01 00:40:47 -05:00
generatepresharedkey.py remove GPL'd timeparse library 2016-06-02 12:27:49 -04:00
headers.py Make sure to only split into two parts max 2015-05-20 14:54:41 -04:00
http.py Allow superusers to disable user accounts 2015-06-29 18:40:52 +03:00
imagetree.py Add a helper method to Image to parse ancestor string. 2016-09-07 10:48:58 -04:00
invoice.py Add support for custom fields in billing invoices 2015-06-12 16:45:01 -04:00
invoice.tmpl Change all Quay.io references to Quay, fix tour and change logo 2015-11-02 14:37:48 -05:00
itertoolrecipes.py Optimize repository search by changing our lookup strategy 2017-03-09 19:47:55 -05:00
jinjautil.py Fix tag links 2016-08-17 15:06:10 -04:00
label_validator.py Basic labels support 2016-08-26 15:24:26 -04:00
license.py Change entitlement sorting to sort *valid* entitlements by reverse expiration time 2017-02-15 14:31:24 -05:00
locking.py Fix locking via RedLock 2016-08-29 16:06:26 -04:00
morecollections.py Implement helper classes for tracking streaming diffs, both indexed and non-indexed 2016-12-20 12:50:18 -05:00
names.py Remove unicode before sending it to path parser 2017-02-22 13:21:12 -05:00
pagination.py Fix V2 catalog and tag pagination 2016-02-10 00:25:33 +02:00
streamingjsonencoder.py Strip whitespace from ALL the things. 2014-11-24 16:07:38 -05:00
systemlogs.py Add ability to download system logs 2014-12-23 14:01:00 -05:00
timedeltastring.py Enable permanent sessions 2016-10-31 13:52:09 -04:00
useremails.py *: fix legacy imports 2016-09-28 20:17:14 -04:00
validation.py Allow namespaces to be between 2 and 255 characters in length 2017-01-19 13:10:26 -05:00