Pull to refresh

Очередное тестирование 5 браузеров от extremetech.com

Reading time 2 min
Views 804
Browsers
Проведено тестирование производительности и совместимости со стандартами web-браузеров Firefox 3.04, Google Chrome beta, Internet Explorer 7 (7.0.6001.18000), Opera 9.6 и Safari 3.2 (526.26.13). Результаты тестов:
результаты и итог - под катом
Total votes 50: ↑36 and ↓14 +22
Comments 48

ПочемуSQL?

Reading time 4 min
Views 14K
Evernote corporate blog
Когда мы давали общее описание архитектуры нашего сервиса на нашем англоязычном техноблоге, у читателей, имеющих опыт работы с другими большими сервисами, самыми частыми вопросами были:
  1. Почему ваши структурированные данные хранятся в базах данных с SQL вместо того, чтобы использовать NoSQL-решения?
  2. Почему вы используете собственное аппаратное обеспечение вместо того, чтобы воспользоваться услугами облачного хостинга?

Оба этих вопроса закономерны и интересны. Сегодня мы ответим на первый, а второй прибережем для отдельного поста.

При правильном применении современный механизм хранения данных в ассоциативных массивах (key-value) может обеспечить значительную производительность и масштабируемость по сравнению с единичным экземпляром SQL-сервера. Однако есть несколько причин, по которым мы все же решили размещать все данные вашего аккаунта в MySQL.
Читать дальше →
Total votes 41: ↑36 and ↓5 +31
Comments 20

NewSQL — новый виток в эволюции BigData, забираем лучшее из SQL и NoSQL

Reading time 4 min
Views 21K
Website development *SQL *Big Data *
Sandbox

NewSQL


Начало

Сегодня очень легко наблюдать стремительный рост данных в интернете. Согласно одной оценке, данные, созданные в 2010, составляют приблизительно 1,200 ЭБ (1018 байт) и вырастут почти к 8,000 ЭБ к 2015 в Интернете, являющимся основным поставщиком данных к потребителю.

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

Пока программисты всего мира устраивают глобальные Holywars на тему: «SQL vs NoSQL», крупные компании, такие как Google и Facebook со своей миллиардной аудиторией всеми силами борются с нехваткой мощностей и предельными работами СУБД. Несмотря на появление новой технологии NoSQL, которая позволяла легко масштабировать данные, она так и не решила вопросы связанные с соответствием операций требованиям ACID (atomicity, consistency, isolation, durability — «атомарность, непротиворечивость, изолированность, долговечность») — стандарта, который гарантирует точность выполнения оперативных транзакций средствами СУБД, даже если работа системы прерывалась. На фоне всего этого компания VoltDB при поддержке нескольких других компаний, начали разрабатывать с чистого листа новый opensource проект под название NewSQL, сочетающий в себе лучшие стороны SQL и NoSQL.
Читать дальше →
Total votes 27: ↑14 and ↓13 +1
Comments 9

ACID в SQLite

Reading time 3 min
Views 7.8K
SQLite *
Translation
В данном посте описана система блокировок и поддержания атомарности, согласованности, изолированности и надежности (ACID) в SQLite, а также алгоритмы записи и чтения из файла базы.
Читать дальше →
Total votes 13: ↑9 and ↓4 +5
Comments 1

Несколько фактов о CAP-«теореме»

Reading time 4 min
Views 16K
Website development *SQL *NoSQL *Distributed systems *
В любом обнаружении NoSQL баз данных кто-нибудь обязательно вспомнит о CAP-«теореме». Я не случайно пишу слово «теорема» в кавычках. CAP-«теорема» вовсе не теорема в математическом понимании этого слова. Это неформальное утверждение, сделанное Эриком Брюером в докладе на конференции Principles of Distributed Computing (PODC) в 2000 году. Эрик утверждал, что невозможно создать распределенное (состоящие из нескольких равноценных экземпляров — звеньев) веб-приложение, которое будет одновременно обладать тремя свойствами: согласованность (consistency), доступность(availability) и устойчивость к разделению(partition tolerance), сокращенно CAP. Неформальность утверждения заключается в том, что Брюер не дал определения этим трем понятиям.

