Здесь предлагается архитектура аппаратно-программной конфигурации для обеспечения максимального параллелизма при использовании движка базы данных RDM.
Рекомендуемая архитектура содержит отдельный дисковый контроллер для каждого дискового накопителя. Почему? Потому что даже при нескольких ядрах процессора, выполняющих несколько независимых процессов над разными дисковыми файлами, один дисковый контроллер будет в конечном итоге сериализовать доступ к диску, создавая узкое место. Поэтому компьютер является многоядерным, с 2 ядрами на каждый дисковый контроллер/диск. В нашем примере 8 ядер с 4 контроллерами/дисками.
Учитывая эту аппаратную конфигурацию, необходимо разработать программное обеспечение для параллельной работы. Необходимым компонентом для параллельной работы программного обеспечения является база данных, разбитая на разделы таким образом, что каждый раздел может обновляться независимо от других разделов.
Приложения на рисунке выше открывают 4 различные базы данных в рамках 4 различных структур «задач», а затем на основе первичного ключа решают, к какой базе данных относится та или иная запись. Оно либо найдет ее там, либо создаст ее там. Чтение происходит по-другому. В рамках одной структуры «задачи» все 4 базы данных должны быть открыты одним вызовом с использованием функции объединения баз данных, а чтение должно выполняться без блокировок с использованием MVCC (Multi-Version Concurrency Control) транзакций «только чтение».
Обратите также внимание, что ядра процессора изображены так, как будто они назначены процессам приложения, но на самом деле они обычно работают как SMP, поэтому они будут запланированы для выполнения тех процессов, которые доступны. В данном случае это потенциально будут все 4 TFS и до 4 прикладных процессов.
Используя архитектуру, подобную этой, разработчики RDM могут проектировать приложения, чтобы использовать преимущества современного оборудования и операционных систем. Благодаря функциям, поддерживающим параллелизм в механизме данных, RDM позволяет разработчикам создавать приложения, которые могут масштабироваться с помощью предоставляемого оборудования.
WhatsApp us