Applications Do Very Silly Things

There is no limit to the strange behaviors that applications undertake.  And, when they’re doing regular reads and writes to a local disk, and there’s no encryption or decryption (Isolation) involved, those behaviors rarely have much noticeable impact.  But add Isolation into the mix?  There are certain behaviors that result in problems that are simply irreconcilable.

During the FESF V1.5 cycle, we received reports of an application that, quite literally, opens a file over the network for sequential access and writes 3 bytes at a time.  Does that sound silly to you?  It sure sounds silly to us.  Want even sillier?  This application also opens the file with shared read permissions, allowing OTHER applications to simultaneously open the file for read access. 

So, the user writes 3 bytes.  We need to encrypt an entire block, so we need to read it from the server.  There’s somebody on another system somewhere who also opens the file, but for read access and they need their updates, so we write the encrypted block back to the server.  And we do this every time the application writes three bytes.  This access pattern results in “less than optimal” (cough) performance by FESF.  Surprised that this app gets bad performance?  We weren’t.  We still don’t know how to fix this.