From e788ca53cd31d8593103ca79f252dad44b44ecce Mon Sep 17 00:00:00 2001 From: Jonas Theis <mail@jonastheis.de> Date: Wed, 17 Jun 2020 17:09:18 +0200 Subject: [PATCH] Adjust cache time of object storage (#490) --- .../packages/branchmanager/objectstorage.go | 10 ++++++---- .../packages/tangle/objectstorage.go | 2 ++ .../valuetransfers/packages/tangle/tangle.go | 19 +++++++++---------- packages/binary/messagelayer/tangle/tangle.go | 10 ++++++---- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/dapps/valuetransfers/packages/branchmanager/objectstorage.go b/dapps/valuetransfers/packages/branchmanager/objectstorage.go index fede032f..c9cbfe4a 100644 --- a/dapps/valuetransfers/packages/branchmanager/objectstorage.go +++ b/dapps/valuetransfers/packages/branchmanager/objectstorage.go @@ -15,6 +15,8 @@ const ( osChildBranch osConflict osConflictMember + + cacheTime = 30 * time.Second ) var ( @@ -24,23 +26,23 @@ var ( }) osBranchOptions = []objectstorage.Option{ - objectstorage.CacheTime(60 * time.Second), + objectstorage.CacheTime(cacheTime), osLeakDetectionOption, } osChildBranchOptions = []objectstorage.Option{ - objectstorage.CacheTime(60 * time.Second), + objectstorage.CacheTime(cacheTime), objectstorage.PartitionKey(BranchIDLength, BranchIDLength), osLeakDetectionOption, } osConflictOptions = []objectstorage.Option{ - objectstorage.CacheTime(60 * time.Second), + objectstorage.CacheTime(cacheTime), osLeakDetectionOption, } osConflictMemberOptions = []objectstorage.Option{ - objectstorage.CacheTime(60 * time.Second), + objectstorage.CacheTime(cacheTime), objectstorage.PartitionKey(ConflictIDLength, BranchIDLength), osLeakDetectionOption, } diff --git a/dapps/valuetransfers/packages/tangle/objectstorage.go b/dapps/valuetransfers/packages/tangle/objectstorage.go index 29fee08f..e7ed0130 100644 --- a/dapps/valuetransfers/packages/tangle/objectstorage.go +++ b/dapps/valuetransfers/packages/tangle/objectstorage.go @@ -22,6 +22,8 @@ const ( osAttachment osOutput osConsumer + + cacheTime = 20 * time.Second ) var ( diff --git a/dapps/valuetransfers/packages/tangle/tangle.go b/dapps/valuetransfers/packages/tangle/tangle.go index fd1d4e37..cdfca6ea 100644 --- a/dapps/valuetransfers/packages/tangle/tangle.go +++ b/dapps/valuetransfers/packages/tangle/tangle.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "math" - "time" "github.com/iotaledger/hive.go/async" "github.com/iotaledger/hive.go/events" @@ -50,15 +49,15 @@ func New(store kvstore.KVStore) (tangle *Tangle) { tangle = &Tangle{ branchManager: branchmanager.New(store), - payloadStorage: osFactory.New(osPayload, osPayloadFactory, objectstorage.CacheTime(1*time.Second)), - payloadMetadataStorage: osFactory.New(osPayloadMetadata, osPayloadMetadataFactory, objectstorage.CacheTime(1*time.Second)), - missingPayloadStorage: osFactory.New(osMissingPayload, osMissingPayloadFactory, objectstorage.CacheTime(1*time.Second)), - approverStorage: osFactory.New(osApprover, osPayloadApproverFactory, objectstorage.CacheTime(1*time.Second), objectstorage.PartitionKey(payload.IDLength, payload.IDLength), objectstorage.KeysOnly(true)), - transactionStorage: osFactory.New(osTransaction, osTransactionFactory, objectstorage.CacheTime(1*time.Second), osLeakDetectionOption), - transactionMetadataStorage: osFactory.New(osTransactionMetadata, osTransactionMetadataFactory, objectstorage.CacheTime(1*time.Second), osLeakDetectionOption), - attachmentStorage: osFactory.New(osAttachment, osAttachmentFactory, objectstorage.CacheTime(1*time.Second), objectstorage.PartitionKey(transaction.IDLength, payload.IDLength), osLeakDetectionOption), - outputStorage: osFactory.New(osOutput, osOutputFactory, OutputKeyPartitions, objectstorage.CacheTime(1*time.Second), osLeakDetectionOption), - consumerStorage: osFactory.New(osConsumer, osConsumerFactory, ConsumerPartitionKeys, objectstorage.CacheTime(1*time.Second), osLeakDetectionOption), + payloadStorage: osFactory.New(osPayload, osPayloadFactory, objectstorage.CacheTime(cacheTime)), + payloadMetadataStorage: osFactory.New(osPayloadMetadata, osPayloadMetadataFactory, objectstorage.CacheTime(cacheTime)), + missingPayloadStorage: osFactory.New(osMissingPayload, osMissingPayloadFactory, objectstorage.CacheTime(cacheTime)), + approverStorage: osFactory.New(osApprover, osPayloadApproverFactory, objectstorage.CacheTime(cacheTime), objectstorage.PartitionKey(payload.IDLength, payload.IDLength), objectstorage.KeysOnly(true)), + transactionStorage: osFactory.New(osTransaction, osTransactionFactory, objectstorage.CacheTime(cacheTime), osLeakDetectionOption), + transactionMetadataStorage: osFactory.New(osTransactionMetadata, osTransactionMetadataFactory, objectstorage.CacheTime(cacheTime), osLeakDetectionOption), + attachmentStorage: osFactory.New(osAttachment, osAttachmentFactory, objectstorage.CacheTime(cacheTime), objectstorage.PartitionKey(transaction.IDLength, payload.IDLength), osLeakDetectionOption), + outputStorage: osFactory.New(osOutput, osOutputFactory, OutputKeyPartitions, objectstorage.CacheTime(cacheTime), osLeakDetectionOption), + consumerStorage: osFactory.New(osConsumer, osConsumerFactory, ConsumerPartitionKeys, objectstorage.CacheTime(cacheTime), osLeakDetectionOption), Events: *newEvents(), } diff --git a/packages/binary/messagelayer/tangle/tangle.go b/packages/binary/messagelayer/tangle/tangle.go index 26158982..1133c98a 100644 --- a/packages/binary/messagelayer/tangle/tangle.go +++ b/packages/binary/messagelayer/tangle/tangle.go @@ -21,6 +21,8 @@ const ( // MissingCheckInterval is the interval on which it is checked whether a missing // message is still missing. MissingCheckInterval = 5 * time.Second + + cacheTime = 20 * time.Second ) // Tangle represents the base layer of messages. @@ -55,10 +57,10 @@ func New(store kvstore.KVStore) (result *Tangle) { result = &Tangle{ shutdown: make(chan struct{}), - messageStorage: osFactory.New(PrefixMessage, messageFactory, objectstorage.CacheTime(10*time.Second), objectstorage.LeakDetectionEnabled(false)), - messageMetadataStorage: osFactory.New(PrefixMessageMetadata, MessageMetadataFromStorageKey, objectstorage.CacheTime(10*time.Second), objectstorage.LeakDetectionEnabled(false)), - approverStorage: osFactory.New(PrefixApprovers, approverFactory, objectstorage.CacheTime(10*time.Second), objectstorage.PartitionKey(message.IdLength, message.IdLength), objectstorage.LeakDetectionEnabled(false)), - missingMessageStorage: osFactory.New(PrefixMissingMessage, missingMessageFactory, objectstorage.CacheTime(10*time.Second), objectstorage.LeakDetectionEnabled(false)), + messageStorage: osFactory.New(PrefixMessage, messageFactory, objectstorage.CacheTime(cacheTime), objectstorage.LeakDetectionEnabled(false)), + messageMetadataStorage: osFactory.New(PrefixMessageMetadata, MessageMetadataFromStorageKey, objectstorage.CacheTime(cacheTime), objectstorage.LeakDetectionEnabled(false)), + approverStorage: osFactory.New(PrefixApprovers, approverFactory, objectstorage.CacheTime(cacheTime), objectstorage.PartitionKey(message.IdLength, message.IdLength), objectstorage.LeakDetectionEnabled(false)), + missingMessageStorage: osFactory.New(PrefixMissingMessage, missingMessageFactory, objectstorage.CacheTime(cacheTime), objectstorage.LeakDetectionEnabled(false)), Events: *newEvents(), } -- GitLab