Мы массово вставляем записи в Hyperledger Fabric.Тем не менее, мы решаем проблему с тайм-аутом.Даже если мы продолжаем увеличивать время ожидания, эта ошибка будет возникать позже.
Каждая транзакция вставляет 1000 записей, используя PutState
в цикле для всех этих записей (слепая вставка, ничего в наборе для чтения).Мы также увеличили значение BatchTimeout до 3 с и MaxMessageCount до 100, чтобы получить более крупные блоки (мы видим 4 транзакции на блок, поэтому 4000 [4x1000 записей на транзакцию] записей вставляются в книгу с каждым блоком).
В случае сбоя массового обновления для CouchDB, и одноранговый узел должен повторить попытку для каждой (из 1000 записей на транзакцию) записей в отдельности, запросы выполняются слишком долго и превышают время ожидания.Но это наше предположение.Также мы нашли это: https://jira.hyperledger.org/browse/FAB-10558, но в нем говорится, что оно уже исправлено в v1.2.0, той версии, которую мы используем.
Полученная ошибка net/http: request canceled (Client.Timeout exceeded while reading body)
из журналов ниже:
Мы попытались установить следующую переменную среды в одноранговом контейнере:
CORE_CHAINCODE_EXECUTETIMEOUT=120s
А также req.setProposalWaitTime(120 * 1000)
при использовании Java SDK.
Но тогда мы просто получим ту же ошибку тайм-аута на более позднем этапе.Таким образом, мы можем продолжать увеличивать переменную тайм-аута до большего числа, но мы верим, что это повторится позже.Время, необходимое для вставки в CouchDB, пропорционально количеству записей в CouchDB?Может быть, обновление индекса займет больше времени, когда число документов увеличится?
Журнал ошибок времени выполнения, который мы получаем (после вставки примерно 2-4 миллионов записей), выглядит следующим образом:
October 5th 2018, 04:36:38.646 github.com/hyperledger/fabric/core/committer.(*LedgerCommitter).CommitWithPvtData(0xc4222db8c0, 0xc451e4f470, 0xc4312ddd40, 0xdf8475800)
October 5th 2018, 04:36:38.646 github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).deliverPayloads(0xc4220c5a00)
October 5th 2018, 04:36:38.646 goroutine 283 [running]:
October 5th 2018, 04:36:38.646 /opt/gopath/src/github.com/hyperledger/fabric/core/committer/committer_impl.go:105 +0x6b
October 5th 2018, 04:36:38.646 /opt/gopath/src/github.com/hyperledger/fabric/gossip/privdata/coordinator.go:236 +0xc3b
October 5th 2018, 04:36:38.646 /opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:771 +0x6c
October 5th 2018, 04:36:38.646
October 5th 2018, 04:36:38.646 github.com/hyperledger/fabric/core/ledger/kvledger.(*kvLedger).CommitWithPvtData(0xc421fb1860, 0xc451e4f470, 0x0, 0x0)
October 5th 2018, 04:36:38.646 github.com/hyperledger/fabric/gossip/privdata.(*coordinator).StoreBlock(0xc422286e60, 0xc42462cd80, 0x0, 0x0, 0x0, 0xc4312dde78, 0x7329db)
October 5th 2018, 04:36:38.646 github.com/hyperledger/fabric/gossip/state.(*GossipStateProviderImpl).commitBlock(0xc4220c5a00, 0xc42462cd80, 0x0, 0x0, 0x0, 0x0, 0x0)
October 5th 2018, 04:36:38.646 panic: Error during commit to txmgr:net/http: request canceled (Client.Timeout exceeded while reading body)
October 5th 2018, 04:36:38.646 /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/kvledger/kv_ledger.go:273 +0x870
October 5th 2018, 04:36:38.646 /opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:558 +0x3c5
October 5th 2018, 04:36:38.646 /opt/gopath/src/github.com/hyperledger/fabric/gossip/state/state.go:239 +0x681
October 5th 2018, 04:36:38.646 created by github.com/hyperledger/fabric/gossip/state.NewGossipStateProvider
October 5th 2018, 04:36:03.645 2018-10-04 20:36:00.783 UTC [kvledger] CommitWithPvtData -> INFO 466e[0m Channel [mychannel]: Committed block [1719] with 4 transaction(s)
October 5th 2018, 04:35:56.644 [33m2018-10-04 20:35:55.807 UTC [statecouchdb] commitUpdates -> WARN 465c[0m CouchDB batch document update encountered an problem. Retrying update for document ID:32216027-da66-4ecd-91a1-a37bdf47f07d
October 5th 2018, 04:35:56.644 [33m2018-10-04 20:35:55.866 UTC [statecouchdb] commitUpdates -> WARN 4663[0m CouchDB batch document update encountered an problem. Retrying update for document ID:6eaed2ae-e5c4-48b1-b063-20eb3009969b
October 5th 2018, 04:35:56.644 [33m2018-10-04 20:35:55.870 UTC [statecouchdb] commitUpdates -> WARN 4664[0m CouchDB batch document update encountered an problem. Retrying update for document ID:2ca2fbcc-e78f-4ed0-be70-2c4d7ecbee69
October 5th 2018, 04:35:56.644 [33m2018-10-04 20:35:55.904 UTC [statecouchdb] commitUpdates -> WARN 4667[0m CouchDB batch document update encountered an problem. ... and so on