Sponsored Content
Top Forums UNIX for Advanced & Expert Users Process based code vs. Thread based code Post 302234055 by rkalyankumar on Tuesday 9th of September 2008 03:22:16 AM
Old 09-09-2008
MySQL Process based code vs. Thread based code

I am just wondering on which is the best way to write programs on UNIX. Which one is better from below:

a) Spawning threads per client connection/request?
b) fork-exec new processes per client connection/request?

Assume that I am doing some database system on linux which is supposed to run on unix systems as well.

The basic differences as I know are:

Using processes - have it's own address space, communicate using SysV/POSIX shared memory + semaphores etc & context switching is costly. Also implementing processes instead of threads is that process are more stable and reliable than threads. Just because if one thread malfunctions, the entire process would break.

On the other side, using thread the context switching is less cheaper compared to that of process context switches. No need for shared memory as the memory is shared and accessible by all threads with in the process & hence can avoid costly IPC mechanism's like SysV/POSIX shared memory and semaphores. Instead use simple mutexes and condition variables.

Being said all the above, I am still not in a position to decide up on which way to go i.e. use threads or use processes?

Please help.

Regards
Kalyan
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

server based Including additional code > Lycos way

For a project we need to make sure that all php / html files in a certain directory on the webserver are showing advertisments of us. For example, when you get a website from Lycos, you'll have an advertisement in the right corner. How to? As far as I can see, Lycos includes a javascript... (1 Reply)
Discussion started by: valentijnb
1 Replies

2. Shell Programming and Scripting

Need your HELP:: Shell script to detect paragraph in coordinate-based code.

Hi Friends!! I have obtained following output from a tool called pdftoxml: <xml> <text top="423" left="521" width="333" height="20" font="3">Although the the number of fuzzy rules of a system is </text> <text top="441" left="500" width="355" height="20" font="3">directly dependant on these... (2 Replies)
Discussion started by: parshant_bvcoe
2 Replies

3. Shell Programming and Scripting

restart process based on file

Hi all. I do have a script "startApp.sh" (app result is a file /opt/extract/appextract.txt) I have no problems with stopping app var1=`ps -ef | grep -v grep | grep MyApp | awk '{print $2}'` kill -9 $var1 What I want to achieve is: I start app, app is doing some extraction, after... (11 Replies)
Discussion started by: e-l-diablo
11 Replies

4. Shell Programming and Scripting

How to fetch rows based on line numbers or based on the beginning of a word?

I have a file which will have rows like shown below, ST*820*316054716 RMR*IV*11333331009*PO*40.31 REF*IV*22234441009*xsss471-2762 DTM*003*091016 ENT*000006 RMR*IV*2222234444*PO*239.91 REF*IV*1234445451009*LJhjlkhkj471-2762 </SPAN> DTM*003* 091016 RMR*IV*2223344441009*PO*40.31... (18 Replies)
Discussion started by: Muthuraj K
18 Replies

5. Shell Programming and Scripting

Running a process based on time

Hello All, My script is nearly complete, there is just one last piece that needs to be added in. I need to check for the time, and if it is lets say for example. Sunday at 5:00AM, my script cannot run. I would assume it would be something like this, parden the terrible pseudocode ... (7 Replies)
Discussion started by: jeffs42885
7 Replies

6. Shell Programming and Scripting

Script for running root based C++ code

Hi all, I have to run C++ file using root programming, using following commands: $root -l root .L TwoTrees.C++ root TwoTrees t root t.Loop() root.q I wonder if I can write script to do the following. Thanks Pooja (12 Replies)
Discussion started by: nrjrasaxena
12 Replies

7. Shell Programming and Scripting

Appending code in a directory recursively based on a certain criteria

i am stuck with this strange problem..... maybe you can help. i have one master_file which has two column username and id_number separated by , somewhat like : cat master_file : sample,1234567 javacode,4567891 companion,23456719 adamsandler,1237681 tomcruise,56328910 bradpitt,901236781... (9 Replies)
Discussion started by: mukulverma2408
9 Replies

