Tuesday, September 7, 2021

MongoDB Enterprise vs Community vs Percona

 

Introduction

The document tells about the difference between the MongoDB Enterprise, Community, and Percona MongoDB database technology. The document focus on the features.

MongoDB Enterprise and Percona MongoDB, both are based on the MongoDB community edition and with their extensions. The key differences between MongoDB Enterprise and Percona MongoDB against Community open source are as follows. 

  • Technical Support
  • Operations
  • High Availability
  • Backup, Restore and Disaster Recovery tools
  • Reliability 
  • Security

Features

MongoDB Enterprise

OPs Manager - is designed and powerful to assist database administrators, system architects, and performance analysts when administering, monitoring, and tuning MongoDB Server and databases. It effectively assists DBAs on MongoDB

UI based application and can reduce the user errors 

Installation and database upgrade

Server configuration and tuning

Scalability

Database replica sets and high availability/DR

Collection sharding

Server monitoring

Database performance

Query tuning

Backup agent and jobs, etc. 

Percona MongoDB

Percona Monitoring and Management is a best-of-breed open source database monitoring solution. It helps DBAs to reduce some management complexity, help to

Helps to optimize performance

Helps improve the security of business-critical database environments

Community Edition

There are tools available to support the MongoDb community eition, however none of the tool helps to administarte the cluster rather it can monitor the environment. Here are the few tools which mongoDB support to monitor the system

Ref: https://docs.mongodb.com/database-tools/

Technical Support

MongoDB Enterprise subscription provides all kind of MongoDB Technical support, from application coding issues to cluster performance tuning. 

Percona Management and Monitoring for MongoDB (PMM for MongoDB or PSMDB) subscription provides support for Server managements and monitoring, and MongoDB technical support. 

Community edition provides the flexibility and extensibility to the MongoDB feature available in community, and the full access of the MongoDB program and code. 

Operations

MongoDB Enterprise include OPs Manager provide the facilities and GUI tools for all kind of MongoDB administration tasks, such as installation, upgrade, configuration, sharding, tuning, indexing, server node failover and promotion, backup and point-in-timer restore, etc. 

Percona Management and Monitoring for MongoDB (PMM for MongoDB or PSMDB) provides monitoring facilities and some management tools have GUI interface, and for complex functions have to use console scripts. 

Community edition provides console commands for all administration, configuration, monitoring and backup tasks.  

High Availability

All three MongoDB provisions, MongoDB Enterprise and Percona Management and Monitoring for MongoDB and Community edition provide the same level high availability at same configurations, the differences are their management effort, response speed, and operational efficiency. 

Backup, Restore and Disaster Recovery 

MongoDB Enterprise include OPs Manager provide the management for High Availability and data replication, and provides a complete HA and DR solution including backup, replication and disaster recovery. 

RPO - 

RTO -

Reliability

MongoDB Enterprise include Ops Manager provide the MongoDB upgrade and patches with quality tests and also provide warnings for the bugs they found in the MongoDB Community releases. It maintains the enterprise class product. 

Percona Management and Monitoring for MongoDB (PMM for MongoDB or PSMDB) also provide their tested and modified MongoDB upgrade and patches in MongoDB Community releases. 

Security

MongoDB Enterprise include OPs Manager provide all the current encryption, authentication and authorisation capabilities. 

Percona Management and Monitoring for MongoDB (PMM for MongoDB or PSMDB) also provide the key authentication and authorisation capabilities, which meet current VCS MongoDB security requirements. 

PCI and audit compliance

Both MongoDB Enterprise include OPs Manager and Percona Management and Monitoring for MongoDB (PMM for MongoDB or PSMDB) can meet the current PCI-DSS standards and Audit requirements.  

Monitoring

Ops Manger has got rich performance visibility through dozens of optimized charts that highlight the metrics that matter. Easily tailor clients' own monitoring dashboards, integrate with existing APM tools, and send customized alerts to a wide range of endpoints to stay ahead of potential issues.

Percona Management and Monitoring for MongoDB provides the competitive monitoring capabilities to Ops Manager. 

Community edition provides the users total freedom on the implementation of monitoring metrics and schedules, and displays. 

Feature Comparison 

Feature CategoryFeaturesCommunityMongoDB EnterprisePercona Server for MongoDB
EnginesStorageWiredTigerWiredTiger (default)WiredTiger (default)

In-MemoryNoIn-Memory (Enterprise only)Percona Memory Engine





SecurityEncryptionNoKey server = KMIPKey server = Hashicorp Vault

LDAP AuthenticationNoYesSimple LDAP Auth, (legacy) External SASL Authentication

LDAP AuthorizationNoYesYes

Kerberos AuthenticationNoYesYes

Audit Logging NoYesYes

