A distributed model of a NoSQL database single server
When a server is fully competent to work, there is no need to consider the distribution, so the deployment is simple, maintenance is much more convenient;
Shard Features
The various parts of the data are stored in different servers in the cluster;
For example, according to the letter: the key values starting with A-G are stored on the first server, with the h-n beginning of the storage to the second ...
Issues to consider
How to store data so that users can basically just get data from a single server
If it is often necessary to interact with multiple nodes to fetch the required data, the fragmentation policy may not be appropriate, or the Shard in the scenario is not an ideal scenario;
Distribution of data nodes: The relationship between geographic location and access users
Data nodes are distributed around the world, so that users in Beijing can access the required data only by visiting Beijing's nodes.
Maintain load Balancing
Advantages
Improves read and write performance at the same time
Since sharding is the distribution of data to multiple node stores, the pressure is equally dispersed at the time of writing;
Scale-out write capability
Disadvantages
Reduce Database error Resilience
After fragmentation, the failure of nodes in the cluster will result in some data loss;
Solution: Each shard data is not only stored on a single node, redundant storage, increased data security (by the later described in conjunction with master-slave replication, is a common means)
Master-Slave replication features
The master node holds authoritative data and is responsible for the data update operation;
The master node copies the updated data to the slave node;
Advantages
Helps improve data read performance
Only query from node, increase data read performance from node.
Enhanced failure recovery of read operations
The primary node is corrupt and the read request can still be processed;
Update requests can be processed after upgrading from nodes to primary nodes;
Single storage Solution for "one-off" instant backup
Even if distributed deployment is not required, master-slave replication can be used as a single-server backup deployment scenario;
Disadvantages
Inconsistencies in data (not updated in time)
After the master node is updated, the data synchronized to each slave node is not guaranteed to be timely and may result in inconsistent data on each node (with eventual consistency)
Not very helpful for improving write performance
All update operations are handled through the main node, and the use of master-slave replication model has little advantage for frequently updated business.
The primary node is the bottleneck and weakness of the system
Peer replication Features
All nodes have the same status and can receive queries and write requests;
Each node copies its own updated data to the other nodes;
Advantages
- Gracefully handle faulty nodes without worrying about loss of data requests
- Increase the node and easily improve query and write performance
Disadvantages
- Data inconsistency
There is a possibility of conflict between writing and reading;
Combined use
One-drag-and-drop scheme in sharding and master-slave replication is used together;
The function of sharding is the distributed storage of data, and the function of master-slave replication is to provide backup for each shard node and increase data security.
Note: The deployment of the Sina Redis cluster uses this scheme, and the use of Sina Redis is described in the blog before the big cc:
The application of Redis in Sina Weibo
Attached Mind Map
Reference
The essence of NoSQL
Posted by: Big CC | 30jun,2014
Blog: blog.me115.com [Subscribe]
Weibo: Sina Weibo