RackHD Third Party Tools Update - MongoDB

RackHD MongoDB version status

ConfigurationMongoDB Version
RackHD with Ubuntu 14.042.4.9
RackHD with Ubuntu 16.042.6.10
Mongo Latest (Till Oct, 2017)3.4.9

RackHD is developed with Ubuntu 14.04 or 16.04 default environment, MongoDB version is relatively old since MongoDB has been evolving from 2.4 to 2.6, 3.0, 3.2 and latest 3.4. Some user may want to use latest MongoDB version, thus we need to verify RackHD with MongoDB 3.4.9 on both Ubuntu 14.04 and 16.04.

Major new features for new MongoDB versions

MongoDB 2.6

key features include :

  • Aggregation Enhancements
  • Text Search Integration
  • Insert and Update Improvements
  • Query Engine Improvements
    • MongoDB can now use index intersection to fulfill queries supported by more than one index. In previous versions, MongoDB could use only a single index to fulfill most queries.
  • Security Improvements
    • MongoDB 2.6 enhances support for secure deployments through improved SSL support, x.509-based authentication, an improved authorization system with more granular controls, as well as centralized credential storage, and improved user management tools.
    • Global user management, which stores all user and user-defined role data in the admin database and provides a new set of commands for managing users and roles.
    • x.509 certificate authentication for client authentication as well as for internal authentication of sharded cluster and/or replica set members. x.509 authentication is only available for deployments using SSL.
    • MongoDB disables the http interface by default, limiting network exposure. To enable the interface, see enabled.
  • Configuration Options YAML File Format
    • MongoDB 2.6 supports a YAML-based configuration file format in addition to the previous configuration file format.
  • usePowerOf2Sizes is now the default allocation strategy for all new collections.
  • Changes Affecting Compatibility
    • The 2.6 mongo shell provides a db.upgradeCheckAllDBs() method to perform a check for upgrade preparedness for some of these changes.
  • /etc/mongorc.js
    • Global mongorc.js file which the mongo shell evaluates upon start-up.
  • Reference link:  https://docs.mongodb.com/manual/release-notes/2.6/

MongoDB 3.0

key features include :

  • MongoDB default storage engine is MMAP, MMAPv1 is used in MongoDB 3.0.
    • The MMAPv1 storage engine adds support for collection-level locking.
    • The default allocation strategy for collections in instances that use MMAPv1 is power of 2 allocation
  • WiredTiger Configuration
    • The 3.0 WiredTiger storage engine provides document-level locking and compression.
    • WiredTiger storage engine is available in the 64-bit builds.
    • With WiredTiger, MongoDB supports compression for all collections and indexes. Compression minimizes storage use at the expense of additional CPU.
  • MongoDB Tools Enhancement
    • mongostat and mongotop can now return output in JSON format with the --json option.
  • Reference link:  https://docs.mongodb.com/manual/release-notes/3.0/

MongoDB 3.2

key features include:

  • WiredTiger as Default
    • WiredTiger Default Cache Size: 60% of RAM minus 1 GB, or 1GB
  • Text Search Enhancements
  • New Storage Engines - inMemory Storage Engine
    • Available in MongoDB Enterprise only. Other than some metadata, the in-memory storage engine does not maintain any on-disk data. By avoiding disk I/O, the in-memory storage engine allows for more predictable latency of database operations.
  • Starting in 3.2, MongoDB deprecates its HTTP interface.
  • Starting in MongoDB 3.2, 32-bit binaries are deprecated and will be unavailable in future releases.
  • Reference link:  https://docs.mongodb.com/manual/release-notes/3.2/

MongoDB 3.4

key features include:

  • Lots of aggregation enhancement
    • New Aggregation Stage for Recursive Search, Faceted Search, to Facilitate Reshaping Documents, Count
    • New Aggregation Array/String/Date Operators
    • New Aggregation Control Flow Expression
    • New Monitoring Aggregation Sources
    • New Type Operator
  • Collation
    • Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. You can specify collation for a collection or a view, an index, or specific operations that support collation.
  • Views
    • Specify what is returned by command such as find()
  • MongoDB Tools
    • MongoDB introduces mongoreplay, a workload capture and analysis tool that replaces mongosniff. You can use mongoreplay to inspect and record commands sent to a MongoDB instance, and then replay the commands back onto another host at a later time.
  • WiredTiger
    • WiredTiger Default Cache Size: 50% of RAM minus 1 GB, or 256MB
  • General Enhancements
    • Added systemd support in distributions.
    • mongo shell adds support for marshalling fields of type javascript and javascriptWithScope to JavaScript functions. See --disableJavaScriptProtection.
  • Reference link:  https://docs.mongodb.com/manual/release-notes/3.4/

Installation and service operation for MongoDB under Ubuntu 14.04

Version

Installation

Operation

2.4

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

sudo apt-get update

sudo apt-get install mongodb-10gen=2.x.x

sudo service mongodb start/stop/restart

2.6

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list

sudo apt-get update

sudo apt-get install -y mongodb-org=2.6.x

sudo service mongod start/stop/restart

3.0

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

sudo apt-get update

sudo apt-get install -y mongodb-org=3.0.x

sudo service mongod start/stop/restart

3.2

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

sudo apt-get update

sudo apt-get install -y mongodb-org=3.2.x

sudo service mongod start/stop/restart

3.4

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

sudo apt-get update

sudo apt-get install -y mongodb-org=3.4.x

sudo service mongod start/stop/restart

MongoDB platform support matrix

MongoDB 3.4.9 Tests With RackHD

 Configure

RackHD release

Test methodology

Issues

Results

Ubuntu 14.04

+

MongoDB 3.4.9

http://rackhdci.lss.emc.com/job/on-http/545

  • FIT test covered in nightly build and sprint release since 3.4.1, thus there is no specified test for 3.4.9 with FIT test
  • Unit test stressed with vm_slave (vm_slave is default 14.04 and Mongo is updated to 3.4.9 on specified vms manually) for more than 120 times.

None

PASS

Ubuntu 16.04

+

MongoDB 3.4.9

https://dl.bintray.com/rackhd/binary/2.23.0

  1. Installation Mongo Timeout, UT failed. CICD has time limitation (30 minutes) for a test. Sometimes Mongo will cost more than 30 minutes for installation.
  2. Node discovery timeout, FIT failed http://10.62.59.175:8080/blue/organizations/jenkins/upgrade_tools%2Ftest2/detail/test2/40/pipeline/500. A node is not powered up (no video), which is supposed not related to FIT test itself.
  3. Docker can't up, FIT never started.

PASS