Percona Server for MongoDB

Percona Server for MongoDB


1. Percona Server for MongoDB Features overview Denis Protyvenskyi C++ Engineer HighLoad++ Russia November 07, 2016 1 © 2016 Percona

2.How it’s different? Fully compatible with MongoDB Community Edition (* Linux version) Two extra storage engines: MongoRocks and Percona Memory Engine Audit feature External authentication over LDAP and AD HotBackup for WiredTiger and MongoRocks Rate limiter extension 2 © 2016 Percona

3.MongoRocks storage engine mongod --storageEngine=rocksdb - Based on RocksDB library ( - Write-optimized storage - Good for point lookups (read one document) - A bit worse for range lookups 3 © 2016 Percona

4.Percona Memory Engine mongod --storageEngine=inMemory - Fully compatible with InMemory engine available in MongoDB Enterprise - Based on WiredTiger storage engine - Memory-only engine with no durability - Significant write speedup - Less jitter - Can be used as an application cache, for session management, to store transient runtime state etc. 4 © 2016 Percona

5.Audit mongod --auditDestination=file --auditFormat=JSON - Fully compatible with audit plugin available in MongoDB Enterprise - Track and log user activity on the server: - Auth-related ops (user- and role-mgmt, login, logout, shutdown) - Repliction/Sharding re-config ops - Failures on regular ops (reads, writes, schema updates, cursor ops) - Multiple destinations: file, console, syslog - Multiple output formats: JSON, BSON 5 © 2016 Percona

6.External authentication 1. SASL library configuration file to access saslauthd proxy 2. saslauthd configuration to access LDAP server Ex: db.getSiblingDB(‘$external’).auth( { mechanism: ’PLAIN’, user: ’user’, pwd: ’secret’, digestPassword: false } ) - Fully compatible with external auth available in MongoDB Enterprise - Transparent for the client (needs to use PLAIN method and $external db) - Can authenticate over LDAP and AD - Can authorize with roles previously stored in $external db 6 © 2016 Percona

7.HotBackup Ex: adminDB.runCommand( { createBackup: 1, backupDir: ‘/my/backup/data/path’ } ) - Supports WiredTiger and MongoRocks - Backup without stopping activities - On the course: - Incremental backups - Throttling - Network streaming 7 © 2016 Percona

8.Rate limiter extension Ex: db.runCommand( { profile: 2, slowms: 150, ratelimit: 3 } ) - Allows limiting the number of fast queries being stored to system.profile collection - Can be useful to reconstruct and analyze query patterns without introducing significant performance hit during normal operation 8 © 2016 Percona

9.Percona Live: Call for Papers Deadline - November 13 Submission Guidelines: Submission Form: Percona Live Santa Clara to take place April 24-27 in Santa Clara, CA 9 © 2016 Percona

10. Questions? DATABASE PERFORMANCE Database Performance Matters MATTERS We are hiring: