Teiid doesn't do automatic partitioning of a top level user query. A basic assumption is that your workload will have sufficient query volume to effectively distribute load across the cluster. Do you have a low query volume / large data volume processing scenario?
What I understood..
If a table containing large data i.e. it's having millions of data then if I fire select * on that table then work load will be distributed in cluster, if the table containing few records then it will be executed by only one node of the cluster. am I right?
>Do you have a low query volume / large data volume processing scenario?
I do have both scenarios.
> am I right?
No, the load of a single user query is not automatically distributed. Depending upon the backend, there may be little value in splitting the work of just select * against a single table. You are probably more interested in splitting the work when the Teiid layer is performing a significant amount of processing, such as multiple federated joins. Unfortunately there is nothing built-in for that scenario.
Getting an effective distribution of work is largely based on how easily partitioned the work is - a strategy based upon that is to front your VDB with another VDB that uses partitioned union views where each branch points to a different data source that is configured to round robin connections back to the original VDB. This introduces an additional vdb/hop in processing, but the load will be more distributed - although without precise understanding of work levels on the node, resilience, etc. that you may want.