Version 1 vs 4
Version 1 vs 4
Content Changes
Content Changes
== MongoDB
Currently CDRTool uses OpenSIPS radius client/ FreeRadius server/ MySQL database chain. This chain has weaknesses and scalability drawbacks, too many to mention.
Based on this analysis, MongoDB is a good candidate to replace the whole chain with a more scalable and elegant solution.
* Scales horizontally with the amount of hardware
* Almost zero configuration to install and run on Debbian, a few binaries only
* All works as one would expect a database, well documented by the makers
* Easy to learn and use (about two days)
* Multiple collections per database, equivalent to table in SQL
* Document oriented, a document is equivalent to a row in SQL schema
* Documents can have a different structure, unlike SQL schemas that have fixed columns
* Documents are JSONs. Can be imported and exported as such using cli tools. Backup/restore is dead easy
* Query language is dead simple using array/dictionaries
* Clever pipelines of processing on database server similar to UNIX pipes (version > 2.2)
* All CDRTool SQL queries equivalent were possible (with latest 2.2 server version and 1.3 client version)
* Multiple nodes with automatic replication, nothing to repair, does not conflict
* New nodes can be added or removed with a simple command, data replicated on the fly without locking
== MongoDB
Currently CDRTool uses OpenSIPS radius client/ FreeRadius server/ MySQL database chain. This chain has weaknesses and scalability drawbacks, too many to mention.
Based on this analysis, MongoDB is a good candidate to replace the whole chain with a more scalable and elegant solution.
* Scales horizontally with the amount of hardware
* Almost zero configuration to install and run on Debbian, a few binaries only
* All works as one would expect a database, well documented by the makers
* Easy to learn and use (about two days)
* Multiple collections per database, equivalent to table in SQL
* Document oriented, a document is equivalent to a row in SQL schema
* Documents can have a different structure, unlike SQL schemas that have fixed columns
* Documents are JSONs. Can be imported and exported as such using cli tools. Backup/restore is dead easy
* Query language is dead simple using array/dictionaries
* Clever pipelines of processing on database server similar to UNIX pipes (version > 2.2)
* All CDRTool SQL queries equivalent were possible (with latest 2.2 server version and 1.3 client version)
* Multiple nodes with automatic replication, nothing to repair, does not conflict
* New nodes can be added or removed with a simple command, data replicated on the fly without locking