distribution/docs/storage
Stephen J Day 250e61e2a1 Prevent false sharing in signature fetch
The original implementation wrote to different locations in a shared slice.
While this is theoretically okay, we end up thrashing the cpu cache since
multiple slice members may be on the same cache line. So, even though each
thread has its own memory location, there may be contention over the cache
line. This changes the code to aggregate to a slice in a single goroutine.

In reality, this change likely won't have any performance impact. The theory
proposed above hasn't really even been tested. Either way, we can consider it
and possibly go forward.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2015-04-09 14:35:10 -07:00
..
cache Define and implement layer info cache 2015-04-02 20:15:09 -07:00
driver Defer case-sensitive support to storage backend 2015-04-07 14:14:45 -07:00
blobstore.go Integrate layer info cache with registry and storage 2015-04-02 20:15:16 -07:00
doc.go Move storage package under registry package 2015-02-11 12:43:04 -08:00
filereader.go Integrate layer info cache with registry and storage 2015-04-02 20:15:16 -07:00
filereader_test.go digest: Minor refactoring 2015-03-10 16:44:19 -07:00
filewriter.go wrap buffered writer around filewriter 2015-03-03 16:23:21 -08:00
filewriter_test.go digest: Minor refactoring 2015-03-10 16:44:19 -07:00
layer_test.go Integrate layer info cache with registry and storage 2015-04-02 20:15:16 -07:00
layercache.go Move expvar under the registry section 2015-04-02 21:30:27 -07:00
layerreader.go Integrate layer info cache with registry and storage 2015-04-02 20:15:16 -07:00
layerstore.go Use resumable digest for efficient upload finish 2015-04-02 11:20:31 -07:00
layerwriter.go Use resumable digest for efficient upload finish 2015-04-02 11:20:31 -07:00
manifeststore.go Implement immutable manifest reference support 2015-03-04 21:40:55 -08:00
manifeststore_test.go Integrate layer info cache with registry and storage 2015-04-02 20:15:16 -07:00
paths.go Use resumable digest for efficient upload finish 2015-04-02 11:20:31 -07:00
paths_test.go Implement immutable manifest reference support 2015-03-04 21:40:55 -08:00
registry.go Integrate layer info cache with registry and storage 2015-04-02 20:15:16 -07:00
revisionstore.go Expose Signatures() on Repository 2015-03-04 20:56:11 -05:00
signaturestore.go Prevent false sharing in signature fetch 2015-04-09 14:35:10 -07:00
tagstore.go Implement immutable manifest reference support 2015-03-04 21:40:55 -08:00