Page MenuHomePhabricator

Mongodb
Updated 2,829 Days AgoPublic

Version 1 of 3: You are viewing an older version of this document, as it appeared on Jul 21 2016, 12:54 PM.

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
Last Author
tijmen
Last Edited
Jul 21 2016, 12:54 PM

Event Timeline

tijmen changed the title from Mongodb to MongoDB.
tijmen edited the content of this document. (Show Details)
tijmen edited the content of this document. (Show Details)
tijmen edited the content of this document. (Show Details)
tijmen added a subscriber: CDRTool.
tijmen changed the edit policy from "Administrators" to "CDRTool (Project)".Jul 21 2016, 1:19 PM
tijmen removed a subscriber: CDRTool.