Здравствуйте, Videoman, Вы писали:
V>По моему, это самое хреновое что можно сделать — лочить всех и вся во время записи, на неопределенное время. Кажется view не так работает. Мы можем взять, условно, слепок контейнера на текущий момент времени и можем модифицировать его как-то, не ограниченно по времени. Потом commit и изменения видят другие. Я конечно не знаю что PVA нужно, приходится гадать.
Это не самое плохое, можно ещё и на время чтения всех лочить...
Если коллекции небольшие, а скорости не очень критичны, то такой код подойдёт для очень большого количества задач.
V>Короче в общем виде задача не имеет смысла, из-за требований к памяти, производительности и т.д.
В общем виде эта задача равносильна написанию базы данных, которая работает с данными в памяти: запросы, транзакции и прочая SQLщина. Причём эта задача может быть решена, что называется "в лоб": создаём RAM-диск, прикручиваем какую-нибудь готовую библиотеку, типа SQLite поверх RAM-диска и вуаля, задача решена.