designate/designate
James Li f40681c3df Improve performance of recordsets API
The performance of /v2/recordsets API was found slow when
filtering on large amount of recordsets. The patch proposes
the following ways to improve the performance,
and was tested with 1M recordsets.

1. To explicitly mention a correct table index in sql queries
for different sort keys and filtering keys.
We found mysql optimizer is not able to choose the most suitable index;

2. Introduce a new header 'OpenStack-DNS-Hide-Counts' to give operators
the flexibility of showing total_count or not, because we found that
the count query does not scale well on a large amount of records.

Performance results are at: https://gist.github.com/jamesyli/2eb9fb474a493477a9beb42fe122180f

DB migration
Change-Id: I7f3a09ce2c7396ff6ad02d3b5d562d186f66ed30
2016-08-12 15:54:36 +00:00
..
agent Add djbdns backend 2016-05-20 10:46:36 +00:00
api Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
backend Merge "Correct reraising of exception" 2016-07-14 12:51:35 +00:00
central Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
cmd Update email addresses hp.com to hpe.com 2016-01-11 14:29:33 +00:00
common Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
hacking Fix typos in comments 2015-09-03 18:37:27 +09:00
locale/en_GB/LC_MESSAGES Imported Translations from Zanata 2016-05-21 06:16:44 +00:00
manage Fixing several typos 2016-06-29 15:04:50 +02:00
mdns Merge "Fix rrset serialization, improve mdns tests" 2016-05-16 19:57:59 +00:00
network_api replace logging with oslo.log 2016-04-26 02:59:12 +08:00
notification_handler different-format-for-ipv4-and-ipv6 2016-07-19 17:09:35 +05:30
objects Revert 372057bddb 2016-08-03 12:12:08 +01:00
openstack Cleanup unused Oslo Incubator _i18n 2016-03-10 12:25:02 -05:00
pool_manager Catch all exceptions in PM's call to get_pool() 2016-05-20 10:30:34 +01:00
quota Refactor central/service and others 2016-04-08 18:23:56 +01:00
resources Allow api_export_size to be updated 2016-04-21 18:11:16 +01:00
scheduler Fixing typo availible->available 2016-06-29 14:38:07 +02:00
schema Fix misspellings 2016-02-04 14:13:51 +00:00
sink Merge "Replace deprecated LOG.warn with LOG.warning" 2016-01-11 17:29:27 +00:00
sqlalchemy Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
storage Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
tests Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
zone_manager Ensure services shutdown during unit testing 2016-05-16 15:00:35 +01:00
__init__.py Randomize SOA refresh interval 2016-02-22 14:54:43 +00:00
context.py Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
coordination.py Fixes log statement typo in coordination.py 2016-06-30 12:14:17 -07:00
debug.py Update email addresses hp.com to hpe.com 2016-01-11 14:29:33 +00:00
dnsutils.py Add Knot DNS backend 2016-05-17 11:59:27 +01:00
exceptions.py Add support for getting Service Status 2016-04-12 16:32:17 +02:00
hookpoints.py replace logging with oslo.log 2016-04-26 02:59:12 +08:00
i18n.py Update email addresses hp.com to hpe.com 2016-01-11 14:29:33 +00:00
loggingutils.py Add Decorator to log RPCAPI Calls 2016-04-21 14:11:35 +01:00
notifications.py Drop use of 'oslo' namespace package 2015-04-28 18:32:15 +00:00
plugin.py Drop use of 'oslo' namespace package 2015-04-28 18:32:15 +00:00
policy.py Move successfull policy checks to trace 2016-04-06 14:42:34 +01:00
rpc.py Support both olso.m v4 and v5 2016-05-10 13:15:02 +01:00
service.py Refactor UDP query handling, add tests 2016-05-20 11:45:01 +01:00
service_status.py Move heartbeat emit log messages to TRACE 2016-05-06 15:50:24 +01:00
utils.py Improve performance of recordsets API 2016-08-12 15:54:36 +00:00
version.py Switch to oslo.reports 2015-11-05 10:55:29 +01:00