Top Banner
MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona
87

with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

May 21, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

MongoDB Storage Engine with RocksDB LSM Tree

Denis Protivenskii, Software Engineer, Percona

Page 2: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

2

Contents

- What is MongoRocks?

Page 3: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

3

Contents

- What is MongoRocks?

- RocksDB overview

Page 4: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

4

Contents

- What is MongoRocks?

- RocksDB overview

- MongoDB contracts for storage engines

Page 5: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

5

Contents

- What is MongoRocks?

- RocksDB overview

- MongoDB contracts for storage engines

- The most problematic operation

Page 6: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

What is MongoRocks?

Page 7: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

7

Page 8: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

8

Page 9: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

RocksDB overview

Page 10: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

10

RocksDB for the user

Key-value storage:

- Get(k) → v- Put(k, v)- Delete(k)

Page 11: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

11

RocksDB for the user

Key-value storage:

- Get(k) → v- Put(k, v)- Delete(k)

- Merge ...

Page 12: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

12

Level organization

Page 13: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

13

Write-ahead log

Page 14: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

14

Every next level is larger multiple times

Page 15: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

15

Keys are ordered within the level

Page 16: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

16

Compaction starts when level is too large

Page 17: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

17

Next level may not fit

Page 18: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

18

Compaction may run recursively

Page 19: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

19

Files in levels are immutable

- Compaction creates new files and old

ones get deleted when not used

Page 20: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

20

Files in levels are immutable

- Compaction creates new files and old

ones get deleted when not used

- Files are written sequentially to disk,

which speeds up I/O

Page 21: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

MongoDB + RocksDB

Page 22: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

22

Data organization in MongoDB

Page 23: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

23

Data organization in MongoDB

- “Containers” for data and indexes receive

unique string identifiers ident

- Elements themselves shall have unique

id inside a container

Page 24: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

24

Data organization in RocksDB

Page 25: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

25

How to present MongoDB’s data structure

in the “plain” storage like RocksDB?

Page 26: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

26

Data organization in MongoRocks

<ident + id> for every container’s element

coll1 ind1_1 ind1_2 coll2 … indN_M

Page 27: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

27

Data organization in MongoRocks

- ident > 20 symbols, extra cost for every

data element

Page 28: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

28

Data organization in MongoRocks

- ident > 20 symbols, extra cost for every

data element

- such ident length is caused by using it as

a filename for WiredTiger and mmapv1

Page 29: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

29

How to save on ident length properly?

Page 30: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

30

Data organization in MongoRocks

- hash from ident is bad as it may cause

collisions for short hashes

Page 31: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

31

Data organization in MongoRocks

- hash from ident is bad as it may cause

collisions for short hashes

- Auto increment counter (named prefix)

and map of ident → prefix

Page 32: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

32

Data organization in MongoRocks

<prefix + id> for every container’s element

prefix_0 prefix_1 prefix_2 prefix_3 … prefix_N

Page 33: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

33

Index format in MongoRocks

K = <prefix + value + order + id (loc)>

V = <typeof value>

Page 34: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

34

Index format in MongoRocks

K = <prefix + value + order + id (loc)>

V = <typeof value>

Comes from MongoDB

Page 35: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

35

How to search for id if it constitutes the part

of a key?

Page 36: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

36

Index format in MongoRocks

- The storage should support search

operation lower_bound | upper_bound

Page 37: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

37

Index format in MongoRocks

- The storage should support search

operation lower_bound | upper_bound

- Allows to position on the closest value

and decode it

Page 38: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

38

Index format in MongoRocks

- The storage should support search

operation lower_bound | upper_bound

- Allows to position on the closest value

and decode it

- RocksDB has iterators for this purpose

Page 39: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

The most problematic operation

Page 40: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

40

Deleting data in MongoRocks

- Deleting an element (document, index) -

is just putting operation D into LSM-tree

Page 41: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

41

Deleting data in MongoRocks

- Deleting an element (document, index) -

is just putting operation D into LSM-tree

- As a result, the tree is filled with garbage

of old data and delete ops, which slows

down the iteration

Page 42: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

42

The solution!

Page 43: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

43

Deleting data in MongoRocks

- Ask for iterator’s statistics after iteration

Page 44: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

44

Deleting data in MongoRocks

- Ask for iterator’s statistics after iteration

- If there’s too much skipped data - run

compaction for this range

Page 45: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

45

Deleting data in MongoRocks

- Ask for iterator’s statistics after iteration

- If there’s too much skipped data - run

compaction for this range

- The range is always a prefix

Page 46: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

46

This was the easier part of the problem

though...

Page 47: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

47

- Need to iterate over all data and indexes

of collection and delete every item

Deleting collections in MongoRocks

Page 48: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

48

- Need to iterate over all data and indexes

of collection and delete every item

- A lot of garbage created

Deleting collections in MongoRocks