Спустя два года Сет Гилберт и Ненси Линч опубликовали исследование, где дали определения понятиям CAP а также формализовали "отложенную согласованность" (Delayed Consistency), которую потом прозвали "согласованность в конечном счете" (Eventual Consistency) и доказали CAP-«теорему» в терминах указанных определений. Если вы еще не читали исследование, то это обязательно стоит сделать — lpd.epfl.ch/sgilbert/pubs/BrewersConjecture-SigAct.pdf

Эта «теорема» так бы и не была никому нужна, если бы её не взяли на вооружение маркетологи NoSQL.
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Comments 76

DocumentDB: база данных NoSQL от Microsoft

Reading time 2 min
Views 20K
NoSQL *Microsoft Azure *
Пусть и с некоторым опозданием по сравнению с остальными компаниями, но Microsoft сделала необходимое и выпустила собственную нереляционную базу данных: она называется DocumentDB. И пусть это проприетарная система, которая привязана к сервису Azure, это не делает новость менее значимой.

DocumentDB автоматически индексирует содержимое всех документов, допускает обработку запросов в реальном времени, полностью поддерживает требования ACID к транзакциям (атомарность, согласованность, изолированность, надёжность). Система очень похожа на MongoDB как эффективное хранилище JSON-документов с богатыми API для запросов, в то же время выгодно отличается от MongoDB по масштабируемости и надёжности работы, глубокой интеграции JavaScript, поддержке RESTful API, асинхронных запросов и др.



Как и MongoDB, DocumentDB представляет собой иерархию баз данных, коллекций и документов.
Читать дальше →
Total votes 43: ↑34 and ↓9 +25
Comments 28

Забудьте САР теорему как более не актуальную

Reading time 12 min
Views 61K
Website development *System Analysis and Design *Perfect code *NoSQL *
Translation
или «Прекратите характеризовать хранилища данных как CP или AP»

capДжеф Ходжес в своем прекрасном посте «Заметки о распределенных системах для новичков» рекомендует использовать САР теорему для критики найденных решений. Многие, похоже, восприняли этот совет слишком близко к сердцу, описывая свои системы как «СР» (согласованность данных, но без постоянной доступности при сетевой распределенности), «АР» (доступность без согласованного состояния при сетевой распределенности), или иногда «СА» (означает «Я всё ещё не читал статью Коды (Coda Hale) почти 5-летней давности»).

Я согласен со всеми пунктами статьи кроме того, что касается САР теоремы. Она слишком всё упрощает и слишком многие понимают её неверно для того, чтобы использовать для определения характеристик системы. Так что я прошу перестать ссылаться на САР теорему, говорить о ней и дать ей уже спокойно уйти на покой. Вместо неё мы должны использовать более точную терминологию для обсуждения различных компромиссов.

(Да, я понимаю всю иронию написания целой статьи по теме того, о чём призываю не писать других вообще. Но, как минимум, у меня будет ссылка, которую я смогу давать интересующимся, когда меня будут спрашивать, почему я не одобряю обсуждение САР теоремы. Также, я хочу извиниться, если статья вам покажется слишком напыщенной, но эта напыщенность опирается на множество ссылок.)

САР использует слишком узкое определение


Если вы хотите ссылаться на САР как на теорему (а не на расплывчатый концепт в маркетинговых материалах к вашей базе данных), вы должны быть точны. Математика требует точности. Доказательство сохраняется только если вы вкладывается в слова, то же самое значение, что было использовано при доказательстве. И оно опирается на очень точные определения:
Еще 3000 слов увлекательного чтива
Total votes 70: ↑66 and ↓4 +62
Comments 23

Всё, что вы не знали о CAP теореме

Reading time 7 min
Views 93K
System Analysis and Design *NoSQL *Distributed systems *
Sandbox
Во время моего первого опыта работы с распределенными системами я постоянно сталкивался с некой CAP-теоремой, пришлось изрядно покопать, чтобы изучить и осознать её со всех сторон. Я не являюсь мастером баз данных, но надеюсь, что мое маленькое исследование мира распределённых систем будет полезно для обычных разработчиков. В статье я расскажу о том, что такое CAP, его проблемы и альтернативы, а также рассмотрим некоторые популярные системы баз данных через CAP призму.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 9

Первый взгляд на FoundationDB, открытую Apple

