public static void remove(RequestContext ctx, String key) {
        requireNonNull(ctx, "ctx");
        requireNonNull(key, "key");

        synchronized (ctx) {
            final Object2ObjectMap<String, String> oldMap = getMap(ctx);
            if (!oldMap.containsKey(key)) {
                return;
            }

            final Object2ObjectMap<String, String> newMap;
            if (oldMap.size() == 1) {
                newMap = Object2ObjectMaps.emptyMap();
            } else {
                final Object2ObjectOpenHashMap<String, String> tmp = new Object2ObjectOpenHashMap<>(oldMap);
                tmp.remove(key);
                newMap = Object2ObjectMaps.unmodifiable(tmp);
            }
            ctx.setAttr(MAP, newMap);
        }
    }
Unbinds the specified request-scoped {@link MDC} property from the specified {@link RequestContext}.

@param ctx the {@link RequestContext}
@param key the key of the request-scoped {@link MDC} property to unbind
core/src/main/java/com/linecorp/armeria/common/logging/RequestScopedMdc.java