Instead of having many node_lock_count * sizeof(<member>) arrays, pack all the members into a qpcache_bucket_t struct that is cacheline aligned and have a single array of those. Additionaly, make both the head and the tail of isc_queue_t padded, not just the head, to prevent false sharing of the lock-free structure with the lock that follows it.