Reading time 9 min
Views 16K
High performance *Programming *Cloud computing *NoSQL *Database Administration *
В прошлой статье мы рассматривали ограничения и препятствия, которые возникают, когда нужно горизонтально масштабировать данные и иметь гарантию ACID-свойств транзакций. В этой статье рассказываем о технологии FoundationDB и разбираемся, как она помогает преодолеть эти ограничения при разработке mission-critical приложений.

FoundationDB — это распределенная NoSQL база данных с ACID-транзакциями уровня Serializable, хранящая отсортированные пары ключ-значение (ordered key-value store). Ключами и значениями могут быть произвольные последовательности байт. У неё нет единой точки падения — все машины кластера равноправны. Она сама распределяет данные по серверам кластера и  масштабируется на лету: когда в кластер нужно добавить ресурсов, ты просто добавляешь адрес новой машины на конфигурационных серверах и база сама подхватывает ее.
Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Comments 15

Транзакции в глобалах InterSystems IRIS

Reading time 8 min
Views 1.3K
High performance *NoSQL *Data storage *Data storages *
Tutorial
InterSystems IRIS and transactionСУБД InterSystems IRIS поддерживает любопытные структуры для хранения данных — глобалы. По сути это многоуровневые ключи с различными дополнительными плюшками в виде транзакций, быстрых функций для обхода деревьев данных, блокировок и своего языка ObjectScript.

Подробнее о глобалах в цикле статей «Глобалы — мечи-кладенцы для хранения данных»:

Деревья. Часть 1
Деревья. Часть 2
Разреженные массивы. Часть 3

Мне стало интересно как реализованы транзакции в глобалах, какие там есть особенности. Ведь это совершенно иная структура для хранения данных, чем всем привычные таблицы. Намного более низкоуровневая.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 7

Заставляем любой процесс работать с транзакционной NTFS: мой первый шаг к созданию песочницы для Windows

Reading time 6 min
Views 7.2K
Programming *Delphi *System Programming *Development for Windows *

TransactionMaster В ядре Windows есть модуль, отвечающий за поддержку группировки файловых операций в некоторую сущность, называемую транзакцией. Действия над этой сущностью изолированы и атомарны: её можно применить, сделав перманентной, или откатить. Очень удобно при установке программ, согласитесь? Мы всегда переходим от одного согласованного состояния к другому, и если что-то идёт не так, все изменения откатываются.


С тех пор, как я узнал о поддержке такой функциональности, я всегда хотел посмотреть на мир изнутри этих транзакций. И знаете что: я нашёл простой и поистине замечательный метод заставить любой процесс работать внутри файловой транзакции, но поля книги слишком узки для него. В большинстве случаев, для этого не требуются даже административные привилегии.


Давайте разберёмся, как же это работает, поэкспериментируем с моей программой, и поймём, при чём тут вообще песочницы.

Читать дальше →
Total votes 33: ↑33 and ↓0 +33
Comments 12

How to Make Any Process Work With Transactional NTFS: My First Step to Writing a Sandbox for Windows

Reading time 6 min
Views 3K
Programming *Delphi *System Programming *Development for Windows *

TransactionMaster One of the modules in the Windows kernel provides support for combining a set of file operations into an entity known as a transaction. Just like in databases, these entities are isolated and atomic. You can make some changes to the file system that won't be visible outside until you commit them. Or, as an alternative, you can always rollback everything. In any case, you act upon the group of operations as a whole. Precisely what needed to preserve consistency while installing software or updating our systems, right? If something goes wrong — the installer or even the whole system crashes — the transaction rolls back automatically.


From the very first time I saw an article about this incredible mechanism, I always wondered how the world would look like from the inside. And you know what? I just discovered a truly marvelous approach to force any process to operate within a predefined transaction, which this margin is too narrow to contain. Furthermore, most of the time, it does not even require administrative privileges.


Let's then talk about Windows internals, try out a new tool, and answer one question: what does it have to do with sandboxes?

Read more →
Total votes 3: ↑3 and ↓0 +3
Comments 0

Насколько много маркетинга в ACID?

Reading time 4 min
Views 4.3K
OTUS corporate blog High performance *System Analysis and Design *Database Administration *Industrial Programming *
Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

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




Предисловие


