public static GenerationUpdater GetUpdater(string groupKey)
        {
            if (groupKey.IsNullOrEmpty())
                throw new ArgumentNullException("generationKey");

            var updater = byGroupKey[groupKey] as GenerationUpdater;

            if (updater == null)
            {
                var locked = Hashtable.Synchronized(byGroupKey);
                updater = new GenerationUpdater(groupKey);
                byGroupKey[groupKey] = byGroupKey[groupKey] ?? updater;
            }

            return updater;
        }