InfiniSQL — попробуйте размер


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

InfiniSQL со скромным названием спроектирован таким образом, чтобы его можно было масштабировать, как и NoSQL, но для запросов используется SQL. Текущие тесты показывают, что кластер InfiniSQL может обрабатывать более 500 000 сложных транзакций в секунду с более чем 100 000 одновременных подключений, «и все это на двенадцати небольших серверах».

Создатель InfiniSQL Марк Трэвис работал в Visa, обрабатывая транзакции на Oracle и Sybase. В гостевом посте в блоге High Scalability Трэвис объясняет, что его опыт работы в крупных средах обработки транзакций, где несколько секунд простоя обходятся в десятки тысяч долларов клиентов, научил его, что «традиционная инфраструктура корпоративных баз данных ужасно подходит для современных сред. которые должны работать круглосуточно, непрерывно расти и быстро реагировать на новые потребности бизнеса ». Убежденный, что сможет добиться большего, Трэвис начал работу над собственной базой данных в свободное время два года назад.

Отчасти впечатляющая производительность, вероятно, объясняется тем, что InfiniSQL в настоящее время хранит и извлекает свои данные в памяти, а не на дисках, охватывая память нескольких машин для достижения масштабируемости. Это имеет очевидный недостаток: потеря мощности означает потерю данных. Трэвис работает над модулями для записи на диск, а также в память, но, как он говорит в своем блоге, InfiniSQL «все еще находится на ранних стадиях разработки», и для его использования в производственной среде необходимы дополнительные возможности.

Трэвис говорит, что InfiniSQL «экстраординарен», потому что он выполняет транзакции с записями на нескольких узлах лучше, чем любая кластерная / распределенная СУБД. Это серьезное утверждение, но если бы цифры подтверждали это утверждение, InfiniSQL превратилась бы в интересное предложение. Он говорит, что InfiniSQL предназначена для любой компании, у которой есть рабочие нагрузки РСУБД, но которые были вынуждены применять обходные пути, потому что их исходная РСУБД не росла вместе с бизнесом, с обходными путями, включая сегментирование баз данных SQL и перенос некоторых рабочих нагрузок на различные точечные решения NoSQL.

Другая категория предполагаемых пользователей InfiniSQL — это та, о которой Трэвис действительно знает, — компании, у которых есть приложения на монолитных платформах, отвечающих за от десятков до сотен тысяч сложных транзакций в секунду, таких как ассоциации кредитных карт. Он указывает, что такую рабочую нагрузку сложно перенести с больших коробочных архитектур, и что InfiniSQL может выполнять этот тип рабочей нагрузки в предполагаемых объемах и выше, но на серверах x86_64 под управлением Linux вместо больших и сверхдорогих платформ.

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

Модель актора отделяет логику обработки транзакций от хранилища и позволяет избежать блокировки областей памяти. Логика обработки обрабатывается одним набором субъектов, а хранение данных обрабатывается другим набором. Обмен сообщениями происходит между участниками независимо от того, на каком узле они находятся. Актер, управляющий транзакциями, не знает и не заботится о том, находятся ли данные локально или удаленно. В другом наборе субъектов субъект, управляющий определенным разделом данных, отвечает на сообщения независимо от их происхождения.

Хотя природа InfiniSQL в оперативной памяти может вызывать беспокойство, Трэвис отмечает, что его планы по обеспечению устойчивости в оперативной памяти заимствованы из мира высокопроизводительных хранилищ, где изменения записываются в память, а затем записываются на диск. Трэвис говорит:

«Они могут обойтись без этого, потому что у них есть резервные системы резервного питания от батарей, и каждая запись распределяется по нескольким областям кеша. Отсутствие потери питания или единой точки отказа не может привести к потере данных в высокопроизводительных системах хранения — и это действительно важно. Крупнейшие в мире платформы обработки транзакций полагаются на такой массив хранения. InfiniSQL намеревается реализовать ту же модель, за исключением того, что резервирование и управление питанием будут защищать сами узлы сервера базы данных. Это еще не реализовано полностью, но, если оно будет доступно, это будет означать, что InfiniSQL обеспечит долговечность в отношении производительности памяти ».

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


Добавить комментарий