This is cool Basil!

> and my prototype did not address the key point of adding an ORM (like
Hibernate)

If (or when) the PoC reaches this point, I would suggest evaluating MyBatis
<https://github.com/mybatis/mybatis-3>. Not a full ORM, but its
simplicity and the lighter abstraction layer (compared to Hibernate) would
make it a good fit given the necessary backward compatibility.

On Thu, 21 Apr 2022 at 21:43, Basil Crow <[email protected]> wrote:

> Someone asked me for the tl;dr about this, and I wrote the following:
>
>    - The scalability limitations of flat XML files for storing thousands
>    of builds or hundreds of thousands of Pipeline steps should be obvious, and
>    they are a threat to the long-term sustainability of the project.
>    - An embedded database can address many of these use cases without
>    introducing new requirements on upgrade.
>    - SQLite is the ideal embedded database. Though it has concurrency
>    issues, these can be addressed by using multiple SQLite databases (think
>    one SQLite database to store all the Pipeline build steps for a Pipeline
>    run, another one to store the user database, etc).
>    - Running Jenkins on SQLite is not a pipe dream. While a non-trivial
>    project, it is within the realm of possibility, and it can be done
>    retaining compatibility.
>
> The Jenkins serialization API is object-oriented, and my prototype did not
> address the key point of adding an ORM (like Hibernate) with a session
> layer to manage caching. This would be essential for a full prototype, and
> implementing it in a backward-compatible way would be even more tricky. I
> stopped short of this, as it would take me well over one Saturday afternoon
> to put something like this together (starting by learning Hibernate from
> scratch). But on a high level it seems doable.
>
> With an ORM and a session layer one can start to think about replacing
> SQLite with a client-server database under the hood for more advanced
> installations. As others have implied, this opens the door to using e.g.
> Postgres as a warm standby in a high availability setup.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/CAFwNDjo_FDejwnZ-xZ%3DzooJ9jqxRHo7LscpBYjr-mbkEixijRg%40mail.gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/CAFwNDjo_FDejwnZ-xZ%3DzooJ9jqxRHo7LscpBYjr-mbkEixijRg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Antonio Muñiz
Human, Engineer
CloudBees, Inc.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAJc7kzSYpUSvP2QVYuwiC%2B2jK1L2KVUjtcnLqPUjXQstvmPGog%40mail.gmail.com.

Reply via email to