Download 8.5 Beta 1 - Preview
First of all. Sorry to all of you that though that the next version would be 8.3!
It NEEDED to be 8.5 when we realized the difference we have made, and to illustrate the difference we gave it the code-name BlackBird after the SR-42 since in comparison if DE8.2 is a horse, then DE8.5 is a sportscar but with the afterburner it is a Blackbird (Mach 3).
When we realised that Blackbird in Russian is Drozd the name stuck as our head of DE8 development is Andrey Drozdov, and he is the one to thank for this fantastic improvement.
Up to and including 8.2 we have focused on functional improvement. With 8.3 we decided that we needed to take a look at performance. Before 8.0 we weren't able to us DFW for anything so performance was not a real problem ... but with 8.0 the fun was back in DE development so even things went "blindingly" with ExecDQL etc, there was obviously something wrong. Some things just STOPPED!
It was clear that something was "snagging" deep down in prism and that the problem had geometric development. Small to medium sized transaction went "OK" but suddenly things just stopped turning over. Another serious problem was that it seems that repeated jobs went slower and slower.
When we drew a line under 8.2 and started on 8.3 we decided ti was time to get dirty so we jumped in on the deep end and did we get pay dirt.
No reason to dwell on past mistake but it was a mess as you all suspected.
We cleaned up the locking model and started on a crazy index updating regime. IT WAS a hard job, because so many people have tried to fix it over the years without really knowing what they were doing so under layers of unnecessary, crazy and straight out dangerous pieces of code we finally managed to get to the core.
It didn't help that someone in charge of development was "hellbent" on Locking and wanted to make sure that nothing was changed or updated without permission in triplicate.
Our belief is that things should just work. No error message, no explanations or pop-ups - just work! So if you want to update a table or an index when someone else is looking at it, so you should.
To make a long story short:
DE 8.5 is dramatically much faster than any previous version of DFW including the cousin Ffenics.
Today we ran a test on the following DQL:
define "startTime" time .
define "retval" text .
define "counter" number.
counter := 0 .
startTime := current time .
For SomeData ;
modify records in SomeData named "Drozd" with RecordNr = SomeData RecordNr
SomeText := concat(counter," This is changed!" ).
counter := counter + 1 .
message concat("Modify took : ", current time-starttime, " seconds.") window .
On a table with 100.000 records (Shared database).
The results was as follows:
Seconds to complete
Faster than 8.2
Faster than Ffenics 1.63
DataEase 8.5 - Full Mode
DataEase 8.5 - Manual Indexupdate (index off/manual update)
Yes, you are reading it right.
DataEase 8.5 is in "normal" mode 12 times faster than 18.2 for this update and 111 times faster if you use the "afterburner".
Truly a Blackbird!
This is not a finished beta, but please download and test it. It will still retain elements of 8.3 and 8.2 but the core functionality is all 8.5
The main focus has been on DQL inserting/updating and deleting but due to radical changes in locking and indexing engines it is also faster EVERYWHERE!!! from searching to looking up data to displaying data in subforms etc. etc.
Have a go and give us your feedback!