Транзакции MongoDB?

, если вы используете java 8, попробуйте это

Arrays.stream(e.getStackTrace())
                .map(s->s.toString())
                .collect(Collectors.joining("\n"));

, вы можете найти код для функции getStackTrace (), предоставленный Throwable.java как:

public StackTraceElement[] getStackTrace() {
    return getOurStackTrace().clone();
}

и для StackTraceElement он предоставляет toString как:

public String toString() {
    return getClassName() + "." + methodName +
        (isNativeMethod() ? "(Native Method)" :
         (fileName != null && lineNumber >= 0 ?
          "(" + fileName + ":" + lineNumber + ")" :
          (fileName != null ?  "("+fileName+")" : "(Unknown Source)")));
}

Так что просто присоедините StackTraceElement к «\n»

29
задан Arnis Lapsa 16 April 2010 в 18:18
поделиться

5 ответов

MongoDB не поддерживает сложные многодокументные транзакции. Если это то, что вам абсолютно необходимо, вероятно, вам не подходит.

Однако в большинстве случаев мы обнаружили, что сложные транзакции не являются обязательными. Все операции в MongoDB являются атомарными в одном документе, и мы поддерживаем удобные модификаторы обновления , которые позволяют легко (и быстро) реализовать множество операций, требующих транзакции.

29
ответ дан 28 November 2019 в 01:30
поделиться

Это правда, что MongoDB не поддерживает транзакции из коробки, но вы можете реализовать оптимистичные транзакции самостоятельно. Они прекрасно подходят единице работы. Я написал пример Java и некоторые пояснения к GitHub , чтобы вы могли легко повторить в C #.

20
ответ дан rystsov 28 November 2019 в 01:30
поделиться

MongoDB 4.0 добавит поддержку многодокументных транзакций.

https://www.mongodb.com/transactions

1
ответ дан Benjamin Lorenz 28 November 2019 в 01:30
поделиться

Вы можете использовать вместо MongoDb TokuMX.

http://www.tokutek.com/products/tokumx-for-mongodb/

TokuMXTM - это высокопроизводительный дистрибутив MongoDB с открытым исходным кодом, который имеет значительно улучшена производительность и эффективность работы по сравнению с базовой MongoDB. TokuMX является заменой MongoDB и предлагает 20-кратное повышение производительности, уменьшение размера базы данных на 90% и поддержку транзакций ACID с MVCC.

0
ответ дан shau 28 November 2019 в 01:30
поделиться

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

До MongoDB 4.0 не было поддержки транзакций ACID с несколькими документами. Затем разработчики использовали «протокол двухфазного принятия» (единая база данных) и «протокол трехфазного принятия» (неблокирование в распределенных базах данных) для создания собственного уровня транзакций, который обеспечивал согласованность данных , но не выполнение «все или ничего» для сохранения целостности данных. Таким образом, это снизило производительность.

В MongoDB 4.0 добавлена ​​поддержка многодокументных транзакций ACID.

Источники:

https://en.wikipedia.org/wiki/Two-phase_commit_protocol

https://en.wikipedia.org / wiki / Three-phase_commit_protocol

https://www.mongodb.com/transactions

0
ответ дан Ayberk 28 November 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: