• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
NoSQL бази от данни - възможности и приложение, дипломна защита
 

NoSQL бази от данни - възможности и приложение, дипломна защита

on

  • 3,907 views

Това е презентацията от дипломната ми защита, проведена на 18 октомври 2010 г. във ФМИ. Вижте блога ми за ...

Това е презентацията от дипломната ми защита, проведена на 18 октомври 2010 г. във ФМИ. Вижте блога ми за подробности.

Statistics

Views

Total Views
3,907
Views on SlideShare
2,528
Embed Views
1,379

Actions

Likes
0
Downloads
20
Comments
0

5 Embeds 1,379

http://dzver.com 1185
http://gramophon.com 126
http://www.getoto.net 56
http://webcache.googleusercontent.com 11
http://static.slidesharecdn.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

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
  • Уважаема държавна изпитна комисия, уважаеми колеги
  • Хората влагат много труд в сайтовете си и изведнъж те започват да работят зле, като привидно нищо кой-знае какво не се е променило. Някаква INNODB таблица с текстове е достигнала скромен обем от 4 GB или данните ни са достигнали десетина милиона записа.
  • Скалируемост – възможност да се работи с нарастнал трафик или нарастнал обем, чрез добавяне на хардуер. RDBMS се забавят с нарастването на обема. JOIN, GROUP BY , ALTER стават бавни и постепенно невъзможни. Partitioning в RDBMS се прави по PK. Ако употребата на данните не е по PK, забавяне. Sharding е разделяне на данните от 1 таблица по критерий с код, написан от програмистите.
  • NoSQL решенията включват най-разнообразни идеи. Отказът от SQL е общ, отказът от фиксирана схема – почти. JS, JSON и REST са разпространени. Евентуалната консистентност е почти обща. MapReduce е особено популярен. Има разработена теорема на Ерик Брюър – от наличност, консистентност и толерантност към разделяне на части, БД може да осигури само 2. За това обичайно се жертва консистентността, като най-малкото зло.
  • Около 15 разгледани в известни детайли, от общо няколко десетки. BigTable клонинги, Динамо клонинги, Документни БД, k/v персистентни cache и др.
  • SSTable означава sorted string table – файл с подредени двойки ключ-стойност. GFS е отговорна за синхронизацията на данните по сървърите.
  • Peer архитектура – синхронизацията става между равнопоставени сървъри.
  • Суперколоната е допълнително ниво на йерархия от колони. Ако имаме колона с домашен адрес и колона с модел автомобил, суперколоната човек с идентификатор името му, обединява автомобила и адреса. Има шел, свой протокол за разпространение на измененията. Тази БД почти погреба digg , но пък изстреля в небесата reddit.
  • Документът в каучдб е json обект с произволна структура, подреден по ключ. Идентификаторите могат да са както от потребителя, така и автоматично генерирани. За да бъдат дотъпни данните от вътрешността на документа се използват изгледи, чрез design documents. Изгледите са материални и много бързи. Използват дистрибутиран между сървърите mapreduce за генерирането си. За решаване на конфликти се използва MVCC, базиран на ревизии, които съществуват едновременно.
  • Документна база, с конзолен шел, индекси за достъп в реално време. Много бързо писане, много компромиси по отношение консистентност. Fail при 4 sq, голям успех на други места.
  • Не изисква RAID, защото върши същото. Дублира данните по дисковете сървърите и ги чете паралелно, с цел оптимизация. MapReduce е отделно приложение спрямо базата данни – HBase или Cassandra. Притежава езици за изграждане на mapreduce заявки – Pig Latin и Hive QL. Ползва се от Yahoo, Twitter. Hbase работи с таблици.
  • За пълен тест е необходимо на 1 DB сървър да се осигури неколкократно превишаващ тестов ресурс. В моя случай машината с тестовете беше 3 годишен лаптоп, а тази с базите данни – 7-8 годишен десктоп.

