In this article, we will get deep insight of, how cisco uses MongoDB to boost its WebEx Social.
Before going into the case study ,lets understand what is NoSQL DB, MongoDB and its components.
📚What is NoSQL ?
⚡NoSQL databases (Not Only SQL) are non tabular, and store data differently than relational tables. NoSQL databases come in a variety of types based on their data model. The main types are document, key-value, wide-column, and graph. They provide flexible schemas and scale easily with large amounts of data and high user loads.
⚡People often says the term “NoSQL DB” refers to any non-relational database.Many of them says ,NoSQL databases are databases that store data in a format other than relational tables.
⚡A Common misconception is that NoSQL databases or non-relational databases don’t store relationship data well. NoSQL databases can store relationship data — they just store it differently than relational databases do.
Also ,its quite easy to store data in NoSQL databases,because related data doesn’t have to be split between tabl
⚡NoSQL data models allow related data to be nested within a single data structure.
⚡NoSQL databases emerged in the late 2000s as the cost of storage dramatically decreased. Gone were the days of needing to create a complex, difficult-to-manage data model simply for the purposes of reducing data duplication. Developers (rather than storage) were becoming the primary cost of software development, so NoSQL databases optimized for developer productivity.
📚What are the types of NoSQL Databases?
for e.g. MongoDB
⚡Key-value DB : are a simpler type of database where each item contains keys and values. A value can typically only be retrieved by referencing its key, so learning how to query for a specific key-value pair is typically simple. Key-value databases are great for use cases where you need to store large amounts of data but you don’t need to perform complex queries to retrieve it. Common use cases include storing user preferences or caching.
for e.g. Redis and DynamoDB are popular key-value databases.
⚡Wide-column stores store data in tables, rows, and dynamic columns. Wide-column stores provide a lot of flexibility over relational databases because each row is not required to have the same columns. Many consider wide-column stores to be two-dimensional key-value databases. Wide-column stores are great for when you need to store large amounts of data and you can predict what your query patterns will be. Wide-column stores are commonly used for storing Internet of Things data and user profile data.
for e.g. Cassandra and HBase are two of the most popular wide-column stores.
⚡Graph databases store data in nodes and edges. Nodes typically store information about people, places, and things while edges store information about the relationships between the nodes. Graph databases excel in use cases where you need to traverse relationships to look for patterns such as social networks, fraud detection, and recommendation engines.
for e.g. Neo4j and JanusGraph are examples of graph databases.
Now once we have understood , what is NOSQL DB and types .
Lets peep more deep in MongoDB:
MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Server Side Public License (SSPL).
⭕Indexing: Fields in a MongoDB document can be indexed with primary and secondary indices or index.
⭕Replication: MongoDB provides high availability with replica sets. A replica set consists of two or more copies of the data. Each replica-set member may act in the role of primary or secondary replica at any time. All writes and reads are done on the primary replica by default. Secondary replicas maintain a copy of the data of the primary using built-in replication. When a primary replica fails, the replica set automatically conducts an election process to determine which secondary should become the primary. Secondaries can optionally serve read operations, but that data is only eventually consistent by default.
⭕Load balancing: MongoDB scales horizontally using sharding. The user chooses a shard key, which determines how the data in a collection will be distributed. The data is split into ranges (based on the shard key) and distributed across multiple shards. (A shard is a master with one or more replicas.). Alternatively, the shard key can be hashed to map to a shard — enabling an even data distribution.
⭕File storage: MongoDB can be used as a file system, called GridFS, with load balancing and data replication features over multiple machines for storing files.
This function, called grid file system, is included with MongoDB drivers. MongoDB exposes functions for file manipulation and content to developers. GridFS can be accessed using mongo files utility or plugins for Nginx and lighttpd. GridFS divides a file into parts, or chunks, and stores each of those chunks as a separate document.
⭕Aggregation:MongoDB provides three ways to perform aggregation: the aggregation pipeline, the map-reduce function, and single-purpose aggregation methods.
Map-reduce can be used for batch processing of data and aggregation operations. But according to MongoDB’s documentation, the Aggregation Pipeline provides better performance for most aggregation operations.
The aggregation framework enables users to obtain the kind of results for which the SQL GROUP BY clause is used. Aggregation operators can be strung together to form a pipeline — analogous to Unix pipes. The aggregation framework includes the $lookup operator which can join documents from multiple collections, as well as statistical operators such as standard deviation.
and many more……….
📚Case-study : Cisco
Cisco is the worldwide leader in networking, transforming how people connect, communicate and collaborate. In November 2011, Cisco launched WebEx Social (previously known as Quad), an enterprise collaboration platform designed for today’s social, mobile, visual and virtual workforce. A “Facebook for enterprises,” WebEx Social connects people to the information and expertise they need, when they need it. Users share knowledge and ideas throughout the enterprise, and across geographic and organizational boundaries. When their existing relational database needed a NoSQL extension to power the collaborative workspace, Cisco turned to MongoDB as their NoSQL database of choice.
WebEx Social is a true Enterprise 2.0 platform, “a place where people ‘live’ at work,” according to Biren Gandhi, principal architect for Cisco’s Cloud Collaboration Applications Technology Group (CCATG). The comprehensive collaboration platform combines the four core Enterprise 2.0 pillars — business processes, content, communication and social features — that enable users to work together effortlessly. With their existing relational database, complex SQL queries against highly normalized schema were time consuming and Cisco had little room to scale horizontally. Additionally, it was difficult to manage schema upgrades and migrate data from release to release.
WebEx Social’s rapid evolution required expanded data store capabilities and the ability to build successful new social features. Cisco sought an open source, NoSQL solution that was scalable, flexible and met the product’s hardcore enterprise needs: secure, mature commercial support, able to deliver consistent back up and disaster recovery, and easy to integrate with legacy systems. After an extensive evaluation and successful proof of concept, Cisco adopted MongoDB in mid-2011.
📃How MongoDB boost their product ?
⚡Intuitive mapping from the domain model to JSON docs and complex querying capabilities enable Cisco to cross-reference users and query embedded lists, functions that were either not possible in their existing database or were costly to perform. In contrast with a relational model, which requires a three-step process of fetch-update-commit, MongoDB’s in-place atomic updates allow for “one-stop operations,” according to Gandhi.
⚡With MongoDB, Cisco speed up reads from 30 seconds in some extreme cases to tens of milliseconds per object and eliminated caching needs in certain cases. As the WebEx Social platform evolves, Cisco plans to migrate more write-heavy features to MongoDB.
⚡MongoDB meets the demands of WebEx Social’s high-volume write activity. MongoDB offers a fast, easy way to de-normalize, index and extract information from data stores and its unique compound and geospatial indexing are a big plus.
⚡Cisco uses built-in sharding and replica sets, which are easy to use and enable high availability through automatic failover of nodes and recovery of member nodes.
As part of various innovation initiatives at Cisco, many developers participate in voluntary projects where people can collaborate and share results on their ideas. Many have taken up MongoDB as part of their project development, a testament to the usability, flexibility and innovation that the database offers.
Consequently,MongoDB collaborate with Cisco to provide a user friendly platform for customers and an easy ,powerful technology for developers.
Cisco is focused on rolling out new features quickly and offering flexibility to users, and “MongoDB is a big piece of that,” said principal architect for Cisco’s Cloud Collaboration Applications Technology Group (CCATG).
🛠Integrate your use-cases with mongoDB and build powerful and reliable applications………………..