Avoid having contended mutexes on same cacheline
Avoid having contended mutexes on same cacheline

CPUs have to serialise write access to a single cache line
effectively reducing level of possible parallelism. Placing
mutexes on different cache lines avoids this problem.

Most gains will be seen on NUMA servers where CPU interconnect
traffic is especially expensive

Before:
go test . -run none -bench BenchmarkFingerprintLocker
BenchmarkFingerprintLockerParallel-4   	 2000000	       932 ns/op
BenchmarkFingerprintLockerSerial-4     	30000000	        49.6 ns/op

After:
go test . -run none -bench BenchmarkFingerprintLocker
BenchmarkFingerprintLockerParallel-4   	 3000000	       569 ns/op
BenchmarkFingerprintLockerSerial-4     	30000000	        51.0 ns/op

tomwilkie/prometheus,alileza/prometheus,slok/prometheus,slok/prometheus,prometheus/prometheus,keegancsmith/prometheus,tattsun/prometheus,yanghongkjxy/prometheus,SaltedMan/prometheus-annotated,alileza/prometheus,GoogleCloudPlatform/prometheus,SaltedMan/prometheus-annotated,Colstuwjx/prometheus,prometheus/prometheus,Colstuwjx/prometheus,AlekSi/prometheus,Conorbro/prometheus,Stackdriver/stackdriver-prometheus,kangwoo/prometheus,gottwald/prometheus,AlekSi/prometheus,GoogleCloudPlatform/prometheus,gottwald/prometheus,PrFalken/prometheus,Conorbro/prometheus,Gouthamve/prometheus,Colstuwjx/prometheus,agaoglu/prometheus,JavierZunzunegui/prometheus,kangwoo/prometheus,brancz/prometheus,Stackdriver/stackdriver-prometheus,PrFalken/prometheus,dsymonds/prometheus,tomwilkie/prometheus,Stackdriver/stackdriver-prometheus,AlekSi/prometheus,GoogleCloudPlatform/prometheus,kangwoo/prometheus,GoogleCloudPlatform/prometheus,amorken/prometheus,Gouthamve/prometheus,yanghongkjxy/prometheus,alileza/prometheus,keegancsmith/prometheus,agaoglu/prometheus,Stackdriver/stackdriver-prometheus,slok/prometheus,agaoglu/prometheus,gottwald/prometheus,JavierZunzunegui/prometheus,alileza/prometheus,datajet-io/prometheus,keegancsmith/prometheus,tomwilkie/prometheus,adamron1/prometheus,Colstuwjx/prometheus,GoogleCloudPlatform/prometheus,adamron1/prometheus,keegancsmith/prometheus,brancz/prometheus,kzittritsch/prometheus,slok/prometheus,datajet-io/prometheus,JavierZunzunegui/prometheus,agaoglu/prometheus,amorken/prometheus,brancz/prometheus,dsymonds/prometheus,brancz/prometheus,adamron1/prometheus,PrFalken/prometheus,AlekSi/prometheus,datajet-io/prometheus,Gouthamve/prometheus,yanghongkjxy/prometheus,keegancsmith/prometheus,datajet-io/prometheus,adamron1/prometheus,kzittritsch/prometheus,PrFalken/prometheus,SaltedMan/prometheus-annotated,tomwilkie/prometheus,amorken/prometheus,prometheus/prometheus,JavierZunzunegui/prometheus,kzittritsch/prometheus,kzittritsch/prometheus,dsymonds/prometheus,tattsun/prometheus,kangwoo/prometheus,Conorbro/prometheus,prometheus/prometheus,tattsun/prometheus,SaltedMan/prometheus-annotated,tattsun/prometheus,Gouthamve/prometheus,yanghongkjxy/prometheus,gottwald/prometheus,amorken/prometheus,alileza/prometheus,prometheus/prometheus,dsymonds/prometheus,Conorbro/prometheus