473,549 Members | 2,243 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

using flock for concurrency control

Hi,
I have an application that maintains its configuration file. This file
is read frequently but written to very rarely. There may be several
processes attempting to read and write to the config file.
The application reads the configuration file into a buffer, inflicts
changes on the buffer and writes the buffer to the file.
The intended logic for writing the buffer into the config file is as
follows

# create a copy of config.txt say as config.txt.bak
open CONFIG_FILE, "config.txt ";
flock CONFIG_FILE, LOCK_EX;
eval {
print CONFIG_FILE "blah blah blah";
close CONFIG_FILE;
}
if ($@)
{
#CRITICAL POINT
#move config.txt.bak to config.txt
}

An issue arises when the writer process is at "CRITICAL POINT" and
another reader process attempts to read the config. File. Since the
write operation has failed, the current config. File is corrupt and the
original config. File has not been restored yet. So the reader process
gets into trouble.

Any idea on how to tackle this?

TIA,
Babu

Jul 19 '05 #1
0 3662

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

14
3142
by: deko | last post by:
Do I need to use flock() when reading a file into an array? It's possible that the file in question could be open at the time the file('filename') request is made. I realize flock() is required when opening a file with fopen() when there is contention for the file: $fp=fopen($ctr, 'w'); //only write if we can get lock on file if...
1
1424
by: jf | last post by:
Hi, If I open a file with mode 'a' (ie fopen('file','a')), must I use flock to prevent concurrency access ? I'm on a single server with no network file system. Thanks.
3
4768
by: Rex Karz | last post by:
Newbie here. I interpret the fine print at http://us2.php.net/manual/en/function.flock.php to mean that flock() does not work where the file being locked is on an NFS filesystem. The commentary following the "official" description of flock() offers numerous circumventions broken flock() where the file needing atomic access is on an NFS...
4
7862
by: writeson | last post by:
Hi all, I've got a PHP program that I've added flock() to in order to protect multiple scripts trying to write to the same file. After I added the flock() to the code the performance of the code went way down. Can anyone tell me if calling flock() on a file handle is particularly slow? Thanks, Doug
3
2803
by: siliconmike | last post by:
I've scoured over manual page for flock on http://in2.php.net/flock but I can't understand a few things: 1. will flock wait until a different process releases the lock ? 2. please clarify this line: " If you don't want flock() to block while locking, add LOCK_NB " what does "block" mean above?
19
4075
by: James Fortune | last post by:
I have a lot of respect for David Fenton and Allen Browne, but I don't understand why people who know how to write code to completely replace a front end do not write something that will automate the code that implements managing unbound controls on forms given the superior performance of unbound controls in a client/server environment. I can...
3
2104
by: Karl | last post by:
Hi .NET experts, I was a 2 tier database programmer using delphi. In Delphi, if user A is writting a record, this record is locked from user B for writting. If user A insert a new record, when user B moves cursor in datagrid, the new record will be reflected in the applicatoin. In ADO.NET, we use a 3-tier like logic. Dataset is the middle...
5
1641
by: William Gill | last post by:
I have a PHP user form that I supply a serial number for response tracking. The serial number is kept in a simple text file (tracknum.dat). When someone submits the form, PHP reads the number, increments it, writes the new number to the file, and sends the number back to the user for tracking purposes. To prevent two users from getting the...
4
19149
by: Time Waster | last post by:
Is this a stupid use of flock: FILE *fp=fopen(SOME_FILE_CONSTANT,"r+"); flock(fileno(fp),LOCK_EX); something important here, including reads and a write to fp flock(fileno(fp),LOCK_UN); fclose(fp); Does this accomplish real locking, or just narrow down the race quite a bit? (Race existing between the unlock and the
0
7546
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7740
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
1
7503
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
0
7830
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
1
5387
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5111
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3496
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1082
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
784
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.