Подожду решения на A2, а пока для сравнения пример на angular light: https://jsfiddle.net/lega911/1pccjvax/
работает без участия dity-checking в отличие от A2
Ещё такой пример - когда конечный ид генерирует сам клиент (при этом клент должен быть доверенным), в этом случае можно балансировать, если нода тормозит или упала, то можно отправить на другую ноду не боясь о дублях (они высекаются по ид)
sim3x: Вы пытаетесь перевести тред в другую плоскость, я вам показал где это имеет смысл (ид до запроса), впрочем вы против ничего не сказали. Если у вас есть что сказать, выкладывайте.
sim3x: были но уже ничего не помню, но если вам интересно можете прикинуть (сравнить) разницу между построчным комитами и одним bulk комитом, второй будет явно быстрее.
tkutru: sim3x: Есть пачка примеров, в основном связаны с оптимизацией.
Например клиент прислал данные, мы ему сразу вернули результирующий ид и отпустили клиента, а приложение дальше начинает транзакцию с сохранением в этот ид.
Или например, когда получить ид не так ловко, есть однонаправленный поток задач (через rabbitmq), мы сразу отдали клиенту ид, а удаленный воркер уже не спеша выполняет задачу и ложит результат по этому ид.
Ещё MongoDB только так и работает, если вы не указали ид (ObjectId) он автоматом генерируется на клиенте перед отправкой на сервер. В итоге что-бы иметь ид не нужно ждать ответа от сервера, когда он закончит.
Blowspirit: > С учетом необходимость большого количества ssd это под вопросом
Можно на HDD, будет медленнее, но тоже быстро, или вы как планировали?, если заливать в БД то размер будет ещё больше.
> полностью самописное
Не полностью (для шардинга и репликации можно gridfs например), но да, для большой нагрузки все делают кастомные решения, думаете поиск гугла или яндекса на каком нибудь sphinx/elastic работает что ли?
Хотя можете попробовать что-то готовое "тормозное", (покажите мне хоть один сервер БД который может 27 млн/сек на одной ноде)