Транзакции появились в 70-ых годах и были представлены в качестве инструмента базы данных, позволяющего решить проблемы отказоустойчивости и доступа к данным в конкурентной среде. Затем был сформулирован ряд свойств, которыми должна обладать транзакция для того, чтобы выполнять поставленные перед ней задачи, а заглавные буквы этих свойств, поставленные в нужном порядке, составили красивую аббревиатуру ACID.

Период времени, в течении которого происходили данные события, характеризовался отсутствием высоких нагрузок, Интернета и проблем с производительностью, для решения которых можно было обойтись лишь методами вертикального масштабирования. Впоследствии, в начале 2000-ых возник тренд на NoSQL базы данных, появилась аббревиатура BASE, которая фактически противопоставлялась классическому ACID (ACID — кислота, BASE — щелочь). Сейчас возникает обратный тренд на ACID. Даже NoSQL-ая MongoDB стала поддерживать ACID.

Давайте разберемся с тем, что означает данная аббревиатура и насколько много маркетинга в ней.
Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Comments 8

К чему может привести ослабление уровня изоляции транзакций в базах данных

Reading time 5 min
Views 12K
OTUS corporate blog High performance *System Analysis and Design *Database Administration *Industrial Programming *
Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

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




Введение


В прошлый раз мы с вами поговорили про то, что транзакции в базах данных служат для решения двух задач: обеспечения отказоустойчивости и доступа к данным в конкурентной среде. Для полноценного выполнения этих задач транзакция должна обладать свойствами ACID. Сегодня мы подробно поговорим про букву I (isolation) в данной аббревиатуре.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Comments 11

MVCC как один из способов обеспечения изоляции транзакций

Reading time 4 min
Views 8.7K
OTUS corporate blog High performance *System Analysis and Design *Database Administration *Industrial Programming *
Привет, хабр. Меня зовут Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Специально к старту нового набора на курс «Архитектор высоких нагрузок» я написал небольшой материал, которым с радостью делюсь с вами.



Введение


В прошлый раз мы поговорили с вами о том, к чему приводит ослабление изоляции транзакций в базах данных. Сегодня мы обсудим более подробно один из способов обеспечения этой самой изоляции и избегания рассмотренных аномалий. Как вы могли заметить, в прошлой статье часто выделялись два подхода: один был основан на том, что у записей есть некоторые версии, а второй на том, что мы будем запись так или иначе блокировать. Таким образом, выделяются два класса баз данных: версионники и блокировочники. Сегодня мы поговорим о том, что из себя представляют версионники, а рассмотрение блокировочников оставим на следующий раз.
Читать дальше →
Total votes 15: ↑10 and ↓5 +5
Comments 3

Блокировки как один из способов обеспечения изоляции транзакций

Reading time 4 min
Views 11K
OTUS corporate blog High performance *System Analysis and Design *Database Administration *Industrial Programming *
Привет, Хабр. Меня зовут Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО.

Эту статью я подготовил специально к старту нового набора на курс «Архитектор высоких нагрузок».




Введение


В позапрошлый раз мы поговорили с вами о том, к чему приводит ослабление изоляции транзакций в базах данных. Сегодня мы обсудим более подробно один из способов обеспечения этой самой изоляции и избегания рассмотренных аномалий. Как вы могли заметить, в позапрошлой статье часто выделялись два подхода: один был основан на том, что у записей есть некоторые версии, а второй на том, что мы будем запись так или иначе блокировать. Таким образом, выделяются два класса баз данных: версионники и блокировочники. О том, что из себя представляют версионники, мы поговорили в прошлый раз, а сейчас я предлагаю обсудить блокировочники.
Читать дальше →
Total votes 11: ↑7 and ↓4 +3
Comments 0

Проблематика распределенных транзакций в контексте микросервисной архитектуры

Reading time 4 min
Views 5.6K
OTUS corporate blog High performance *Programming *System Analysis and Design *Industrial Programming *
Всем привет. Уже в сентябре OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный вебинар, в рамках которого я подробно расскажу о программе курса и формате обучения в OTUS. Записаться на вебинар можно тут.




Введение


Как известно, переход от монолита к микросервисной архитектуре вызывает ряд сложностей, связанных как с технической частью проекта, так и с человеческим фактором. Одной из самых сложных технических проблем вызывает обеспечение согласованности в распределенной системе.
Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Comments 7
1