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
NOME
PREF
INTERNO
REP
POSTO
CITTA
NODO
USERID
DEPTT
CAPIN
EMPTYPE
EMPNUM
ADDITIONAL
MGRCC
TELEFONO
MGR
MGRNUM
Machine: P200, 64MB RAM, 1GB Wide-SCSI HD
OS: Debian GNU/Linux 2.0 (kernel 2.0.35)
RDB (Perl):
time col POSTO NOME PREF USERID < table.rdb |
col POSTO NOME PREF | col NOME >/dev/null
real 0m13.937s
user 0m10.340s
sys 0m0.440s
NoSQL (awk):
time column POSTO NOME PREF USERID < table.rdb |
column POSTO NOME PREF | column NOME >/dev/null
real 0m3.910s
user 0m3.250s
sys 0m0.280s
Starbase (C):
time column POSTO NOME PREF USERID < table.rdb |
column POSTO NOME PREF | column NOME >/dev/null
real 0m1.230s
user 0m0.720s
sys 0m0.170s
-------------------
Input tables:
join1.rdb:
No. of fields = 4
No. of records = 21000
Total size = 660 KB
Column names:
NOME
PREF
INTERNO
REP
join2.rdb:
No. of fields = 4
No. of records = 21000
Total size = 700 KB
Column names:
NOME
POSTO
CITTA
NODO
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 NOME join2.rdb >/dev/null
real 0m10.630s
user 0m10.540s
sys 0m0.020s
NoSQL (awk):
time jointable -a 1 -j NOME - join2.rdb < join1.rdb >/dev/null
real 0m1.402s
user 0m1.340s
sys 0m0.060s
Starbase (C):
time jointable -A1 -j NOME join1.rdb join2.rdb >/dev/null
real 0m0.881s
user 0m0.860s
sys 0m0.020s