mirror of
https://github.com/corda/corda.git
synced 2024-12-19 04:57:58 +00:00
Removed redundant serialisation of checkpoints (#1004)
This commit is contained in:
parent
3138e2b6de
commit
3888635055
@ -1,11 +1,10 @@
|
||||
package net.corda.node.services.persistence
|
||||
|
||||
import net.corda.core.serialization.SerializationDefaults
|
||||
import net.corda.core.serialization.deserialize
|
||||
import net.corda.core.serialization.serialize
|
||||
import net.corda.core.serialization.SerializedBytes
|
||||
import net.corda.node.services.api.Checkpoint
|
||||
import net.corda.node.services.api.CheckpointStorage
|
||||
import net.corda.node.utilities.*
|
||||
import net.corda.node.utilities.DatabaseTransactionManager
|
||||
import net.corda.node.utilities.NODE_DATABASE_PREFIX
|
||||
import javax.persistence.Column
|
||||
import javax.persistence.Entity
|
||||
import javax.persistence.Id
|
||||
@ -28,11 +27,11 @@ class DBCheckpointStorage : CheckpointStorage {
|
||||
var checkpoint: ByteArray = ByteArray(0)
|
||||
)
|
||||
|
||||
override fun addCheckpoint(value: Checkpoint) {
|
||||
override fun addCheckpoint(checkpoint: Checkpoint) {
|
||||
val session = DatabaseTransactionManager.current().session
|
||||
session.save(DBCheckpoint().apply {
|
||||
checkpointId = value.id.toString()
|
||||
checkpoint = value.serialize(context = SerializationDefaults.CHECKPOINT_CONTEXT).bytes
|
||||
checkpointId = checkpoint.id.toString()
|
||||
this.checkpoint = checkpoint.serializedFiber.bytes
|
||||
})
|
||||
}
|
||||
|
||||
@ -50,10 +49,9 @@ class DBCheckpointStorage : CheckpointStorage {
|
||||
val criteriaQuery = session.criteriaBuilder.createQuery(DBCheckpoint::class.java)
|
||||
val root = criteriaQuery.from(DBCheckpoint::class.java)
|
||||
criteriaQuery.select(root)
|
||||
val query = session.createQuery(criteriaQuery)
|
||||
val checkpoints = query.resultList.map { e -> e.checkpoint.deserialize<Checkpoint>(context = SerializationDefaults.CHECKPOINT_CONTEXT) }.asSequence()
|
||||
for (e in checkpoints) {
|
||||
if (!block(e)) {
|
||||
for (row in session.createQuery(criteriaQuery).resultList) {
|
||||
val checkpoint = Checkpoint(SerializedBytes(row.checkpoint))
|
||||
if (!block(checkpoint)) {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user