Discussions

News: eBays J2EE backend serving over 400 million transactions a day

  1. eBay, which used to be implemented as one massive DLL, has been slowly moving over its live site to a J2EE based architecture since late 2001, with over 65% of site traffic being served through J2EE as of June 2002. A new case study takes a high level look at the whole project.

    The PDF (dated April) was just pushed live last week here:
    http://www.sun.com/service/about/success/recent/Sun_eBay6-2_forWeb.pdf.

    Threaded Messages (83)

  2. I am wondering how many NT boxes for the Web Server and Applications server?? Any replications there.
  3. IIS is about to take a nose dive[ Go to top ]

    Look at the chart. Microsoft just crapped itself and Ballmer can't find diapers (i.e. dotnet)


    http://news.netcraft.com/



    ()*()
  4. eBay is a very good advertisement for J2EE and for Websphere too.

    It's good to know they could achieve fantastic performance. What I am interested to know is the cost they paid for it. I had got some info on eBay in late 2000. Apparently then, they were running NT 'server farms' and did build up quite some redundancy to achieve the reliability. Based on my memory I would put the figure loosely at 100+ machines in late 2000.

    Having performance tested a few applications I have come to believe that a CPU in NT cannot support more than 10 transactions/second. Of course it all depends on complexity of business logic and architecture, still, the figure is quite optimistic. 400 million transactions/day comes to 50 million transactions/hour in peak period or 13,888 txn/second. Thus they have 1,388 CPUs in use. Assuming an average of 4 CPUs/machine they are currently using 347 boxes. When I say that it takes 1 CPU to support 10 txn there is a catch. Usually we talk about CPU in the application server layer. We need to take into account the CPUs in other layer. For simplicity I will put that for one box in application server layer there is an additional box for all other layers. Thus eBay is currently employing 700 NT boxes/ 2800 CPUs. Now you also have to make room for certain redundancy, which might take the figure upto to 1000 boxes.

    Now another thing that interests me is the memory requirement. Assuming an average session period of 30 minutes during the peak hour we would have a peak of 25 million sessions. With 1000 boxes in use each box is supporting 25000 sessions!. Assuming a session object is as small as 1 Kb they required 25 Gb per box!! I don't know if we could put in that much per box. This leads me to conclude that they need/use far more than 1000 boxes.

    Then there is also the cost of performance testing and tuning. It would be interesting to know how much they spent one time and how much is ongoing expenditure.

    From business perspective eBay makes up a fascinating case study. Here is a company where business decisions, would be driven by the system capacity more than anything else. They can go only as far as their system goes. Thus I can imagine the internationalization decision being driven by the fact that they have lots of time of underusage of their capacity. Then there is question of handling upgrades and deploying new apps. I reckon the cost of downtime of one hour would amount to a few million dollars. For that amount they can develop whole new set of application and get many colossal boxes. It would be very interesting to know what sort of cost effective measures they have evolved to handle upgrades to application/websphere/OS/hardware. I guess they would have become the R&D lab of Websphere thus helping IBM saving the cost of doing the research themselves.

    I can very well imagine the reasons for eBay getting the kind of load that they do. One reason is their domination of the consumer marketplace. Other important reason is that bidding model causes people to keep coming and trying again and again. However the most important reason I think is that eBay has become the source of livelihood to many people. These are the people who would be always there and would keep banging the system day and night. If I would be one of them I wouldn't find it very cost effective and efficient manually bidding all day long. I would rather have an intelligent program written for me that will keep scouting good deals for me and bidding for same. With the kind of cost cutting that we are seeing I think the days are not far off where companies will start going to eBay instead of Corporate Express etc for office products. Maybe they could settle for second hand products as well. The only hitch they would see is that it is not very efficient for to go through the time consuming bidding process. Maybe they will get program written or they could contract third party vendors who will themselves have to rely on such programs. Effectively eBay will become a playground of big machines with human being slowly squeezed out. This scenario may seem a bit far fetched but I don't see why it cannot happen. If there is potential to reduce the cost executives will go for it.

    On a side note, I was trying to performance test eBay site, but I saw this unique issue that images keep changing. With Loadrunner tool, it builds up expectation of certain images being returned. Though it didn't fail because it did find the images even though images were not removed after they are not needed(for example an item on sale, thats already been sold). However the issue is that I didn't exactly fetch the right stuff because my recorded scripts fetched old images. Just wondering how Load&Performance guys at eBay test it.
    regards,
    Vikram
  5. Good analysis, Vikram!

    Yeah, I am too curiuos to know how folks at eBay do the *Performance Test*! How do they measure CPU/Mememory requirements. What is their fail safe strategy,

    Most of the folks at TSS got it all wrong. It is not a Java or .Net issue. IT IS AN *ARCHITECTURAL* ISSUE. And the real issue is how do one achieve most optimal solution for a business like eBay using whats out there.
  6. Interesting to compare to the recent article on SpecJ app server results...

    If my math is correct, 400 million transactions/day... that's roughly 4600 transactions/sec. By constrast, the recent SpecJ app server benchmarked Websphere at 450 TOPS (total operations per second).

    Now, operations do not exactly equate to transactions, but still... I'm sure the eBay servers aren't running at 100% utilization either.

    -Tim.
  7. It all depends on what they consider a transaction, but it's probably much worse than you think, because peak-to-low differential on a site like eBay could be 10:1 easily, meaning your numbers could be very conservative ;-)

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Easily share live data across a cluster!
  8. Glad to hear that. I would like to know their deployment architecture more.
  9. Very worth reading. BTW: Does anybody know what technology amazon.com uses? It's probably not J2EE is it?
  10. Amazon[ Go to top ]

    This might not amount to much, but a quick check on www.netcraft.com returns:

    /Netcraft/
    The site www.amazon.com is running Stronghold/2.4.2 Apache/1.3.6 C2NetEU/2412 (Unix) mod_fastcgi/2.2.12 on Linux
    /Netcraft/

    Sandeep
  11. If I am not mistaken Amazon.com is a big BEA - WebLogic customer.
  12. This is

    http://www.bea.com/framework.jsp?CNT=amazon.htm&FP=/content/customers/profiles
  13. Amazon runs BEA?[ Go to top ]

    This is probably true

    http://www.bea.com/framework.jsp?CNT=amazon.htm&FP=/content/customers/profiles
  14. Amazon[ Go to top ]

    Very worth reading. BTW: Does anybody know what technology amazon.com uses? It's probably not J2EE is it?


    There's (or was September 2002) a poster outside one of the training rooms of bea's UK HQ showing Amazone as a bea customer!
  15. More details[ Go to top ]

    Read this J1 presentation for more details.
  16. Tuxedo[ Go to top ]

    I believe they use Tuxedo, the pre-WebLogic TP monitor developed at Bell labs, which is now called WLE, Weblogic Enterprise.
  17. Tuxedo Amazon[ Go to top ]

    That's Amazon using Tuxedo
  18. Entity beans?[ Go to top ]

    Does eBay use Entity Beans?

    The JavaOne 2003 presentation says:

     "Modeled our data access layer after entity beans"

     "Custom O-R mapping"

     "Support for lazy loading"
  19. Entity beans?[ Go to top ]

    Does eBay use Entity Beans?

    I don't think so. The way I read that slide, they just mimicked a lot of the Entity Bean interfaces. So, they probably have factory interfaces with find... and create( ... ) methods, and so on.

    But to execute the actual persistence operations, you have to assume that EBay ran something a little closer to the metal than Entity Beans.
  20. Entity beans?[ Go to top ]

    It would be cool if the eBay architects explained why
    they decided against using Entity Beans.
  21. I'm having some issues with Entity beans and their replication (mental issues, not issues in my applications). I'm very curious about how lifecycle and replication of ejb state are related across vendors.

    Thoughts?

    John C. Dale
    DITD
  22. Entity beans?[ Go to top ]

    Why not CMP?

    I suspect that the fact that they were using Websphere 4.x - which has a rather ordinary CMP (1.1) container may have had something to do with the decision. WAS 5 is a slightly different story - but given that was only released 6 months ago...

    You DONT want to use CMP if you dont have a good CMP container.

    -Nick
  23. Nice to hear for J2EE and WebSphere
  24. Seriously guys, doesn't 400 million transactions per day sound a bit strange? There is something wrong with that number, I don't care how you look at it. My project manager worked for Chase Manhattan bank a few years ago, and he was responsible for maintaining Chase' bank/teller systems which generated approximately 1.5 million transactions/day, which seems like a reasonable number since Chase is a very large financial institution. But 400 million from Ebay, c'mon man, that number is wack!

    Raffi
  25. 400 million?...Get REAL!!!!!!!![ Go to top ]

    Well, I think your analysis needs to be pushed a little further.

    Chase , even though it is a big bank, probably does not have as many customers as eBay does (62 million according to the document).

    And according to the document again, there are 12 million items listed on eBay on any given day.

    So if you include the following in your count of transactions:

    1. Each time the user logs in /access their profile
    2. Each time the user searches or browses for items on auction
    3. Each time the user makes a bid
    4. Each time the user checks the status of their bids
    5. Each time a new item is auctioned
    6. Each time a user checks a seller's/buyer's ratings & feedback and every time
    feedback is provided

    I'm sure I missed a whole lot more, but with the sheer volume of users and items for sale, I think all of the above will really add up. (Of course, it also depends on what you count as a transaction)
  26. what about Google ?[ Go to top ]

    If EBay is doing 400Million transactions per day, how many is google
    handling ? and how are they handling them ?
  27. Google is all proprietary[ Go to top ]

    Once Google's chief architect explained how do they implement their search engine. It was interesting. They considered Java servlets, btw. They ended up by developing their own proprietary server-side technology.
  28. Google is all proprietary[ Go to top ]

    The particular problem space that Google addresses can't really be compared/contrasted with the ones ebay tackles. Mainly because the primary task that Google performs (after all the indexing and processing has been completed) is non-transactional information retrieval. Of course, there might be some writes here and there for tracking usage patterns or whatever. But since the data is primarily read-only, they don't run into consistency issues of the sort that you would encounter in transaction-oriented systems.

    And remember, the task of searching scales well in parallel, meaning that workloads are highly partitionable. Strangely enough, so is the transaction-oriented TPC-C workload, which is why you have MS Sql Server doing well in the non-clustered results section with distributed partitioned views. But that's not necesarily the case for most large transactional systems.

    Anyway, you have to admit that Google scales well. When you submit a Google query, it's in turn submitted by Google's web servers to multiple index servers. The separate results from the lookup are then merged by the web servers.

    From what I remember from a presentation he made, Urs Holzle from Google once said that a query could be broken up to be processed by as many as a 100 separate servers. The document cache is on a separate set of servers. They use large clusters (over 15,000 machines) of cheap PC-based rack-mount servers (mid range x86, 40-80GB sized disks) organized in racks of 40-80 CPUs each. Everything runs Linux. They also do a lot of replication internally, making the aggregate system more reliable, not to mention very highly available. Also, they realized that with the volume of data that they were handling, caching didn't really help.

    Anyway, as I said, I don't think it's the same problem space. The general idea that Java/J2EE is slow is probably more due to inappropriate architectures (which are pretty easy to perpetrate in Java if you're not careful) than anything else.

    Sandeep
  29. ##
    Well, I think your analysis needs to be pushed a little further.
    ##

    Sure, I'll push it further :-P

    It's clear that if Ebay is counting a simple login, or page generation, or user profile access, etc, as a transaction, then they obviously do not understand what a transaction is, and the majority of the items you listed are simply not real transactions. A transaction -- in the context of a software system and for all practical puporses -- defines an atomic scope of work performed by a database server where the database is altered based on the execution of the transaction. Now, the task of logging in, accessing your profile, viewing an auction, and checking the feedback of a user are certainly NOT transactions because you're not changing anything. Think about it from an EJB perspective: what would be the transactional attribute for a session bean method named getUserFeedback(User)? Condisering that accessing the feedback of a user does not require the overhead of creating a transaction or being included within the context of another transaction, I'm willing to bet that ""NotSupported" would be the proper attribute, and therefore, there is 'no' transaction.

    I'm guessing that Ebay is counting everything as a transaction, even simple page hits, which, of course, would make that number go extremely high.

    Whatever, who cares, really, they're a great service, nonetheless, and I've sold tons of crap with them and performed, hmm, maybe 10 million transactions alone in the last week! :-P

    Raffi
  30. Seriously guys, doesn't 400 million transactions per day sound a bit strange?


    Keep in mind that this is eBay we're talking about. With a bank, you just follow through with the transactions. With eBay, people refresh constantly (especially during the last 15 minutes) because they don't want to be outbid at the last second. These refreshes tend to add up.
  31. Hi,

    a) You're confusing a web-site transaction, which happens when the user navigates from page to page, with a financial transaction. Our local New Zealand banks hit a few hundred thousand transactions a day on their websites - and we just ain't that big. If browse ebay through checking out 10 things for sale, I probably do 20 transactions in half an hour, and I might do 20 financial transactions a *year* with my bank teller.

    b) eBay is *internationally* huge. Chase Manhattan may be a big nationwide retail bank over there in the US (or so I gather from what you say). So? The world is (a lot) bigger than that.

    Sean
  32. 400 million?...Get REAL!!!!!!!![ Go to top ]

    Hello

    Is it really so? Does browsing count as transactional operation in these web-world calculations?

    I was naive enough to believe only logins, bidding and so on count.

    Comments about Google were interesting. Is there any corresponding url available? Or maybe I should try if I feel lucky at www.google.com instead.

    Rookie
  33. This is just in:

    As eBays techs have discovered, the real reason for having 400 million transactions a day was that they set the default TX Attributes for both all Entity and all Session Beans to "RequiresNew".

    (Just joking. But actually, this is the only way to explain the numbers.)

    Lars
  34. Google architecture link[ Go to top ]

    Comments about Google were interesting. Is there any corresponding url >available? Or maybe I should try if I feel lucky at www.google.com instead.

    >
    This is the original paper on the Google architecture, http://www7.scu.edu.au/programme/fullpapers/1921/com1921.htm. I'd be interested in learning about any changes to the current implementation.

    James
  35. Isn't it amazing about how a fat, slow, useless, and unproductive technology such as Java manages to prove itself.

    I'm really curious about what Rolf will say over this article...
  36. Isn't it amazing about how a fat, slow, useless, and unproductive technology such as Java manages to prove itself.
    I'm really curious about what Rolf will say over this article...


    Yes, it is amazing.

    1) The decision to use Java was taken back in 2000, before .NET even was released.

    2) They have regretted many times since then!

    3) If you throw enough manpower (100+ developers) and hardware at any problem you usually manage to solve the problem. But you have to ask yourself: "Could I have saved money?". BTW Google handle "a lot" more customers and they are in the process to migrate their proprietary system to PHP..

    4) They are not using EJB, Websphere is used as a "glorified Tomcat server".

    5) If you search for Java at jobsearch.monster.com, you find about 3500 hits. Last year it always went over the 5000 limit ("more then 5000"). Instead now it is the .NET search that break the 5000 limit (1200-1300 in mars-april).

    6) There is a tremendous activity around C#/.NET. Look for instance at http://weblogs.asp.net or http://blogs.gotdotnet.com for list of bloggers. There are at least 100 hundred forums with activity level over 20-30 post per day, etc etc. The Java forums have less and less activity. At JavaOne there were only 5000 participants, down from 16000 last year- 25000 the year before.

    7) Later this year Ximian will release the first version of Mono. 100% open source.

    8) In addition there is no "buddy corruption" in .NET land. No hypocrite characters that publish post with the main motive to advertise their own product - meanwhile they sit in with JCP and prolong/sabotage the process to protect their own interests. PUH! Fresh Air!

    Regards
    Rolf Tollerud
  37. Are u smoking Cigar or crack ?[ Go to top ]

    5) If you search for Java at jobsearch.monster.com, you find about 3500 hits. Last year it always >>went over the 5000 limit ("more then 5000"). Instead now it is the .NET search that break the >5000 limit (1200-1300 in mars-april).


     I just checked monster.com with Java as key word and 3800 jobs returned.


    In case of .Net (.Not) only 1300 jobs returned.

    .Not is a total failure projects are failing on .Not hype like VB.

    By the way they mention java as keyword.
  38. Are u smoking Cigar or crack ?[ Go to top ]

    <quote>
    .Not is a total failure projects are failing on .Not hype like VB.
    </quote>
    You are so wrong.
    .NET is an incredibly productive and feature rich platform. Trust me, I've used it. In many ways it's superior (and more elegant than) Java. Something this good _and_ backed by Microsoft's money won't go away.

    Stern
  39. Are u smoking Cigar or crack ?[ Go to top ]

    .Net is only productive if you need to slap something together quickly. On a large system that type of productivity loses it's productivity might quickly
  40. Are u smoking Cigar or crack ?[ Go to top ]

    <quote>
    .Net is only productive if you need to slap something together quickly. On a large system that type of productivity loses it's productivity might quickly
    </quote>

    I didn't say it was a small project, and I didn't say it was slapped together quickly. Have you used .NET? How do you know that what you are saying is true? It seems to me that you are full of stereotypes.

    <quote>
    Oh please, not these M$ guys again!! Cmon, spreading flame baits on a java forum is defintely _not_ a good way to convert people to .net!! Go do something productive to your platform, for christ sake!

    I am tired of these M$ people with nothing better to do than bash java in a java forum. Don't MSDN have some education lessons online for you? You can practice java bashing on M$ forums anyway you like, we promise we wont mind. Doing it here is not good for anyone.
    </quote>

    I'm not a MS guy, I'm currently working with Java and I would consider convincing you to do anything a waste of my time. By calling .Net .Not you and others show signs of denial and make me think Java developers aren't professional. It takes only not to be blind to see that .Net is a quality product, and not just for doing GUI's. If .Net is actually better than Java, it remains to be seen, no? What's obvious is that it looks good.


    <quote>
    Java's use in scientific research is growing quite quickly judging by the JCP request for improvements in Java's floating point capabilities.
    </quote>

    They're requesting for improvements because I far as I know Java's floating point capabilities suck.
  41. Are u smoking Cigar or crack ?[ Go to top ]

    <quote>
      They're requesting for improvements because I far as I know Java's floating point capabilities suck.
    </quote>

    Precisely so that the Scientific community can use Java even more :-)
  42. I am tired of these M$ people with nothing better to do than bash java in a java forum. Don't MSDN have some education lessons online for you? You can practice java bashing on M$ forums anyway you like, we promise we wont mind. Doing it here is not good for anyone.

    > </quote>
    >
    > I'm not a MS guy, I'm currently working with Java and I would consider convincing you to do anything a waste of my time. By calling .Net .Not you and others show signs of denial and make me think Java developers aren't professional. It takes only not to be blind to see that .Net is a quality product, and not just for doing GUI's. If .Net is actually better than Java, it remains to be seen, no? What's obvious is that it looks good.
    >

    FYI, I work everyday with ASP code, so I could be called an "M$ guy" too. I'd rather be working with java, full time, but the company I work with prefers M$. So you actually you don't have to convince me, indeed. Anyway, I am not saying .Net is bad and Java is good, I dont care who's better, I can work with either one. I am complaining about certain M$ guys misplaced attitude here in this forum, bashing java endlessly and annoyingly. That's the problem.
  43. Obviously your Havannas are fake[ Go to top ]

    doing a search on google using the search terms: "java + programming" yields 2.5 million results, doing a search on "C# + programming" yields only 640000 results.

    I might point out to you that while .Net is growing quickly on desktop but Java is much stronger on everything else. tell me Rolf, do you see .Net in
    - Cell phones
    - Real time systems
    - Scientific Research
    - Education


    Finally do you really think that mono will convert a bunch of GPL hackers that classify Microsoft on the Same level as Satan. They don't like Java much either but at least they'll feel that they won't be selling their soul using it.
  44. doing a search on google using the search terms: "java + programming" yields 2.5 million results, doing a search on "C# + programming" yields only 640000 results.


    .NET is much bigger than C#, have you tried C++ and VB? Well, what about F# (yes, .NET offers some amazing technical opportunities - but I guess it's not a good forum to dicsuss wonders of functional programming).

    >
    > I might point out to you that while .Net is growing quickly on desktop but Java is much stronger on everything else. tell me Rolf, do you see .Net in
    > - Cell phones
    > - Real time systems
    > - Scientific Research
    > - Education
    >

    For me personally server side programming is the most important ... and .NET is growing here.
    Also I have seen .NET in Scientific Research and Education, although the first still prefer C/C++ and I noticed the move in second towards OO scripting languages (like Python or Ruby).

    Finally for my day to day activities I can switch between Java and .NET/C# or C++ instantly. 99% of thinking, necessary skills etc. is exactly the same ... syntax and libraries are slightly different, but hey, I'm a professional I can adapt.

    Cheers,
    Krzysztof
  45. <quote>
    .NET is much bigger than C#, have you tried C++ and VB? Well, what about F# (yes, .NET offers some amazing technical opportunities - but I guess it's not a good forum to dicsuss wonders of functional programming).
    </quote>

    I actually originally used the search term ".Net" but I got all the web sites with the ".net" domain name, so it obviously skewed the numbers.

    Furthermore do you think .Net is growing on the server by replacing Java on the server or replacing legacy COM systems? Java's use in scientific research is growing quite quickly judging by the JCP request for improvements in Java's floating point capabilities.
  46. Oh please, not these M$ guys again!! Cmon, spreading flame baits on a java forum is defintely _not_ a good way to convert people to .net!! Go do something productive to your platform, for christ sake!

    I am tired of these M$ people with nothing better to do than bash java in a java forum. Don't MSDN have some education lessons online for you? You can practice java bashing on M$ forums anyway you like, we promise we wont mind. Doing it here is not good for anyone.

    Thanks for your comprehension.
  47. Oh please, not these M$ guys again!! Cmon, spreading flame baits on a java forum is defintely _not_ a good way to convert people to .net!! Go do something productive to your platform, for christ sake!

    >
    > I am tired of these M$ people with nothing better to do than bash java in a java forum. Don't MSDN have some education lessons online for you? You can practice java bashing on M$ forums anyway you like, we promise we wont mind. Doing it here is not good for anyone.
    >
    And I'm increasingly tired with people who are so childish and/or stupid that they can't name Microsoft by their real name or make up their own arguments but instead copy things invented by the anti-Microsoft crowd at slashdot.

    I'm a stern Java supporter, and I hate VB and MFC, but I do think there is a place for both technologies.
    Just as a longterm Java team won't easily switch to .NET, so an established Microsoft team won't easily switch to J2EE.
  48. Oh please, not these M$ guys again!! Cmon, spreading flame baits on a java forum is defintely _not_ a good way to convert people to .net!! Go do something productive to your platform, for christ sake!

    > >
    > > I am tired of these M$ people with nothing better to do than bash java in a java forum. Don't MSDN have some education lessons online for you? You can practice java bashing on M$ forums anyway you like, we promise we wont mind. Doing it here is not good for anyone.
    > >
    > And I'm increasingly tired with people who are so childish and/or stupid that they can't name Microsoft by their real name or make up their own arguments but instead copy things invented by the anti-Microsoft crowd at slashdot.
    >
    > I'm a stern Java supporter, and I hate VB and MFC, but I do think there is a place for both technologies.
    > Just as a longterm Java team won't easily switch to .NET, so an established Microsoft team won't easily switch to J2EE.

    Seems like you haven't read the whole thread, or you wouldn't be writing this BS about me (here). Read before you post, please.
  49. .NET is much bigger than C#, have you tried C++ and VB?


    VB for server side development, woo hoo! A dream come true, I cannot wait to do that!

    /T
  50. If you want to use container managed transactions in .NET you have to either use COM+ wrappers or write your own transaction monitor. Since I have yet to meet a VB programmer who actually knew what a transaction monitor was, you're stuck with COM+, and trust me on this one - IT. DOESN'T. WORK.


    > .NET is much bigger than C#, have you tried C++ and VB? Well, what about F# (yes, .NET offers some amazing technical opportunities - but I guess it's not a good forum to dicsuss wonders of functional programming).
    >
    >
    > For me personally server side programming is the most important ... and .NET is growing here.
    > Also I have seen .NET in Scientific Research and Education, although the first still prefer C/C++ and I noticed the move in second towards OO scripting languages (like Python or Ruby).
    >
    > Finally for my day to day activities I can switch between Java and .NET/C# or C++ instantly. 99% of thinking, necessary skills etc. is exactly the same ... syntax and libraries are slightly different, but hey, I'm a professional I can adapt.
    >
    > Cheers,
    > Krzysztof
  51. .Net vs Java[ Go to top ]

    I really don't want to legitimize this .Net vs Java thing going on here, and end up veering way off course the main topic.

    As someone who has to deal with both .Net and J2EE worlds, I'm yet to find mature solutions in the .Net realm to problems such as object-relational mapping and object caching, or even good original implementations of web application design patterns such as MVC/Model2(Maverick.Net is a port of a Java framework) - tools that I've found very useful in building and maintaining large applications.

    Also, with transaction monitors - Microsoft had a cutting edge product in MTS back in the 90s. However, the current state of affairs leaves much to be desired. Microsoft .Net Enterprises Services and COM+ 1.5 are recent developments (the earlier releases of System.EnterpriseServices was really clunky) and not all that impressive.
    See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnentsrv/html/netenterpriseandcomplus.asp for details.

    There is no denying that J2EE currently has the advantage as far as platform maturity is concerned.

    I'm currently developing a JBoss/Tomcat/Oracle/Hibernate/Webwork-based product that could not possibly have been built the way I wanted to build it using Microsoft technology today. If I need database independence and I don't want to write reams of Sql, what do I do in the Microsoft world? There are a few emerging ORM tools, but nothing really mature or definitive yet.

    On the other hand, if you're a 100% Microsoft shop, I would recommend that you steer clear of J2EE unless you don't have a choice.

    Sandeep
  52. .Net vs Java[ Go to top ]

    Sandeep, Hibrenate is coming out with a .NET version.
    Java and C# are very close.

    The winner is us, the developers.

    Ex: No more begging the EG.... please, please give me rowset.
    C# has dataset.
    Now java 1.5 has rowset.

    Cool. Now what else do I want?

    .V
  53. Hibernate for .NET?[ Go to top ]

    <Vic>
    Hibrenate is coming out with a .NET version.
    </Vic>

    Where did you see this? Where can *I* see this? Are the Hibernate folks doing this or is somebody else porting it?

    Ryan
  54. Hibernate for .NET?[ Go to top ]

    Ryan you asked where is nHibernate ? on sf.net.

    http://marc.theaimsgroup.com/?l=struts-dev&m=105567816628944&w=2

    (but of course I like iBatis... and tht is on Java)

    .V
  55. Hibernate for .NET?[ Go to top ]

    I see now. Instead of "Hibernate is coming out with a .NET version", perhaps that should read "Somebody is trying to port Hibernate to .NET" From what I can tell, it looks like so many SF project - vaporware. Maybe it will get of the ground some day.

    C'est la vie.

    Ryan
  56. Hibernate for .NET?[ Go to top ]

    I see now. Instead of "Hibernate is coming out with a .NET version", perhaps that should read "Somebody is trying to port Hibernate to .NET" From what I can tell, it looks like so many SF project - vaporware. Maybe it will get of the ground some day.

    >
    Yeah, no files. But from what I can tell, it shouldn't be that difficult. iText has been ported. Haven't tried the .Net version though.

    An issue may be that .Net languages don't declare in code what exceptions they will throw. I haven't tested this yet, but I've been told that if you want to switch from Oracle to DB2(within .Net) you will have to switch from catching Oracle exceptions to DB2 exceptions (I wish/hope I was/am wrong).

    (Sorry to continue off course)
  57. Hibernate for .NET?[ Go to top ]

    Sorry Vic. Looks like I was typing while you were posting.
  58. Hibernate for .NET?[ Go to top ]

    <Vic>

    > Hibrenate is coming out with a .NET version.
    > </Vic>
    >
    > Where did you see this? Where can *I* see this? Are the Hibernate folks doing this or is somebody else porting it?
    >
    > Ryan

    It is a port. I don't think that the Hiberante "people" are doing this but they do have a link to the project on their site under related projects. http://sourceforge.net/projects/nhibernate

    I too would welcome this as some of my clients are MS only. Currently I have to do all the mapping myself. There are tools to create objects from a recordset (terminology is off) but the classes are not concrete so I have to map their objects to POC#O.

    Mark
  59. .Net vs Java[ Go to top ]

    Sandeep, Hibrenate is coming out with a .NET version.


    Not really. If you are referring to www.sourceforge.net/projects/nhibernate - that project seems to have been inactive for a while. Besides, at the rate Hibernate is progressing, its unlikely that they will catch up.

    > Java and C# are very close.
    > The winner is us, the developers.
    >
    > Ex: No more begging the EG.... please, please give me rowset.
    > C# has dataset.
    > Now java 1.5 has rowset.
    >
    > Cool. Now what else do I want?

    Vic, I agree completely. As far as languages go, I *love* C#. Unfortunately, just as Java and J2EE are not the same thing, C# and .Net are not the same thing either. Its all about the plumbing. The .Net plumbing needs a few more embellishments.

    Sandeep
  60. .NET is very young[ Go to top ]

    When Java came in 90s, it didn't have anything for transactions. Only with J2EE/EJB we got transactions and other useful enterprise stuff. Before that you had to use proprietary tx monitors.

    .NET is just about a year old, so you can not expect the same level maturity of it. In few years we'll see that just as SQL Server did, .NET will grab its own share of market. So far tx-monitors are not well integrated in to .NET, but I'd expect MS will work on it. .NET is not Bob :)
  61. .NET is very young[ Go to top ]

    It is interesting to note:

    Java is without a doubt the best hardcore enterprise solutions development platform out there at the momment but is difficult to use (not really but that's what everyone tells me).

    .Net lacks the enterprise features of Java but is easy to use.

    .Net will continue to mature in the enterprise space
    Java is slowly but surely becoming easier to use

    Bottom Line: Microsoft is watching Java with great interest and The Java community is (finally) watching Microsoft, either way the only people who win are us developers!
  62. .NET is very young[ Go to top ]

    <quote>
    Bottom Line: Microsoft is watching Java with great interest and The Java community is (finally) watching Microsoft, either way the only people who win are us developers!
    </quote>
    Exactly! I don't care if Sun and/or Microsoft go under and Coca Cola gives as the Coke platform to develop on. I just want to make my money and get on with my life using a decent product.I have no feelings about companies or platforms. They're just tools and somebody's got to make them and the best will sell them. Period.
  63. I have been suprised that Mono made their own Mail API. It was shock for me that .Net has no own Mail API. Probably Exchane will have soon its own :-) to make you vendor lock. .Net API is terrible in many cases. They have even no SQL connection factories in ADO .NET. And You have plenty of examples that it will be the best for you to use conn = new SQLConnection() if You have MS SQL box.
    The only thing which makes .Net attractive is good DataSet to controls binidng
    stuff. This is what Java still lacks. Sun promotes JavaBeans (I mean not only Entity) as data sets. This totally fails in many cases (e.g. when you have dynamic model). It seems that they slowly change their mind
    Also VS .Net is really poor tool comparing to JBuilder. Have You heard about refactoring ? I believe that this is much more important that all this wizards which produce incredible difficult to maintain code.
  64. oh the irony[ Go to top ]

    8) In addition there is no "buddy corruption" in .NET land. No hypocrite characters that publish post with the main motive to advertise their own product - meanwhile they sit in with JCP and prolong/sabotage the process to protect their own interests. PUH! Fresh Air!

    Woohoo! Untapped opportunity!

    Peace,

    Cameron Purdy
    Tangosol, Inc.
    Coherence: Easily share live data across a cluster!

    p.s. didn't you make a promise?
  65. Isn't it amazing about how a fat, slow, useless, and unproductive technology such as Java manages to prove itself.

    > I'm really curious about what Rolf will say over this article...

    >
    > Yes, it is amazing.
    >
    > 1) The decision to use Java was taken back in 2000, before .NET even was released.

    And what exactly (besides your own opinion) makes you think they would have selected .NET now? Hard evidence, please.
     
    > 2) They have regretted many times since then!

    Yes, and you know this how? Show me the document if you haven't manifactured this yourself as usual.

    > 3) If you throw enough manpower (100+ developers) and hardware at any problem you usually manage to solve the problem. But you have to ask yourself: "Could I have saved money?". BTW Google handle "a lot" more customers and they are in the process to migrate their proprietary system to PHP..

    EXACTLY the same argument applies to .NET or any other system. You are not saying anything useful here. We all know the TCO comparisons -- you will select the ones that favour your point of view, I will select the ones that I actually think are objective. None of this matters though, since it is clear which ones Amazon has considered reliable.

    Btw, the fact that you cannot see that the problem Google solves is very very different and it can in no way be compared to Amazon's indicates that you simply do not understand the subject matter. Pity.
     
    > 4) They are not using EJB, Websphere is used as a "glorified Tomcat server".

    Oh. This hurt. I guess Tomcat is part of .NET now and not part of J2EE. And I am curious what the image on page 11 means under EJB.
     

    [a number of childish points with no relevance to the article at all cut]

    You know, if your messages were actually informative, people might listen to you for a change. But responses like this indicate that you are not objective at all, have no understanding of the issues involved, and simply do not deserve serious attention.

    Have a good day.
  66. Go-mono.com[ Go to top ]

    See:

    http://www.borland.com/csharpbuilder/demo/CsharpBuilderDemoShort.htm

    And not much wrong with this:
    http://www.datagridgirl.com/customcolumns.aspx
    and http://www.asp.net/webmatrix/guidedtour/getstarted/tooloverview.aspx (compare that to a view we can do in Java, or JSF)

    Cost is allways a consideration and if they can server more customers on less hardwarer, that is a good choice.

    Not much difference btwn Java and C#.
    ADO.net is very fast. Even EBay is not using Entity Beans, presumably becuase they found that they are not scaleable. I am tired of Sun pushing EJB on us. The way I read the article, eBay managment felt .Net was not ready then, a good decision. If I was a consultant on site, I would allways say keep all options open. Maybe ebay v 4 is C#.

    C# is ECMA standard and bytecode (CLI) can run cross platform on BSD, OS X and go-mono.com and I can get C# IDE from Borland or InteliJ.

    This is good for Java! becuase more competition makes the platform better.

    .V
  67. Go-mono.com[ Go to top ]

    <quote>
    C# is ECMA standard and bytecode (CLI) can run cross platform on BSD, OS X and go-mono.com and I can get C# IDE from Borland or InteliJ.
    </quote>

    Only the bytecode and language spec are ECMA, without the .Net APIs and servers it's just a language without any steam, go-mono.com has an uphill battle in trying to keep up with Microsoft and there is always a chance that Microsoft will throw IP weight arround and knee-cap mono.

    I you ask me Mono is another Wine in the making...
  68. Go-mono.com[ Go to top ]

    I you ask me Mono is another Wine in the making...


    Actually it is wine...
    Since MS didn't standarize the API, the guys at Ximian are trying to
    get WinForms running on top of wine ;) So you will have an open source
    VM running Windows DLL's VIA a compatability layer, and by the time this
    works MS will statically link DLL's....

    I really hate people mentioning MONO as an example that .Net is not
    purely a Microsoft product. MONO is as much .Net as Kaffe, GCJ,
    Gnu-Classpath etc... are Java. These projects are far more useful
    and yet they are not as popular as they should be. MONO will end up
    pretty much the same.

    So we have two closed environments, but with Java we have open source
    IDE's, JRE's/JDK's from several vendors (Sun, IBM, HP, Apple, BEA
    etc...), the JCP (which standarizes everything and not just the VM
    which is useless).

    So Java isn't GPL... but in terms of vendor lock in, you can't really
    compare it to .Net, and MONO is so far just a sad joke that anyone
    with any bit of credability won't mention as a pro .Net argument.
  69. Ya!I am glad to see such a successful case of J2EE project which
    demostrated scalability. However, I am concern about the response
    time of the eBay transaction. Do u know?
  70. Give over[ Go to top ]

    |
    |Even EBay is not using Entity Beans, presumably becuase they found that they
    |are not scaleable. I am tired of Sun pushing EJB on us
    |

    Some of us are tired of the relentless EJB bashers. See my above post on what also may have influenced their decision...

    CMP2 still has its faults - but if you care to look at the SQL fired against the database from a decent CMP container, you wont find it too different from your lovingly hand-crafted DAO SQL...

    The problems with CMP are not always at the perf level - its the development effort. (And the lack of dynamic query capabilities... )

    -Nick
  71. Limitations of EJB QL[ Go to top ]

    The problems with CMP are not always at the perf level - its the development effort. (And the lack of dynamic query capabilities... )

    >
    Lack of dynamic query is just one of the limitations of EJB QL in EJB 2.0. The EJB 2.1 spec is an improvement, but many limitations (including lack of dynamic query) remain. Fortunately, some application servers implement features that are beyond the spec in order to make EJB query more practical and EJB development more productive.
    For instance, (and picking one J2EE application server completely at random...)WebSphere 5.0 includes support for order by, group by,& having clauses, sub-queries and support for query on attributes of dependent objects (even if they are mapped to different tables). WebSphere Enterprise includes support for dynamic queries, multiple element select clauses, method calls, and return of aggregation values.

    Tom
    I work for IBM but the opinions are my own.
  72. Does must be some weird Havanas[ Go to top ]

    <quote by="Rolf">Yes, it is amazing.</quote>

    What's truly amazing is the way you never let an idea interrupt the flow of your typing, but then, making sense isn't your area of expertise.


    <quote by="Rolf">1) The decision to use Java was taken back in 2000, before .NET even was released.</quote></quote>
    Really!! ... I could have sworn that Microsoft was in bed with E-bay back in the day, in fact Steve Balmer himself seem to think that Ebay was to be a Microsoft win.

    <quote by="Rolf">2) They have regretted many times since then!</quote>

    Let me be the one to first break the news to you buddy... the stuff that you read on the magic eight ball is not true... that's right... the ball isn't magic at all.
    If you didn't get that information from the magic eight ball, could you be so kind as to share with the rest of us (who are not blessed with that kind of EBay inside information) the source of claim.

    <quote by="Rolf">3) If you throw enough manpower (100+ developers) and hardware at any problem you usually manage to solve the problem. But you have to ask yourself: "Could I have saved money?". BTW Google handle "a lot" more customers and they are in the process to migrate their proprietary system to PHP..</quote>

    But apparently, not even the power of 100+ developers asking for you to shut up is enough.

    <quote by="Rolf">4) They are not using EJB, Websphere is used as a "glorified Tomcat server".</quote>

    Thank you! We're all enlightened and challenged by your unique point of view.
    I'm sure that all of IBM customers would like to know more about it.

    <quote by="Rolf">5) If you search for Java at jobsearch.monster.com, you find about 3500 hits. Last year it always went over the 5000 limit ("more then 5000"). Instead now it is the .NET search that break the 5000 limit (1200-1300 in mars-april).</quote>

    And you we all know how relevant these cooked up statistics are to the transaction count of EBay.

    <quote by="Rolf">6) There is a tremendous activity around C#/.NET. Look for instance at http://weblogs.asp.net or http://blogs.gotdotnet.com for list of bloggers. There are at least 100 hundred forums with activity level over 20-30 post per day, etc etc. The Java forums have less and less activity. At JavaOne there were only 5000 participants, down from 16000 last year- 25000 the year before.</quote>

    There is also a lot of activity of flies around hot cow dump. I mean there's like millions of flies over the sh#!! ... so what's your point? ... You do have a point I presume.

    <quote by="Rolf">7) Later this year Ximian will release the first version of Mono. 100% open source.</quote>

    How!! ... So I guess EBay would be a fool not use it... right?! Because being 100% open source matters allot to the folks at Ebay, you should know, after all you got some inside information at EBay... you are still talking about EBay right?

    <quote by="Rolf">8) In addition there is no "buddy corruption" in .NET land. No hypocrite characters that publish post with the main motive to advertise their own product - meanwhile they sit in with JCP and prolong/sabotage the process to protect their own interests. PUH! Fresh Air!</quote>

    Let me give you a piece of advice. When coming up with claims like that, try to at least make sure that they are accurate.
    A quick look to sites you mencioned above seem to indicate that you are once again pulling information out of your ass.
    And prey tell... is there anything like the JCP in the ".NET land" where the "buddies" can go and discuss the future of the framework?

    I must say that this long period of non-posting on your part was most appreciated.
    The next time somenone rattles your cage and asks you for an opinion, please try to have some small idea of what in the hell you're talking.

    Best regards,
    Luis Neves
  73. I concur...[ Go to top ]

    The next time somenone rattles your cage and asks you for an opinion, please try to have some small idea of what in the hell you're talking.



    +1 :)

    Rolf sorry matey but u really were waaaay off the mark. I'm really suprised you would make the assertion that eBay chose J2EE before .NET was even launched, it no secret that both eBay and Microsoft fell completely out of bed over it. eBay was supposed to be the new poster child for the .NET platform until they decided that it just wasnt up to the task. read this
  74. Read this article Rolf...[ Go to top ]

    You can try reading this too, Geiger is quoted to have stated that amongst other things the decision to use J2EE was based on performance and scalability benchmarking...
    here
  75. Schizophrenic anon rolf rofl[ Go to top ]

    Rolf , or should that be rofl, don't post a question to yourself as anon. Probably the sort of technique I would expect from a company like MS that adds the names of dead people to a petition in favour of Ms being a monopoly.

    Don't bring that bilious rubbish here please, your confusing us with someone who gives a sh*t.

    ----
    Back to the thread,

    As far as I am concerned , a transaction is something that is 'commited' in my old fashioned database view. That is a transaction has ACID (atomic,
    consistent, isolated, and durable) properties. They can be persisted, rolled back and you are sure of the data.

    To quote an earlier email lets look at what from the description of a transaction which of the following would apply.

    1. Each time the user logs in /access their profile
    Yes
    2. Each time the user searches or browses for items on auction
    No
    3. Each time the user makes a bid
    Yes
    4. Each time the user checks the status of their bids
    No
    5. Each time a new item is auctioned
    Yes
    6. Each time a user checks a seller's/buyer's ratings & feedback
    No
    7. and every time feedback is provided
    Yes

    I would say that 400 million transactions is ott. Especially if using the above list. Page serves are not transactions,refreshes are not transactions. only when data is PERSISTED in a database (yes I'm old school!) does it count as a transaction. Count the number of updates/delates/rollbacks and commits to get the number of transactions.

    Having said that they have a huge web presence and it is great to see the potential of the J2EE architecture realised for such a technically demanding site.

    The upshot of this, J2EE SCALES.
  76. would that count as a transaction ? I guess so, but I don't really think that they are logging 400 million page views per day...
  77. transaction[ Go to top ]

    As far as I am concerned , a transaction is something that is 'commited' in my old fashioned database view. That is a transaction has ACID (atomic,

    > consistent, isolated, and durable) properties. They can be persisted, rolled back and you are sure of the data.


    They're using the term transaction in the broader sense, not as database jargon.

    -Kevin
  78. Yeah, but it's only meaningful to talk about a transaction in this sense. Otherwise you are only talking about computer 'stuff' as a measurment of Power.

    Connections in this sense is a more meaninful term.
  79. page views not transactions[ Go to top ]

    I think we are talking about page views not transactions, nomenclature is important, it lets us know where we stand. Lets not bastardize the word transaction (which should be ACID) when we mean page views.
  80. Looks like a side effect of smoking Havanas is the loss of memory... have you forgotten what you promised???? Cameron's posting has not been marked as NOISY yet. :-P
  81. Why IIS?[ Go to top ]

    One thing that's not clear to me from reading the article is why they chose Microsoft IIS as the Web server. They were very clear about the reasons for preferring J2EE over .NET, but there's nothing about the thought process that went into the web layer of the architecture. Presumably the main reason it's not mentioned is because this is a Sun document, and they don't want to say anything complementary about Microsoft, but for me it would be interesting to know: why IIS and not Apache?
  82. Why Not IIS?[ Go to top ]

    They got lot of NT licenses, lot of experience on the administration of the NT and IIS, maybe good system monitoring tool too and Apache might be an alien to them.
  83. What are they considering as a transaction? Is Access to any page also a transaction? What is the Architecture? How many boxes are there? Going with websphere it looks difficult to digest.
  84. Some technical details[ Go to top ]

    Source of data:
    "Sanitized" presentation at Northern California WebSphere User Group on June 18, 2003.

    1) eBay handles more than 1500 concurrent tx per sec.

    2) eBay v3 has 1 EAR, 8 EJB's(All SLSB, no Entity), 4 WAR's.

    3) Deployment env consists of

    IP Sprayer between HTTP Servers
    Resonate 3.3x on WinNT 4.0
    Hardware: IBM xSeries 330 2-way 1.2 GHz dual CPU

    HTTP Server
    Software: IIS 5.0 + WebSphere plugin running on Win2K
    Hardware: IBM xSeries 330 2-way 1.2 GHz dual CPU

    Local balancer between App Servers
    Big IP from F5

    App Server (60 nodes, each with local DB2 Admin repository)
    Software: WebSphere 4.0.x running on Win2K
    Hardware: IBM xSeries 330 2-way 1.2 GHz dual CPU

    Database Server
    Software: Oracle 8.1.6 and Oracle9i running on SunOS 5.8
    Hardware: SUN 420 4-way

    + other details ...

    Lawrence Wong
    !NOT affiliated with IBM, eBay or Microsoft!