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

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

12 мая 2022 г.

Наше сообщество открытого исходного кода сотрудничало с openGauss Huawei для создания распределенного решения с Apache ShardingSphere и openGauss.


Мы тестировали производительность вместе с openGauss на 16 серверах более часа. Результаты были отличными: наше совместное решение преодолело узкое место производительности одной машины, обеспечив в среднем 10 миллионов транзакций в минуту (tpmC).


Преодоление барьера в 10 миллионов tpmC


В этом тесте сообщество openGauss провело тестирование TPC-C на [BenchmarkSQL 5.0] (https://www.postgresql.org/message-id/CAGBW59f9q2Y4v-B3D8gje3xUsWz2Z-WaK9wYx4%3DhCY1zN%3D7%2BBQ%40mail.gmail.com). ), который представляет собой реализацию популярного эталонного теста базы данных TPC/C OLTP с открытым исходным кодом.


С точки зрения автономной производительности openGauss с ShardingSphere преодолел предел многоядерных ЦП: двухпроцессорный 128-ядерный Huawei Kunpeng достиг 1,5 млн транзакций в минуту, а движок таблиц, оптимизированных для памяти (MOT), достиг 3,5 млн транзакций в минуту.


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



В данном случае команда openGauss использовала семь машин для запуска BenchmarkSQL, адаптированного к ShardingSphere-JDBC, подключила восемь баз данных openGauss, и развернул 1 ShardingSphere-Proxy для инициализации данных, проверки согласованности и других операций обслуживания.


Благодаря возможности сегментирования базы данных ShardingSphere позволил распределить в общей сложности 8000 ячеек данных (более 800 ГБ) по 8 узлам openGauss. После более чем 1 часа тестирования не только сегментация была идеальной, но и средние результаты также достигли более 10 миллионов транзакций в минуту, что является лучшим показателем в отрасли в этом масштабе.


ShardingSphere и openGauss: создание экосистемного сотрудничества


Сообщество Apache ShardingSphere тесно сотрудничает с сообществом openGauss с 2021 года.


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


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


Как сторонник концепции Database Plus, Apache ShardingSphere стремится создать критерий и экосистему над разнородными базами данных и улучшить экосистему с помощью сегментирования, эластичного масштабирования, функций шифрования и многого другого. Размещенный над базами данных, ShardingSphere фокусируется на способе совместной работы баз данных, позволяющем разумно и в полной мере использовать возможности вычислений и хранения базы данных.


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


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


Два наших сообщества совместно создали решение для распределенной базы данных, подходящее для высококонкурентных сценариев онлайн-обработки транзакций (OLTP), объединив мощную автономную производительность openGauss с распределенными возможностями, предоставляемыми экосистемой Apache ShardingSphere.


Построение распределенной базы данных на основе openGauss с помощью ShardingSphere


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



В настоящее время ShardingSphere предоставляет пользователям два метода доступа, а именно ShardingSphere-JDBC и ShardingSphere-Proxy.


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


ShardingSphere-Proxy развертывается для добавления некоторых возможностей и операций базы данных на уровне прокси, позволяя пользователям работать с ShardingSphere, как если бы это была собственная база данных, для лучшего взаимодействия с пользователем.


ShardingSphere-JDBC и ShardingSphere-Proxy можно развертывать вместе. Мы рекомендуем использовать это смешанное развертывание, чтобы сделать систему удобной для пользователя и повысить ее производительность.



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


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


Вывод


Apache ShardingSphere и openGauss могут искать потенциальные возможности для сотрудничества.


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


Успех сотрудничества двух наших сообществ — это только начало того, как наши два сообщества создают совместную экосистему баз данных.


💡 О openGauss


openGauss — это система управления реляционными базами данных с открытым исходным кодом. Он обладает функциями корпоративного уровня, такими как многоядерная высокая производительность, полноценная безопасность и интеллектуальное управление.


Он объединяет многолетний опыт Huawei в области разработки ядра в области баз данных и обеспечивает адаптацию и оптимизацию архитектуры, транзакций, механизма хранения, оптимизатора и архитектуры ARM.


💡 О TPC-C


Тест производительности обработки транзакций Совета C или TPC-C — это тест, используемый для сравнения производительности систем оперативной обработки транзакций (OLTP). Он был выпущен Советом по производительности обработки транзакций (TPC) в 1992 году. Последнее обновление — TPC-C v5.11, опубликованное в 2010 году.


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


TPC-C измеряется в транзакциях в минуту (tpmC). В то время как бенчмарк отражает деятельность оптового поставщика, TPC-C не ограничивается деятельностью какого-либо конкретного бизнес-сегмента, а скорее представляет любую отрасль, которая должна управлять, продавать или распространять продукт или услугу.


Ссылки на проект Apache ShardingSphere:


[ShardingSphere Github] (https://github.com/apache/shardingsphere/issues?page=1&q=is%3Aopen+is%3Aissue+label%3A%22project%3A+OpenForce+2022%22)


ShardingSphere Твиттер


ShardingSphere Slack


[Руководство для авторов] (https://shardingsphere.apache.org/community/cn/contribute/)


Также опубликовано [здесь] (https://medium.com/codex/apache-shardingsphere-opengauss-breaking-the-distributed-database-performance-record-with-10-b8ced05daa37).



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE