public static Map<String, String> getAll(RequestContext ctx) {
        requireNonNull(ctx, "ctx");

        final Object2ObjectMap<String, String> map = getMap(ctx);
        final RequestContext rootCtx = ctx.root();
        if (rootCtx == null || rootCtx == ctx) {
            return map;
        }

        final Object2ObjectMap<String, String> rootMap = getMap(rootCtx);
        if (rootMap.isEmpty()) {
            return map;
        }

        if (map.isEmpty()) {
            return rootMap;
        }

        final Object2ObjectMap<String, String> merged =
                new Object2ObjectOpenHashMap<>(rootMap.size() + map.size());
        merged.putAll(rootMap);
        merged.putAll(map);
        return merged;
    }
Returns the {@link Map} of all request-scoped {@link MDC} properties bound to the specified
{@link RequestContext}.

@param ctx the {@link RequestContext}

@return the {@link Map} that contains all request-scoped {@link MDC} properties.
        An empty {@link Map} if there are no request-scoped {@link MDC} properties.
core/src/main/java/com/linecorp/armeria/common/logging/RequestScopedMdc.java