здравей
Искам да получа данни в база данни на многоядрена система с ative WAL, използвайки JDBC. Мислех да създам множество нишки в моето приложение, за да вмъкна данни паралелно.
Ако приложението има множество нишки, ще трябва да увелича нивото на изолация до Repeatable Read
, което в MVCC-бази данни трябва да бъде картографирано на Snapshot isolation
.
Ако използвах една нишка, нямаше да имам нужда от нива на изолация. Доколкото ми е известно, повечето Snapshot isolation
бази данни анализират наборите за запис на всички транзакции, които биха могли да имат конфликт, и след това връщат всички реални транзакции с изключение на една. По-конкретно говоря за Oracle, InnoDB и PostgreSQL.
1.) Скъпо ли е това анализиране на наборите за запис?
2.) Добра идея ли е вложките да бъдат многонишкови за по-висока обща производителност? Истинските конфликти са почти невъзможни поради приложния слой, захранващ нишките без конфликтни неща. Но базата данни ще бъде предпазна мрежа.