You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by Mike Heath <mh...@apache.org> on 2007/01/31 06:38:05 UTC

First release of File Asynchronous File I/O library

I made the first release of my Asynchronous File I/O library.  The site
for the library can be found here: http://people.apache.org/~mheath/aio/
The .jar can be downloaded here:
http://people.apache.org/~mheath/aio/aio-0.1.jar  This release uses a
java.util.concurrent.ExecutorService to call
java.nio.channels.FileChannel methods in a separate thread.  The next
release will provide support for POSIX AIO.  Soon after that, a release
that uses the Linux io_submit(2) system call will be made available.
Support for Solaris is also in the pipeline.  More information and ideas
about the framework will be posted on my blog,
http://swamp.homelinux.net/blog/

As always, feedback is appreciated.

-Mike


Re: First release of File Asynchronous File I/O library

Posted by Mike Heath <mh...@apache.org>.
Trustin,

Thanks for holding me to the Apache process.  So, don't think of it as
a release then.  Perhaps the term 'release' to too formal for what
this is.  Can we think of it as a conveniently downloadable build for
testing purposes?

This code is certainly not ready for production use yet.  My goal was
to get a .jar out there so that people can conveniently download the
framework and start playing with it and provide some feedback.

As far as a formal release of AIOJ, I would love to see it in MINA
2.0-M1.  We'll need to figure out the logistics of this because when
there's JNI code involved the build/release process gets much more
complicated because we have to build and release for each platform.
We may want to make POSIX AIO and Linux libaio support (the parts that
require JNI) separate releases.

Until MINA 2.0-M1 is ready for release, is it appropriate to make
builds available as progress is made without conducting a formal
release?  I would like to get feedback earlier rather than later.  And
make a .jar available for download makes it easier for people to play
with the framework.  Refactoring JNI code is anything but pleasant so
the sooner the API stabilizes the better.  Please let me know the
proper process for infant projects like this as I've never done
anything like this at Apache before and the more I understand about
the Apache process, the better off I'll be.

-Mike

On 1/31/07, Trustin Lee <tr...@gmail.com> wrote:
> Hi Mike,
>
> On 1/31/07, Mike Heath <mh...@apache.org> wrote:
> >
> > I made the first release of my Asynchronous File I/O library.  The site
> > for the library can be found here: http://people.apache.org/~mheath/aio/
> > The .jar can be downloaded here:
> > http://people.apache.org/~mheath/aio/aio-0.1.jar  This release uses a
> > java.util.concurrent.ExecutorService to call
> > java.nio.channels.FileChannel methods in a separate thread.  The next
> > release will provide support for POSIX AIO.  Soon after that, a release
> > that uses the Linux io_submit(2) system call will be made available.
> > Support for Solaris is also in the pipeline.  More information and ideas
> > about the framework will be posted on my blog,
> > http://swamp.homelinux.net/blog/
> >
> > As always, feedback is appreciated.
>
>
> Well, I know you didn't tag anything or upload tarball to the apache
> distribution directories.  But you can't *release* anything without a vote.
> So you can't say it's a 'first release' at all.
>
> Of course, this doesn't mean that I don't want AIO to be under MINA
> project.  It is closely related with MINA, and that's why we need to discuss
> about where to place the AIO package under MINA project.  We had only one
> project in MINA so far, but now it's not.  As you know, we have at least
> three projects in our sandbox; aioj, mina-sm, and serial.
>
> What I can think of for now is to include each sandbox projects to our
> overall release road map for MINA as the sandbox project gets mature.  For
> example, we could release MINA 2.0-M1 with AIOJ, rather than releasing AIOJ
> separately.
>
> WDYT?
>
> Trustin
> --
> what we call human nature is actually human habit
> --
> http://gleamynode.net/
> --
> PGP key fingerprints:
> * E167 E6AF E73A CBCE EE41  4A29 544D DE48 FE95 4E7E
> * B693 628E 6047 4F8F CFA4  455E 1C62 A7DC 0255 ECA6
>
>

Re: First release of File Asynchronous File I/O library

