Atikh's DBA blog
  • Home
  • Oracle
  • MySQL
  • MongoDB
  • PostgreSQL
  • Snowflake
  • About Me
  • Contact Us

MongoDB Storage Engines

 Atikh Shaikh     Backup and Recovery, MongoDB     No comments   

With version 3.0, MongoDB introduced the Pluggable Storage Engine API. WiredTiger is one of the pluggable storage engines bundled with MongoDB

Pluggable storage Engine API

MongoDB offers an API (application program interface) that allows other applications to interact with MongoDB without using the MongoDB shell (mongod)
A storage engine is an interface between the database and the hardware, A storage engine Doesn’t affect the way how you perform queries on database, but it interferes with how data is written to, deleted from, and read from disk and which data structure will be used for storing data.

This API makes feel comfortable for third parties to develop their own storage engines for MongoDB. Before this API the only storage engine was MMAPv1. MongoDB still uses this MMAPv1 and is the default storage engine in 3.0 and earlier.
In the 3.2 and above versions, WiredTiger is the default storage Engine. we can use the below command to check the storage engine being used.

>db.serverStatus().storageEngine

MMAPv1

This storage engine is based on memory mapping. The drawback with MMAPv1 was that if you have a lot of data to store, it quickly consumes an enormous amount of disk space; MMAPv1 is supported on 64-bit Intel architectures (x86_64) only. MongoDB returns an error when starting a mongod using MMAPv1 on an unsupported architecture. 
This is depreciated in 4.0 and will be removed from future releases

In-Memory Storage Engine

Starting with MongoDB Enterprise 3.2.6, the in-memory storage engine is part of general availability (GA) in the 64-bit builds. Other than some metadata and diagnostic data, the in-memory storage engine does not maintain any on-disk data, including configuration data, indexes, user credentials, etc.
The in-memory storage engine does not write data to the file system but the data directory mentioned during with –dbpath maintains metadata. Command to select this particular storage engine

mongod --storageEngine inMemory --dbpath

This storage or data will not be available once the instance is restarted.

WiredTiger Storage Engine (Default)

WiredTiger is a high-performance, scalable, open-source data engine that focuses on multicore scalability and optimal RAM use.
WiredTiger requires a 64-bit OS system. starting from version 3.2 WiredTiger is the default storage engine. 
This uses document-level concurrency control for write operations, this allows multiple users to perform operations at the same time.
When writing to disk; WiredTiger writes all data in the snapshot to disk in a consistent way across all datafiles.
This stores its data in a B-tree structure, providing highly efficient read and write performance.
For collections, WiredTiger uses Snappy compression by default, it can also provide gzip compression.
WiredTiger is a good default choice if you're not sure what to use or if you don't have a strong reason to use an alternative Of course, your choice of storage engine depends on your application use case, and there are situations in which WiredTiger is not the optimal pick. 
For example, users with many large documents in separate collections, or users with a mostly read-only workload, may want to choose MMAPv1 instead. 
  • Share This:  
  •  Facebook
  •  Twitter
  •  Instagram
  •  Pin
  •  linkedin
  •  reddit
Email ThisBlogThis!Share to XShare to Facebook
Newer Post Older Post Home

0 comments:

Post a Comment

Author

Atikh Shaikh
View my complete profile

Categories

  • MongoDB (18)
  • Oracle 12c (30)
  • Oracle12cR2 New Feature (3)
  • PostgreSQL (20)
  • RMAN (10)
  • Snowflake (8)
  • mysql (23)
  • oracle (74)

Blog Archive

  • ▼  2018 (38)
    • ►  November (25)
    • ▼  December (13)
      • Starting and Stopping MongoDB
      • Oracle Database Architecture Physical and Logical
      • MongoDB Database Backup and Restore
      • Startup and Shutdown Oracle Database
      • Oracle 12c New features – Multitenant Database
      • MongoDB Storage Engines
      • Create Pluggable Database (PDB) in Oracle 12c
      • Warning: PDB altered with errors- opening PDB in O...
      • Oracle 12c: Starting and Stopping PDB
      • Know your Hostname in MySQL
      • Everything you need to know about Oracle Data Pump
      • List Databases, Tables, schemas and other basic c...
      • User Managed Backups in Oracle
  • ►  2019 (33)
    • ►  January (15)
    • ►  February (6)
    • ►  March (2)
    • ►  April (5)
    • ►  May (5)
  • ►  2020 (5)
    • ►  April (1)
    • ►  May (2)
    • ►  July (2)
  • ►  2021 (8)
    • ►  June (3)
    • ►  July (3)
    • ►  August (1)
    • ►  December (1)
  • ►  2022 (33)
    • ►  May (3)
    • ►  June (10)
    • ►  July (3)
    • ►  August (4)
    • ►  September (8)
    • ►  October (3)
    • ►  November (2)
  • ►  2023 (14)
    • ►  February (1)
    • ►  April (5)
    • ►  May (2)
    • ►  June (1)
    • ►  September (1)
    • ►  October (1)
    • ►  December (3)
  • ►  2024 (5)
    • ►  January (2)
    • ►  March (3)
  • ►  2025 (6)
    • ►  March (1)
    • ►  April (3)
    • ►  May (2)

Popular Posts

  • ORA-29283: invalid file operation: unexpected "LFI" error (1509)[29437]
    I was trying to export the schema in my windows PC, it got stuck with below error    C:\Users\shaik\Videos\technodba exp>expdp userid...
  • Oracle 23ai : Use of NOVALIDATE Constraints in IMPDP
    While performing impdp operations in the Oracle database, Oracle performs validation checks for every constraint on the imported table, that...
  • PostgreSQL : How to get data directory location for PostgreSQL instance
    Sometimes, you start working on a PostgreSQL instance but forget about the data directory, here we will discuss different methods to know th...
  • ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
    In previous articles, we have learned about user creation and grants  in MySQL in detail, but there are a few privileges called global priv...
  • Oracle Dataguard Broker Configuration (DGMGRL)
    Data Guard Broker is a command-line interface that makes managing primary and standby databases easy. DBA can use a single command to switch...

Labels

oracle Oracle 12c mysql PostgreSQL MongoDB oracle 19c Oracle23c oracle19c Orale PDB-CDB oracle12c python AWS Oracle ASM Virtualbox pluggable database storage engine

Pages

  • Disclaimer
  • Privacy Policy

Follow TechnoDBA

Copyright © Atikh's DBA blog | Powered by Blogger