Если одновременная запись создает конфликты и целостность данных является проблемой, NoSQL не является, вероятно, вашим путем. Вы можете легко протестировать это с помощью управления данными, которое поддерживает «оптимистичный параллелизм», поскольку тогда вы можете измерить конфликты блокировки реальной жизни и проанализировать их в деталях.
Я немного удивлен, когда вы говорите, что ожидаете проблем «без каких-либо дальнейших подробностей. Позвольте мне дать вам один ответ: исходя из фактов, которые вы нам дали. Что такое 100 000 источников и что такое сценарий написания? MySQl не лучший пример обработки масштабируемой параллельная операций записи и т.д.
было бы полезно, если бы вы предоставить какое-то прецедент (ы) или что-нибудь помогает понять проблему в деталях.
Позволь мне взять два Примеры: В базе данных памяти, имеющей расширенный диспетчер писем, управление версиями данных и т. д., можно легко взять 1М «писателей», а авторы - это сетевые элементы, а приложение - передовая система NMS. конфликты, оптимистический параллелизм, буферизация записи в памяти до 16 ГБ, асинхронная параллельная запись на 200+ виртуальных шпинделей (SSD или магнитные диски) и т. д. Настоящая «присоска», чтобы есть новые данные! Отличный кандидат для того, чтобы увеличить производительность до предела.
2-й пример: MSC, имеющий разреженное числовое пространство, например. мобильные номера являются «кластерами» номеров. Огромное количество мест, но макс. 200M индивидуальных адресов. Очень редкие ситуации, когда есть противоречивые записи. RDBMS была заменена файлами с отображением памяти. И улучшение производительности было близко к 1000x, да 1000x в лучшем случае, и «только» 100x в худшем случае. Код замены составлял примерно 300 строк C. Это был True BigNoSQL, так как он хорошо подходил для решения проблемы.
Итак, короче говоря, не зная подробностей, нет «серебряной пули», чтобы ответить на ваш вопрос. Мы здесь не после посудомоечных машин, это просто «большие плохие данные». Когда мы не знаем, является ли ваша рабочая нагрузка «транзакционной». число или IO и чувствительность к задержке, или «BLOB like» aka. потоковые медиа, геоданные и т. д., это даст 100% неправильных результатов, чтобы обещать что-либо. Полоса пропускания и io-rate/latency/транзакции более или менее являются компромиссом в реальной жизни.
См., Например, http://publib.boulder.ibm.com/infocenter/soliddb/v6r3/index.jsp?topic=/com.ibm.swg.im.soliddb.sql.doc/doc/pessimistic.vs.optimistic.concurrency.control.html для некоторых дополнительных деталей.
Что заставляет вас думать, что реляционная БД будет узким местом, если вы не представляете, насколько быстро система NoSQL DB находится в вашей ситуации? – ZippyV
Мы провели некоторые симуляционные тесты с MySQL и с возможными одновременными 100 000 источниками, записывающими данные без остановок в БД, вызывает замедление. – SyBer
Почему вы не делаете те же тесты с различными системами NoSQL? – ZippyV