Database


Replication
Statement-based replication - side effect like NOW()
Write-ahead log (WAL) shipping
- Undo log
- Redo log
Logical log replication
- MySQL’s binlog

Read your own writes
- read-after-write consistency
- When reading something that the user may have modified, read it from the leader, otherwise read it from a follower.

Monotonic reads

- time will not go backwards

- each user always reads from the same replica

Multi-datacenter operation
Multi-leader replication
- each datacenter’s leader replicates its changes to the leaders in other datacenters.
- dangerous

Handling write conflicts
- last-write-wins
- Record the conflict in an explicit data structure that preserves all information
- Conflict-free replicated data types (CRDTs)

Avoid Infinite replication loops
- each write is tagged with the identifiers of all the replicas it has passed through

Read repair
Anti-entropy process

sloppy quorums and hinted handoff

Traditional SQL
Alter table (add field, rename etc) is implemented by locking the original table,  creating a temp table, copying data, making change, then renaming the table.

Internals
How to implement auto increment _id in MongoDB
Use Counters Collection
Optimistic Loop

MySQL
- Lock

How to Use PreparedStatement and Why
PreparedStatement ps = conn.prepareStatement("select a,b from t where c = ?");
ps.setInt(1, I);
ResultSet rs = ps.executeQuery();


Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)