[Citadel Development] Re: Master: citserver coredump on Shutdown

2023-07-09 Thread IGnatius T Foobar
Potentially, yes.  I'm thinking more in terms of how to refactor the code.
 The database access stuff is all in `database.c` because there *was* a somewhat
pluggable architecture in the past -- from flat files to gdbm and later to
Berkeley DB. 
  
 Since we've been using Berkeley DB exclusively for 20+ years, some tight
couplings may have snuck in, so we'll have to identify them and properly 
abstract
them. 
  
 The pluggable database layer was, at the time, intended to be used to switch
between blob stores, not SQL databases.  I'm not against going SQL but it
would greatly impact how we build it -- and that's going to depend on who
is doing the work. 
  
 The way I see it, a Citadel Server binary would be linked against one (and
only one) database back end.  We've played around with linkable modules in
the past, and it ended up being a support nightmare.  Maybe that's different
now because
we only really have to support Linux and FreeBSD, and both of those are more
stable targets.   
  
 So if you have support for multiple database types, each one would have a
`citserver` binary, a `dump` binary, and a `load` binary.  Some of these would
be unnecessary if some of the back ends are SQL based and the dump format
is a standard SQL dump. 
  
 I see two different development paths.  One is a march towards LMDB and one
is a march towards SQL: 
  
 (A) Blob stores only: 
 1. Make sure the `database.c` interface is 100% decoupled from the rest of
the system. 
 2. Refactor `ctdl3264` into a dump-and-load program. 
 3. Develop drivers for LMDB, Cassandra, MongoDB, or whatever. 
  
 (B) Blob *and* SQL stores: 
 1. The new abstraction becomes the interfaces such as Ctdl[Get|Put]User,
Ctdl[Get|Put]Room, ForEachUser, etc.  Refactor the code so these interfaces
find their way into
the pluggable side of things. 
 2. Add new pluggable stores for SQLite, MariaDB, etc. 
 3. Refactor `ctdl3264` into a program that can dump the blob stores into
a standard SQL dump.  (Dump and load on the SQL based back ends would use
their native utilities.) 
  
 I'm interested in hearing any and all good ideas!  But no one gets a vote
unless they commit to helping  :) 
 


[Citadel Development] Re: Master: citserver coredump on Shutdown

2023-07-09 Thread LadySerenaKitty


MariaDB and/or MySQL

Sun Jul 09 2023 09:46:26 EDT from IGnatius T Foobar  Subject: Re: Master: citserver coredump on Shutdown

Grrr. Unrecoverable error on my database this morning. I think maybe it is time to put Berkeley DB out to pasture after all. Let's think about what we want the next to look like. 


 




[Citadel Development] Re: Master: citserver coredump on Shutdown

2023-07-09 Thread IGnatius T Foobar
  
 Grrr.  Unrecoverable error on my database this morning.  I think maybe it
is time to put Berkeley DB out to pasture after all. 
  
 Let's think about what we want the next to look like.