8. UNIX for Dummies Questions & Answers

Condition based on Timestamp (Date/Time based) from logfile (Epoch seconds)

Below is the sample logfile: Userids Date Time acb Checkout time: 2013-11-20 17:00 axy Checkout time: 2013-11-22 12:00 der Checkout time: 2013-11-17 17:00 xyz Checkout time: 2013-11-19 16:00 ddd Checkout time: 2013-11-21 16:00 aaa Checkout... (9 Replies)
Discussion started by: asjaiswal
9 Replies

9. Shell Programming and Scripting

Code snippet to cut XML files based on record length

I want to do FTP an Huge XML file to mainframe server using AIX server Since my file size is huge, i want to split the XML file based on a delimiter , the record delimiter should be set after every 27000 bytes of data and then do the ftp This is done becos the data send to the mainframe must... (1 Reply)
Discussion started by: vishwanath001
1 Replies

10. Programming

C++ separate code based on the few changes

Hi, I am working in Visual studio 2008 in which i have written the code in c++,qml,qt.Its a simulator application. I would like to create a simulator with certain changes. In order to do that i have modified the code with few changes based on the preprocessor condition. #define... (4 Replies)
Discussion started by: SA_Palani
4 Replies
nfsiod(8)						      System Manager's Manual							 nfsiod(8)

NAME
nfsiod, biod - The local NFS compatible asynchronous I/O daemon SYNOPSIS
nfsiod [ numthreads ] DESCRIPTION
The nfsiod daemon runs on an NFS compatible client machine and spawns several IO threads to service asynchronous I/O requests to its server. The I/O threads improve performance of both NFS reads and writes. Both try to enlist the aid of an idle I/O thread. If none is available, the process itself issues the request to the server and waits for the reply. The optimum number of I/O threads to run depends on many variables, such as how quickly the client will be writing, how many files will be accessed simultaneously, and the behaviour of the NFS server. For use with a Tru64 UNIX server, 7 is a good number of I/O threads for most systems. When reading, if the client believes the process is reading a file sequentially, it requests an I/O thread to read a block ahead of what the process is currently requesting. If the readahead completes before the process asks for that block, then the subsequent read system call for that data completes immediately and does not have to wait for the NFS request to complete. Read ahead will be triggered again so the read may find that next block available as well. When writing a file, the client takes the process's data, passes the request to an I/O thread and immediately returns to the process. If the process is writing data faster than the network or server can process, then eventually all the I/O threads become busy and the process has to handle a NFS write itself. This means the process has to wait until the server finishes the write. For Tru64 UNIX servers, the NFS block size is 8Kb and UFS tries to cluster I/O 64Kbs at a time. If the client is running with 7 I/O threads, 8 write requests can be in progress at once. This allows the client and server to write data 64Kbs at a time and is the reason for recommending 7 I/O threads. Unlike nfsd, each client thread can use either UDP or TCP. However, if TCP mounts are active, the nfsiod process will time out, close idle TCP connections, and acknowledge any connections closed by the server. The nfsiod process is also responsible for syncing the access time and modify times for special files and named pipes (fifos). Because I/O to these files does not go through the NFS server, NFS clients have to directly update the access time and modify time attributes. The client threads are implemented as kernel threads; they are part of Process ID 0, not the nfsiod process. The ps axml command displays idle I/O threads under PID 0. Idle threads will be waiting on nfsiod_wait. Therefore, if 7 I/O threads are configured, only 1 nfsiod process is displayed in the output from the ps command, although 7 client threads are available to handle NFS requests. FILES
Specifies the command path Specifies the file for logging NFS activity. RELATED INFORMATION
Commands: nfsd(8), nfsstat(8) Daemons: async_daemon(2) delim off nfsiod(8)
All times are GMT -4. The time now is 09:19 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy