Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am looking for server software to handle data for thousands of clients (internal company employees).

This server should be multi-threaded to handle all the clients with good client overhead handling. We require the feature of having no 2+ users updating the same data at the same time. It should be fully optimized to respond very fast with no delay.

What is the best way to do this? Build it from scratch or use other components found elsewhere? What tools/frameworks can you recommend?

share|improve this question

migrated from Aug 31 '10 at 0:46

This question came from our site for professional and enthusiast programmers.

closed as not a real question by GregD, Chris S, John Gardeniers, Mark Henderson, RobM Aug 31 '10 at 8:49

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

please tell me if anything was unclear – Moayyad Yaghi Aug 30 '10 at 23:35
@Moayyad: the question is unclear. What excatly are you looking for: a prebuilt framework? A library to connect to SQL Server? What language/platform do you have in mind? – p.campbell Aug 30 '10 at 23:38
im looking for a prebuild framework, or a resource. i use windows 64x and i use python,C, C++ . but i have no problem using any other programming languages. – Moayyad Yaghi Aug 30 '10 at 23:45
@Moayyad: is this for an application that you're writing? Is the app already written? What's the business application here? Web/intranet or desktop application? What's the size/shape of your data? – p.campbell Aug 30 '10 at 23:48
This sounds like a job for a qualified and experienced developer; and that apparently isn't you. $DEITY help the users of this application. – Chris S Aug 31 '10 at 1:02

Presuming that you are deploying web application.

  1. Tune SQL server, optimize queries (details depend on DBMS). Some times you have to hit developers with wooden stick quite long, until they start writing effecient queries. Transactions helps you with multiple users updating same data.
  2. Avoid hitting DB server altogether with key-value cache serve like memcached.
  3. If page is (almost) static use caching server like varnish with ESI.
  4. Most web apps are IO bound, so deliver compressed content and invest in RAM (DB servers also like RAM).
  5. I suggest using technology with you are familiar with, if it is .NET, use ASP.NET (MVC, linq etc.) and MS SQL server, if it is PHP, use Zend Framework with Postgres or MySQL with InnoDB storage engine, if it is Java, use Spring, GWT and Hibernate etc... (best technologies depending on language are subjective and opinionated on my experience.)
share|improve this answer