presto-connector/src/main/java/com/facebook/presto/maxcompute/utils/MaxComputeMetaCache.java [27:85]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class MaxComputeMetaCache
{
    private final Odps odps;
    private LoadingCache<MaxComputeTableHandle, ConnectorTableMetadata> tableMetadataCache;

    public MaxComputeMetaCache(MaxComputeConfig config)
    {
        this.odps = MaxComputeUtils.getOdps(config);

        // TODO: cache options
        tableMetadataCache = newCacheBuilder(6400, 10000).build(
                new CacheLoader<MaxComputeTableHandle, ConnectorTableMetadata>()
                {
                    @Override
                    public ConnectorTableMetadata load(MaxComputeTableHandle tableHandle)
                    {
                        return MaxComputeUtils.getTableMetadata(odps, tableHandle);
                    }
                });
    }

    private static CacheBuilder<Object, Object> newCacheBuilder(long expiresAfterWriteSec, long maximumSize)
    {
        CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
        if (expiresAfterWriteSec >= 0) {
            cacheBuilder.expireAfterWrite(expiresAfterWriteSec, HOURS);
        }
        cacheBuilder.maximumSize(maximumSize);
        return cacheBuilder;
    }

    private static <K, V> V get(LoadingCache<K, V> cache, K key)
    {
        try {
            return cache.get(key);
        }
        catch (Exception e) {
            return null;
        }
    }

    private static <K, V> void write(LoadingCache<K, V> cache, K key, V value)
    {
        try {
            cache.put(key, value);
        }
        catch (Exception e) {
            // ignore
        }
    }

    public ConnectorTableMetadata getTableMetadata(MaxComputeTableHandle tableHandle)
    {
        return get(tableMetadataCache, tableHandle);
    }

    public void writeTableMetadata(MaxComputeTableHandle tableHandle, ConnectorTableMetadata tableMetadata)
    {
        write(tableMetadataCache, tableHandle, tableMetadata);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



trino-connector/src/main/java/io/trino/plugin/maxcompute/utils/MaxComputeMetaCache.java [27:85]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class MaxComputeMetaCache
{
    private final Odps odps;
    private LoadingCache<MaxComputeTableHandle, ConnectorTableMetadata> tableMetadataCache;

    public MaxComputeMetaCache(MaxComputeConfig config)
    {
        this.odps = MaxComputeUtils.getOdps(config);

        // TODO: cache options
        tableMetadataCache = newCacheBuilder(6400, 10000).build(
                new CacheLoader<MaxComputeTableHandle, ConnectorTableMetadata>()
                {
                    @Override
                    public ConnectorTableMetadata load(MaxComputeTableHandle tableHandle)
                    {
                        return MaxComputeUtils.getTableMetadata(odps, tableHandle);
                    }
                });
    }

    private static CacheBuilder<Object, Object> newCacheBuilder(long expiresAfterWriteSec, long maximumSize)
    {
        CacheBuilder<Object, Object> cacheBuilder = CacheBuilder.newBuilder();
        if (expiresAfterWriteSec >= 0) {
            cacheBuilder.expireAfterWrite(expiresAfterWriteSec, HOURS);
        }
        cacheBuilder.maximumSize(maximumSize);
        return cacheBuilder;
    }

    private static <K, V> V get(LoadingCache<K, V> cache, K key)
    {
        try {
            return cache.get(key);
        }
        catch (Exception e) {
            return null;
        }
    }

    private static <K, V> void write(LoadingCache<K, V> cache, K key, V value)
    {
        try {
            cache.put(key, value);
        }
        catch (Exception e) {
            // ignore
        }
    }

    public ConnectorTableMetadata getTableMetadata(MaxComputeTableHandle tableHandle)
    {
        return get(tableMetadataCache, tableHandle);
    }

    public void writeTableMetadata(MaxComputeTableHandle tableHandle, ConnectorTableMetadata tableMetadata)
    {
        write(tableMetadataCache, tableHandle, tableMetadata);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



