Cassandra calogera

Cassandra

Архитектура

Apache Cassandra – это децентрализованная распределенная система, состоящая из нескольких узлов, по которым она распределяет данные. В отличие от многих других Big Data решений экосистемы Apache Hadoop (HBase, HDFS), эта СУБД не поддерживает концепцию master/slave (ведущий/ведомый), когда один из серверов является управляющим для других компонентов кластера.

Для распределения элементов данных по узлам Кассандра использует последовательное хэширование, применяя хэш-алгоритм для вычисления хэш-значений ключей каждого элемента данных (имя столбца, ID строки и пр.). Диапазон всех возможных хэш-значений, т.е. пространство ключей, распределяется между узлами кластера так, что каждому элементу данных назначен свой узел, который отвечает за хранение и управление этим элементом данных .

Благодаря такой распределенной архитектуре, Кассандра предоставляет следующие возможности :

  • распределение данных между узлами кластера прозрачно для пользователей – каждый сервер может принимать любой запрос (на чтение, запись или удаление данных), пересылая его на другой узел, если запрашиваемая информацию хранится не здесь;
  • пользователи могут сами определить необходимое количество реплик, создание и управление которыми обеспечит Cassandra;
  • настраиваемый пользователями уровень согласованности данных по каждой операции хранения и считывания;
  • высокая скорость записи (около 80-360 МБ/с на узел) – данные записываются быстрее, чем считываются за счет того, что их большая часть хранится в оперативной памяти ответственного узла, и любые обновления сперва выполняются в памяти, а только потом – в файловой системе. Чтобы избежать потери информации, все транзакции фиксируются в специальном журнале на диске. При этом, в отличие от обновления данных, записи в журналы фиксации только добавляются, что исключает задержку при вращении диска. Кроме того, если не требуется полная согласованность записей, Cassandra записывает данные в достаточное число узлов без разрешения конфликтов несоответствия, которые разрешаются только при первом считывании.
  • гибкая масштабируемость – можно построить кластер даже на сотню узлов, способный обрабатывать петабайты данных.

Таким образом, отсутствие центрального узла лишает Кассандру главного недостатка, свойственного системам master/slave, в которых отказывает весь кластер при сбое главного сервера (Master Node). В кластере Cassandra все узлы равноценны между собой и, если один из них отказал, его функции возьмет на себя какой-то из оставшихся. Благодаря такой децентрализации Apache Cassandra отлично подходит для географически распределенных систем с высокой доступностью, расположенных в разных датацентрах. Однако, при всех преимуществах такой гибко масштабируемой архитектуры, она обусловливает особенности операций чтения и записи, а также накладывает ряд существенных ограничений на использование этой СУБД в реальных Big Data проектах.


Кластерная архитектура Apache Cassandra

О ключевых возможностях, достоинствах и недостатках Apache Cassandra мы расскажем в отдельной статье. А примеры практического использования этой СУБД класса NoSQL в реальных Big Data проектах мы собрали здесь.

Источники

  1. https://ru.wikipedia.org/wiki/Apache_Cassandra
  2. https://eax.me/cassandra/
  3. https://www.ibm.com/developerworks/ru/library/os-apache-cassandra/
  4. https://ru.bmstu.wiki/Apache_Cassandra

Последние комментарии

добавлено

4 минут назад

на

Не могу две недели оформить заказ, показывает код ошибки 500
  

добавлено

5 минут назад

на

1234

