Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-4496

Speed Test: Soap vs java serialization for our remoted services

    Details

    • Type: Task
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.0.3
    • Fix Version/s: 2.0
    • Labels:
      None
    • Rice Module:
      KIM
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required

      Description

      Rice currently defaults to java serialization for remoting... instead of SOAP. This is primarily due to performance reason.

      One issue with using serialization is that switching JVM's could cause differences in the way objects are serialized. ex. Java 5 client connecting to java 6 server.

      We need to run some speed tests to see which is faster, soap or searial for remoted services.

      For this particular case we upgrading the recipe sample app to spring 1.0.3 (snapshot) and tested that against the standalone server.
      We created a simple servlet inside the sample app. All this servlet does is take in a request param to switch the underlying service call to use serialization or soap remoting.

      Our test calls the identityService.lookupEntityInfo with an empty map. This will return a relatively large payload.

      We're testing:
      Soap vs Java Serialization

      Oracle vs MySql

      Soap Security On/off

        Attachments

          Activity

          gtaylor Garey Taylor created issue -
          gtaylor Garey Taylor made changes -
          Field Original Value New Value
          Attachment Soap vs Serialization.pdf [ 45124 ]
          Hide
          gtaylor Garey Taylor added a comment -

          There seems to be very little difference in speed between java serialization and soap.

          Show
          gtaylor Garey Taylor added a comment - There seems to be very little difference in speed between java serialization and soap.
          Hide
          gtaylor Garey Taylor added a comment -

          There seems to be very little difference in speed between java serialization and soap.

          Show
          gtaylor Garey Taylor added a comment - There seems to be very little difference in speed between java serialization and soap.
          gtaylor Garey Taylor made changes -
          KTI Review Status Not Required Pending Review
          ewestfal Eric Westfall made changes -
          Fix Version/s 1.1 [ 14190 ]
          Fix Version/s 1.0.3 [ 15646 ]
          Priority Major [ 3 ] Critical [ 2 ]
          ewestfal Eric Westfall made changes -
          Fix Version/s 1.1? [ 15811 ]
          Fix Version/s 1.1 [ 14190 ]
          ewestfal Eric Westfall made changes -
          Fix Version/s 1.1? [ 15811 ]
          ewestfal Eric Westfall made changes -
          Fix Version/s 1.1 [ 14190 ]
          ewestfal Eric Westfall made changes -
          Component/s Version Compatibility [ 13202 ]
          Hide
          ewestfal Eric Westfall added a comment -

          I'm assigning Jason to this. Jason, Garey and Jeremy have issues upcoming for our 1.0.3 version (which precedes the version compatibility work). I'm wondering how much of this sort of testing and metrics you're comfortable doing and whether you think that falls within the scope of the analysis work here?

          Show
          ewestfal Eric Westfall added a comment - I'm assigning Jason to this. Jason, Garey and Jeremy have issues upcoming for our 1.0.3 version (which precedes the version compatibility work). I'm wondering how much of this sort of testing and metrics you're comfortable doing and whether you think that falls within the scope of the analysis work here?
          ewestfal Eric Westfall made changes -
          Assignee Jason Whaley [ jwhaley ]
          Hide
          ewestfal Eric Westfall added a comment -

          Note that ultimately, coming out of this we need to make a decision on whether or not SOAP in place of serialization will be feasible. This decision should be based on the results of the testing.

          Show
          ewestfal Eric Westfall added a comment - Note that ultimately, coming out of this we need to make a decision on whether or not SOAP in place of serialization will be feasible. This decision should be based on the results of the testing.
          Hide
          ewestfal Eric Westfall added a comment -

          I'll also leave this up to garey and jeremy a bit. If you guys would like to finish out running the tests and the numbers on this serialization stuff compared to SOAP then let's have you go ahead and do that.

          Show
          ewestfal Eric Westfall added a comment - I'll also leave this up to garey and jeremy a bit. If you guys would like to finish out running the tests and the numbers on this serialization stuff compared to SOAP then let's have you go ahead and do that.
          Hide
          ewestfal Eric Westfall added a comment -

          Setting Garey and Jeremy as co-assignees here. Savoir can work with them on this item.

          Show
          ewestfal Eric Westfall added a comment - Setting Garey and Jeremy as co-assignees here. Savoir can work with them on this item.
          ewestfal Eric Westfall made changes -
          Co-Assignee/s [gtaylor, jjhanso]
          Hide
          ewestfal Eric Westfall added a comment -

          Here is a link to the google docs spreadsheet containing results so far:

          https://spreadsheets.google.com/a/kuali.org/ccc?key=0AhXD6IrDu2YJdGlZMXhRZjY1clFBMDVuSE52ejdWMnc&hl=en#gid=0

          Show
          ewestfal Eric Westfall added a comment - Here is a link to the google docs spreadsheet containing results so far: https://spreadsheets.google.com/a/kuali.org/ccc?key=0AhXD6IrDu2YJdGlZMXhRZjY1clFBMDVuSE52ejdWMnc&hl=en#gid=0
          Hide
          ewestfal Eric Westfall added a comment -

          Added Jeff as a watcher.

          Show
          ewestfal Eric Westfall added a comment - Added Jeff as a watcher.
          Hide
          jwhaley Jason Whaley (Inactive) added a comment -

          @Garey and @Jeremy: Do you have your current testing harness (and any modifications to the recipe app) committed?

          @Eric: I may do a bit more with this just to provide some more numbers so that (hopefully) any speed concerns of soap may be quelled. It may be worthwhile to find another service to test also to remove any bias that identityService.lookupEntityInfo has.

          Show
          jwhaley Jason Whaley (Inactive) added a comment - @Garey and @Jeremy: Do you have your current testing harness (and any modifications to the recipe app) committed? @Eric: I may do a bit more with this just to provide some more numbers so that (hopefully) any speed concerns of soap may be quelled. It may be worthwhile to find another service to test also to remove any bias that identityService.lookupEntityInfo has.
          Hide
          ewestfal Eric Westfall added a comment -

          Jason, addressing your first question. I don't think we even have a test harness in the recipe sample application (sad as that is). I know that there is a version of the sample application that has been updated for 1.0.3, I think we need a version as well that will be updated for 1.1. It shouldn't be too bad to do this though because it will probably just involve updating a pom file to point to a rice 1.1.0-SNAPSHOT version (note you will probalby need to do a local maven install because we don't have 1.1.0-SNAPSHOT in our central maven repo yet). If you want, we can chat about how to go about doing that and creating the branch and whatnot. I need to check as well if you guys have commit access to the repository.

          Show
          ewestfal Eric Westfall added a comment - Jason, addressing your first question. I don't think we even have a test harness in the recipe sample application (sad as that is). I know that there is a version of the sample application that has been updated for 1.0.3, I think we need a version as well that will be updated for 1.1. It shouldn't be too bad to do this though because it will probably just involve updating a pom file to point to a rice 1.1.0-SNAPSHOT version (note you will probalby need to do a local maven install because we don't have 1.1.0-SNAPSHOT in our central maven repo yet). If you want, we can chat about how to go about doing that and creating the branch and whatnot. I need to check as well if you guys have commit access to the repository.
          Hide
          ewestfal Eric Westfall added a comment -

          Addressing your second question (the one to me): Some additional testing and numbers sounds good to me. It just helps for me to be able to point at those and say that performance shouldn't be a big concern here, especially since some of the Kuali stuff has had performance issues in the past and people get understandably nervous about such things, especially when you are proposing to make a significant technology change under the hood

          Show
          ewestfal Eric Westfall added a comment - Addressing your second question (the one to me): Some additional testing and numbers sounds good to me. It just helps for me to be able to point at those and say that performance shouldn't be a big concern here, especially since some of the Kuali stuff has had performance issues in the past and people get understandably nervous about such things, especially when you are proposing to make a significant technology change under the hood
          Hide
          jjhanso Jeremy Hanson added a comment -

          Creating mock IdentityService now. I'll add a patch to the jira when done.

          I can add a patch to the changes we've made to the recipe app we are using and the jmeter test as well once I'm done.

          Show
          jjhanso Jeremy Hanson added a comment - Creating mock IdentityService now. I'll add a patch to the jira when done. I can add a patch to the changes we've made to the recipe app we are using and the jmeter test as well once I'm done.
          Hide
          jjhanso Jeremy Hanson added a comment -

          Attached rice patch for mock identity service. recipe sample app patch for new servlet which calls identity service, and jmeter test.

          Show
          jjhanso Jeremy Hanson added a comment - Attached rice patch for mock identity service. recipe sample app patch for new servlet which calls identity service, and jmeter test.
          jjhanso Jeremy Hanson made changes -
          Attachment recipe_service_patch.txt [ 45165 ]
          Attachment rice_MockIdentityServicePatch.txt [ 45166 ]
          Attachment SoapTest.jmx [ 45167 ]
          Hide
          jjhanso Jeremy Hanson added a comment -

          To turn off security on the soap service, this goes in the config file:
          <param name="kim.soapExposedService.jaxws.security">false</param>

          Show
          jjhanso Jeremy Hanson added a comment - To turn off security on the soap service, this goes in the config file: <param name="kim.soapExposedService.jaxws.security">false</param>
          Hide
          jwhaley Jason Whaley (Inactive) added a comment -

          re-assigning this back to you to determine next action or if I or someone else need to do anything further.

          Show
          jwhaley Jason Whaley (Inactive) added a comment - re-assigning this back to you to determine next action or if I or someone else need to do anything further.
          jwhaley Jason Whaley (Inactive) made changes -
          Assignee Jason Whaley [ jwhaley ] Eric Westfall [ ewestfal ]
          Hide
          ewestfal Eric Westfall added a comment -

          Probably all I need to do here to follow up is to ensure our results our documented and accessible somewhere. I'll probably get to that here in the next few weeks.

          Show
          ewestfal Eric Westfall added a comment - Probably all I need to do here to follow up is to ensure our results our documented and accessible somewhere. I'll probably get to that here in the next few weeks.
          Hide
          ewestfal Eric Westfall added a comment -

          I'm going to close this issue out. I think this plus the linked spreadsheet serve as documentation for the research done here.

          Show
          ewestfal Eric Westfall added a comment - I'm going to close this issue out. I think this plus the linked spreadsheet serve as documentation for the research done here.
          ewestfal Eric Westfall made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          jcoltrin Jessica Coltrin (Inactive) made changes -
          KTI Review Status Pending Review Not Required
          Hide
          jcoltrin Jessica Coltrin (Inactive) added a comment -

          Closing since these items are now in the release notes.

          Show
          jcoltrin Jessica Coltrin (Inactive) added a comment - Closing since these items are now in the release notes.
          jcoltrin Jessica Coltrin (Inactive) made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          spatterson Shem Patterson (Inactive) made changes -
          Workflow custom [ 85998 ] Copy of custom for rice [ 212162 ]
          spatterson Shem Patterson (Inactive) made changes -
          Workflow Copy of custom for rice [ 212162 ] custom [ 221910 ]
          spatterson Shem Patterson (Inactive) made changes -
          Workflow custom [ 221910 ] Rice Workflow [ 231658 ]

            People

            • Assignee:
              ewestfal Eric Westfall
              Reporter:
              gtaylor Garey Taylor
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: