1) There are many different types caching in JDV. All solutions you combination of memory and disk. You can take look at the code GitHub - teiid/teiid: Teiid is a data virtualization system that allows applications to use data from multiple, heteroge…
2) See 1
3) Teiid does not get separate VM, it uses the JDK to run. If you are using Direct Memory there are some configuration you can setup. See Memory Management · Teiid Documentation
4) see 3
Based upon the docs and Ramesh's answer, can you provide a refined set of questions?