• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Nosql emerging world of polygot persistence
 

Nosql emerging world of polygot persistence

on

  • 289 views

Nosql emerging world of polygot persistence

Nosql emerging world of polygot persistence

Statistics

Views

Total Views
289
Views on SlideShare
289
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Nosql emerging world of polygot persistence Nosql emerging world of polygot persistence Presentation Transcript

    • LOGOEmerging World of Polyglot Persistence By : ● Duc Nguyen LOG ● Vu Truong O
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO ContentPart II : 1 Key-Value Database 2 Document Database 3Implement Column-Family Stores 4 Graph Databases 5 Schema Migrations & Polygot Persistence 6 Choosing Your Database
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO Why NoSQL The Value of Relational Database Persistent Data Concurrency Integration Standard Model
    • LOGO Why NoSQL Impedance Mismatch
    • LOGO Why NoSQL Attack of the Clusters
    • LOGO Why NoSQL Common characteristics of NoSQL : ● Not using the relational model ● Running well on clusters ● Open-source ● Built for the 21th century web estates ● Schemaless
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO Aggregate Data Models● A collection of data that we interact with as a unit.● Aggregates form the boundaries for ACID operations with the database.● Key-Value , documents and column-family databases can all be seen as forms of aggregate-oriented DB.● Aggregates make it easier for the database to manage data storage over clusters.● Aggregate-oriented databases work best when most data interaction is done.
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO Data Models Complex Schema :
    • LOGO Data Models Graph Databases :
    • LOGO Data Models Schemaless Databases : Schemaless databases allow you to freely add fields to records. But there is usually an implicit schema expected by users of the data
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO Distribution Models Single Server :
    • LOGO Distribution Models Sharding :
    • LOGO Distribution Models Master-Slave Replication :
    • LOGO Distribution Models Peer-to-peer Replication :
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO Consistency Update Consistency : Write-write conflicts occur when two clients try to write the same data at the same time. Pessimistic approaches lock data records to prevent conflicts. Optimistic approaches detect conflicts and fix them.
    • LOGO Consistency Read Consistency :
    • LOGO Consistency Read Consistency :
    • LOGO Consistency CAP Theorem :
    • LOGO Consistency Some Consistency Model: Strong consistency. Weak consistency. Eventually Consistent
    • LOGO Consistency Eventually consistent: Causal Consistency. Read-You-Writes Consistency. Session Consistency. Monotonic Read Consistency. Monotonic Write Consistency.
    • LOGO ContentPart I : 1 Why NoSQL 2 Aggregate Data ModelsUnderstand 3 Data Models 4 Distribution Models 5 Consistency 6 Stamps & Map-Reduce
    • LOGO Stamps & Map-Reduce Stamps : Version stamps help you detect concurrency conflicts Version stamps can be implemented using counters, GUIDs , content hashes, timestamps, or a combination of these. With distributed systems, a vector of version stamps allows you to detect when different nodes have conflicting updates
    • LOGO Stamps & Map-Reduce Map-Reduce : Basic
    • LOGO Stamps & Map-Reduce Map-Reduce : Partitioning and Combining
    • LOGO Stamps & Map-Reduce Map-Reduce : Partitioning and Combining
    • LOGO Stamps & Map-Reduce Map-Reduce : Partitioning and Combining
    • LOGO Stamps & Map-Reduce Map-Reduce : Partitioning and Combining
    • LOGO ContentPart II : 1 Key-Value Database 2 Document Database 3Implement Column-Family Stores 4 Graph Databases 5 Schema Migrations & Polygot Persistence 6 Choosing Your Database
    • LOGO ContentPart II :Implement
    • LOGO ContentPart II : 1 Key-Value Database 2 Document Database 3Implement Column-Family Stores 4 Graph Databases 5 Schema Migrations & Polygot Persistence 6 Choosing Your Database
    • LOGO Key-Value Databases Comparison with Oracle :
    • LOGO Key-Value Databases What Is a Key – Value Store : The simplest NoSQL data stores to use From an API perspective. Some of the popular key-value database : Riak, Memcached DB , Berkeley DB, Hamster DB , Amazon Dynamo DB ....
    • LOGO Key-Value Databases Key-Value Store Features : Consistency : applicable only for operations on a single key , operations are either a GET, PUT, or DELETE on a SINGLE KEY. Transactions : Different products of the key-value store kind have different specifications of transactions. Query Features : Only support query by the key. Structure of Data : Dont care what is stored in the value part of the key-value. The value can be a blob, text, JSON, XML ... Scaling : many key-value stores scale by using sharding.
    • LOGO Key-Value Databases Suitable Use Cases : Storing Session Information : every web session is unique and is assigned a unique session value.This single-request operation makes it very fast. Solutions such as Memcached are used by many web applications. User Profiles , Preferences : cause almost every user has a unique userId , username , or some other attribute . Shopping Cart Data : for E-commerce websites...
    • LOGO Key-Value Databases When Not to Use : Relationships among Data : Multioperation Transactions: Query by Data: Operations by Sets:
    • LOGO ContentPart II : 1 Key-Value Database 2 Document Database 3Implement Column-Family Stores 4 Graph Databases 5 Schema Migrations & Polygot Persistence 6 Choosing Your Database
    • LOGO Document Databases Comparison with Oracle :
    • LOGO Document Databases What Is a Document Database :
    • LOGO Document Databases Features : Consistency : using the replica sets and choosing to wait for the writes to be replicated to all the slaves or a given number of slavers. Transactions : Transactions at the single-document level are known as atomic transactions. Its not possible with more than one operation. Availability : Try to improve on available by replicating data using the master-slave setup. Providing high availability using replica sets.
    • LOGO Document Databases Features : Query Features : provide different query features. CouchDB allows you to query via view. One of good features of document databases, as compared to key-value stores , is that we can query the data inside the document without having to retrieve the whole document by its key and introspect the document.
    • LOGO Document Databases Features : Scaling : When a new nod is added , it will sync up with the existing nodes, join the replica set as secondary node , and start serving read request.
    • LOGO Document Databases Suitable Use Cases : Event Logging : Application have different event logging needs; within the enterprise, these are many different applications that want to log events. Documents DB can store all these different types of events and can act as a central data store for event storage. Content Management Systems, Blogging Platforms: They work well in content management systems or applications for publishing websites, managing user comments , user registrations, profiles, web-facing documents... Web Analytics or Real-Time Analytics: store data for real-time analytics, since parts of the document can be updated.Its very easy to store page views or unique visitors. E-Commerce Applications : often need to have flexible schema for products and orders, as well as the ability to evolve their data models without expensive database refactoring or data migration.
    • LOGO ContentPart II : 1 Key-Value Database 2 Document Database 3Implement Column-Family Stores 4 Graph Databases 5 Schema Migrations & Polygot Persistence 6 Choosing Your Database
    • LOGOColumn-Family Stores
    • LOGO ContentPart II : 1 Key-Value Database 2 Document Database 3Implement Column-Family Stores 4 Graph Databases 5 Schema Migrations & Polygot Persistence 6 Choosing Your Database
    • LOGO Graph Databases Common characteristics : ● What is a Graph Databases ? ● Features ● Suitable Use Cases ● When Not to Use
    • LOGO Graph Databases What is Graph Databases :
    • LOGO Graph Databases What is Graph Databases : ● Graph databases allow you to store entities and relationships between these entities. ● We can query the graph in many ways. ● A query on the graph is also known as traversing the graph. ● In graph databases, traversing the joins or relationships is very fast.
    • LOGO Graph Databases Features : ● Consistency. ● Transactions. ● Availability. ● Query Features. ● Scaling.
    • LOGO Graph Databases Neo4J: ● We have to create relationship between the nodes in both directions ● Relationships are first-class citizens in graph databases ● Relationships don’t only have a type, a start node, and an end node, but can have properties of their own.
    • LOGO Graph Databases Consistency: ● Graph databases ensure consistency through transactions. ● When running Neo4J in a cluster, a write to the master is eventually synchronized to the slaves. ● Slaves are always available for read. ● They do not allow dangling relationships.
    • LOGO Graph Databases Transactions: ● Neo4J is ACID-compliant. ● Before changing any nodes or adding any relationships to existing nodes, we have to start a transaction. ● Read operations can be done without initiating a transaction.
    • LOGO Graph Databases Availability: ● Neo4J achieves high availability by providing for replicated slaves. ● These slaves can also handle writes. ● Neo4J uses the Apache ZooKeeper to keep track.
    • LOGO Graph Databases Query Features: ● Graph databases are supported by query languages such as Gremlin. ● Gremlin is a domain-specific language for traversing Graphs. ● Neo4J also has the Cypher query language for querying the graph. ● Neo4J allows you to query the graph for properties of the nodes, traverse the graph, or navigate the nodes ● Properties of a node can be indexed using the indexing service. ● Neo4J uses Lucene as its indexing service.
    • LOGO Graph Databases Scaling: ● With graph databases, sharding is difficult. ● The working set of nodes and relationships is held entirely in memory. ● Adding more slaves with read-only access to the data ● Sharding the data from the application side using domain-specific knowledge.
    • LOGO Graph Databases Suitable use cases: ● Connected Data ● Routing, Dispatch, and Location-Based Services. ● Recommendation Engines.
    • LOGO Graph Databases When not to use: ● Problem when you want to update all or a subset of entities.
    • LOGO XU HƯỚNG PHÁT TRIỂN Động lực phát triển:• Ngăn ngừa những sự phức tạp không cần thiết• Tính chịu tải cao ( High Throughput ).• Khả năng mở rộng theo chiều ngang và• chạy được trên các phần cứng thông thường.• Tính phức tạp và chi phí để thiết lập các cụm cơ sở dữ liệu.• Thỏa hiệp giữ độ tin cậy và hiệu suất cao
    • LOGO XU HƯỚNG PHÁT TRIỂN Động lực phát triển:• Xóa bỏ tư duy về một cơ sở dữ liệu có thể giải quyết tất cả các vấn đề liên quan đến lưu trữ dữ liệu.• Ước mơ về một sự phân bố đơn giản và phân vùng của các mô hình dữ liệu tập trung.• Sự phát triển của ngôn ngữ lập trình và các frameworks.• Đáp ứng yêu cầu của điện toán đám mây.
    • LOGO XU HƯỚNG PHÁT TRIỂN Phân loại: (Theo lý thuyết CAP)
    • Nội dung LOGO1 Giới thiệu2 Xu hướng phát triển3 Các nguyên lý hoạt động4 Hệ cơ sở dữ liệu MongoDB5 Tổng kết6 Tài liệu tham khảo
    • LOGO Các nguyên lý hoạt động Lý thuyết CAP :
    • LOGO Các nguyên lý hoạt động Sự phân chia:  Memory Cached ( bộ nhớ Cache) .  Clustering ( Bó ) .  Separating Reads from Writes ( Tách biệt giữa việc đọc và ghi) .
    • LOGO Các nguyên lý hoạt động Các mô hình lưu trữ : Lưu trữ theo hàng
    • LOGO Các nguyên lý hoạt động Các mô hình lưu trữ : Lưu trữ theo cột
    • LOGO Các nguyên lý hoạt động Các mô hình lưu trữ : Lưu trữ theo nhóm cột
    • LOGO Các nguyên lý hoạt động Các mô hình lưu trữ: Lưu trữ sử dụng mô hình cấu trúc cây hợp nhất
    • LOGO Các nguyên lý hoạt động Mô hình truy vấn: Truy vấn tương tự như các hệ CSDL quan hệ
    • LOGO Các nguyên lý hoạt động Mô hình truy vấn: Truy vấn sử dụng phương thức tán xạ tập hợp
    • LOGO Các nguyên lý hoạt động Mô hình truy vấn: Truy vấn sử dụng cây B++ tree
    • LOGO Các nguyên lý hoạt động Đánh giá hiệu xuất truy vấn :
    • Nội dung LOGO1 Giới thiệu2 Xu hướng phát triển3 Các nguyên lý hoạt động4 Hệ cơ sở dữ liệu MongoDB5 Tổng kết6 Tài liệu tham khảo
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB Tạo cơ sở dữ liệu (Collection).db.createCollection(<name> ,{<configuration parameters >}) Định nghĩa một tài liệu : dùng JSON{title : " MongoDB " ,last_editor : "172.5.123.91" ,last_modified: new Date ( " 9/23/2010 " ) ,body : " MongoDB is a ..." ,categories : [" Database " , " NoSQL " , " Document Database ],reviewed : false}
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB Thêm một tài liệu :db.<collection>.insert({ title:"MongoDB",last_editor: ... }) ; Truy xuất một tài liệu :db.< collection >. find ( { categories : [ "NoSQL " , " Document Database" ] } ) ; Cập nhật tài liệu : db.< collection >.save ( { ... } ) ;
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB Cập nhật dữ liệu :db.<collection>.update (<criteria>,<newdocument>,<upsert>,<multi >) ; Xóa tài liệu:db.< collection >.remove ( { < criteria > } ) ; Tạo chỉ mục: db.< collection >.ensureIndex ({ < field1 >:< sorting >,< field2 >:< sorting > , ...}) ;
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB So sánh với hiệu suất khi thực thi lệnh INSERT với SQL Server:
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB So sánh với hiệu suất khi thực thi lệnh INSERT với SQL Server:
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB So sánh với hiệu suất khi thực thi lệnh truy vấn đơn giản với SQL Server:
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB So sánh với hiệu suất khi thực thi lệnh truy vấn đơn giản với SQL Server:
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB So sánh với hiệu suất khi thực thi lệnh truy vấn phức tạp với SQL Server:
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB So sánh với hiệu suất khi thực thi lệnh truy vấn phức tạp với SQL Server:
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB Chạy Demo so sánh INSERT với MySQL:(mili giây)
    • LOGO HỆ CƠ SỞ DỮ LiỆU MONGODB Chạy Demo so sánh INSERT với MySQL:(mili giây)
    • Nội dung LOGO1 Giới thiệu2 Xu hướng phát triển3 Các nguyên lý hoạt động4 Hệ cơ sở dữ liệu MongoDB5 Tổng kết6 Tài liệu tham khảo
    • LOGO Tổng kếtƯu điểm : + Đáp ứng được được hiệu suất cao , chịu tải lớn. + Khả năng mở rộng theo chiều ngang. + Chạy được trên nhiều phần cứng phổ thông. + Đáp ứng được nhu cầu của điện toán đám mây.
    • LOGO Tổng kếtNhược điểm: + Đại đa số đều đang trong quá trình phát triển . + Đa số đều là phần mềm nguồn mở . Khó có thể được chấp nhận trong các môi trường kinh doanh lớn. + Không ràng buộc tức là không đảm bảo được tính toàn vẹn của dữ liệu. + Không đáp ứng được nhu cầu của nhiều loại ứngdụng.
    • LOGO Tổng kết NoSQL hay SQL: Các chuyên gia khuyên rằng khi phát triển ứng dụng nhà sản xuất nên quan tâm tới các NoSQL. Và ứng dụng của bạn nên chuyển qua NoSQL khi thấy thực sự cần thiết.
    • Nội dung LOGO1 Giới thiệu2 Xu hướng phát triển3 Các nguyên lý hoạt động4 Hệ cơ sở dữ liệu MongoDB5 Tổng kết6 Tài liệu tham khảo
    • LOGO Tài liệu tham khảo1. NoSQL resources: http://nosql-database.org/2. NoSQL wiki - http://en.wikipedia.org/wiki/NoSQL3. Scalability wiki - http://en.wikipedia.org/wiki/Scalability#Scale_horizontally_. 28scale_out.294. A Brief History of NoSQL - http:// blog.knuthaugen.no/2010/03/a-brief-history-of-nosql.html5. Nhất Quán Cuối Cùng - http:// www.sqlviet.com/blog/nhat-quan-cuoi-cung.6. NoSQL Brief Guide to the Emerging World of Polygot Persistence. Martin Fowler.
    • LOGO www.themegallery.comThank You ! LOG O