SambaPOS ever been installed in 14 clients total? Performance Issues

Yeah l, like that’s the highest I’ve ever seen it when remote logging in there

Have you checked your maxmemory setting to be sure its not using a set amount of ram and then HDD for rest of the caching?

PS If you have it at default then your good it uses what it needs.

Yeah I checked that… I’m watching things very closely right now. I’ll let you guys know what I find. I’m gonna figure this out i know it’s something on my end. I’m setting up a whole demo unit in my office and running touch macros to keep sending tickets.

You mentioned two servers so is one running the database and the other RDP services?

1 Like

@Jesse

3 servers total. Yeah I split them up as I always have a general rule to keep SQL server separate from everything else. I’m not worried about this issue anymore, I’m starting to notice trends and rebuilding on the new windows server 2019. Man you have to see the sambapos performance of my new system. I am using a macro tool to record touch inputs and replay them. I replayed it at 2x the speed and not a single hiccup from samba in my new system.
Please look at this insane performance.

Now my next task is to create another server with windows server 2019 hosting rds services and and creating 20 SambaPOS clients to really test hardware limits and Really eliminate any doubt from myself and others that SambaPOS is truely optimized for great speed. I’m going to run a macro program on each SambaPOS client session so I can have 21 SambaPOS sessions all hitting the server at once. I have a really good database administrator advising me on building reliable systems now.

3 Likes

I notice a massive increase in speed with the newer m2 SSD cards. My Audry has one and it’s blazing fast on everything.

Off topic, but what do the position +! and -1 buttons do?

If they move the items in the order list that’s great… Are they able to move them up and down once you have closed the ticket (unpaid) and then when you come back to the ticket later to add something else?

Will Hazzard a guess they are for seat position/ split tickets, see what looks like a pair of people next to each order with a number.
I’m sure it was hasa leading a topic on automated split bills using a similar display by orders based on another software.

@Hasa you may find actually it is related to SQL Express edition. Express edition is limited to using 1 physical CPU (up to 4 cores) and only 1Gb RAM. So even you have a server with 16Gb RAM, only 1Gb will ever be used by SQL Server.

https://docs.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2017?view=sql-server-2017#Cross-BoxScaleLimits

I would recommend you test with the live system with a trial version of SQL Server 2017 Standard edition. You will be able to backup and restore the database later back on to Express edition as the feature functionality is the same. You can then determine if the performance changes.

However IMHO for a brand new setup even 14 clients, I wouldn’t expect it to require much resources. SambaPOS is not doing any complex queries that is going to require so much resources.

2 Likes

Another little known fact is that Standard edition and up has whats called Always on mode. It doesnt mean much for us unless your using windows tablets it makes a big difference for those.

I think you can somewhat do that with express but its not the same level of efficiency.

Honestly in very large setups… I would probably opt for SQL Standard edition. When your serving venues that large it makes sense to spend a little extra and ensure you have a system built for more abuse.

That feature is only possible for one replica database with Standard edition, so it would only be any use if you had only one tablet. If you need more than one replica database, you need to use Enterprise edition.

I believe the way use this on Express edition is with Database Mirroring, which is deprecated in SQL 2017, but I believe it can still be used. I have read a little about it however again I am not sure if you can have multiple copies mirrored or if it is just for a one single secondary and primary mirror.

1 Like

I’m not convinced, I’ve hosted websites with complex queries with thousands of page views per hour on SQL Express. I know it’s not the same in some respect, but really the traffic in that case should be far more than SambaPOS would ever be generating, the only difference being with a website is all queries are coming from one place (web server) compared to on a multi terminal setup the queries are coming from multiple locations, but then that points to a network issue then.

3 Likes

On that basis though with samba what machine is actually doing the work? The server right?
A website doesn’t return the SQL data it processes it and returns the html etc via php or whatever. Surly in that sense samba is no different right? Client queries and server returns result, the client isn’t processing the query in raw direct database access? Am I correct?
There are allot of variables.
A bigger database shouldn’t effect things on scale we are talking but pretty sure it does or rather not the data query but the processing in samba of the returned result?
With allot of data stored in json and no native json support in earlier than newer version and samba working on older version to me suggests samba does the json processing which is presumeably going to be clientside.

Its an easy way to split bills for a table with a lot of people. A requirement for any medium-large restaurant imo.

1 Like

In SambaPOS the machine with SQL server installed is doing the work - at least for the database query part. There will be some processing done in the SambaPOS software as well.

Regarding what I was meaning with a web server, for SQL traffic - the web server has received a query from the end user, it then processes the request and part of that will involve sending queries to SQL server. SQL server then returns the results of those queries to the web server. The web server then puts together the html to deliver back to the end user’s browser.

So that is where it is different from SambaPOS. In the most simple web server setup (I am not talking about large scale websites across multiple servers), you have a web server (software) like IIS, Apache, etc., and a database server like SQL Server, MySQL, etc. Both can be on the same machine. So you can consider a typical website is like a single terminal setup for SambaPOS - the SQL traffic is between the web server and SQL Server - the web server is like SambaPOS, the software. All your web traffic is irrelevant because the SQL traffic is done on the server between the web server and SQL server. You can have 1,000 visitors to your website from all around the world, but those hit the web server only, they never talk to SQL server directly (if they did, that would be a huge security risk). So the visitors to the website are irrelevant - the SQL traffic is only between the web server and SQL server.

That’s why I say SambaPOS is different - because in a multi terminal setup, you can have multiple machines running SambaPOS and they all individually communicate with SQL server.

SambaPOS will be doing the JSON processing regardless - this has nothing to do with JSON support in SQL Server. To be specific, it is more than likely Entity Framework is doing the JSON processing. But yes, generally, that processing is then being done on the client side which will be the RDP host machine in this case.

You are referring to JSON query support here, which was introduced in SQL Server 2016. I am pretty sure SambaPOS won’t utilise that as, if it did, would mean it has to access data from SQL Server 2014 and earlier differently, and that would be a pain to manage. Now, Entity Framework may however do something differently, but that is separate from SambaPOS (almost like “hidden”).

When we do custom scripts or want to get data from the JSON fields via SQL, we can utilise the JSON query support in SQL Server 2016 and above, but AFAIK that is only ever when it gets used in SambaPOS - in the scripts we make.

3 Likes