Commit 178a924d authored by Radek Ošlejšek's avatar Radek Ošlejšek
Browse files

Merge branch '399-parallel-batch-memory-robust' into 'master'

Migrates db face dumps to Kryo, adds face dump size column

Closes #399

See merge request grp-fidentis/analyst2!456
parents 65cc4261 d9177646
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -130,6 +130,11 @@
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <version>3.4.4</version>
        </dependency>
        <dependency>
            <groupId>at.yawk.lz4</groupId>
            <artifactId>lz4-java</artifactId>
            <version>1.8.1</version>
        </dependency>
    </dependencies>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+11 −1
Original line number Diff line number Diff line
package cz.fidentis.analyst.data.face;


import jakarta.persistence.*;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Lob;
import jakarta.persistence.SequenceGenerator;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@@ -39,4 +46,7 @@ public class FaceEntity extends BaseEntity {
    @Lob
    @Column(name = "photo_preview")
    private byte[] photoPreview;

    @Column(name = "face_dump_size")
    private Long faceDumpSize;
}
+1 −0
Original line number Diff line number Diff line
@@ -7,4 +7,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
 */
public interface FaceEntityRepository extends JpaRepository<FaceEntity, Long> {

    void deleteByTaskId(Long taskId);
}
+6 −0
Original line number Diff line number Diff line
@@ -33,4 +33,10 @@ public interface FaceReference extends Serializable {
     */
    boolean isAverageFace();

    /**
     * Returns byte size of face dump
     * @return byte size of face dump
     */
    long getFaceDumpSize();

}
+21 −0
Original line number Diff line number Diff line
package cz.fidentis.analyst.data.face;


import cz.fidentis.analyst.data.face.impl.HumanFaceSerializer;
import cz.fidentis.analyst.data.mesh.MeshModel;

import java.io.File;
@@ -22,6 +23,16 @@ public interface FaceService {
     */
    StoredHumanFace getFaceByReference(FaceReference reference);

    /**
     * Returns face based on given reference. The deserialization is carried out by the provided kryo instance.
     * This is necessary for multi-threaded execution (Kryo is not thread-safe).
     *
     * @param reference  face reference
     * @param serializer Human face serializer
     * @return face based on given reference
     */
    StoredHumanFace getFaceByReference(FaceReference reference, HumanFaceSerializer serializer);

    /**
     * Returns face based on given id
     *
@@ -97,6 +108,16 @@ public interface FaceService {
     */
    FaceReference loadFace(Long projectId, File file) throws IOException;

    /**
     * Loads face from file.
     *
     * @param file File
     * @param serializer serializer instance
     * @return face reference
     * @throws IOException on failure
     */
    FaceReference loadFace(Long projectId, File file, HumanFaceSerializer serializer) throws IOException;

    /**
     * @param projectId
     * @return all faces from project
Loading