Threads are an integral
part of a high-performance, scalable system, and they are one of the
main features of SAS Federation Server data access
technology. Most threaded functionality can be further boosted in
an environment in which multiple processors work in parallel. However,
performance boosts can also be obtained with multi-threaded processes
on a single processor machine.
A threaded service is
a method of processing that divides a large job into several smaller
jobs that can be executed in parallel. Threaded services control and
execute requests by using multiple threads to increase data throughput.
A thread is a single path of execution of a process in a single CPU.
A thread can also be thought of as a basic unit of program execution
in a thread-enabled operating environment. In a symmetric multiprocessing
(SMP) environment, which uses multiple CPUs, multiple threads can
be spawned and processed simultaneously. Regardless of whether there
is one CPU or many, each thread is an independent flow of control
that is scheduled by the operating system.
SAS® Federation Server provides
threaded services that execute multiple user requests in parallel.
Here are examples:
-
Each connection to the SAS® Federation Server
is managed on a separate thread. This enables multiple users to execute
requests in parallel and reduces the probability of a user request
being blocked while other user requests are processed.
-
Complex requests (or large individual
requests) are separated into units of work that are then executed
in parallel. For example, filtering operations that require scanning
large tables can be processed in parallel, and operations such as
sorting can be processed by dividing the result set into subsets,
sorting each subset in parallel, and then merging the sorted subsets
into the final result set.
-
Threading is also used to return
result sets on multiple threads. For example, the FedSQL
processor can request result sets from disparate data sources on separate
threads. By reading data simultaneously, the FedSQL
processor can acquire the data faster and expedite results to the
client.
In addition to threaded
services, some data services provide threaded
I/O, which further enhance
performance.