Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 6 of 6 total
Thread Cores of RAM?
Sun, Jan 22 2017 5:12 AMPermanent Link

Ronald

Hi,

I have created a webservermodule that works with DBISam on a server. I use EWB as my webser and I query the tables with SQL. Will DBISam benefit from adding more cores or adding more RAM to the server? The server now has SSD drives an Intel Xeon processor and 4096 MB of RAM.

Thanks,
Ronald
Sun, Jan 22 2017 1:54 PMPermanent Link

Raul

Team Elevate Team Elevate

On 1/22/2017 5:12 AM, Ronald wrote:
> I have created a webservermodule that works with DBISam on a server. I use EWB as my webser and I query the tables with SQL. Will DBISam benefit from adding more cores or adding more RAM to the server? The server now has SSD drives an Intel Xeon processor and 4096 MB of RAM.

Are you accessing dbisam directly (local access) or thru a dbsrvr (c/s)?

What is the EWB app usage like - both in terms of number of users and
usage patterns (mainly how complex is dbisam access or how often would
your ewb app need to communicate with web server) ?

EWB Web Server is a win32 app/service at this time so best it can use is
2GB. Windows will use RAM for caching and such so having 4GB is good but
unless you're seeing ewb maxing out memory usage adding more RAM likely
will not help at this time.

CPU cores are bit more interesting aspect. EWB application is stateless
on server side so all communication between EWB app and server is
generally short requests and responses. EWB web server does create a new
thread for connections but even if web browser keep this connection open
it's usually idle.

If your EWB app is of the type where user downloads some data, you then
display it and they manipulate and at some point send updates back then
i would expect your current system to handle rather large number of
users.You can check CPU usage and see how system runs.

Raul
Mon, Jan 23 2017 9:04 AMPermanent Link

Ronald

Raul wrote:

Are you accessing dbisam directly (local access) or thru a dbsrvr (c/s)?

What is the EWB app usage like - both in terms of number of users and
usage patterns (mainly how complex is dbisam access or how often would
your ewb app need to communicate with web server) ?

EWB Web Server is a win32 app/service at this time so best it can use is
2GB. Windows will use RAM for caching and such so having 4GB is good but
unless you're seeing ewb maxing out memory usage adding more RAM likely
will not help at this time.

CPU cores are bit more interesting aspect. EWB application is stateless
on server side so all communication between EWB app and server is
generally short requests and responses. EWB web server does create a new
thread for connections but even if web browser keep this connection open
it's usually idle.

If your EWB app is of the type where user downloads some data, you then
display it and they manipulate and at some point send updates back then
i would expect your current system to handle rather large number of
users.You can check CPU usage and see how system runs.>

Hi Raul,

Thank you. I acces the DBISam tables directly, and the application is exactly what you describe in the last paragraph. Ik think the application must be able to handle about 50 read or write actions per second spraed over several databases. The tables are mostly under 500KB and most read- en write sql is quite simple. Is 50 per second very high or do you think that the server that I described can handle this?

Greetings,
Ronald  
Tue, Jan 24 2017 3:38 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Ronald,

<< Thank you. I acces the DBISam tables directly, and the application is exactly what you describe in the last paragraph. Ik think the application must be able to handle about 50 read or write actions per second spraed over several databases. The tables are mostly under 500KB and most read- en write sql is quite simple. Is 50 per second very high or do you think that the server that I described can handle this? >>

That should be possible without issue.

I just ran ApacheBench (comes with Apache web server) on the EWB Web Server:

ab -n 10000 -c 500 -m GET "http://192.168.0.2:8080/databases?method=rows&database=ExampleData&dataset=Transactions"

and that retrieved a dataset of around 300 rows (121K) from the web server for each request.

I was able to achieve a throughput of around 108 requests per second.

I'm going to profile this, though, because ~4 seconds per request still seems pretty high to me.  However, there's a lot of string manipulation going on and there's a lot of columns in that dataset, so it may make sense in the end.

Tim Young
Elevate Software
www.elevatesoft.com
Wed, Jan 25 2017 12:25 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Yeah, it was what I thought - there's some issues in DBISAM in terms of session locking (critical sections) that isn't particularly multi-processor friendly, so I'm making some improvements there.  These only occur when using the TDBISAM* VCL components, which is what the EWB Web Server uses for DBISAM database access.

I also added some caching of database instances to the EWB Web Server, but I also need to add a cache parameter to the web server configuration before I can fully turn this feature on.  When it's completely "on", I can manage to get around 700 requests per second instead of around 100 requests per second.

Tim Young
Elevate Software
www.elevatesoft.com
Thu, Jan 26 2017 5:13 AMPermanent Link

Ronald

Tim Young [Elevate Software] wrote:

>Yeah, it was what I thought - there's some issues in DBISAM in terms of session locking (critical sections) that isn't particularly multi-processor friendly, so I'm making some improvements there.  These only occur when using the TDBISAM* VCL components, which is what the EWB Web Server uses for DBISAM database access.

I also added some caching of database instances to the EWB Web Server, but I also need to add a cache parameter to the web server configuration before I can fully turn this feature on.  When it's completely "on", I can manage to get around 700 requests per second instead of around 100 requests per second.<

Wow, that would be really great and make DBISam/EWBServer a great combination. Thank you.
Image