Posted by Julien Vermillard <jv...@archean.fr>.
Le mercredi 31 janvier 2007 à 08:01 -0800, Cameron Taggart a écrit :
> > project in MINA so far, but now it's not.  As you know, we have at least
> > three projects in our sandbox; aioj, mina-sm, and serial.
> 
> What are the mina-sm & serial projects in the sandbox for?

serial is a new transport type (like socket, datagram and vmpipe) but
based on RXTX.org library for using serial and parallel ports.

Actuly it's under big changes :)

Julien


Re: [VOTE] First release of File Asynchronous File I/O library

Posted by Coding Horse <zh...@hotmail.com>.
Thanks a lot Trustin!  This one works.


Trustin Lee wrote:
> 
> On 3/9/07, Coding Horse <zh...@hotmail.com> wrote:
>>
>>
>> Hi, Niklas,
>>
>> What is the svn url for mina-sm?
>>
>> This one I found doesn't work for me:
>> https://svn.apache.org/repos/asf/directory/sandbox/niklas/mina-sm/
> 
> 
> 
> It's http://svn.apache.org/repos/asf/mina/sandbox/niklas/mina-sm/
> 
> HTH,
> Trustin
> -- 
> what we call human nature is actually human habit
> --
> http://gleamynode.net/
> --
> PGP Key ID: 0x0255ECA6
> 
> 

-- 
View this message in context: http://www.nabble.com/First-release-of-File-Asynchronous-File-I-O-library-tf3146800.html#a9386995
Sent from the mina dev mailing list archive at Nabble.com.


Re: [VOTE] First release of File Asynchronous File I/O library

Posted by Trustin Lee <tr...@gmail.com>.
On 3/9/07, Coding Horse <zh...@hotmail.com> wrote:
>
>
> Hi, Niklas,
>
> What is the svn url for mina-sm?
>
> This one I found doesn't work for me:
> https://svn.apache.org/repos/asf/directory/sandbox/niklas/mina-sm/



It's http://svn.apache.org/repos/asf/mina/sandbox/niklas/mina-sm/

HTH,
Trustin
-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6

Re: [VOTE] First release of File Asynchronous File I/O library

Posted by Coding Horse <zh...@hotmail.com>.
Hi, Niklas,

What is the svn url for mina-sm?

This one I found doesn't work for me:
https://svn.apache.org/repos/asf/directory/sandbox/niklas/mina-sm/

thx!


Niklas Therning wrote:
> 
> Cameron Taggart wrote:
>>> project in MINA so far, but now it's not.  As you know, we have at least
>>> three projects in our sandbox; aioj, mina-sm, and serial.
>>
>> What are the mina-sm & serial projects in the sandbox for?
>>
> mina-sm is a package for defining state machines. Have a look at this
> JIRA issue: http://issues.apache.org/jira/browse/DIRMINA-160
> 
> The design have been changed since my last comments in JIRA. The current
> design uses annotations on methods to build the SM. You use the @State
> annotation to define the available states and then you annotate the
> methods which will be wrapped in MethodTransition objects using the
> @Handler annotation.
> 
> Then you use StateMachineFactory and specifiy the classes which you want
> it to build a StateMachine from. It will read all the annotations and
> build the directed graph of State and Transition objects.
> 
> Finally you use StateMachineProxyFactory to create the dynamic proxy for
> the interfaces of your choice (e.g. IoHandler in MINA). The proxy will
> translate all method calls on the dynamic proxy into Event objects which
> are passed on to your state machine methods.
> 
> Normally the next state is statically defined in the @Handler
> annotation. However, you can also change the flow programatically
> through the StateControl class. Using it you can specify a different
> next state and whether it should handle the next event or the current
> event. There's also a subroutine like feature. This can be used if you
> have a sub graph in your state machine which will be called from several
> places and it should return to different states depending on the state
> it was called from.
> 
> One of my favorite features with mina-sm is the method arguments
> matching described in the comments of the JIRA issue. It could be quite
> slow since it uses reflection and the matching is executed for every
> event. But this could probably be optimized significantly using byte
> code generation. That would be a lot of fun to implement! :-)
> 
> So far mina-sm seems to work very well for the very complex state
> machines we have in our app. It hasn't been put in production yet but it
> will in a few weeks. If you want to check it out you will have to
> checkout the code from subversion and build yourself for now.
> 
> -- 
> Niklas Therning
> www.spamdrain.net
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/First-release-of-File-Asynchronous-File-I-O-library-tf3146800.html#a9381490
Sent from the mina dev mailing list archive at Nabble.com.


Re: First release of File Asynchronous File I/O library

Posted by Niklas Therning <ni...@trillian.se>.
Cameron Taggart wrote:
>> project in MINA so far, but now it's not.  As you know, we have at least
>> three projects in our sandbox; aioj, mina-sm, and serial.
>
> What are the mina-sm & serial projects in the sandbox for?
>
mina-sm is a package for defining state machines. Have a look at this
JIRA issue: http://issues.apache.org/jira/browse/DIRMINA-160

The design have been changed since my last comments in JIRA. The current
design uses annotations on methods to build the SM. You use the @State
annotation to define the available states and then you annotate the
methods which will be wrapped in MethodTransition objects using the
@Handler annotation.

Then you use StateMachineFactory and specifiy the classes which you want
it to build a StateMachine from. It will read all the annotations and
build the directed graph of State and Transition objects.

Finally you use StateMachineProxyFactory to create the dynamic proxy for
the interfaces of your choice (e.g. IoHandler in MINA). The proxy will
translate all method calls on the dynamic proxy into Event objects which
are passed on to your state machine methods.

Normally the next state is statically defined in the @Handler
annotation. However, you can also change the flow programatically
through the StateControl class. Using it you can specify a different
next state and whether it should handle the next event or the current
event. There's also a subroutine like feature. This can be used if you
have a sub graph in your state machine which will be called from several
places and it should return to different states depending on the state
it was called from.

One of my favorite features with mina-sm is the method arguments
matching described in the comments of the JIRA issue. It could be quite
slow since it uses reflection and the matching is executed for every
event. But this could probably be optimized significantly using byte
code generation. That would be a lot of fun to implement! :-)

So far mina-sm seems to work very well for the very complex state
machines we have in our app. It hasn't been put in production yet but it
will in a few weeks. If you want to check it out you will have to
checkout the code from subversion and build yourself for now.

-- 
Niklas Therning
www.spamdrain.net


Re: First release of File Asynchronous File I/O library

Posted by Cameron Taggart <ca...@gmail.com>.
> project in MINA so far, but now it's not.  As you know, we have at least
> three projects in our sandbox; aioj, mina-sm, and serial.

What are the mina-sm & serial projects in the sandbox for?

Re: First release of File Asynchronous File I/O library

Posted by Trustin Lee <tr...@gmail.com>.
Hi Mike,

On 1/31/07, Mike Heath <mh...@apache.org> wrote:
>
> I made the first release of my Asynchronous File I/O library.  The site
> for the library can be found here: http://people.apache.org/~mheath/aio/
> The .jar can be downloaded here:
> http://people.apache.org/~mheath/aio/aio-0.1.jar  This release uses a
> java.util.concurrent.ExecutorService to call
> java.nio.channels.FileChannel methods in a separate thread.  The next
> release will provide support for POSIX AIO.  Soon after that, a release
> that uses the Linux io_submit(2) system call will be made available.
> Support for Solaris is also in the pipeline.  More information and ideas
> about the framework will be posted on my blog,
> http://swamp.homelinux.net/blog/
>
> As always, feedback is appreciated.


Well, I know you didn't tag anything or upload tarball to the apache
distribution directories.  But you can't *release* anything without a vote.
So you can't say it's a 'first release' at all.

Of course, this doesn't mean that I don't want AIO to be under MINA
project.  It is closely related with MINA, and that's why we need to discuss
about where to place the AIO package under MINA project.  We had only one
project in MINA so far, but now it's not.  As you know, we have at least
three projects in our sandbox; aioj, mina-sm, and serial.

What I can think of for now is to include each sandbox projects to our
overall release road map for MINA as the sandbox project gets mature.  For
example, we could release MINA 2.0-M1 with AIOJ, rather than releasing AIOJ
separately.

WDYT?

Trustin
-- 
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP key fingerprints:
* E167 E6AF E73A CBCE EE41  4A29 544D DE48 FE95 4E7E
* B693 628E 6047 4F8F CFA4  455E 1C62 A7DC 0255 ECA6

Re: First release of File Asynchronous File I/O library

Posted by Emmanuel Lecharny <el...@gmail.com>.
I guess you are only responsible for a mistake when you know the rules :)

As Alex said, this is PMC to check that those rules are not broken...

Regarding 'snapshot', the best thing would be to use a continue build system
(continuum ?) so that the build is done every night, and store somwhere on
an apache repository.
Note that we have to do that for Directory project, too, so maybe we can
work on it together to avoid duplication of efforts...

Emmanuel

On 2/1/07, Mike Heath <mh...@apache.org> wrote:
>
> On Wed, 2007-01-31 at 23:20 -0500, Alex Karasulu wrote:
> > Youch! Is Trustin the only one that saw a problem with this?  Where is
> > the PMC?  This is a big red flag.
> >
> > Mike, I'm not trying to bust your keyboard but you really need to read
> this:
> >
> >     http://www.apache.org/dev/release.html
> >
> > You probably just confused a nightly build or SNAPSHOT build with an ASF
> > (PMC) sanctioned release but please do *not* announce these things here
> > without going through the PMC.
>
> Thank you for pointing me in the right direction Alex and you're correct
> this is a SNAPSHOT, not any kind of release intended for the public at
> large.  In the future, is it appropriate for me to post snapshots to my
> home directory and announce their availability or is there a different
> process I should follow?
>
> Sorry for the red flags.
>
> -Mike
>
>
>


-- 
Cordialement,
Emmanuel Lécharny
www.iktek.com

Re: First release of File Asynchronous File I/O library

Posted by Mike Heath <mh...@apache.org>.
On Wed, 2007-01-31 at 23:20 -0500, Alex Karasulu wrote:
> Youch! Is Trustin the only one that saw a problem with this?  Where is 
> the PMC?  This is a big red flag.
> 
> Mike, I'm not trying to bust your keyboard but you really need to read this:
> 
>     http://www.apache.org/dev/release.html
> 
> You probably just confused a nightly build or SNAPSHOT build with an ASF 
> (PMC) sanctioned release but please do *not* announce these things here 
> without going through the PMC.

Thank you for pointing me in the right direction Alex and you're correct
this is a SNAPSHOT, not any kind of release intended for the public at
large.  In the future, is it appropriate for me to post snapshots to my
home directory and announce their availability or is there a different
process I should follow?

Sorry for the red flags.

-Mike



Re: First release of File Asynchronous File I/O library

Posted by robert burrell donkin <ro...@gmail.com>.
On 2/1/07, Mike Heath <mh...@apache.org> wrote:
> > there is a certain tradition of solo efforts being developed offshore
> > and posted to people.apache.org then announced to apache lists. people
> > have to be careful with the naming and IMHO mike sailed just the right
> > side of the wind.
> >
> > but now we have the http://labs.apache.org/ and that's the right place
> > for efforts such as this. in the labs releases are not ok but tagged
> > milestones are.
> >
> > mike - any objections to moving Asynchronous File I/O library to the labs?
> >
> > (you'll probably need to submit a software grant for the code you've
> > already created)
>
> At this point, I can't say that I care where AIO has its home.  I just
> want something that's stable and something that will foster community
> involvement.  Apache Labs might be a good home for AIO.  If there
> aren't any objections to moving this project out of my MINA sandbox
> and into Apache Labs, I'll do that.  If we want to keep it as a
> sub-project of MINA, I would like to formalize that.

sorry - my bad: i didn't realize that it was already in the MINA
sandbox (i'd assumed you had it locally)

in this case, alex is definitely 100% right: it's MINA code and
releases require approval from the PMC.

- robert

Re: First release of File Asynchronous File I/O library

Posted by Mike Heath <mh...@apache.org>.
> there is a certain tradition of solo efforts being developed offshore
> and posted to people.apache.org then announced to apache lists. people
> have to be careful with the naming and IMHO mike sailed just the right
> side of the wind.
>
> but now we have the http://labs.apache.org/ and that's the right place
> for efforts such as this. in the labs releases are not ok but tagged
> milestones are.
>
> mike - any objections to moving Asynchronous File I/O library to the labs?
>
> (you'll probably need to submit a software grant for the code you've
> already created)

At this point, I can't say that I care where AIO has its home.  I just
want something that's stable and something that will foster community
involvement.  Apache Labs might be a good home for AIO.  If there
aren't any objections to moving this project out of my MINA sandbox
and into Apache Labs, I'll do that.  If we want to keep it as a
sub-project of MINA, I would like to formalize that.

-Mike

Re: First release of File Asynchronous File I/O library

Posted by robert burrell donkin <ro...@gmail.com>.
On 2/1/07, Alex Karasulu <ak...@apache.org> wrote:
> Mike Heath wrote:
> > I made the first release of my Asynchronous File I/O library.  The site
> > for the library can be found here: http://people.apache.org/~mheath/aio/
> > The .jar can be downloaded here:
> > http://people.apache.org/~mheath/aio/aio-0.1.jar  This release uses a
> > java.util.concurrent.ExecutorService to call
> > java.nio.channels.FileChannel methods in a separate thread.  The next
> > release will provide support for POSIX AIO.  Soon after that, a release
> > that uses the Linux io_submit(2) system call will be made available.
> > Support for Solaris is also in the pipeline.  More information and ideas
> > about the framework will be posted on my blog,
> > http://swamp.homelinux.net/blog/
> >
> > As always, feedback is appreciated.
>
> Youch! Is Trustin the only one that saw a problem with this?  Where is
> the PMC?  This is a big red flag.
>
> Mike, I'm not trying to bust your keyboard but you really need to read this:
>
>     http://www.apache.org/dev/release.html
>
> You probably just confused a nightly build or SNAPSHOT build with an ASF
> (PMC) sanctioned release but please do *not* announce these things here
> without going through the PMC.

there is a certain tradition of solo efforts being developed offshore
and posted to people.apache.org then announced to apache lists. people
have to be careful with the naming and IMHO mike sailed just the right
side of the wind.

but now we have the http://labs.apache.org/ and that's the right place
for efforts such as this. in the labs releases are not ok but tagged
milestones are.

mike - any objections to moving Asynchronous File I/O library to the labs?

(you'll probably need to submit a software grant for the code you've
already created)

- robert

Re: First release of File Asynchronous File I/O library

Posted by Alex Karasulu <ak...@apache.org>.
Mike Heath wrote:
> I made the first release of my Asynchronous File I/O library.  The site
> for the library can be found here: http://people.apache.org/~mheath/aio/
> The .jar can be downloaded here:
> http://people.apache.org/~mheath/aio/aio-0.1.jar  This release uses a
> java.util.concurrent.ExecutorService to call
> java.nio.channels.FileChannel methods in a separate thread.  The next
> release will provide support for POSIX AIO.  Soon after that, a release
> that uses the Linux io_submit(2) system call will be made available.
> Support for Solaris is also in the pipeline.  More information and ideas
> about the framework will be posted on my blog,
> http://swamp.homelinux.net/blog/
> 
> As always, feedback is appreciated.

Youch! Is Trustin the only one that saw a problem with this?  Where is 
the PMC?  This is a big red flag.

Mike, I'm not trying to bust your keyboard but you really need to read this:

    http://www.apache.org/dev/release.html

You probably just confused a nightly build or SNAPSHOT build with an ASF 
(PMC) sanctioned release but please do *not* announce these things here 
without going through the PMC.

Alex