Page 49: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

49

- Need to iterate over all data and indexes

of collection and delete every item

- A lot of garbage created

- Doesn’t make sense compared to

engines that just drop files on disk

Deleting collections in MongoRocks

Page 50: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

50

Compaction filters

Page 51: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

51

Deleting collections in MongoRocks

Page 52: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

52

- Create filter with prefixes of dropped

containers

Deleting collections in MongoRocks

Page 53: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

53

- Create filter with prefixes of dropped

containers

- Start compaction for prefix

Deleting collections in MongoRocks

Page 54: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

54

- Create filter with prefixes of dropped

containers

- Start compaction for prefix

- Compaction calls the filter for every item

and decides if it shall be deleted or not

Deleting collections in MongoRocks

Page 55: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

55

To run compaction after the crash, a

marker about dropped prefix is persisted,

and it’s kept until the compaction is finished

Deleting collections in MongoRocks

Page 56: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

56

It can be even better

Page 57: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

57

Deleting collections in MongoRocks

Fully contains range to drop

Page 58: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

58

- DeleteFilesInRange allows to delete files

that contain keys fully in requested range

Deleting collections in MongoRocks

Page 59: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

59

- DeleteFilesInRange allows to delete files

that contain keys fully in requested range

- Requires care as it deletes files

immediately even if some keys are still in

use (by snapshots)

Deleting collections in MongoRocks

Page 60: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

60

What’s missing

Page 61: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

61

- MongoDB doesn’t send notifications

about logical drop of a collection or a db

Deleting collections in MongoRocks

Page 62: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

62

- MongoDB doesn’t send notifications

about logical drop of a collection or a db

- Because WiredTiger or mmapv1 don’t

need this as they delete files on disk

Deleting collections in MongoRocks

Page 63: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

63

- MongoDB doesn’t send notifications

about logical drop of a collection or a db

- Because WiredTiger or mmapv1 don’t

need this as they delete files on disk

- Forces to compact every prefix by itself

Deleting collections in MongoRocks

Page 64: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

64

oplog

Page 65: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

65

MongoDB has specific

collection type built as

circular buffer

Capped collections in MongoRocks

Page 66: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

66

MongoDB has specific

collection type built as

circular buffer

Developed solely for

oplog - replication log

Capped collections in MongoRocks

Page 67: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

67

- oplog is pretty large (5% of disk size, not

more than 50Gb by default)

Capped collections in MongoRocks

Page 68: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

68

- oplog is pretty large (5% of disk size, not

more than 50Gb by default)

- Because of lots of overwrites, oplog is

polluted with garbage, which affects the

performance of the whole storage

Capped collections in MongoRocks

Page 69: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

69

- Have separate code to monitor oplog size

and number of ‘tombstones’ in it

Capped collections in MongoRocks

Page 70: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

70

- Have separate code to monitor oplog size

and number of ‘tombstones’ in it

- Higher priority for oplog compaction (in

the queue of compaction operations)

Capped collections in MongoRocks

Page 71: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

71

Radical solution

Page 72: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

72

- Classic storage engine has one B-tree for

one “container” (data or index)

Column families in MongoRocks

Page 73: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

73

- Classic storage engine has one B-tree for

one “container” (data or index)

- MongoRocks has one LSM-tree for all

“containers”

Column families in MongoRocks

Page 74: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

74

More LSM-trees!

Page 75: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

75

Column families in MongoRocks

Page 76: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

76

- RocksDB supports set of LSM-trees

(column families) with shared WAL to

provide transactional logic

Column families in MongoRocks

Page 77: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

77

- RocksDB supports set of LSM-trees

(column families) with shared WAL to

provide transactional logic

- First developed for MySQL (MyRocks

project)

Column families in MongoRocks

Page 78: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

78

- MongoRocks should have separate

LSM-tree for oplog, maybe even separate

LSM-tree for every prefix

Column families in MongoRocks

Page 79: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

Conclusion

Page 80: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

80

- MongoDB contracts still have some

typical details not applicable to

MongoRocks

Page 81: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

81

- MongoDB contracts still have some

typical details not applicable to

MongoRocks

- It’s good to order keys in a storage

somehow

Page 82: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

82

- The problem of deleting keys may be

solved using different optimizations

Page 83: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

83

- The problem of deleting keys may be

solved using different optimizations

- The idea of multiple LSM-trees is a step

forward

Page 84: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

84

Thank You Sponsors!

Page 85: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

85

SAVE THE DATE!

CALL FOR PAPERS OPENING SOON!www.perconalive.com

April 23-25, 2018Santa Clara Convention Center

Page 86: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

Questions?

Page 87: with RocksDB LSM Tree MongoDB Storage Engine · MongoDB Storage Engine with RocksDB LSM Tree Denis Protivenskii, Software Engineer, Percona. 2 Contents ... -MongoDB contracts for

Thank you!