I have done some benchmarking, though not at all exhaustive, to assess the actual NoSQL speed with respect to other similar packages, and here are the results:
Input table:
No. of fields = 18
No. of records = 21000
Total size = 3.4 MB
Column names:
seq
NAME
PREF
EXTENSION
DEPT
BLDNG
TOWN
NODE
USERID
DEPTT
CAPIN
EMPTYPE
EMPNUM
ADDITIONAL
MGRCC
PHONE
MGR
MGRNUM
Machine: P200, 64MB RAM, 1GB Wide-SCSI HD
OS: Debian GNU/Linux 2.0 (kernel 2.0.35)
RDB (Perl):
time col BLDNG NAME PREF USERID < table.rdb |
col BLDNG NAME PREF | col NAME >/dev/null
real 0m13.937s
user 0m10.340s
sys 0m0.440s
NoSQL (AWK):
time column BLDNG NAME PREF USERID < table.nosql |
column BLDNG NAME PREF | column NAME >/dev/null
real 0m3.910s
user 0m3.250s
sys 0m0.280s
Starbase (ANSI-C):
time column BLDNG NAME PREF USERID < table.starbase |
column BLDNG NAME PREF | column NAME >/dev/null
real 0m1.230s
user 0m0.720s
sys 0m0.170s
-------------------
Input tables:
join1:
No. of fields = 4
No. of records = 21000
Total size = 660 KB
Column names:
NAME
PREF
EXTENSION
DEPT
join2:
No. of fields = 4
No. of records = 21000
Total size = 700 KB
Column names:
NAME
BLDNG
TOWN
NODE
Machine: P-II 233, 32MB RAM, 3GB EIDE U-DMA HD
OS: Debian GNU/Linux 2.0 (kernel 2.0.35)
RDB (Perl):
time jointbl -md < join1.rdb NAME join2.rdb >/dev/null
real 0m10.630s
user 0m10.540s
sys 0m0.020s
NoSQL (AWK):
time jointable -a 1 -j NAME - join2.nosql < join1.nosql >/dev/null
real 0m1.198s
user 0m1.140s
sys 0m0.030s
Starbase (C):
time jointable -A1 -j NAME join1.starbase join2.starbase >/dev/null
real 0m0.881s
user 0m0.860s
sys 0m0.020s