Upload
proidea
View
62
Download
1
Tags:
Embed Size (px)
Citation preview
NoSQLWHY WHEN AND HOW
Mariusz Gil
Data
Data sizeTransactions
Response time
NoSQL!
Reasons
Data model
Linear scalability
Performance
id username
1 atermida
2 saturn
3 zeus
… …
user_id attribute_id value
1 342 1
2 342 2
3 343 3
… … …
user_id attribute_id value
1 348 abc
2 348 abd
3 900 eee
… … …
id username attr_1 attr_2 attr_3
1 atermida 1
2 saturn 2
3 zeus [1, 3, 4]
… … … … …
Before migration
Master
Reads / Writes
Denormalize
Replica
Reads
Replica
Reads
Master
Writes*
Master
Reads / Writes
Master F1
Reads / Writes
Master F2
Reads / Writes
Master
Reads / Writes
Table
Master
Reads / Writes
Partitions Partitions
CREATE TABLE `partitioned` ( `id` bigint(20) NOT NULL, …)ENGINE=InnoDBDEFAULT CHARSET=utf8COLLATE=utf8_unicode_ciPARTITION BY RANGE (TO_DAYS(created))SUBPARTITION BY HASH (field)SUBPARTITIONS 8 ( PARTITION p201502 VALUES LESS THAN (TO_DAYS('2015-03-01')), PARTITION p201503 VALUES LESS THAN (TO_DAYS('2015-04-01')), PARTITION p201504 VALUES LESS THAN (TO_DAYS('2015-05-01')), PARTITION p201505 VALUES LESS THAN (TO_DAYS('2015-06-01')), PARTITION p201506 VALUES LESS THAN (TO_DAYS('2015-07-01')), PARTITION p201507 VALUES LESS THAN (TO_DAYS('2015-08-01')), PARTITION pX VALUES LESS THAN MAXVALUE);
Storage engines
Master
Reads / Writes
Archive partitions InnoDB Table
(auto) Sharding
Key value access
Supporttens of thousands skilled DBAs
Migration
ACID · CAP · BASE
ReplicateKeep Calm and
CRASH itand test your disaster recovery plan
@mariuszgil
Thanks!
it depends :)