четверг, 30 декабря 2010 г.

At speed of light - Part 2

  Today we finally finished the data comparison engine, and it was the most complicated part of the product.  It took about 1 month to design and implement it, and now we are ready to announce how powerful it is.

Click to enlarge
Data comparison
  OK, the first test was very simple - compare a database with itself and measure the time taken.  All compared records are identical, which are not stored by default in a program's cache, plus reading the same database (source and target sides) minimizes disk load, thus the test emphasizes the comparison speed.  Like for a set-up step, we chose the same two competitive software programs, because they show the best results among all available solutions.  Of course, we are not going to reveal their names or vendors, but we leave some clues..  The first database we've tested was a well-known demobase AdventureWorks. As you see on the diagram, the competitive solutions show identical performance, but our engine is 2.2 times faster.  Moreover our engine works a bit better with remote server, unlike competitors which are slower in this case, and shows boost of 250%.  Then we decided to repeat this test on a larger database to be more precise at performance measuring, so we get a 45Gb database from city local shop (thanks to our friends).  Competitors finished with 1 hour and 40 minutes, but our engine did it in 40 minutes only, confirming the performance of previous tests.

Click to enlarge
Data caching
  The second test emphasizes the data caching speed - how fast a program put different records into a cache on a disk, which is used to view table data after comparison and for data synchronization.  For this test we created a simple table with 4 columns, filled it with 10 million records, and created a copy of this table for target side, but left it empty.  Hence there is no data compared - only reading and caching of source records.  In this scenario our engine is 1.5 times faster than competitor 1, and.. well, the competitor 2 is really slow and it prepares data for previewing for additional 33 seconds, what compel a user wait for painful 1 minute 12 seconds in total to see results against our 15 seconds.

Limit reached?
  Both yes and no.  Our engine is created by true professionals, so every single line of code is optimized, and the engine uses a CPU to the max, that's why "yes", we've reached the limit.  On the other hand our engine is highly optimized for multi-processor/core and 64-bit systems, so as more cores as more performance you get.  We believe that on high-end servers our engine could be up to 20 times faster than the best competitors, but this is only a theory which we've not yet been tested.  That's why "no", the results we showed could be better, as for tests we used a simple developer machine with Intel Core i5 (4 cores @ 2.27GHz), 4GB RAM  DDR3, single HDD, and Windows 7 Pro x64.  Moreover, our professional developers know how to make the most of performance, but it would take much more time and would be extremely hard to implement.

  We do our best to make our solution available to you as soon as possible, but we prefer quality to satisfy people with 'perfect software'. Thanks for reading!

At speed of light - Part 1
At speed of light - Part 2  (current article)
At speed of light - Part 3

Комментариев нет:

Отправить комментарий