Я провел некоторое исследование с отцом-разрушителем, и есть одна вещь, которую я не могу понять.
Есть производители, которые предоставляют записи для кольцевого буфера. Существует кольцевой буфер, в основном фиксированный, но бесконечный массив. Есть потребители (в основном отдельные потоки), обрабатывающие записи из кольцевого буфера.
Я пытаюсь объяснить, как патерн разрушителя можно использовать в реальном сценарии фондового рынка.
Обычно у вас будет книга заказов, содержащая все заказы. Как я понимаю, производитель получит новый заказ от брокера. Производитель размещает заказ в кольцевом буфере. После размещения заказа в кольцевом буфере потребитель извлекает заказ и сверяет его с книгой заказов.
Теперь вот та часть, где у меня возникли проблемы с пониманием преимущества. Если будет несколько потребителей, а это то, что вам нужно для масштабируемой системы, как может быть несколько потребителей, раздающих заказы?
Книга заказов должна быть заблокирована при доступе к ней потребителя для обеспечения целостности. То, что я ищу, - это ответ на этот вопрос и приблизительное представление о том, как механизм сопоставления заказов может извлечь выгоду из этого патерна.
У LMAX есть собственный механизм сопоставления заказов, поэтому я должен что-то упустить.
Спасибо