Question About Segment Errors

Ruslan Zasukhin ruslan_zasukhin at valentina-db.com
Tue May 4 01:13:08 CDT 2010


On 4/5/10 1:40 AM, "Matt Milano" <dev at infinitydatasystems.com> wrote:

Hi Matt,

> I have to say, that's a bit troubling. For the last 3 years, I've been using
> SQLite and have only corrupted a single database. In that case, I was
> aggressively trying to corrupt it, to see what it would take to do so. In the
> last few weeks since switching to Valentina, these databases have not been
> extensively tested, and have only been used in regular day-to-day operations.
> All of them are under 1.5GB, with most of them just a few hundred MB. In the
> last few weeks though, nearly half a dozen have become corrupted.
> 
> I'm hoping that I'm doing some thing wrong, as Valentina's speed is absolutely
> amazing. Any ideas on why this high corruption level? Is Valentina more
> "temperamental" than SQLite?

Points are:

* after changes to db you should do db.Flush()
    currently this is kind of commit to db.

* after db.flush() any crashes power off - cannot corrupt db.


==========================
[DEPLOYMENT USAGE]

* at this mode, if your app do flush at correct places, corruptions should
be very rare. They only happens if crash / system failure happens during
WRITE to db.

* problem is that we have not yet implement double/write into db.
We plan implement this for 5.0


==========================
[DEBUGING ?]

* do you have scenario when you debug your e.g. RB app,
App start do some changes, then you break debugging self or it is
interrupted by crash of app on error in your code ...


If this is what you have, you can use TIP:

* download and install VSERVER OFFICE DEMO.
Put your db under vserver.

And make your app working with db under VSERVER.
This give at least few benefits

A) if your app crashes, then VSERVER still alive and keep db in more or less
fine state. Only issues you can get if you modify something on each loop of
debugging. E.g. Create table ... But you can add protection code to check if
table exists

B) faster ... Since db already opened by VSERVER on next connect, you will
see faster work overall

C) your app immediately become ready for client/server mode also.


-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list