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.