Jump to content

server farm


Wilton Ergon

Recommended Posts

  • Administrators
On 9/3/2021 at 9:30 PM, wilton_rad said:

@Farshad Mohajeri is a master at making his customers anxious.

Hello,

Please don't be anxious!

Server farm is a major feature which should be implemented correctly. We are also adding another major feature which is support for multiple applications in HyperServer. You can estimate that implementing and testing all these can take more than estimated. We already have a working version as I said before. We also need to complete the related documents.

You can expect all these new features in the next week. I hope there will be no more delay! :)

 

  • Like 3
  • Upvote 5
Link to comment
Share on other sites

17 hours ago, Abaksoft said:

Bravo Farshad !

it will be a big jump. 

From now on, I will proudly assert to my clients that we can reach 1000 users in real time.

:)

1000 users?
We need 50,000 (with 10 servers, Ram 64 GB foreach). A dream? I think not, if Farshad add more client features 🙂
 

  • Like 1
  • Upvote 1
Link to comment
Share on other sites

@Farshad Mohajeri

 

I asked a question in a previous post and got no answer, about the hyperserver, I would like you to run a small test,
use the example
..\uniGUI\Demos\Desktop\DBDemo

fill the Notes field, with a content with more than 2000 characters, and see if the data is displayed correctly on the hyperserver with multiple servers.

using load balancer with nginx, those fields with large contents are not displayed correctly.
as we don't know how the transport of data between servers will be done, it doesn't cost you to do this test.

Link to comment
Share on other sites

On 06/09/2021 at 11:20, Stemon63 said:

1000 usuários?
Precisamos de 50.000 (com 10 servidores, Ram 64 GB foreach). Um sonho? Acho que não, se Farshad adicionar mais recursos de cliente 🙂
 


how are you doing today to load balancer on these 10 servers?

how many processors is each server you are using?

let us know.
thanks.

Link to comment
Share on other sites

16 hours ago, wilton_rad said:


how are you doing today to load balancer on these 10 servers?

how many processors is each server you are using?

let us know.
thanks.

Today those servers are used for remote desktop apps (DELPHI). The same that I HOPE to transform with UNIGUI in next months.
Servers have 64 GB RAM and 2 Processor foreach (6-8 cores).
Now balancing is made by the Remote desktop software itself. I HOPE to use new features of HyperServer with UNIGUI.

For this reason I need more optimized client DBgrids and datasets, for avoid continuous "chatting" on grids scroll with server, that is no problem with few sessions, but the game change if I have thousands.
Our competitors have pure web solutions with client-centric and rest services infrastucture with thousands of connections and few resources,  solution closest to Tms web core; BUt I like and I need the power of UNIGUI, "lightning" communications and avoiding continuos chatting when not needed.
I'm sure Farshad will address the subject. Unigui ROCKS.

 

Link to comment
Share on other sites

  • Administrators
16 hours ago, wilton_rad said:

@Farshad Mohajeri

 

I asked a question in a previous post and got no answer, about the hyperserver, I would like you to run a small test,
use the example
..\uniGUI\Demos\Desktop\DBDemo

fill the Notes field, with a content with more than 2000 characters, and see if the data is displayed correctly on the hyperserver with multiple servers.

using load balancer with nginx, those fields with large contents are not displayed correctly.
as we don't know how the transport of data between servers will be done, it doesn't cost you to do this test.

There should be no problem with HyperServer.

Link to comment
Share on other sites

11 hours ago, Stemon63 said:

Our competitors have pure web solutions with client-centric and rest services infrastucture with thousands of connections and few resources,  solution closest to Tms web core; 

Hello,

Since I read your topic, I don't feel well. It's time to reveal the truth.

See what is saying on TMS Forum (about its Architecture) :

"You have security issue: your database user and password will be available in the browser for everyone to see, and all SQL statements would also be available. And you have technical issue: your users will have to have network access to the database, a client installed in each computer, etc.. "

https://support.tmssoftware.com/t/direct-database-access/11309/2

Link to comment
Share on other sites

1 hour ago, Abaksoft said:

Hello,

Since I read your topic, I don't feel well. It's time to reveal the truth.

See what is saying on TMS Forum :

