Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread Opportunistic Locking
Wed, Jul 5 2006 1:39 PMPermanent Link

"Sean M. McDermott"
DBISAM V4 shared but not C/S

2 systems, both XP Home, one with the shared datafiles I will call the
server the other client. The server boots into my program in 4 seconds. The
client alone (without server running) takes about 8 seconds. As soon as both
machines are running my program, the boot time takes between 14 to 18
seconds. As per an earlier thread, I have set the workstation:
UseOpportunisticLocking = 1; UtilizeCaching = 1 and on the server:
EnableOpLocks = 1; and OpLocksDisabled = 0

Any ideas what else I can do? I have tried various things but it is
definitely when the second system starts that everything slows down
dramatically. TIA, Sean

Thu, Jul 6 2006 2:16 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Sean,

<< 2 systems, both XP Home, one with the shared datafiles I will call the
server the other client. The server boots into my program in 4 seconds. The
client alone (without server running) takes about 8 seconds. As soon as both
machines are running my program, the boot time takes between 14 to 18
seconds. >>

Whoa, what is going on during the program startup ?  Even 4 seconds is a lot
of time.  Also, what is the bandwidth of the network used by the machines ?

<< Any ideas what else I can do? I have tried various things but it is
definitely when the second system starts that everything slows down
dramatically. >>

There's not much you can do apart from increasing the network speed or
increasing the buffering in DBISAM in the application:

http://www.elevatesoft.com/dbisam4d5_customizing_engine.htm

under "Memory Buffer Customizations".  Doubling or tripling the default
values should help some.

You have to remember is that with two clients, what you're seeing is the
real network performance.

Fri, Jul 7 2006 8:21 AMPermanent Link

"Sean M. McDermott"
Hi Tim, I do open about 20 tables at startup with the largest table being
about 42K records or 23MB for that one table alone. In total, the database
is currently 108MB although not all of these tables are opened at startup.

The network is 100MBPS with two systems, both Win XP machines with 512MB and
1024MB RAM and 3-4GHz processors.

I have a feeling my design needs some reworking but I was hoping for a magic
bullet fix of some sort. I have run a myriad of tests with various registry
settings as per Microsoft. When I halved the size of the database by getting
rid of early records, the performance improved only marginally by one second
each on startup of the app. So I have to believe there is more to it than my
design and that the network has a lot to do with it. If I convert to C/S,
would that solve some of these issues?

I will also look into buffering.

All for now, thanks, Sean

"Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote in message
news:C9961F7B-71CD-49BD-9CE2-CB7C93D22834@news.elevatesoft.com...
> Sean,
>
> << 2 systems, both XP Home, one with the shared datafiles I will call the
> server the other client. The server boots into my program in 4 seconds.
> The client alone (without server running) takes about 8 seconds. As soon
> as both machines are running my program, the boot time takes between 14 to
> 18 seconds. >>
>
> Whoa, what is going on during the program startup ?  Even 4 seconds is a
> lot of time.  Also, what is the bandwidth of the network used by the
> machines ?
>
> << Any ideas what else I can do? I have tried various things but it is
> definitely when the second system starts that everything slows down
> dramatically. >>
>
> There's not much you can do apart from increasing the network speed or
> increasing the buffering in DBISAM in the application:
>
> http://www.elevatesoft.com/dbisam4d5_customizing_engine.htm
>
> under "Memory Buffer Customizations".  Doubling or tripling the default
> values should help some.
>
> You have to remember is that with two clients, what you're seeing is the
> real network performance.
>

Fri, Jul 7 2006 9:02 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Sean


From personal experience its not just the number or size of tables opened its what you do with them. Lots of data aware controls, master-details relationships and filters all take their toll.

As an interesting experiment how long does it take with a blank form, no relationships or filters etc to open the same tables?


Roy Lambert
Fri, Jul 7 2006 10:18 AMPermanent Link

Jason Lee
Sean,

The best decision I ever made was to take my application to C/S from
shared file. First, the locking slowdown disappeared. Second, your app
becomes more robust and you can move large portions of functionality to
the DBISAM Database server via procedures, functions, events, etc.

Just too many benefits to list, I never looked back.

Regards,

Jason Lee

Sean M. McDermott wrote:
> DBISAM V4 shared but not C/S
>
> 2 systems, both XP Home, one with the shared datafiles I will call the
> server the other client. The server boots into my program in 4 seconds. The
> client alone (without server running) takes about 8 seconds. As soon as both
> machines are running my program, the boot time takes between 14 to 18
> seconds. As per an earlier thread, I have set the workstation:
> UseOpportunisticLocking = 1; UtilizeCaching = 1 and on the server:
> EnableOpLocks = 1; and OpLocksDisabled = 0
>
> Any ideas what else I can do? I have tried various things but it is
> definitely when the second system starts that everything slows down
> dramatically. TIA, Sean
>
>
Fri, Jul 7 2006 11:23 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Sean,

<< I have a feeling my design needs some reworking but I was hoping for a
magic bullet fix of some sort. I have run a myriad of tests with various
registry settings as per Microsoft. When I halved the size of the database
by getting rid of early records, the performance improved only marginally by
one second each on startup of the app. So I have to believe there is more to
it than my design and that the network has a lot to do with it. >>

I would recommend what Roy stated - try a simple application where all that
occurs are the table opens, and see how fast it performs.  If it is
reasonable, then the issue is not with the table opens, but rather with the
amount of lookup fields or other event-driven data operations that are
occurring during the application startup.

<< If I convert to C/S, would that solve some of these issues? >>

To some extent, yes.  However, if the issue is a lot of lookups, etc. in the
application, then it might have issues even with C/S.

--
Tim Young
Elevate Software
www.elevatesoft.com

Mon, Jul 10 2006 4:04 PMPermanent Link

"Sean McDermott"
Thanks all, I am going to try Roy's suggestion and see where it gets me.
Maybe just switching some table to open only when they are first needed will
help. Cheers all, Sean


"Jason Lee" <computerguy@wavecable.com> wrote in message
news:B3E2BD13-1660-4A07-B6FF-0FABD58AF268@news.elevatesoft.com...
> Sean,
>
> The best decision I ever made was to take my application to C/S from
> shared file. First, the locking slowdown disappeared. Second, your app
> becomes more robust and you can move large portions of functionality to
> the DBISAM Database server via procedures, functions, events, etc.
>
> Just too many benefits to list, I never looked back.
>
> Regards,
>
> Jason Lee
>
> Sean M. McDermott wrote:
>> DBISAM V4 shared but not C/S
>>
>> 2 systems, both XP Home, one with the shared datafiles I will call the
>> server the other client. The server boots into my program in 4 seconds.
>> The client alone (without server running) takes about 8 seconds. As soon
>> as both machines are running my program, the boot time takes between 14
>> to 18 seconds. As per an earlier thread, I have set the workstation:
>> UseOpportunisticLocking = 1; UtilizeCaching = 1 and on the server:
>> EnableOpLocks = 1; and OpLocksDisabled = 0
>>
>> Any ideas what else I can do? I have tried various things but it is
>> definitely when the second system starts that everything slows down
>> dramatically. TIA, Sean
>>
Fri, Aug 4 2006 2:01 PMPermanent Link

"Sean M. McDermott"
Solved: I had a series of database changes and index rebuilds built into the
loading of the data so that I would be able to upgrade users of older
versions of the program automatically. I have now moved these features to a
utilities program and all is faster now. Load times have gone from 14
seconds to 1-2 seconds. Thanks all. sometimes it is the obvious stuff that
escapes me...Cheers, Sean

"Sean McDermott" <sean@horizoncanada.com> wrote in message
news:F047C0D9-6028-4C39-8246-78BEF2C37793@news.elevatesoft.com...
> Thanks all, I am going to try Roy's suggestion and see where it gets me.
> Maybe just switching some table to open only when they are first needed
> will help. Cheers all, Sean
>
>
> "Jason Lee" <computerguy@wavecable.com> wrote in message
> news:B3E2BD13-1660-4A07-B6FF-0FABD58AF268@news.elevatesoft.com...
>> Sean,
>>
>> The best decision I ever made was to take my application to C/S from
>> shared file. First, the locking slowdown disappeared. Second, your app
>> becomes more robust and you can move large portions of functionality to
>> the DBISAM Database server via procedures, functions, events, etc.
>>
>> Just too many benefits to list, I never looked back.
>>
>> Regards,
>>
>> Jason Lee
>>
>> Sean M. McDermott wrote:
>>> DBISAM V4 shared but not C/S
>>>
>>> 2 systems, both XP Home, one with the shared datafiles I will call the
>>> server the other client. The server boots into my program in 4 seconds.
>>> The client alone (without server running) takes about 8 seconds. As soon
>>> as both machines are running my program, the boot time takes between 14
>>> to 18 seconds. As per an earlier thread, I have set the workstation:
>>> UseOpportunisticLocking = 1; UtilizeCaching = 1 and on the server:
>>> EnableOpLocks = 1; and OpLocksDisabled = 0
>>>
>>> Any ideas what else I can do? I have tried various things but it is
>>> definitely when the second system starts that everything slows down
>>> dramatically. TIA, Sean
>>>
>

Mon, Aug 7 2006 2:52 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Sean,

<< Solved: I had a series of database changes and index rebuilds built into
the loading of the data so that I would be able to upgrade users of older
versions of the program automatically. I have now moved these features to a
utilities program and all is faster now. Load times have gone from 14
seconds to 1-2 seconds. Thanks all. sometimes it is the obvious stuff that
escapes me...Cheers, Sean >>

Yep, that will do it.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image