I have a scenario where there is an application pointing to a CIFS (Common Internet File System) and it read the files and then moves each over locally to process it and then deletes it, which all works fine.
However now the files needed to be read from the CIFS are getting more frequent and one box is no longer enough, so they have just rolled out more boxes with said application on which I presumed would be fine, but I am getting told that multiple machines are processing the same file, which I thought was odd, but I am not able to find out for sure how the CIFS standard works when dealing with multiple moves.
The steps in the scenario for each machine (which also has multiple threads with internal locking mechanisms):
- Get list of all CIFS Files (matching a search crtieria)
- Get a single file from the list
- Check file has a corresponding file to indicate it has been written successfully
- Move file to local disk
- Delete corresponding files
- Do stuff with file
Now my original assumption was that CIFS would only honour one move request at a given time, but from what is being reported to me I am unsure if this is the case and it is honouring both move requests.
Some more context to the environment/application:
- CIFS hosted on Windows with username/password authentication
- Application hosted on windows and written in .NET
- Files moved using FileInfo.MoveTo()
- All instances of applications are on different physical computers
Any info relating to the above would be great!