Skip to content

Instantly share code, notes, and snippets.

@jamesrajendran
Created May 7, 2017 04:55
Show Gist options
  • Save jamesrajendran/32a8f01a92accf3f6a2435eccc355912 to your computer and use it in GitHub Desktop.
Save jamesrajendran/32a8f01a92accf3f6a2435eccc355912 to your computer and use it in GitHub Desktop.
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