Как узнать, обновил ли Couchbase или вставил запись с помощью UPSERT? - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Couchbase Java SDK для чтения и записи данных.В настоящее время у меня большое количество записей, которые нужно сохранить в Couchbase.Эти записи содержат как новую, так и существующую.

Я использую Bucket.upsert для этой функции.Но мне также нужно зафиксировать, сколько записей создано или обновлено в Couchbase.

Как добиться этого эффективно?Ниже приведен мой псевдокод, который у меня сейчас

JsonDocument doc = bucket.get("docId")
if (doc != null) {
    // Perform update
    updatedCount++;
} else {
    // perform insert
    insertedCount++;
}

Любая мысль сделать это лучше.Потому что у меня более 500 тыс. Записей для сохранения в Couchbase.

1 Ответ

0 голосов
/ 07 февраля 2019

К сожалению, в настоящее время мы не раскрываем, выполняет ли UPSERT вставку или обновление.

Если вы хотите немного снизить производительность, вы можете сделать вставку, а затем обновить, есливставка завершается неудачно и отслеживает, как часто происходит сбой вставки.Это должно дать вам некоторое представление о том, как часто upsert будет выполнять вставку, а не обновление.

Если это слишком большой удар по производительности, вы можете выполнить двухэтапную операцию в 1/1000 или 1/1000,0000 операций.Это должно обеспечивать снижение производительности при создании полезной информации.

...