imjames wrote:And by the way, Java is not more scalable than other language. It is what people has built with the Java language that offer this scalability. I'm a java developper, I know what I'm talking about.
I would argue that Java does scale better than some ... but not all.
But I'm not trying to start a "Java is the best thing in the whole world" type thread here.
The more I learn about computer, the more I think that the language is not the really important piece of a program.
What I want to say is that you can structure a program in many different way using the same language. The architecture of a program appears to me to be more important than the language. This is not to say that the language is not important at all. It is. The language structures a program but not that much in many cases.
All this to say that scalability is not a language feature. This is something that belongs to the infrastructure. As the Java language is been used a lot on the server side, people have built many libraries/frameworks to do a lot of things but scalability is one of those things that is mostly specific for an application as there is many way to acheive scalability.
How I would scale a forum?
First I must say that it is hard because of the database. To scale I must use several computers and in every computer I must have the same data.
Therefore I should replicate the data from one database to another.
Here I have 2 possibilites (ruling out synchronized replication):
1) multimaster: every database's pc replicates its data to all other pcs. It sounds great but sql conflicts can happen. I don't know if this is possible to make it work with zero conflicts.
2) master-slave: a server receives all database changes and send them to the other pcs. The other pc have the full database but in read only mode (no insert, update, delete) is done locally. So when you read a topic, search something you're doing it on these 'read-only' computers. As there are several of them, you're forum can receive a lot more people. The only draw back is that when you post something, you would have to wait a couple of seconds before you can see you post.
I think this is the prefered way to scale a forum.
As you can see, scaling as nothing to do with a language but all to do with the way you think about your application.
By the way, load balancing is done on the DNS level.
Don't worry I'm not a zealot.
You can't do this type of high-availability implementation using PHP, Visual Basic, or even C as your "language." Why? Because these languages were not designed with multi-server implementations in mind (or not aimed at an enterprise, high availability implementation scheme).
But in this discussion, you are only focusing on the database part of the implementation
imjames wrote:GatorBait3, I had the impression (I might be wrong) that you mix several things into one. For me the language is ont thing, the libraries/frameworks and applications build with the language in another thing.