7 Replies Latest reply on May 14, 2008 1:26 AM by Clebert Suconic

    AIO only waiting for completions on add

    Tim Fox Master

      I was just running some tests with AIO enabled and I couldn't believe the performance of acknowledgements.

      I looked in the code and it seems that it's only waiting for completion for adds, not for updates or deletes - this means that acknowledgements effectively return ok before they are persisted to disk! Ouch.

      In AIO mode, need to wait for completions on updates and deletes not just adds!

        • 1. Re: AIO only waiting for completions on add
          Clebert Suconic Master

          I have it fixed on my box. I need to solve some testcases before I can commit.

          • 2. Re: AIO only waiting for completions on add
            Clebert Suconic Master

            This should be fixed now.


            What I had before was an intermediary commit. It was working but it was still requiring some changes. And it is complete now.


            please, le me know If you still see anything wrong, as it would be a bug then.

            • 3. Re: AIO only waiting for completions on add
              Tim Fox Master

              Great :)

              I'll take a look.

              • 4. Re: AIO only waiting for completions on add
                Tim Fox Master

                A few points though on your last commit.

                1) Several files were missing copyright headers and class headers showing authorship. All files must have both of these before committing! I shouldn't have to keep saying this.. ;)

                2) Lots of cosmetic changes to files, code style, indentation, putting private public, static methods in their own sections of the file. Adding final to attributes and parameters. Making inner classes static. Making inner classes private. Making members private. Various other minor coding issues like the above.

                3) Remoting timeout has changed from seconds to milliseconds? I agree we should change from s to ms, but has this been changed everywhere?

                4) TypedProperties - the encodeSize() method traverses the entire map every time it is called. I don't like this for performance reasons. Instead the size should be maintained internally.

                5) Min files was changed to 2, and file size changed from 10MB to 100 MB. 10MB was originally chosen since it seems a reasonable size to fit on a single cylinder of a disk. This allows the entire file to be accessed without moving the head. When I changed it back to 10MB and 10 files, none of the jms tests run any more reporting they can't initialise AIO (or something like that).

                Apart from that, looking good! :)

                • 5. Re: AIO only waiting for completions on add
                  Clebert Suconic Master

                   

                  "timfox" wrote:
                  A few points though on your last commit.
                  1) Several files were missing copyright headers and class headers showing authorship. All files must have both of these before committing! I shouldn't have to keep saying this.. ;)

                  2) Lots of cosmetic changes to files, code style, indentation, putting private public, static methods in their own sections of the file. Adding final to attributes and parameters. Making inner classes static. Making inner classes private. Making members private. Various other minor coding issues like the above.



                  I will change my IDE properties
                  "timfox" wrote:

                  3) Remoting timeout has changed from seconds to milliseconds? I agree we should change from s to ms, but has this been changed everywhere?


                  I shouldn't have changed this.


                  "timfox" wrote:

                  4) TypedProperties - the encodeSize() method traverses the entire map every time it is called. I don't like this for performance reasons. Instead the size should be maintained internally.



                  This is faster already than creating a Buffer and fill the buffer to guess the size ;-) We can cache the value though.

                  "timfox" wrote:

                  5) Min files was changed to 2, and file size changed from 10MB to 100 MB. 10MB was originally chosen since it seems a reasonable size to fit on a single cylinder of a disk. This allows the entire file to be accessed without moving the head. When I changed it back to 10MB and 10 files, none of the jms tests run any more reporting they can't initialise AIO (or something like that).


                  I shouldn't have committed this change. I will revert it if you haven't done it already.


                  • 6. Re: AIO only waiting for completions on add
                    Clebert Suconic Master

                    The timeout change on config, was just something I had done to have a huge timeout while using a debugger. It was supposed to be 5000 seconds.. but I shouldn't have committed the file.

                    I will revert the entire commit on the config.

                    • 7. Re: AIO only waiting for completions on add
                      Clebert Suconic Master

                       

                      4) TypedProperties - the encodeSize() method traverses the entire map every time it is called. I don't like this for performance reasons. Instead the size should be maintained internally.


                      This is fixed on my local copy. Doing some tests before I can commit it.