Your SlideShare is downloading. ×
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
No sql - { If and Else }
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

No sql - { If and Else }


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Transaction avalable only for one row. No batching transactions avaliable.Needs middleware to handle transactions for multiple rows
  • Transcript

    • 1. NoSql
      Future begins here
      Author: Marjan Nikolovski
      Date: 2011-02-03
    • 2. Content
      NoSql as movement
      Pros and Cons
      Mongo DB showcase
    • 3. NoSql as movement
      “NoSQL is a term used to designate databases that differ from classic relational databases in some way”
      No “joins”
    • 4. NoSql as movement
      Schemaless – means everything can be stored without order, type, structure
      • No “joins” – means normalization is not used to relate and retrieve the data
    • NoSql as movement
      Invented to cover what RDBMS could not
      Fast write/read under heavy usage of a system
      Highly distribution of data
      Better architecture of distributed systems
      Fun 
    • 5. Cap Theorem
      CAP Theorem !!!
      “It is impossible for a distributed computer system to simultaneously provide all three of the following guarantees:
      - Consistency (all nodes see the same data at the same time)
      - Availability (node failures do not prevent survivors from continuing to operate)
      - Partition Tolerance (the system continues to operate despite arbitrary message loss)
      According to the theorem, a distributed system can satisfy any two of these guarantees at the same time, but not all three”
    • 6. Cap Theorem - 2
    • 7. Pros and Cons - 2
      Complex objects
      High-Volume Low-Value data
      Real-time analysis
      Online games (MMRPG)
      Search engines
      Scalable horizontally(sharding)
      Faster development
      • Transactions and distributedtransactions
      • 8. Business Intelligence
    • Pros and Cons
      What are we architecting ???
      What are our options ???
      Result …
    • 9. Categories
      Under NoSql four main categories exists:
      Key / Value
    • 10. Categories – Key / Value
      We can see on this type as distributed hash table
      Used for caching layers
      Querying is done by key only
      Highly distributive
      Project Voldemort
      Amazon Dynamo
    • 11. Categories - BigTable
      BigTable are step forward from Key/Value stores
      There is some order in these stores and querying can be done by more params
      More like the RDBMS that we now with excluded foreign key concept and with support each row to have different columns
      Apache Cassandra
      Apache HBase
    • 12. Categories – Document
      Documents stores are json/xml based stores for objects
      Highly queryable
      Apache CouchDB
    • 13. Categories – Graph
      Graph stores store data in vortex connected with zero or more vortexes.
      Data is held in hashtable in each node
      Rich objects are not supported
    • 14. Categories – size/complexity
      *Complexity = Sophistication of data modeling
    • 15. Mongo DB showcase - 1
      What is
      Document store
      Fast, scalable and available
      JSon – used for data hydratation
      Stores data structured as documents instead of row as seen in RDBMS
      Uses Query, Insert, Update and Remove for data manipulation
      Used for adding data at high rates without “choking” the system
    • 16. Mongo DB showcase - 2
      Internals of
      Map files in memory (virtual)
      Memory is allocated by namespaces
      Free space comes at the end of the structure
      Each document contains a header for traversal and position, body (document data) and padding
      Master/Slave and Replication sets architecture
      Both require Master but Replication set vote for new master if the one dedicated for the job is unavailable
      Results can be of type cursor which can be iterated until cursor have 0 elements left
    • 17. Mongo DB showcase - 3
      Documents in
      Each document can be of size max to 4mb
      Each document you insert into MongoDB will be assigned an id consisted of:
      This is a 12-byte value consisting of 4 parts: timestamp (4 bytes)
      machine identifier (3 bytes)
      process id (2 bytes)
      increment (3 bytes)
      in MongoDB, each document will contain not only the values, but the key names (~"column names" in relational db-speak) too. So if you have keys: “Username" and “Password", then those alone will add 16 bytes to each document.
      MongoDB automatically adds some padding to the documents to allow for documents to grow in size to try and reduce the need for documents to be moved around if they do grow
    • 18. Mongo DB showcase - 4
      Map reduce and
      Map/Reduce is done via javascript
    • 19. Mongo DB showcase - 5
      Simple usage
      On win32 start mongod.exe
      Start mongo.exe test client for testing
      _workerId: “936DA01F-9ABD-4d9d-80C7-02AF85C822A8”,
      name: “XyZ”,
      department: “services”,
      subdepartment: “.NET”
      db.Workers.find({ name: “XyZ” });
    • 20. Mongo DB showcase - 6
      Performance analyses
    • 21. Mongo DB showcase - 7
      So how can we use it in .NET ???
    • 22. Mongo DB showcase - 8
      Get Mongodb-csharp driver
      Let’s start
    • 23. Suggestions
      The high scalability blog
      Apache Cassandra
      RanvenDB, .Net implementation of document store
      mysql performance blog
      CAP theorem
    • 24. Discussion
    • 25. Sponsored by