https://app-96778.games.s3.yandex.net/96778/sg84tu1si9zmvi7pvf6gmijskm0eq2v2/index.html?utm_source=homescreen_icon&pwa=1&sdk=https%3A%2F%2Fyandex.ru%2Fgames%2Fsdk%2Fv2#origin=https%3A%2F%2Fyandex.ru&expBoxesCrypted=4zr6X2c-szKZibp1L_nq8Xw40a2Hh8lVKq3klwcALMBvQZyXJ1yg6Dq8Zxs3KMrFcB-urpu4ADcoB1vJdYf5kV2LRMmJ8eBgWts6cIi2h_hMnKC_r66-PA%2C%2C&experiments=%7B%22invalidate_games_cache_from%22%3A1675149357%2C%22update_excluded_categories%22%3Atrue%2C%22web_apps_enabled%22%3Atrue%2C%22preload_fullscreen_adv4%22%3Atrue%2C%22adv.mobile.fullscreen%22%3A%22fullscreen_mobile.10881.exp%22%2C%22adv.mobile.fullscreen_landscape%22%3A%22fullscreen_mobile_landscape.10881.exp%22%2C%22adv.mobile.start_fullscreen_landscape%22%3A%22start_fullscreen_mobile_landscape.10881.exp%22%2C%22adv.mobile.start_fullscreen%22%3A%22start_fullscreen_mobile.10881.exp%22%2C%22adv.mobile.sticky_mobile_landscape_upper%22%3A%22sticky_mobile_landscape_upper.14364.exp%22%2C%22adv.mobile.sticky_mobile_landscape_bottom%22%3A%22sticky_mobile_landscape_bottom.14364.exp%22%2C%22catalog_rsya_mobile_height%22%3A50%2C%22catalog_rsya_custom_block%22%3A%22R-I-323671-23%22%2C%22rotate_screen_button%22%3Atrue%2C%22rotate_screen_button_alt_text%22%3Atrue%2C%22early_show_shortcut_popup%22%3Atrue%2C%22pick_ec%22%3A%22advm_ec%22%2C%22disable_weekly_activity_bonus%22%3Atrue%2C%22game_iframe_in_ssr%22%3Atrue%2C%22client_tech_log%22%3Atrue%2C%22game_page_exp%22%3Atrue%2C%22adv_sticky_banner_refresh_interval%22%3A120000%2C%22game_icon_type%22%3A%22B%22%2C%22disable_new_categorized_games%22%3Atrue%2C%22search_v3%22%3A%22mix%22%2C%22splash_screen_time_limit%22%3A20000%2C%22splash_screen_condition%22%3A%22frame%22%2C%22guard_under_splash_screen%22%3Afalse%7D&app-id=96778?roomid=0JrQvtC80L3QsNGC0LAg0LjQs9GA0L7QutCwINCa0YLQviDRgtC+&pwd=
  

добавлено

8 минут назад

на

Love read -любимый сайт. Очень ждём, когда же заработает. Анталья, Турция.
  

добавлено

31 минут назад

на

Я смотрю тут тотальные жалобы на работу 1-го канала и судя по откликам пользователей их НИКТО не слышит или НЕ ХОЧЕТ слышать .
  

добавлено

40 минут назад

на

Трансляция то и дело зависает и на Яндекс браузере ,, и на Edge.После перезагрузки пк несколько минут работает( после ОЧЕНЬ долгого подключения) и опять зависание .
  

добавлено

51 минут назад

на

Сегодня не работают Гугл и соцсети.
  

добавлено

54 минут назад

на

так и лежит, будни, а никому нет дела в ТП
  

добавлено

55 минут назад

на

Проблема с интерфейсом

Поменялся интерфейс чарактера, уже не знаю что делать, он стал неудобнее, голос персонажа включить нельзя, фото отправить нельзя, буквы стали большими.
  

добавлено

57 минут назад

на

Такая же дичь!
Не заходит с надписью Хьюстон…
  

добавлено

60 минут назад

на

У меня тоже неделю колесико крутится и невозможно посмотреть товар. Что делать?
  

добавлено

1 час назад

на

Не могу со вчерашнего дня зайти на сайт, он не дает доступ. Ничего не перенастраивала в настройках, все было нормально. С телефона могу.
  

добавлено

1 час назад

на

****** ***** КОТОРАЯ РАБОТАЕТ 5 МИНУТ И ВЫРУБАЕТСЯ НА 5 МИНУТ РАБОТАЕТ 5 МИНУТ И ВЫРУБАЕТСЯ НА 5 МИНУТ ИДИ ТЕ ***** Я ДЕНЬГИ НЕ ЗА ЭТО ПЛАЧУ МРАЗИ ******
  

добавлено

