Created
May 7, 2017 04:55
-
-
Save jamesrajendran/32a8f01a92accf3f6a2435eccc355912 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ACID - Atomicity, Consistency, Isoloation, Durability | |
Atomicity: all or none(mutiple dmls all as one) | |
Consistency: a transaction either creates a new and valid state of data, or in failure, its previous state.(commit/rollback) | |
Isolation: transaction in process(uncommitted inserts) should not be visible to other transaction. | |
Durability: in the event of failure or restart committed data should be recoverable. | |
CAP theorem: Consistency, Availability, Partition Tolerance | |
consistency - Every read receives the most recent write or error. | |
availability - every request receives a non-error response - without guarantee that it contains the most recent data | |
partition tolerance - the system continues to operate despite an arbitrary number of messages being dropped /delayed between the nodes. | |
in distributed system, network failures inevitable, | |
So network partitioning has to be tolerated. Hence one has to choose between consistency or availability, not both are possible | |
eventual consistency | |
BASE: Basically Available, Soft state, Eventually Consistent. | |
Document | |
Keys(natural keys where possible, artificial like batch id) | |
convention(personal choice, but be consisten) | |
MUCK avoid(Massively Unified code key) --check/FK constraints an issue | |
test early, test often | |
Distributed system challenges-solutions: | |
heterogeniety - middleware | |
scalability | |
concurrency - same resource used by mutiple users | |
transparancy - cluster complexity hidden | |
fault tolerance | |
security - | |
openness - property of sub system to be open for interaction with other systems - once published, should not be reversed |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment