Jump to content

What about performance and scalability?


RedOctober

Recommended Posts

I'm concerned that uniGui is very limited in the number of users it can serve.  Given two servers with identical hardware and both having Apache as the web server, can I serve more users with a Java based system versus a uniGui system?  (Consider which one uses more memory per user and has more interpretive steps.)

 

On average, how many users do other forum member's applications typically serve?

 

Let's pretend I want to build a web based dating site (I don't but it's a good scenario) that will serve 50,000 users in one country alone.  Is uniGui a good choice, or, would I have to throw $6,000,000 worth of hardware at it to support that many users?

 

unGUI is stateful, which is understandable, because as soon as you introduce Authentication and Authorization, you have to keep track of sessions.  But this can also be extremly limiting if your sessions take up a lot of memory.

 

As far as performance goes, how does uniGui stack up against something like Delphi MVC Framework by Daniel Teti?  DelphiMVCFramework is apparently very fast, and is stateless, but Daniel is just recently having to maybe introduce state, to get Auth and Auth. 

 

I'm considering a purchase of the "Complete" version, so I don't want to find out 6 months into my uniGUI project that even with modern hardware I can't serve more than 100 users, because the time lag is too great.

 

Thanks in advance for any help you can provide.

 

Link to comment
Share on other sites

  • Administrators

Theoretically, there is no limit to number of sessions that a uniGUI server might serve. The only limit is system resources. However, in a real life scenario various factors may limit this. From what I can see, the average number of concurrent users on a typical uniGUI application developed for a closed network is around a few hundreds (maybe even less around 50 -100).

 

Regarding your concerns, we are working on a new server technology for uniGUI to address such scenarios. It is called uniGUI HyperServer and it is currently beta.

 

HyperServer is an internal load balancer which will distribute sessions among multiple internal processes. These processes are called nodes. HyperServer will also enable remote deployment for your applications. You will be able to upgrade your binaries from a remote location and without a need to restart your server.

 

Regarding resource consumption, it is really related to your application design and optimization level. If you can optimize your session's memory usage, you'll be able to increase number of concurrent sessions dramatically. Again, you need to make sure that your DB backend is also scalable.

 

Next step for HyperServer will be implementation of an inter-server load balancer. This will enable you to deploy your uniGUI apps in a server-farm.

 

 

 

 

 

...

 

...

 

...

  • Upvote 4
Link to comment
Share on other sites

Thank you for the detailed answer.  This is very much what I expected.  About databases.  I normally use Firebird.  When building uniGUI apps, what is the recommended database for maximum scalability?  I hear of people using MongoDB but after doing some reading, Mongo has it's own problems and limitations.  Does uniGUI support MongoDB?

Link to comment
Share on other sites

  • Administrators

Thank you for the detailed answer.  This is very much what I expected.  About databases.  I normally use Firebird.  When building uniGUI apps, what is the recommended database for maximum scalability?  I hear of people using MongoDB but after doing some reading, Mongo has it's own problems and limitations.  Does uniGUI support MongoDB?

 

If you are creating too many sessions then your db library must provide a very good pooling solution or you must choose a scalable middle tier.

Problem here is that you can't keep too many connections alive for all the sessions.  Some DB engines put a limit on max number of concurrent connections. That's why pooling or a middle tier is needed.

 

 

...

Link to comment
Share on other sites

 

Theoretically, there is no limit to number of sessions that a uniGUI server might serve. The only limit is system resources. However, in a real life scenario various factors may limit this. From what I can see, the average number of concurrent users on a typical uniGUI application developed for a closed network is around a few hundreds (maybe even less around 50 -100).

 

Regarding your concerns, we are working on a new server technology for uniGUI to address such scenarios. It is called uniGUI HyperServer and it is currently beta.

 

HyperServer is an internal load balancer which will distribute sessions among multiple internal processes. These processes are called nodes. HyperServer will also enable remote deployment for your applications. You will be able to upgrade your binaries from a remote location and without a need to restart your server.

 

Regarding resource consumption, it is really related to your application design and optimization level. If you can optimize your session's memory usage, you'll be able to increase number of concurrent sessions dramatically. Again, you need to make sure that your DB backend is also scalable.

 

Next step for HyperServer will be implementation of an inter-server load balancer. This will enable you to deploy your uniGUI apps in a server-farm.

 

 

 

 

 

...

 

...

 

...

 

 

Good News !

+1 :)

Link to comment
Share on other sites

HI Farshad,  thanks :-)
 

There are few little things that Unigui don't have for porting TOTALLY a desktop VCL application without losing any "ergonomic"  features: grid scroll (virtual, without pagination), advanced lookup (with grid inside and input validation during typing), true editing in grid (cell by cell, without click or enter for edit) for a fast user input (like vcl dbgrid).

 

With this little features, i can distribuite to my customer a web version of desktop application, without big difference and with a "wow" factor. I hope to install the same Unigui application as standalone, local network  and enterprise (with HyperServer and balancing) remote farm. 
 

Please make me happy :-)

 

Good job!

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...