| |
__________________________________________________
_________________________
Tests
Section
Test Equipment And Environment
Images and other BLOB data are not included in AxleBase tests because they merely inflate the numbers and obscure reality.
Equipment:
The AxleBase lab uses the cheapest that can be found locally. Computers are used until they break, so one machine has been in use since the nineties. Used equipment is bought for tests when possible.
The network is a switched gigabit single-segment CAT 5 running standard TCP/ IP /ethernet.
Tests are run without tuning and without special configuration. Disk defragmentation is maintained.
Although it may slow tests, the AxleBase yieldProcessor setting is usually turned on to allow control of the computer although it may be subject to slowing processes..
_________________________
Tests
Section
Test: Table Size
Objective:
Test the ability to build and control very large tables transparently to the user.
Build Mechanics :
SQL
Computers inserting data varied over the six month period with five usually running. Each insert was a fifty-row arrayed insert.
Result :
The system performed to specification.
Validation:
The ShowHealth comand reported no problems.
Data :
Data only. Quantities are not inflated with indices, BLOBs, or other extraneous objects.
| | |
| test date | 1 Oct 2007 - 31 Mar 2008 |
| | |
| rows in table | 42 billion ( 42,126,656,000 ) |
| bytes in table | 3 terrabytes ( 3,330,005,827,500 ) |
| | |
| mechanics follow | |
| disk drives occupied | 23 |
| computers occupied | 4 |
| bytes per row | 80 |
| segments in table | 1,665 |
| rows per segment | 25 million ( 25,316,500 ) |
| bytes per segment | 2 billion ( 2,000,003,500 ) |
| host master app | AxHandle |
| operating system | Windows 2000 |
| network | one gig switched CAT 5 |
| table | t_citizen_status |
| _______________________ | _______________________ |
_________________________
Tests
Section
Test: Indexed Query
Purpose :
Ascertain approximate speed of large indices.
Query Design :
Standard SQL queries.
Each query searched entire table for a single value.
Example :
select * from t_citizen where location = 's87787408857901'
Validaty :
Unique values are in the table at known locations.
Values and locations were verified before tests.
Also, see the index validation test section.
Indexing :
Indices were built after the table was created.
Indices built on-the-fly are not suitable for large entities.
Queries not shown included between, in, less than, greater than, etc.
| | |
| test date | 20 Oct 2011 |
| | |
| very small table | |
| . . . . row count | 25 million
( 25,316,500 ) |
| . . . . byte count | 2 billion
( 2,025,320,000 ) |
| column queried | |
| . . . . . . . data type | alpha repeating 50 values |
| . . . . . . . query time | 0.046 second |
| . . . . . . . rows returned | 1 |
| column queried | |
| . . . . . . . data type | random alpha |
| . . . . . . . query time | 0.171 second |
| . . . . . . . rows returned | 1 |
| column queried | |
| . . . . . . . data type | mostly sorted numeric not unique |
| . . . . . . . query time | 0.109 second |
| . . . . . . . rows returned | 1 |
| | |
| small table | |
| . . . . row count | 100 million
( 101,266,000 ) |
| . . . . byte count | 8 billion
( 8,101,280,000 ) |
| column queried | |
| . . . . . . . data type | alpha repeating 50 values |
| . . . . . . . query time | 0.046 second |
| . . . . . . . rows returned | 1 |
| column queried | |
| . . . . . . . data type | random alpha |
| . . . . . . . query time | 0.25 seconds |
| . . . . . . . rows returned | 6 |
| column queried | |
| . . . . . . . data type | mostly sorted numeric not unique |
| . . . . . . . query time | 0.125 second |
| . . . . . . . rows returned | 1 |
| | |
| large table | |
| . . . . row count | 15 billion
( 15,392,432,000 ) |
| . . . . byte count | 1 terabyte
( 1,231,394,560,000 ) |
| column queried | |
| . . . . . . . data type | alpha repeating 50 values |
| . . . . . . . query time | 7.4 seconds |
| . . . . . . . rows returned | 152 |
| column queried | |
| . . . . . . . data type | random alpha |
| . . . . . . . query time | 8 minutes and 9 seconds |
| . . . . . . . rows returned | 912 |
| column queried | |
| . . . . . . . data type | mostly sorted numeric not unique |
| . . . . . . . query time | 18.6 seconds |
| . . . . . . . rows returned | 152 |
| | |
| mechanics follow | |
| host app. | AxHandle demonstrator |
| table name | t_citizen_status |
| query computer speed | 3 ghz, 32 bit |
| query computer RAM | 1 gig |
| query computer processors | 1 32 bit |
| disk connections | local external sata docking disks |
| | and two remote computers |
| network | one gig switched CAT 5 |
| operating system | windows 2000 |
| miscellaneous | yield processor was on |
| _______________________ | ____________________________ |
_________________________
Tests
Section
Test: Table Join
Purpose :
1. Test the ability to join large objects.
2. Ascertain approximate large object join speeds.
3. Insure transparency of the operation.
Table Size :
Small table :
100 million rows ( 101,266,000 ).
8 billion bytes ( 8,101,280,000 ).
Large table :
15 billion rows ( 15,392,432,000 ).
1 trillion bytes ( 1,231,394,560,000 ).
Sizes do not include indices, and never include BLOBs.
Query Design :
Standard SQL queries.
Example :
select * from t_citizen_status
left join t_config
on t_citizen_status.updater = t_config.owner
where t_citizen_status.updater = 'sarah'
Validity :
Unique values are in the tables at known locations.
Values and locations were verified before tests.
Also, see the index validation test section.
| | |
| test date | 9 Oct 2011 |
| | |
| small table | |
| . . . . row count | 100 million
( 101,266,000 ) |
| . . . . byte count | 8 gigabytes
( 8,101,280,000 ) |
| large table | |
| . . . . row count | 15 billion
( 15,392,432,000 ) |
| . . . . byte count | 1 terabyte
( 1,231,394,560,000 ) |
| | |
| column joined | |
| . . . . . . . data type | alpha repeating 50 values |
| . . . . . . . query time | 9.75 seconds |
| . . . . . . . rows returned | 152 |
| column joined | |
| . . . . . . . data type | random alpha |
| . . . . . . . query time | 17 minutes |
| . . . . . . . rows returned | 152 |
| column joined | |
| . . . . . . . data type | mostly sorted numeric not unique |
| . . . . . . . query time | 21.23 seconds |
| . . . . . . . rows returned | 152 |
| | |
| mechanics follow | |
| host app. | AxHandle demonstrator |
| query computer speed | 3 ghz, 32 bit |
| query computer RAM | 1 gig |
| query computer processors | 1 32 bit |
| storage computer count | 3 |
| storage disk count | 4 |
| disk connections | sata, pata, external sata |
| | and one table on remote computer |
| network | one gig switched CAT 5 |
| operating system | windows 2000 |
| miscellaneous | both tables indexed |
| miscellaneous | yield processor was on |
| _______________________ | ____________________________ |
_________________________
Tests
Section
Test: SQL Updates
Purpose :
Test ability to update large entities.
Ascertain approximate update speeds.
Query Design :
Standard SQL.
update t_citizen_status set flag = true where updater = 'lauren'
Validaty :
Unique values are in the table at known locations.
Row contents were verified before and after query.
Large Table Deferrment :
The large table test is deferred pending hardware acquisition for backup. Updating a test table disturbs its known characteristics, so a backup must be made before the test and restored afterwards to maintain those characteristics. The large table backup requires more hardware than is currently on hand.
| | |
| test date | 27 Nov 2011 |
| | |
| table, very small | |
| . . . . row count | 25 million
( 25,316,500 ) |
| . . . . byte count | 2 billion
( 2,025,320,000 ) |
| updates | |
| . . . . column data type | alpha repeating 50 values |
| . . . . . . . . query time | 0.156 second |
| . . . . . . . . rows updated | 1 |
| . . . . column data type | random alpha |
| . . . . . . . . query time | 0.125 second |
| . . . . . . . . rows updated | 6 |
| . . . . column data type | mostly sorted numeric not unique |
| . . . . . . . . query time | 0.156 second |
| . . . . . . . . rows updated | 1 |
| | |
| table, small | |
| . . . . row count | 100 million
( 101,266,000 ) |
| . . . . byte count | 8 billion
( 8,101,280,000 ) |
| updates | |
| . . . . column data type | alpha repeating 50 values |
| . . . . . . . . query time | 0.109 second |
| . . . . . . . . rows updated | 1 |
| . . . . column data type | random alpha |
| . . . . . . . . query time | 0.703 second |
| . . . . . . . . rows updated | 9 |
| . . . . column data type | mostly sorted numeric not unique |
| . . . . . . . . query time | 0.187 second |
| . . . . . . . . rows updated | 1 |
| | |
| table, large | |
| See deferment note above. | |
| | |
| mechanics follow | |
| host app. | AxHandle demonstrator |
| table name | t_citizen_status |
| query computer speed | 3.5 ghz, 32 bit |
| query computer RAM | 1 gig |
| query computer processors | 1 32 bit |
| disk connections | local |
| network | one gig switched CAT 5 |
| operating system | windows 2000 |
| miscellaneous | yield processor was on |
| _______________________ | ____________________________ |
_________________________
Tests
Section
Test: Virtualization
Objective :
To stress the virtualization mechanism.
To stress the concatenation mechanism.
Result :
The system performed to specification.
Data :
Quantities are not inflated with indices, BLOBs, or other extraneous objects.
Unique rows were placed at controlled locations in tables to validate queries. Also, AxleBase can retrieve by row number even in virtual tables.
Subjective Understanding :
If the hardware can deliver each row in .015 second,
and all indices are removed, then a query of the
smaller table would run for 3,000 years,
and the larger table would require 400,000 years.
Comparative Example :
The large table is thousands of times bigger than the biggest book library in the world, the Library Of Congress.
| | |
| test date | 5 Oct 2011 |
| | |
| indexed table | |
| row count | 6 trillion
( 6,156,972,800,000 ) |
| byte count | 492 terabytes
( 492,557,824,000,000 ) |
| segment count | 243,600 |
| source table count | 400 |
| query time ** | 15 minutes |
| rows returned | 60,800 |
| | |
| un-indexed table | |
| row count | 843 trillion
( 842,812,366,000,000 ) |
| byte count | 67 petabytes
( 67,424,989,280,000,000 ) |
| segment count | 33,320,000 |
| source table count | 20,000 |
| | |
| mechanics follow | |
| table | t_citizen_status |
| bytes per row | 80 |
| rows per segment | 25,316,500 |
| bytes per segment | 2,025,320,000 |
| host master app | AxHandle |
| operating system | Windows 2000 |
| query computer speed | 3 ghz, 32 bit |
| query computer RAM | 1 gig |
| query computer processors | 1 |
| disk connections | sata, pata, external sata |
| network | one gig switched CAT 5 |
| _______________________ | ___________________________________ |
| | |
** The fastest data column was used.
** select * from t_citizen_status where updater = 'kate'
_________________________
Tests
Section
Test: Mixed Storage Media
Purpose :
Verify AxleBase storage media eclecticism.
AxleBase was designed for a distributed operation across generalized and disparate hardware of uncontrolled quality and quantity. The question addressed is whether or not that specification has been maintained through development.
Caveat :
This test was designed to touch the extremes, and no part of it is intended to be a recommendation or even a suggestion.
Result :
The system performed to design specification.
There were no errors, problems, or data loss.
Media Selection :
Every medium that was on hand in the lab was used.
Test Structure :
The database table segment size was changed from 2 gig to 2k.
A table of 14,250 rows was created.
The very small segment size produced 285 table segments.
Segments were relocated so that the table was spread across various media.
The entire table was returned by every query.
select * from t_citizen_status
(The CD precluded a write test, but it was not considered necessary.)
Times :
Timing the test was considered pointless, considering the low speed of some components; floppy disks are from the last century.
Also, the small table and small segments made reads nearly instantaneous.
Media Housing The Table
| medium | capacity | units |
| | | |
| | | |
| CD read only, 52x | 650 | meg |
| flash drive USB, 2.0 | 4 | gig |
| floppy drive | 1 | meg |
| hard disk ESATA | 2 | tb |
| hard disk PATA | 32 | gig |
| test date | 14 Jan 2012 | ________ |
Query Access Sequence
| medium |
| |
| |
| PATA |
| CD |
| PATA |
| ESATA |
| floppy drive |
| PATA |
| flash |
| CD |
| PATA |
| floppy drive |
| PATA |
| flash |
| PATA |
| ESATA |
| ____________________ |
_________________________
Tests
Section
Test: Concurrency
Purpose :
To test concurrent operations.
Result :
The system performed to specification.
Queries :
The AxHandle query test suite.
Caution :
Do not be misled by the success of these tests. The inability to achieve a system failure does not necessarily indicate operational safety at or above that load. Only after failures have repeatedly been achieved can a safe operational load be estimated.
Concurrent Query Test Design
| | |
| test date | 13 Nov 2006 |
| achieved load | 29.4 queries per second |
| duration | 24 hours |
| host master app | AxHandle |
| system release | 61113 |
| computers | 7 |
| instances * | 11 |
| computer speeds | 120 megahertz |
| | 150 megahertz |
| | 350 megahertz |
| | 400 megahertz |
| | 733 megahertz |
| | 800 megahertz |
| | 1.8 gigahertz |
| operating systems | Windows 95 |
| | Windows 98 |
| | NT |
| | Win 2000 pro |
| | Win 2000 server |
| database | AxHandle demo |
| instance schedules | continuous |
| query timeout | 15 seconds |
| spinlock timeout | 15 seconds |
| test type | mixed SQL queries |
| using yield processor | yes |
| using remote temp db | yes |
| remote segment table | no |
| system errors | none |
| contention lockouts | none |
| lock failures | none |
| data loss | none |
| _______________________ | _______________________ |
Test: Concurrent Insert
Objective :
To place a heavy insert load on a single table. The previous test was mainly reads.
Times included interruption by an hourly database purge by every CoreReader instance and database backup by every instance.
The CoreReader log table was chosen. Multiple CoreReader instances were directed against a single remote database, and a departmental job server was started on all instances.
All activity, including job file writes, was on one disk. There was no system tuning or object dispersion.
Concurrent Insert Test Design
| | |
| test date | 20070202 |
| achieved insert rate | 24 per second * |
| insert and read | 75 per second * |
| duration | 48 hours |
| host master app | CoreReader |
| system release | 70202 |
| computers | 3 ** |
| CoreReader instances | 3 |
| computer speeds | 400 megahertz |
| | 733 megahertz |
| | 2.16 gigahertz |
| operating systems | Windows 98 |
| | Win 2000 Pro |
| | Win 2000 server |
| database | CoreReader |
| table | t_log |
| instance schedules | continuous |
| query timeout setting | 15 seconds |
| spinlock setting | 15 seconds |
| test type | job server |
| yield processor | yes |
| remote temp db | no |
| errors | none |
| contention lockouts | none |
| lock failures | none |
| data loss | none |
| _______________________ | _______________________ |
** Does not include the file server and the database servers such as MySql and MsSql against which CoreReader jobs were run.
_________________________
Tests
Section
Test: Index Build Speed
Objective :
Determine approximate times required to index an existing table.
Speed Increase :
A change in a database configuration parameter could have easily increased the speed in the random column build, but would have resulted in a slower index.
Also, AxleBase could have used multiple computers to speed the build of all indices, but timing of the operation would have been inacurate and confusing.
Indexing is so complex that we could easily become mired down in the complexities. Therefore, this test is designed to be as simple as possible while giving a "ballpark feel" for the performance. AxleBase can also index "on the fly" as data is entered, but most very large data stores will be indexed after they are created.
| | |
| test date | 20 Nov 2011 |
| | |
| table | |
| . . . . . row count | 100 million
( 101,266,000 ) |
| . . . . . byte count | 8 billion
( 8,101,280,000 ) |
| | |
| column | |
| . . . . . . . type | alpha repeating 50 values |
| . . . . . . . width | 20 |
| . . . . . . . build time | 68 min. and 50 sec. |
| . . . . . . . rows per second | 24,820 |
| . . . . . . . rows per day | 2 billion |
| column | |
| . . . . . . . type | random alpha not unique |
| . . . . . . . width | 16 |
| . . . . . . . build time | 191 mins. and 40 secs. |
| . . . . . . . build time | 244 mins. and 4 secs. |
| . . . . . . . rows per second | 6,915 |
| . . . . . . . rows per day | 597,456,000 |
| column | |
| . . . . . . . type | mostly sorted numeric not unique |
| . . . . . . . width | 20 |
| . . . . . . . build time | 53 min. and 38 sec. |
| . . . . . . . rows per second | 31,468 |
| . . . . . . . rows per day | 2.7 billion |
| | |
| mechanics follow | |
| host app. | AxHandle demonstrator |
| table name | t_citizen_status |
| computer speed | 3.5 ghz, 32 bit |
| computer RAM | 1 gig |
| computer processors | one, 32 bit |
| network | one gig switched CAT 5 |
| operating system | windows 2000 |
| miscellaneous | yield processor was on |
| _______________________ | ____________________________ |
_________________________
Tests
Section
Test: SQL Insert Speed
Test Design
| | |
| test date | Dec 2011 |
| | |
| average time per row | 0.0012 second |
| rows inserted | 1 million |
| | |
| mechanics | |
| host master app | AxHandle |
| computers | one |
| CPU's | one, 32 bit |
| | 3.5 ghz |
| buss speed | 333 mhz |
| disk drives | |
| type | cheapest available |
| mfg | Seagate |
| | Maxtor |
| | Western Digital |
| buss | SATA |
| | EIDE |
| operating system | Windows 2000 Pro |
| database | AxHandle demo |
| table | T_CITIZEN_STATUS |
| indexed | no |
| yield processor | yes |
| _______________________ | _______________________ |
__________________________________________________
|
|