update behavior of counter_cache

I update behavior of `counter_cache`, the reason has described at #8997.