vClient becomes thread-safe (!)

Now you should not synch vClient API calls  – vClient do it self and you are free to access and operates with vClient’s remote objects from different threads similiangly.

In particular, vStudio operates with remote connections via multiple threads  and it was a source of some glitches and unexpected errors especially with a long queries.  Now there are no more errors like “EOF reached…” or “Broken packet received…” which were result of incorrect thread synch.

Altering ObjectPtr

ObjectPtr field contains RecID values of some “target” table. If you need to change ObjectPtr in order to point another table those values are not valid anymore – so default behavior is to nullify them.  But sometime it looks to be too strong. For instance – changing  field or link name or on-delete policy should not cause such data zeroing.

There are two ways to keep existed values altering ObjectPtr:

  1. There is a global property – OnChangeTypeZeroPtr. It is set to true by default. But you may change it with following statement – “SET PROPERTY OnChangeTypeZeroPtr TO false”. After this altering ObjectPtr will prevent zeroing data (sure it will be nulls for records which are absent in the new target table).  This property is not “schema-storable” – so you should set it up on each run if you need it.
  2. The first approach is a global setting – so you will be able to keep some ObjectPtr values even changing “target” table. So we implement one more way – much more simple because the only thing you should keep in your mind is – the values will be preserved until you touch “target table” ObjectPtr property (because all values will be valid for the same target anyway).

Changes in Valentina for Cocoa API.

Erne have report bug http://www.valentina-db.com/bt/view.php?id=4885 in Valentina for Cocoa (V4CC).

Problem was that VField.value in ObjC implemented as pair of methods (in other Valentina ADKs, e.g. Valentina for REALbasic it is a true property of class). So if to override this pair in the sub-classes then always will be called overridden methods.

To resolve issue, we have decide to rename these methods in all VField sub-classes. Rules now are simple:

Continue reading Changes in Valentina for Cocoa API.

SPEED of DB Open for Database with 1000+ Tables: -20 sec

44 Seconds for that 1023 tables DB still not looks good for me, and I have continue search for ways to improve it. And after one more day of work time have go down to 34 sec from original 54.

And this new optimization is even better! It is also made on INDEX-level and affects absolutely ANY index search operation!! Especially we will see effect for searches that return many records into Set.

I see yet two possible steps to optimize speed of open for database.
* [minor] – …
* [major] – start to cache data in the algorithms that read schema from recursive sysItem table.

Target is to make time few seconds only.

SPEED of DB Open for Database with 1000+ Tables: -10 sec

One developer have produce Valentina database with 1023 tables. And note us that it takes long time to open it. On my macbook it have take 54 sec.

After some profiling and optimization, time is now 44 sec.

Nice thing here is that optimization was made on INDEX-level for functions that return ArraySets. This means that all other index-based operations may benefit from this.

NEW Left Side Bar in Schema Editor of Valentina Studio

We have added the left side bar into Schema Editor.

It looks similar to what have OS X Finder and Windows 7. This sidebar allows you easy jump to the most common and/or recent places of your job. For example, you can by single click open recent database or connection or your bookmark to a Valentina Server. Your login and password can be stored, so no need to retype them each time.

Continue reading NEW Left Side Bar in Schema Editor of Valentina Studio

REALbasic, the iPhone and Valentina DB

There is an interesting conversation taking place over on Bob Keeney’s blog regarding REALbasic and the iPhone.

Paradigma Software has had a Valentina Client for the iPhone for almost a year, and while its seen some use, I often feel that just having it has helped bring new customers to use Valentina DB who have no intention of using Valentina for the iPhone.

A lot of folks commenting know REAL Software – the company – very well. Maybe too well. Supporting the iPhone sounds like a monumental task, and you’ve been waiting a long, long time for Cocoa support and that’s likely come at some cost. You don’t want to go through that with iPhone support.

Continue reading REALbasic, the iPhone and Valentina DB

Kem Tekinay: What I’ve learned about Valentina

In jumping back into Valentina, I’ve learned a number of things over the past few days that I thought I’d share. In no particular order…

– Valentina support (particularly Ruslan) has to be the most responsive support of any company in any country, ever.

– Valentina is fast. I mean, really fast. Using a flat-file database of 7 fields and 5 million+ records, and comparing it to other solutions like MySQL, PostgreSQL, SQLite and FileMaker Pro, Valentina beats them all in every test I can come up with. The only thing that is even close to the same range is MySQL, and only in some tests.

Continue reading Kem Tekinay: What I’ve learned about Valentina