Page Index Toggle Pages: 1 [2]  Send Topic Send Topic Print Print
Hot Topic (More than 10 Replies) Sesame in client server (Read 3304 times)
Steve_in_Texas
Senior Member
*****
Offline


No personal text

Posts: 893
Location: San Antonio
Joined: Feb 21st, 2004
Re: Sesame in client server
Reply #15 - Sep 27th, 2005 at 5:36pm
Print Post Print Post  
Mark, I used this program to test my speed:

Quote:
var a as int = 1
var b as int = 100
var dd as int

writeln(@servertime())
while a <= b
{
formfieldvalue("subform", "Field1", a, "Hello World")
a = a+b
dd=@formnewrecord("Subform")
}
writeln(@servertime())


In Client/Server on Local network, total time was 10 seconds....Good speed.

In Client/Server over Broadband Internet total time was 26 minutes.....this wont work!

Client machines are similar in both locations (P4 3ghz, 1GB RAM)

The difference in speed between local and remote is vastly different. Is this normal? Any thoughts on speeding things up remotely?

Steve
  
Back to top
IP Logged
 
The Cow
YaBB Administrator
*****
Offline



Posts: 2530
Joined: Nov 22nd, 2002
Re: Sesame in client server
Reply #16 - Sep 27th, 2005 at 5:49pm
Print Post Print Post  
Code
Select All
var a as int = 1
var b as int = 100
var dd as int

writeln(@servertime())
while a <= b
{
formfieldvalue("subform", "Field1", a, "Hello World")
a = a+b
dd=@formnewrecord("Subform")
}
writeln(@servertime())
 



Steve, if "a = a + b" and b starts as 100, does this ever loop? Also, are you setting one field and then creating a whole new record with each iteration (if it does ever loop).

If it is not intended to loop, and isn't looping, and it is taking 26 minutes to pass less than 500 bytes through the net, there is something very wrong with the net or how you are set up.
  

Mark Lasersohn&&Programmer&&Lantica Software, LLC
Back to top
IP Logged
 
Steve_in_Texas
Senior Member
*****
Offline


No personal text

Posts: 893
Location: San Antonio
Joined: Feb 21st, 2004
Re: Sesame in client server
Reply #17 - Sep 27th, 2005 at 6:09pm
Print Post Print Post  
Sorry Mark, that is supposed to read " a=a+1"

It is looping correctly. It created 99 sub-records with "Hello World" in 1 field of each record.

(I couldn't figure out how to tweak your program to fit my form names, so I created my own program.)

I ran this program from my home last night, and I havent verified it, but it sounds like our user that works remotely from her home is getting similar or worse results than mine.

Our Internet speed at the office is 475.4 kilobits per second (as per bandwidthspeedtest.com)

Any thoughts?

Steve
  
Back to top
IP Logged
 
The Cow
YaBB Administrator
*****
Offline



Posts: 2530
Joined: Nov 22nd, 2002
Re: Sesame in client server
Reply #18 - Sep 28th, 2005 at 1:13pm
Print Post Print Post  
I assume you are using a table view subform. Are you also on a 100 Megabit ethernet lan?
  

Mark Lasersohn&&Programmer&&Lantica Software, LLC
Back to top
IP Logged
 
Steve_in_Texas
Senior Member
*****
Offline


No personal text

Posts: 893
Location: San Antonio
Joined: Feb 21st, 2004
Re: Sesame in client server
Reply #19 - Sep 28th, 2005 at 2:35pm
Print Post Print Post  
Yes, subform is in table mode and we are on 100Mb ethernet lan (as well as at home...not wireless).
  
Back to top
IP Logged
 
The Cow
YaBB Administrator
*****
Offline



Posts: 2530
Joined: Nov 22nd, 2002
Re: Sesame in client server
Reply #20 - Sep 28th, 2005 at 3:57pm
Print Post Print Post  
If your lan is 100 Megabit (i.e.: 100,000,000 bits per seconds) and your wan is 475 Kilobit (i.e.: 475,000 bits per second) then the scale of difference would be 100,000,000 / 475,000, which equals 210.5 (or so). So your lan should be about 210 times faster than your wan. If it takes 10 seconds on your lan, it should take 2105 seconds on your wan. 2105 divided by 60 is 35 minutes.

If the subform is used primarily for data entry, I would advise using a form view. Form view, having to only deal with one record at a time, requires much less data be pumped between client and server. It is also much easier for data entry.

In 1.1.n, Sesame needs to keep each row of the table in synch with the result set on the server all of the time, meaning that mere movement from line to line requires a number of commands go back and forth. These are very small commands, only a few bytes each, but there are a lot of them, and with a typical MTU setting of 1500-ish, a network will send at least 1.5K bytes back and forth each time it transmits at all.

Normally this is not noticed, because it is still much faster than a human typing. But, because you are automating the creation, data entry, and navigation of table rows, it becomes apparent.

To mitigate this, in Sesame 2.0, the table is allowed to stay out  of synch with the result sets on the server until the parent record is committed. This eliminates a lot of traffic and creates larger less frequent blocks (much more efficient). This can be seen in the times listed above.
  

Mark Lasersohn&&Programmer&&Lantica Software, LLC
Back to top
IP Logged
 
Steve_in_Texas
Senior Member
*****
Offline


No personal text

Posts: 893
Location: San Antonio
Joined: Feb 21st, 2004
Re: Sesame in client server
Reply #21 - Sep 28th, 2005 at 5:28pm
Print Post Print Post  
Mark,

Thanks so much. You have really tought me a lot.

I never would have thought to enter 'Line Item-like' data into a subform in form mode rather than table mode. That may be exactly the answer I was looking for.(We'll continue to use table mode in search/update mode.)

We will also upgrade our internet speed at the office, as well as look forward to version 2.0.

Thanks again for all your help! Excellent information as always!

Steve

  
Back to top
IP Logged
 
Page Index Toggle Pages: 1 [2] 
Send Topic Send Topic Print Print