THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Cache, a base interface for all caches
- CacheMetricGroup, a interface defining cache related metrics
- CacheConfig, a wrapper class containing configurations of the cache
- CachingTableFunction, a helper TableFunction class with cache
- AllCachingTableFunction, a helper TableFunction class for lookup sources that loads all entries into the cache on start and reload at fixed rate
Lookup Functions
As the usage of TableFunction interface is not quite straight forward to lookup table developers, we'd like to introduce a new interface for lookup tables.
Code Block | ||||
---|---|---|---|---|
| ||||
/**
* A wrapper class of {@link TableFunction} for synchronously lookup rows matching the lookup keys
* from external system.
*
* <p>The output type of this table function is fixed as {@link RowData}.
*/
@PublicEvolving
public abstract class LookupFunction extends TableFunction<RowData> {
/**
* Synchronously lookup rows matching the lookup keys.
*
* @param keys - Keys to lookup.
* @return A collections of all matching rows in the lookup table.
*/
public abstract Collection<RowData> lookup(Object... keys) throws IOException;
/** Invoke {@link #lookup} and handle exceptions. */
public final void eval(Object... keys) {
try {
lookup(keys).forEach(this::collect);
} catch (IOException e) {
throw new RuntimeException("Failed to lookup values with given key", e);
}
}
} |
Cache
A base interface for all caches:
...