Totally agree with the premise, but still have some odd fond attachment to the current design :)
On Monday, 25 April 2022 at 19:44:46 UTC+10 Antonio Muñiz wrote: > 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/21008952-45d0-43bf-9ecc-757e304ae07cn%40googlegroups.com.
