The way I see Teradata is...Node contains multiple PE & AMPs. PE handles the user sessions in addition to other activities and AMPs service the data movement amongst other role. Considering a production system having say, 50 Nodes...I seek clarification on the following 02 topics:
(a) Does every user request coming to Teradata sent to each of the 50 Nodes ? Within a Node, PE services the request and finds the AMPs which contains the necessary information. But, how Teradata engage the Node, cause there seems to be no way for Teradata to know which Node will be able to service a specific query.
(b) Within a Node, say there exists 10 PEs and 30 AMPs. Are all the 10 PEs connected to all 30 AMPs or any mapping exists say 1:3 PE:AMP ratio. If all PEs and AMPs are interconnected, then fine. Else, if mapping of say, 1:3 exists, then how a PE is selected for servicing a request within a node? Again, there seems to be no way for a Node to know which PE contains the desired info as those information are available with the AMPs.
(c) When a request arrives, it goes through Syntaxer, Resolver, Security, Optimizer, Generator, Apply. Are all units available inside PE ? If yes, what's the difference between Parser & PE ? From what I have read..
Parser = Syntaxer + Resolver + Security
Parsing Engine = Parser + Optimizer + Generator + Apply + Dispatcher.
Many Thanks In Advance,
>>> Does every user request coming to Teradata sent to each of the 50 Nodes ?
>>> But, how Teradata engage the Node, cause there seems to be no way for Teradata to know which Node will be able to service a specific query.
Actually, there is a way -- the hash map dictates which AMPs contain which data, so the PE does know which AMPs contain which Primary Index data values. If the PE determines that the SQL request is a single-AMP operation, then the request is dispatched to that one AMP only.
>>> all PEs and AMPs are interconnected, then fine.
>>> Are all units available inside PE ? If yes, what's the difference between Parser & PE ?
Yes, all the "units" you mentioned are available in every PE. The parser is one of the software components that resides in the Parsing Engine (PE).
Thanks Tom for your clarification.
Regarding the 1st clause, BYNETs are connecting the PEs and AMPs within a node (Calling it 02nd Level) as well connecting the Nodes (Calling it 01st Level). And 01st Level BYNET maintains the HashMaps. So, you are saying the BYNET [At the 01st Level, connecting the Nodes] hashes the data from the incoming request [If Hashing is allowed via PI or SI] and directs the request to that specific Node, whose AMP was indicated in the Hash Map. Am I correcting stating the flow ? You mention PE knows all, but my query is how it reaches the PE in a specific node or, how the node is selected who will perform the necessary operation ?
And what happens if the BYNET ain't able to process the request to any AMP because the request is ambiguous (Select * From Tablename). Here, the BYNET will not be able to hash anything. Does this request goes to all the Nodes ?
Bynet is not involved for incoming SQL requests transmitted from a client application to the PE.
When a client application logs on to the Teradata Database, it establishes a session with a particular PE. Every request from the client application flows over the same connection to that same PE.
There is no mystery as to which PE services requests for a session. It is assigned at logon time and never changes. The DBC.SessionInfoV view contains the IFPNo column, which indicates the VProc number of each session's PE.
Tom, thanks for your explanation.
Just 1 last question. Say, a request is assigned to Node 1 (PE # 3). But, PE realises it doesn't contain the requested information via AMPs within this Node. Say, Node 2 contains the info. What happens then ?
The Bynet handles both intra-node and inter-node communication, and hides the details from the PE code.
When the PE determines that it must send a message to a particular AMP to do some work, the PE composes a message and sends it via Bynet. The PE code doesn't need to worry about whether that particular AMP is "on-node" versus "off-node". Bynet handles the details of sending the message to the AMP, regardless of which node the AMP is located on.