2 часов назад

на

Выкидывает
  

добавлено

2 часов назад

на

Очень плохо грузит ,тормозит ужасно
  

добавлено

2 часов назад

на

не загружается приложение

У меня на телефоне (Хуавей, СПб) не загружается приложение (gmail-документы тоже не загружаются). Бегают зеленые точки, и всё. Удалила приложение, установила по новой. Картина не изменилась. На компе все нормально.
  

добавлено

2 часов назад

на

Жду и надеюсь когда сайт заработает…. Сейчас выдает нет доступа к серверу((((((
  

добавлено

2 часов назад

на

Чаще не работает, чем работает. Постоянные зависания, сбои…
  

добавлено

2 часов назад

на

Второй день не могу зайти в личный кабинет , как теперь оплатить ?
  

Модель данных Apache Cassandra

Модель данных Cassandra состоит из следующих элементов :

  • столбец или колонка (column) – ячейка с данными, включающая 3 части – имя (column name) в виде массива байтов, метку времени (timestamp) и само значение (value) также в виде байтового массива. С каждым значением связана метка времени — задаваемое пользователем 64-битное число, которое используется для разрешения конфликтов во время записи: чем оно больше, тем новее считается столбец. Это учитывается при удалении старых колонок.
  • строка или запись (row) – именованная коллекция столбцов;
  • семейство столбцов (column family) – именованная коллекция строк;
  • пространство ключей (keyspace) – группа из нескольких семейств столбцов, собранных вместе. Оно логически группирует семейства столбцов и обеспечивает изолированные области имен.

Также стоит отметить понятия сравнителя (comparator), задаваемого для имени столбца и валидатора (validator) для значений и ключей. Comparator определяет, какие байтовые значения допустимы для имён колонок и как их упорядочить, а validator – для значений колонок и ключей. Если они не заданы, то Кассандра хранит значения и сравнивает их как байтовые строки (BytesType) так как, по сути, они сохраняются внутри. Вообще, в рассматриваемой СУБД доступны следующие типы данных :

  • BytesType: любые байтовые строки (без валидации);
  • AsciiType: ASCII строка;
  • UTF8Type: UTF-8 строка;
  • IntegerType: число с произвольным размером;
  • Int32Type: 4-байтовое число;
  • LongType: 8-байтовое число;
  • UUIDType: UUID 1-ого или 4-ого типа;
  • TimeUUIDType: UUID 1-ого типа;
  • DateType: 8-байтовое значение метки времени;
  • BooleanType: два значения: true = 1 или false = 0;
  • FloatType: 4-байтовое число с плавающей запятой;
  • DoubleType: 8-байтовое число с плавающей запятой;
  • DecimalType: число с произвольным размером и плавающей запятой;
  • CounterColumnType: 8-байтовый счётчик.

Пространство ключей соответствует понятию схемы базы данных (database schema) в реляционной модели, а находящиеся в нем семейства столбцов – реляционной таблице. Столбцы объединяются в записи при помощи ключа (row key) в виде массива байтов, по значению которого столбцы упорядочены в пределах одной записи. В отличие от реляционных СУБД, в NoSQL модели возможна ситуация, когда разные строки содержат разное число колонок или столбцы с такими же именами, как и в других записях . 


Как понятия модели данных NoSQL-СУБД Кассандра соответствуют реляционной парадигме

Можно сказать, конкретное значение, хранимое в Apache Cassandra, идентифицируется следующими привязками :

  • к приложению или предметной области в пространстве ключей, что позволяет на одном кластере размещать данные разных приложений;
  • к запросу в рамках семейства столбцов;
  • к узлу кластера с помощью ключа, который определяет, на какие узлы попадут сохранённые колонки;
  • к атрибуту в записи с помощью имени колонки, что позволяет в одной записи хранить несколько значений.

Структура данных при этом выглядит так :

  • Keyspace
    • ColumnFamily
      • Row
        • Key
        • Column
          • Name
          • Value
        • Column


Модель данных Apache Cassandra

Понравилась статья? Поделиться с друзьями:
Тут как тут
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: