Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 26 total
Thread 2.28b2: BufferedFileIOSettings, published properties
Mon, Mar 26 2018 6:32 PMPermanent Link

Charalampos Michael

Hello,
 1) If this empty it will use the default settings for all the files ?
     IOW, is the buffering engine kicking if it's empty and property BufferedFileIO is True ?
 2) The BufferedFileIO property isn't published aka not visible on object inspector. Is this intentional ?

Good news!? When i run the my custom server with the 2.28b2 engine it detected corruptions on my tables which 2.27 missed. I repaired the tables and the errors gone!

Thank you
Mon, Mar 26 2018 6:55 PMPermanent Link

Charalampos Michael

And Good news is actually bad. The table corrupted again:
ElevateDB Error #601 The table Devices is corrupt (The index idxConnected is missing a required key). Frown
Mon, Mar 26 2018 11:00 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< And Good news is actually bad. The table corrupted again:
ElevateDB Error #601 The table Devices is corrupt (The index idxConnected is missing a required key). Frown
>>

If the table is corrupting during normal usage (in other words, no improper shutdowns or killing the process), then there's something wrong with your disk or the writes are getting interrupted.

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Mar 26 2018 11:04 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< If this empty it will use the default settings for all the files ? >>

Yes.

<< IOW, is the buffering engine kicking if it's empty and property BufferedFileIO is True ? >>

Yes.  The defaults are described in the manual:

https://www.elevatesoft.com/manual?action=viewprop&id=edb2&product=rsdelphiwin32&version=10T&comp=TEDBEngine&prop=BufferedFileIOSettings

<< 2) The BufferedFileIO property isn't published aka not visible on object inspector. Is this intentional ? >>

Yes.  I don't want anyone turning it on by accident and not knowing that it's turned on.  It can have a pretty profound impact upon the safety of the data if you're not aware that you're using it and configure it accordingly.

<< Good news!? When i run the my custom server with the 2.28b2 engine it detected corruptions on my tables which 2.27 missed. I repaired the tables and the errors gone! >>

This is coincidental - there's nothing specific in 2.27 to fix the repair functionality in ElevateDB.  It's quite likely that your table files are corrupted enough that the repair will effectively "chase its tail" and keep repairing the same issues over and over again.  If you want to send me your database catalog and table files, I can tell you what the issue is.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Mar 27 2018 5:35 AMPermanent Link

Charalampos Michael

Tim,

<< If the table is corrupting during normal usage (in other words, no improper shutdowns or killing the process), then there's something wrong with your disk or the writes are getting interrupted. >>

It happens when the server is starting and users are loggin. (using kbmMW with elevateDB backend)
I have disabled the BufferedFileIO and no corruption occurs, i'll investigate the issue more.

btw, can i enable any debug definition or something to give us more info ?

Thank you
Tue, Mar 27 2018 6:10 AMPermanent Link

Charalampos Michael

Tim,
 with BufferedFileIO enabled:

 I have run a repair table script upon all the tables and they were clean.
 After i run the server application and when the users started to login got it:

ElevateDB Error #100 There is an error in the metadata for the table Devices (A write operation did not complete and a repair is required)

 I terminated the server and rerun a repair table script upon all the tables and the table was corrupted:
Verification of the table Devices started at 2018-03-27 13:07:55.152
Verification error for the index idxConnected in the Devices table (Invalid index key value for row 36 (FALSE)) - Fixed
Tue, Mar 27 2018 3:05 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< It happens when the server is starting and users are loggin. (using kbmMW with elevateDB backend)
I have disabled the BufferedFileIO and no corruption occurs, i'll investigate the issue more. >>

Are you using multi-threaded access into the engine with kbmMW ?  If so, then the BufferedFileIO could simply be coincidental and causing a change in the behavior (performance) of the application in a way that allows more concurrency.  When you have a race condition, more concurrency equals more exposure of race conditions.

<< btw, can i enable any debug definition or something to give us more info ? >>

The EDB Server has tracing facilities, but that may or may not help with a race condition, and won't help at all if you aren't using the EDB Server.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Mar 27 2018 3:52 PMPermanent Link

Charalampos Michael

Tim,


<<Are you using multi-threaded access into the engine with kbmMW ?  If so, then the BufferedFileIO could simply be coincidental and causing a change in the behavior (performance) of the application in a way that allows more concurrency.  When you have a race condition, more concurrency equals more exposure of race conditions.>>

Yeap, The kbmMW Connection Pool is linking to a TEDBDatabase and i have it connect it to EDBEngine Locally. (etClient)

<< The EDB Server has tracing facilities, but that may or may not help with a race condition, and won't help at all if you aren't using the EDB Server.>>

So what you suggest, you need a sample project right ?

Thank you
Wed, Mar 28 2018 3:01 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Michael,

<< Yeap, The kbmMW Connection Pool is linking to a TEDBDatabase and i have it connect it to EDBEngine Locally. (etClient) >>

Are you using a separate TEDBSession for each thread ?  If not, then you're not setting things up correctly:

https://www.elevatesoft.com/manual?action=viewtopic&id=edb2&product=rsdelphiwin32&version=10T&topic=Multi_Threaded_Applications

Tim Young
Elevate Software
www.elevatesoft.com
Wed, Mar 28 2018 4:11 PMPermanent Link

Charalampos Michael

Tim,

<<Are you using a separate TEDBSession for each thread ?  If not, then you're not setting things up correctly:

https://www.elevatesoft.com/manual?action=viewtopic&id=edb2&product=rsdelphiwin32&version=10T&>>

Yes, i forgot to mention that it links to a TEDBSession too.

So the test results so far with 2.28b2:
DISABLED BufferedFileIO: Server runs fine but after a day or two it Freezes the application. (never had this with 2.27)
ACTIVATED BufferedFileIO: Server run fine but it corrupts the index after users loggin. (almost instantly)

I guess you dont have kbmMW so i'll try to emulate it with indy into a sample project. (it will take me some time)

ps: I don't know if it's my my fault or not but the custom kbm server code worked without problems with 2.27 without any problems.
Page 1 of 3Next Page »
Jump to Page:  1 2 3
Image