coredns/middleware
Miek Gieben e9eda7e7c8 New cache implementation and prefetch handing in mw/cache (#731)
* cache: add sharded cache implementation

Add Cache impl and a few tests. This cache is 256-way sharded, mainly
so each shard has it's own lock. The main cache structure is a readonly
jump plane into the right shard.

This should remove the single lock contention on the main lock and
provide more concurrent throughput - Obviously this hasn't been tested
or measured.

The key into the cache was made a uint32 (hash.fnv) and the hashing op
is not using strings.ToLower anymore remove any GC in that code path.

* here too

* Minimum shard size

* typos

* blurp

* small cleanups no defer

* typo

* Add freq based on Johns idea

* cherry-pick conflict resolv

* typo

* update from early code review from john

* add prefetch to the cache

* mw/cache: add prefetch

* remove println

* remove comment

* Fix tests

* Test prefetch in setup

* Add start of cache

* try add diff cache options

* Add hacky testcase

* not needed

* allow the use of a percentage for prefetch

If the TTL falls below xx% do a prefetch, if the record was popular.
Some other fixes and correctly prefetch only popular records.
2017-06-13 12:39:10 -07:00
..
auto middleware/file: don't reload zone when SOA isn't changed (#707) 2017-06-08 18:43:11 +01:00
bind Fix import path github.com/miekg/coredns -> github.com/coredns/coredns (#547) 2017-02-22 06:51:47 +00:00
cache New cache implementation and prefetch handing in mw/cache (#731) 2017-06-13 12:39:10 -07:00
chaos middleware/chaos: fix version (#669) 2017-05-22 08:09:35 -04:00
dnssec New cache implementation and prefetch handing in mw/cache (#731) 2017-06-13 12:39:10 -07:00
erratic Tc bits (#617) 2017-04-16 07:49:13 +01:00
errors middleware/{log,errors}: output everything to stdout (#684) 2017-05-31 20:28:53 +01:00
etcd New cache implementation and prefetch handing in mw/cache (#731) 2017-06-13 12:39:10 -07:00
file middleware/file: don't reload zone when SOA isn't changed (#707) 2017-06-08 18:43:11 +01:00
health Fix import path github.com/miekg/coredns -> github.com/coredns/coredns (#547) 2017-02-22 06:51:47 +00:00
hosts middleware/hosts for /etc/hosts parsing (#695) 2017-06-08 20:48:04 +01:00
kubernetes remove unused funcs (#724) 2017-06-09 08:00:09 +01:00
loadbalance Gofmt all code (#552) 2017-02-22 16:06:20 +00:00
log middleware/{log,errors}: output everything to stdout (#684) 2017-05-31 20:28:53 +01:00
metrics middleware/metrics: allow multiple listeners 2017-04-12 10:10:57 +00:00
pkg New cache implementation and prefetch handing in mw/cache (#731) 2017-06-13 12:39:10 -07:00
pprof Pprof listen (#639) 2017-04-24 10:27:26 -04:00
proxy middleware/proxy: remove singleinflight from dns (#717) 2017-06-08 16:06:14 +01:00
reverse Update README.md (#668) 2017-05-26 09:02:51 -04:00
rewrite Rewrite edns0 (#561) 2017-03-06 21:32:17 +00:00
root core: add more transports (#574) 2017-03-13 20:24:37 +00:00
secondary middleware/file: correctly parse the stanza (#658) 2017-05-03 16:36:41 +01:00
test middleware/file: add DNAME support (#651) 2017-05-26 10:37:06 +01:00
tls Fix TLS error message (#634) 2017-04-20 09:40:18 -04:00
trace Tracing for gRPC Server (#619) 2017-04-18 11:10:49 -04:00
whoami Fix import path github.com/miekg/coredns -> github.com/coredns/coredns (#547) 2017-02-22 06:51:47 +00:00
backend.go Fix import path github.com/miekg/coredns -> github.com/coredns/coredns (#547) 2017-02-22 06:51:47 +00:00
backend_lookup.go Add k8s external service CNAMEs (#677) 2017-05-30 13:20:39 +01:00
middleware.go Gofmt all code (#552) 2017-02-22 16:06:20 +00:00
middleware_test.go Use context.Context 2016-03-19 07:32:50 +00:00
normalize.go core: add more transports (#574) 2017-03-13 20:24:37 +00:00
normalize_test.go Add tests for normalize.go 2016-09-07 12:55:41 +00:00