Log RedactionNoYesYes

X509 AuthenticationYesYesYes





Backup and RestoreBackup mongodumpYes (Snapshot, Oplog)Yes (replicaset) - Hot-backup

Continuously BackupNoYes (OpLog)Yes (OpLog)

Point in Time RecoveryNoYes (Snapshot and OpLog of replicaset) Yes (Snapshot and OpLog of replicaset) 





Performance and TuningProfilingNoYes (0, 1, 2)Yes (rateLimit)

Text Search Standard MongoDB text searchStandard MongoDB text search by localeNGRAM and Standard MongoDB text search





InstallationPackagesSource or Binary packagesmongodb-enterprise packagePercona Distribution for MongoDB (psmdb and pbmdb package)





Management ToolsGUI ToolNoOpsManagerPercona Tookit - MongoDB Query Digest, Server Summary; 

ClusterYes (Console Commands)YesYes (Console Commands)

ReplicaSetYes (Console Commands)YesYes (Console Commands)

ShardingYes (Console Commands)YesYes (Console Commands)

MonitoringNoYes (OpsManager)PMM

SNMP MonitoringNoNoYes





Third Party ToolsCompassYes - CommunityYesYes - Community

Studio 3TYesYesYes





Coste.g. for 50 ServersFreeLicense: > $500KSupport: > $225K for 1 Year (7.5K per server in year 2019)


Features in Common

Feature CategoryFeaturesCommunityMongoDB EnterprisePercona Server for MongoDB

Sharding ZonesYesYesYes

Faster Initial SyncYesYesYes

Auto-BalancingYesYesYes

Tuneable ConsistencyYesYesYes

ViewsYesYesYes

mongoreplay ToolYesYesYes

CollationYesYesYes

Faceted SearchYesYesYes

Decimal TypeYesYesYes

Balancer on Config PrimaryYesYesYes

Parallel BalancingYesYesYes

Writes Consistent by DefaultYesYesYes

Linear Read ConcernYesYesYes

Graph DB FunctionsYesYesYes

Faceted SearchYesYesYes

Bucketed AggregationYesYesYes

Sort by Bucket CountYesYesYes

Counts in AggregationYesYesYes

Improved Aggregation ArraysYesYesYes

Improved Aggregation StringsYesYesYes

Add Aggregation Flow controlsYesYesYes

Improved Aggregation DatesYesYesYes

CollStats in AggregationYesYesYes

Add Aggregation Type operatorYesYesYes

Improved profiler and CurrentOpYesYesYes

Aggregation Operators for Type ConversionYesYesYes

Aggregation String OperatorsYesYesYes

Enhancements to Change StreamsYesYesYes


Monday, September 6, 2021

MongoDB Hardware Upgrade

Following are the steps will help us at the time of  hardware enhancement of the MongoDB Nodes.  


Replication Cluster:

Step1 :Login to any server and check for ps -aef | grep mongo , login to node , check for rs.status() and then check for rs.printslaveReplicationInfo() , confirm there should not be any lag between the nodes.

Step2 :login to the secondary server and check for ps -aef | grep mongo , login to secondary  node  and run the below command

   use admin , db.shutdownServer() and handover the server to IT team for uplift

Step3: After reboot of server check for the mongo processes (ps -ef|grep mongo) and login to node and check for replication health status [rs.status() ,rs.printslaveReplicationInfo() etc. ]

Step4 :Repeat step 1 to 3 if any other secondary nodes are present in cluster.

step5: Login to primary server and check for ps -aef | grep mongo , login to node , check for rs.status() and then check for rs.printslaveReplicationInfo() , confirm there should not be any lag between the nodes.

Step6 :Run the below query from the admin db 

 use admin , rs.stepDown()  wait until the preference changes to secondary [confirm Primary node has been elected successfully in the node by using command rs.status()]

           db.shutdownServer() and handover the server to IT team for uplift

Step7 :After reboot of server check for the mongo processes (ps -ef|grep mongo) and login to node and check for replication health status [rs.status() ,rs.printslaveReplicationInfo() etc. ]

Step 8 :If any Arbiter node is present , hardware uplift is not mandatory for this as this node doesn't contain any data.

Sharded Cluster :

Data node : shard_0 , shard_1 , shard_2 etc.

Config server : node_0 , node_1, node_2

Query Router : Router_1 , Router_2 , Router_3 etc.

Data node : Follow the same steps as for replication steps for each server in the shard node.

Config server : Follow the same steps as for replication steps for each server in the config server.

Query Router :

Step 1 :Login to router server and check for ps - aef | grep mongo , and stop the mongo service as [service mongod stop

Note : perform the operation router by router 

step:2 : Handover the server to IT team for hardware uplift , after reboot check for the mongo services [ps - aef| grep mongo]