https://support.tmssoftware.com/t/direct-database-access/11309/2

And I know unigui since version 0.89 if I'm not mistaken, for many years.

The change in architecture I believe would not be something simple.

Link to comment
Share on other sites

11 hours ago, Stemon63 said:

Hoje, esses servidores são usados para aplicativos de desktop remoto (DELPHI). O mesmo que ESPERO transformar com a UNIGUI nos próximos meses.
Os servidores têm 64 GB de RAM e 2 foreach de processador (6-8 núcleos).
Agora o balanceamento é feito pelo próprio software Remote Desktop. ESPERO usar novos recursos do HyperServer com UNIGUI.

Por isso preciso de DBgrids e datasets de clientes mais otimizados, para evitar "bate-papos" contínuos em grades de rolagem com servidor, isso não é problema com poucas sessões, mas o jogo muda se eu tiver milhares.
Nossos concorrentes possuem soluções web puras com infra-estrutura centrada no cliente e serviços de descanso com milhares de conexões e poucos recursos, solução mais próxima do núcleo web da Tms; Mas eu gosto e preciso do poder do UNIGUI, comunicações "relâmpago" e evitando conversas contínuas quando não são necessárias.
Tenho certeza de que Farshad tratará do assunto. Unigui ROCKS.

 

I mean that you have known unigui for at least 10 years (when you entered the forum) but you still don't have anything running using unigui?

Link to comment
Share on other sites

13 hours ago, wilton_rad said:

I mean that you have known unigui for at least 10 years (when you entered the forum) but you still don't have anything running using unigui?

