Как db4o поддерживает производительность

Я прочитал здесь (поиск по строковый ключ «ядро работает в однопоточном режиме»), что ядро ​​db4o по своей природе однопоточное, тогда как оно поддерживает производительность / пропускную способность, когда несколько пользователей пытаются получить доступ к базе данных одновременно?


person Sree    schedule 15.06.2011    source источник
comment
Можете ли вы добавить доказательства этой однопоточности?   -  person Kees de Kooter    schedule 15.06.2011
comment
@Kees вот ссылка с ETH Zurich globis .ethz.ch / education / oodb / slides / 03-db4o-part-1.pdf и поиск по ядру строкового ключа работает в однопоточном режиме.   -  person Sree    schedule 15.06.2011


Ответы (1)


Да, db4o по своей сути однопоточный. Он использует один большой замок для защиты всех своих операций. Это хорошо видно в коде.

Как поддерживать пропускную способность? Ну это просто не так! db4o никогда не создавался для таких приложений, которые выполняют множество одновременных операций (например, веб-приложения). Он действительно создан для встраивания в настольные / мобильные приложения. Он не может справиться с нагрузкой на сервер. Для высокой пропускной способности вам нужно использовать более крупные базы данных.

Помимо однопоточности, db4o также не предлагает никакого хорошего контроля параллелизма для обнаружения конфликтующих изменений различных транзакций.

person Gamlor    schedule 15.06.2011
comment
Можете ли вы предложить мне хорошую объектно-ориентированную базу данных, которая хорошо работает в сочетании с веб-приложениями ASP.NET. Кто-нибудь проводил тестирование производительности с помощью db4o по сравнению с SQL Server? - person Sree; 15.06.2011
comment
Я лично могу порекомендовать RavenDB. Однако это не объектно-ориентированная база данных, а чертовски хорошая база данных документов, которая прекрасно работает для веб-приложений. - person Gamlor; 15.06.2011