NoSQL бази от данни - възможности и приложение, дипломна защита NoSQL бази от данни - възможности и приложение, дипломна защита Presentation Transcript

  • NoSQL бази от данни – възможности и приложение
    • Автор : Веселин Николов, М-22528
    • Ръководител : доц. д-р Калинка Калоянова
    • Катедра : “Компютърна информатика” , ФМИ
    NoSQL БД – възможности и приложение, Веселин Николов Магистърска теза
  • Цел на дипломната работа NoSQL БД – възможности и приложение, Веселин Николов
    • Решение на проблеми в RDBMS чрез употреба на NoSQL
    • 2. Сравнение на различни NoSQL БД с MySQL
  • Проблеми пред RDBMS
    • Скалируемост
    • Partitioning
    • Sharding
    • Кеширане
    • Денормализация
    • Промени в схемата
    NoSQL БД – възможности и приложение, Веселин Николов
  • NoSQL решения
    • Отказ от SQL
    • Отказ от фиксирана схема
    • JavaScript, JSON, REST
    • Евентуална консистентност
    • MapReduce
    • GFS, HDFS
    NoSQL БД – възможности и приложение, Веселин Николов
  • NoSQL бази от данни
    • BigTable, Dynamo
    • Cassandra , Riak
    • CouchDB, MongoDB
    • Redis, MemcacheDB
    • Hadoop, Hbase, RavenDB, Kyoto Cabinet, Sherpa, Neo4j и др.
    NoSQL БД – възможности и приложение, Веселин Николов
  • Google BigTable
    • Многомерен масив
    • Колони и семейства от колони
    • SSTable
    • Компресия
    • GFS
    • 2004 г.
    NoSQL БД – възможности и приложение, Веселин Николов
  • Amazon Dynamo
    • Хоризонтално скалируема
    • Евентуално консистентна
    • Равнопоставени сървъри
    • Key/value БД
    • put/get
    • 2007 г.
    NoSQL БД – възможности и приложение, Веселин Николов
  • Cassandra
    • BigTable + Dynamo = Cassandra
    • Настройваема консистентност
    • Колони, семейства, суперколони
    • Cassandra-cli shell
    • Вместо индекси, нови семейства
    • Gossip
    • Java, Thrift
    NoSQL БД – възможности и приложение, Веселин Николов
  • CouchDB
    • Документи
    • REST, JavaScript , JSON
    • Материални изгледи
    • MapReduce
    • MVCC – ревизии на документите
    NoSQL БД – възможности и приложение, Веселин Николов
  • MongoDB
    • Документи
    • Индекси
    • Mongo shell
    • JSON, JavaScript, MapReduce
    • ReplicaSet, auto sharding*
    NoSQL БД – възможности и приложение, Веселин Николов
  • Hadoop
    • HDFS
    • MapReduce
    • HBase
    • Pig
    • Hive
    NoSQL БД – възможности и приложение, Веселин Николов
  • Проведени тестове
    • Тестове за запис на данни
    • Тестове за извличане на данни
    • Обобщения с MapReduce
    • Replica Set с MongoDB
    • Наблюдение на заеманото място
    NoSQL БД – възможности и приложение, Веселин Николов
  • Ограничения
    • Отделни системи за тест и БД
    • Конфигурация по подразбиране
    • Малко памет
    • Малък мащаб
    • Елементарни задачи
    NoSQL БД – възможности и приложение, Веселин Николов
  • Запис на данни
    • 1000 документа в 1 нишка
    • MySQL: 49 sec, MongoDB 6.3 sec, Cassandra: 8 sec
    NoSQL БД – възможности и приложение, Веселин Николов
  • Запис на данни
    • 5000 документа в 50 нишки
    • MySQL: 65 sec, MongoDB 21 sec, Cassandra: 23 sec
    NoSQL БД – възможности и приложение, Веселин Николов
  • Извличане на данни
    • 1000 изчитания на статия с нейните коментари, конкурентно в 10 нишки
    • MySQL: 2.4 sec, CouchDB: 0.57 sec.
    NoSQL БД – възможности и приложение, Веселин Николов
  • Обобщение
    • Прости и бързи
    • Скалируеми (ReplicaSet тест )
    • MapReduce и SQL
    • NoSQL и HDD
    • Нужни са тестове, преди внедряване
    NoSQL БД – възможности и приложение, Веселин Николов
  • Перспективи за развитие
    • MongoDB single server durability
    • Cassandra – конфигурация в реално време
    • CouchDB – подреждане на MapReduce
    • Hadoop PIG, Hadoop Hive QL
    • MapReduce в RDBMS
    NoSQL БД – възможности и приложение, Веселин Николов
  • Въпроси? NoSQL БД – възможности и приложение, Веселин Николов
  • Благодаря! NoSQL БД – възможности и приложение, Веселин Николов