On Friday, 19 October 2018 06:33:57 MSK HENG wrote: > Hello: > > I am new to Nginx NJS, and I want to write a website with NJS. > > I want to write a simple JSON database with NJS fs.writeFileSync ,just like > Node.js LowDB. > > but I have no idea . Does NJS fs.writeFileSync is atomic writing and race > condition prevention ? > > If NJS fs.writeFileSync is NOT atomic writing, it can NOT be treate as a > normal database file write. > > Thank you ! >
The fs.writeFileSync function calls a simple write(), which is atomic with regular files. But at the first glance to work with file like a database using multiple nginx worker processes it's not enough to have atomic writing function. You need to have atomic the whole sequence of operations: read file -> update data -> write file. Since currently there's no locking functionality in njs, the only way to achieve this is to use only one worker process. wbr, Valentin V. Bartenev _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
