|
From: Steve B. <st...@te...> - 2007-03-22 23:04:40
|
Are you setting the FileStoreSync option? If not, it should default to false (asynchronous writes). I haven't benchmarked the synchronous writes, so I can't comment on the 75 ms time. Your assumption #2 is correct. But you don't have to change the constructors. The default behavior is to use asynchronous writes. If you see otherwise, let me know or post a bug report in JIRA. _____ From: qui...@li... [mailto:qui...@li...] On Behalf Of bmazlish Sent: Thursday, March 22, 2007 6:03 PM To: qui...@li... Subject: [Quickfixj-users] FileStore performance I am trying to understand the performance hit I get by using a FileLogStore. In reading through the archives of quickfix, the filelogstore appears to add a marginal performance hit (message by Oren Miller dated 8-8-2006). However, this is not my experience with quickfix/j. In order to test this out, I turn off all logging so that the only i/o is the messagestore. When I run 5000 new order singles through my test program, each call to Session.sendToTarget takes under a millisecond when using a MemoryStore. However, when I replace the MemoryStore with a FileStore my performance drops and each call takes ~75 milliseconds for each call. In digging through the code, it appears that the randomaccessfiles are being initialized with the "rwd" mode -- thus requiring every message to get written to disk. I have two questions: 1- Is 75 ms reasonable? It seems far greater than the stats I have seen from the quickfix archive list-- is this a java vs C issue? 2- If i were to change the constructors of the RandomAccessFiles to just use "rw" mode, I believe I would be safe as long as the OS doesn't crash. Is this correct? Thanks for your help. I am running this on an HP DL145 server class machine running fc4 with hardware raid scsi drives and JVM 1.5.11. |