mirror of
https://github.com/corda/corda.git
synced 2025-03-12 07:23:59 +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
|
package net.corda.node.services.persistence
|
||||||
|
|
||||||
import net.corda.core.serialization.SerializationDefaults
|
import net.corda.core.serialization.SerializedBytes
|
||||||
import net.corda.core.serialization.deserialize
|
|
||||||
import net.corda.core.serialization.serialize
|
|
||||||
import net.corda.node.services.api.Checkpoint
|
import net.corda.node.services.api.Checkpoint
|
||||||
import net.corda.node.services.api.CheckpointStorage
|
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.Column
|
||||||
import javax.persistence.Entity
|
import javax.persistence.Entity
|
||||||
import javax.persistence.Id
|
import javax.persistence.Id
|
||||||
@ -28,11 +27,11 @@ class DBCheckpointStorage : CheckpointStorage {
|
|||||||
var checkpoint: ByteArray = ByteArray(0)
|
var checkpoint: ByteArray = ByteArray(0)
|
||||||
)
|
)
|
||||||
|
|
||||||
override fun addCheckpoint(value: Checkpoint) {
|
override fun addCheckpoint(checkpoint: Checkpoint) {
|
||||||
val session = DatabaseTransactionManager.current().session
|
val session = DatabaseTransactionManager.current().session
|
||||||
session.save(DBCheckpoint().apply {
|
session.save(DBCheckpoint().apply {
|
||||||
checkpointId = value.id.toString()
|
checkpointId = checkpoint.id.toString()
|
||||||
checkpoint = value.serialize(context = SerializationDefaults.CHECKPOINT_CONTEXT).bytes
|
this.checkpoint = checkpoint.serializedFiber.bytes
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,10 +49,9 @@ class DBCheckpointStorage : CheckpointStorage {
|
|||||||
val criteriaQuery = session.criteriaBuilder.createQuery(DBCheckpoint::class.java)
|
val criteriaQuery = session.criteriaBuilder.createQuery(DBCheckpoint::class.java)
|
||||||
val root = criteriaQuery.from(DBCheckpoint::class.java)
|
val root = criteriaQuery.from(DBCheckpoint::class.java)
|
||||||
criteriaQuery.select(root)
|
criteriaQuery.select(root)
|
||||||
val query = session.createQuery(criteriaQuery)
|
for (row in session.createQuery(criteriaQuery).resultList) {
|
||||||
val checkpoints = query.resultList.map { e -> e.checkpoint.deserialize<Checkpoint>(context = SerializationDefaults.CHECKPOINT_CONTEXT) }.asSequence()
|
val checkpoint = Checkpoint(SerializedBytes(row.checkpoint))
|
||||||
for (e in checkpoints) {
|
if (!block(checkpoint)) {
|
||||||
if (!block(e)) {
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user