Hi Wilton,
I have some running UNIGUI application that works very well. With Mariadb or Firebird as backend, (other in progress with PostgreSQL).
No problem for years, and UNIGUI is my first "holy in heaven".
Those are webapps that are on clouds, with max 100-120 concurrent sessions foreach.
Just because I like it, I intend to rewrite more important and complex applications that are for a large number of users, applications that are now in Delphi VCL with Devexpress and that are served through Remote Desktop. In this case, the management of the number of users and bandwidth resources becomes strategic.
We must not forget that a consistent number of tables are open for each session to manage the operations (and let's not forget that one of the advantages of Unigui is the management of the grids, otherwise it becomes difficult to recreate the desktop approach).
A more client-oriented approach would allow us to power the local store and close the connection and datasets, postponing reconnections in the event of an update, just like the cached update with the ApplyUpdate, with considerable savings in resources and continuous communications with the server. because most of the operations are done in the meantime on the client.

Regarding data security, I know very well that a different approach (such as Tmsweb core or other tools in javascript) forces to send data and structures in Json to the client, also exposing the address of the resources but this is the approach they use generally all client-oriented web products that use, for example, rest services. I assumed avoiding the SQL approach in the client, and using Rest services (although I prefer Json-rpc), clearly modifying the architecture with a lot more work, which I would possibly like to avoid 🙂
The strength of Unigui is to hide all the data management on the server, and to "mask" with aliases all the data sent to the client.
I know this advantage very well 🙂

Link to comment
Share on other sites

9 minutes ago, Stemon63 said:

Regarding data security, I know very well that a different approach (such as Tmsweb core or other tools in javascript) forces to send data and structures in Json to the client, also exposing the address of the resources but this is the approach they use generally all client-oriented web products that use, for example, rest services.
The strength of Unigui is to hide all the data management on the server, and to "mask" with aliases all the data sent to the client.
I know this advantage very well 🙂

Thank you Stemon,

This is the answer i wanted to hear.
Unigui is not just a rapid tool for web development,

but the right choice we have all made: Stability and Security

Link to comment
Share on other sites

Just now, Abaksoft said:

Thank you Stemon,

This is the answer i wanted to hear.
Unigui is not just a rapid tool for web development,

but the right choice we have all made: Stability and Security

Yes, Abaksoft.
Unigui is the right choice.
To be (almost) perfect, however, it is necessary that some operations, where possible, must be client-side by option, perhaps because speed is needed in the calculations (I know, we will write ExtJs code) or because it is necessary to save resources if I only have to display a grid and the user enjoys scrolling for fun.
Now Unigui is 100% server centric, I would like there to be the possibility to move the workload of the heavier operations to the client, clearly where there is the possibility to do it. Unigui remains my point of reference even if I am testing other solutions. Much also depends on the type of application to be carried out, of course.

  • Upvote 1
Link to comment
Share on other sites

2 hours ago, Stemon63 said:

Oi Wilton,
Tenho um aplicativo UNIGUI em execução que funciona muito bem. Com Mariadb ou Firebird como backend, (outro em andamento com PostgreSQL).
Sem problemas por anos, e UNIGUI é meu primeiro "santo no céu".
Esses são aplicativos da web que estão em nuvens, com no máximo 100-120 sessões simultâneas para cada um.
Só porque gosto, pretendo reescrever aplicativos mais importantes e complexos que são para um grande número de usuários, aplicativos que agora estão em Delphi VCL com Devexpress e que são servidos através de Remote Desktop. Nesse caso, o gerenciamento do número de usuários e recursos de largura de banda passa a ser estratégico.
Não devemos esquecer que para cada sessão de gerenciamento das operações é aberto um número consistente de tabelas (e não esqueçamos que uma das vantagens do Unigui é o gerenciamento das grades, caso contrário torna-se difícil recriar a abordagem do desktop).
Uma abordagem mais orientada para o cliente nos permitiria alimentar o armazenamento local e fechar a conexão e os conjuntos de dados, adiando as reconexões em caso de atualização, assim como a atualização em cache com o ApplyUpdate, com considerável economia de recursos e comunicação contínua com o servidor . porque a maioria das operações são feitas entretanto no cliente.

Em relação à segurança de dados, sei muito bem que uma abordagem diferente (como o núcleo Tmsweb ou outras ferramentas em javascript) obriga a enviar dados e estruturas em Json para o cliente, também expondo o endereço dos recursos, mas essa é a abordagem que geralmente usam todos os produtos da web orientados para o cliente que usam, por exemplo, serviços de descanso. Presumi evitar a abordagem SQL no cliente e usar os serviços Rest (embora eu prefira Json-rpc), modificando claramente a arquitetura com muito mais trabalho, o que possivelmente gostaria de evitar 🙂
A força do Unigui é ocultar todos os gerenciamento de dados no servidor, e "mascarar" com apelidos todos os dados enviados ao cliente.
Eu conheço essa vantagem muito bem 🙂

I use this feature of the SDAC component, which keeps the connection closed, this considerably reduces the number of active connections in the sql server database, together, pooling is also used to keep the cache of these connections, the only problem is that you cannot use sql temporary tables in your application.

this does not reduce the back and forth from the client to the server, nor the use of memory, as the query data will be in the application server's memory, and the connection with the database is closed, right after opening.

in the case of transactions, it will remain open until the data is committed.

image.thumb.png.7269f2765a2779a144ea24e3babd6cab.png

Link to comment
Share on other sites

@Farshad Mohajeri

on the hyperserver, will it be possible to remove one of the servers from the balance without having to stop all the others?, sometimes one of the servers has problems, or needs maintenance, and we need to remove it from the balance, but it would be good to do that, without have to take down the other servers.

Link to comment
Share on other sites

  • Administrators
42 minutes ago, wilton_rad said:

@Farshad Mohajeri

on the hyperserver, will it be possible to remove one of the servers from the balance without having to stop all the others?, sometimes one of the servers has problems, or needs maintenance, and we need to remove it from the balance, but it would be good to do that, without have to take down the other servers.

Normally, HyperServer will automatically suspend communication to any non-responding server in the cluster.

Link to comment
Share on other sites

this is great, however, I have had cases where the application server was operating, but it was not connecting to the database server,
the hyperserver in this situation will open the application, but it in turn will not communicate with the bank, so the need to stop access to this server manually, this occurs, because my balancer is on another machine other than the bank server .

Link to comment
Share on other sites

23 hours ago, Farshad Mohajeri said:

image.png

Um cluster com 5 servidores sob teste de estresse!

 

 

I realized that the number of sessions are not with close amounts, that and why was defined a different weight for each server?
in the example of 5 servers
could have for example
1 receiving 10% of the load, and the others receiving 22.5%, we don't know if something in this sense was thought, but it would be good to define the weight that each server can receive.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...