Jony Sugianto is a Research Engineer at Detikcom, an online news and article website based in Indonesia.
This slide was shared on TIA DevTalk: "How to Not Fail in Database” on 18 February 2016.
TIA DevTalk is a monthly event of TIA Dev Community-- a community for all developers and/ or engineer to create collaborative things that advanced the tech community and ecosystem.
Get updates about our dev events delivered straight to your inbox by signing up here: http://bit.ly/tia-dev ! Be the first to know when new information is available!
4. Key-values Stores
● A Key-Values Stores is a simple Hash table
● Where all the accesses to the Stores via primary keys
● A client can:
- Get the value for a key
- Put a value for a key
- Delete a key from the Stores
● Keys and Values can be complex compound objects and sometime
lists, maps or other data structures
● Key-value data access enable high performance
● Easy to distribute across cluster
6. Key-Values: Cons
● No complex query filters
● All joins must be done in code
● No foreign key constraints
● Poor for interconnected data
7. Key-Values Stores Implementation
● Memory based
- Memcached
- Redis
● Memory and Disk based
- MapDB
- Diskv
●
Database System
- Dynamo DB
- Aerospike
8. Document Databases
● Documents are the main concept
● Documents are:
-self-describing
-Hierarchical tree data structures(map. List, scalar-values)
{
name:ade,
usia:20,
alamat:depok
}
{
name:wahyu,
usia:30,
pekerjaan:dosen
}
12. Relational Database
● Most popular Database system
● The model is based on tables, rows and columns and the
manipulation of data stored within
● Relational database is a collection of these tables
14. Relational Database Pros/Cons
● Pros
- simple, well-establish, standard approach
- maps well to data with consistent structure
- has extensive join capabilities
● Cons
- hard to scale
- does not map well to semi-structured data
- knowledge of the database structure is required to create
queries
22. Graph Database Pros/Cons
● Pros
- powerful data model
- easy to query(relation as pointer to object)
- map well to semi-structured data
- can easily evolve schema
● Cons
- hard to scale
- lacks of tool and framework support
- requires new art of problem solving
25. What is Sharding?
● Sharding is NOT Master/Slave Database
● Sharding is NOT Replication
● Sharding is NOT Clustering
● Sharding is Splitting data across databases
● Splitted Data share nothing
● Important issues sharding key
28. Replication
● Creating and maintaining multiple copies of the same
databases
● Improve:
- reliability
- fault-tolerance
- accessibility
● Important issues strategy of synchronizing data between
database replicas