The amazing adventures of Doug Hughes

This is just a quick blog post and not technical at all, as yet. I am curious to know how many out there are using ColdSpring+ModelGlue+Transfer in Production, on a live web site. Also, if any of you have done any reasonable load-testing of applications using ColdSpring+ModelGlue+Transfer. It would also help if you could state what version of ColdFusion-JVM you are running this on. Thanks in advance to all who reply.

Comments on: "ColdSpring+ModelGlue+Transfer In Production?" (12)

  1. I would also be interested in a comparison of the perfomance between the CS+MG+XFR combo and CS+MG+Reactor. I am using the latter on (among other places) and there are ocassional load-related issues, mostly due to some design deficiencies of how I pulled all the pieces together. You know what they say about hindisght…


  2. Mike Brunt said:

    @Clint, thank you for your response and I have a request, if I give you some guidelines on how to add metrics logging which is very lightweight but very informative and then give you some feedback from the logged results, might you be interested in that.


  3. I would be very interested in that. I can’t promise a speedy implementation, but if I find the time soon I will do it. I think the basic performance issue I’ve hit is that certain ORM operations will query the database tables to determine the schema and while that’s desirable from an ease of use perspective, it can be expensive from a performance perspective.

    I know about the differences between a “development” and a “production” mode and while I see that making a dramatic impact on performance, I still see certain system stored procedures (on SQL Server 2000) being executed to yield some information about the DB schema that I assume the ORM is using.

    Regardless, send me the metrics and I’ll do my best to gather and share them w/ you.



  4. Mike Brunt said:

    @Clint if you go to this blog piece
    and go almost to the end you will see how to implement Metrics Logging. Alternatively you could email your jrun.xml file to me at mbrunt AT alagad DOT com and I will the changes and mail back.

    As a note to all, I have found two applications now which use ColdSpring-ModelGlue-Transfer which have significant memory leak problems. I am trying to ascertain how many production CF application use this combination to see if this problem persists elsewhere.


  5. Jaime Metcher said:

    We are using

    Transfer 0.6.3 (yeah, I know – upgrading soon).

    CS – not sure how to tell what version, but the DefaultXMLBeanFactory is at revision 1.43,

    and MG at revision 302, which I think is 2.0 (?)

    CF7 with JVM dll version, which I think corresponds to 1.4.2_12.

    We have turned on the metrics logging, but it always stops logging within a few days. There’s possibly some interaction with FusionReactor here, because at the same time FR stops providing stack traces on running threads.

    Anyway, to cut to the chase – we did have severe memory “leaks” until we moved Transfer to 0.6.3 at which point the whole problem went away. The story is unchanged without MG in the mix, just with Transfer and CS.

    I say “leaks” because it’s possible that this was just an entirely legitimate use of available memory for caching. Either way it seems that either Transfer’s caching strategy changed or maybe some tweak in the underlying mechanisms made it possible for the JVM to reclaim more memory.


  6. Jaime Metcher said:

    Oh, and re load-testing – we did run some load tests using JMeter. We were focussing on resource usage, especially permanent generation space, not on throughput, but basically we were able to put tens of thousands of requests through without any noticable resource leaks.


  7. Mike Brunt said:

    @Jamie, thank you for posting your experiences here with the details and version numbers etc. You raise a good point regarding legitimate use of cache. The issue I am seeing relates to memory not being released efficiently which means it cannot by released via Garbage Collection. The initial move into cache is absolutely legitimate.

    Thanks again.


  8. Luis Matthews said:

    We’ve been using this combination in production for about a year or so on multiple applications. ColdFusion 7 w/ jvm 1.4.2_11, although a CF 8 upgrade is coming over the summer. Most of our load on these applications is light (on the order of 50 pages/day average over the last 6 months.)


  9. Mike Brunt said:

    @Luis thank you for commenting here. I assume from what you are saying that you have found performance to be OK? As a comparison, one of the applications I am working on will handle over 500,000 requests per day, of course that is requests not pages rendered. The request count always tends to be higher.


  10. Luis Matthews said:

    Performance is fine in our situation. Considering that we’re running 2 load balanced quad processor servers with 8gb of RAM each. For us, applications tend to be small and not heavily used. We did do extensive load testing on the servers when we set them up, and found that either of our servers was capable of staying up at approximately 4x our current load. There is a good chance that sometime over the next year we’ll start rolling out some site-wide applications at which time I’ll likely do some load testing with this combination.


  11. Mike Brunt said:

    @Luis thanks for the expanded information, We have been running some longer load tests with a ColdSpring-ModelGlue-Transfer application and are finding that 7-10 hours in to a 100 virtual user (vUser) test we rapidly run out of resources. In addition, we are working with a client in Australia with a Production application which is ColdSpring-Machii-Transfer and they have the same problem. No amount of Full Garbage collections clears up the issue in either of these applications.


  12. Mike, to bring life back an old thread, you should know that I did a full audit of my ModelGlue+ColdSpring+Reactor site and cleaned up some really sloppy session handling.

    Memory issues went away entirely. I mean, the app uses lots of memory (creates lots of objects), but it is released back to the heap, properly. At least it’s long-term stability under load (10,000 to 15,000 reqs/day) indicates such.

    On a related note, this past week I just released an application that’s MG3+ColdSpring-1.2+Transfer-1.1 that gets a significantly higher load (25,000 to 50,000 reqs/day) and we can’t keep it up for more than 10 hours!

    I was a lot more careful with my session handling, so I’m not convinced that’s the entire source of the problem, although the var-scoper tool did identify a couple of potential areas to clean up.

    I don’t want to blame Transfer, but it seems like we either don’t fully understand how the object cache is supposed to behave, or perhaps it doesn’t behave as specified (we’re on CF7, and I know that Mark has written some “lower-level” Java code related to caching; so maybe there’s issues on CF7 vs. CF8, although we haven’t proven that).

    Any thoughts? I guess the JRun Metrics would apply here too?


Comments are closed.

Tag Cloud

%d bloggers like this: