Hi Uwe/Andrew, Thank you both for the suggestions. I agree it would be cleaner to make O_DIRECT an extended open options within nio package.
We will modify the patch and update the community soon! Thanks, Lucy -----Original Message----- From: Uwe Schindler [mailto:uschind...@apache.org] Sent: Sunday, August 28, 2016 3:30 AM To: 'Andrew Haley' <a...@redhat.com>; Lu, Yingqi <yingqi...@intel.com>; core-libs-dev@openjdk.java.net Cc: Kaczmarek, Eric <eric.kaczma...@intel.com> Subject: RE: Proposal for adding O_DIRECT support into JDK 9 Hi, IMHO, I'd stay with FOS/FIS/RAF completely out of this business and not change them anymore. Those are legacy APIs! I'd suggest to add this to StandardOpenOptions (https://docs.oracle.com/javase/8/docs/api/java/nio/file/StandardOpenOption.html) and use it solely with the Java 7+ NIO.2 Path APIs. No need to change the old-style java.io.File based APIs. This is easy to implement and add, because you would only add the new Enum constant and then implement it in the default FileSystem(-Provider) for each platform. Uwe ----- Uwe Schindler uschind...@apache.org ASF Member, Apache Lucene PMC / Committer Bremen, Germany http://lucene.apache.org/ > -----Original Message----- > From: core-libs-dev [mailto:core-libs-dev-boun...@openjdk.java.net] On > Behalf Of Andrew Haley > Sent: Sunday, August 28, 2016 12:23 PM > To: Lu, Yingqi <yingqi...@intel.com>; core-libs-dev@openjdk.java.net > Cc: Kaczmarek, Eric <eric.kaczma...@intel.com> > Subject: Re: Proposal for adding O_DIRECT support into JDK 9 > > On 26/08/16 23:31, Lu, Yingqi wrote: > > > The proposal adds 4 API methods to java/io/FileInputStream.java, > > java/io/OutputStream.java to enable the feature. In addition, it add > > O_DIRECT with two more modes "ro" (read-only and direct) and "rwo" > > (read-write and direct) to java/io/RandomAccessFile.java. > > > > public FileInputStream(String name, boolean direct) throws > FileNotFoundException > > Adding a boolean for O_DIRECT does not scale well. There are many > other flags, and if there is some future expansion it would mean > adding more boolean arguments to the call signature. It might be > worth considering a more direct way to make the call to open(2). I > appreciate that not every flag passed to open() makes sense, though. > And there is Windows etc. to think about. But something like > > new FileInputStream(filename, File.DIRECT | File.APPEND) > > is much more scalable and involves less argument marshalling. > > Andrew.