I think that the scalability is much more dependend on the underlying database than the NHibernate itself. In fact all the data is stored in the DB and all HQL queries are translated into legacy SQL. In typical application only the small subset data is fetched into memory as objects at once, "lazy" collections prevents loading unnecesary related data. In other case there (eg. huge search result) I can use "iterate" to display one results page (instead of "list").
In case of huge traffic there is always the cache - NH can use it transparently, minimalizing the db calls even withouth programmer effort.
I cannot say what happens when there are plenty of records (milions?) and users (thousands?), but , as I noticed before, I think the scalable database (and of course well-designed data structure, indexes etc.) is still the most important element.
_________________ michal
|