[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-08 Thread Nurb432


I was mostly teasing on that. "get off my lawn" sort of thing :)
Tho as i scanned thru it seemed like one of the no-SQL sorts of things. 

Tue Aug 08 2023 09:23:09 AM EDT from IGnatius T Foobar  Subject: Re: y creashRe: Database Recovery Tools

The only thing that's "all the rage with the kids" is *calling* it "NoSQL". Berkeley DB has been a simple key/value data store for 30 years. And until recently it's worked fine for us. 


 




[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-08 Thread IGnatius T Foobar
  
 Ok, here's what I'm starting to do.  You can totally follow the commit logs
to stay up to date. 
  
 database.c has been renamed to database_bdb.c for the obvious reason.  (We've
been here before, but it was about 25 years ago when we switched from GDBM
to Berkeley DB.)  The database interface was built to be swapped out.  It's
going to be even more modular soon. 
  
 If you look in database.h you're going to see a set of functions that is
basically the "driver API" for database backends.  My work over the next couple
of days will be to completely decouple Berkeley DB from the main server code
and turn it into a server module that registers as a database backend.  At
that point we will be able to build in any database driver we want -- just
like the OpenLDAP folks did. 
  
 I'll probably build the LMDB driver, and configure it to only build on 64-bit
systems.  With the modular interface, you guys can build SQLite or MariaDB
or whatever tickles your fancy. 
 


[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-08 Thread IGnatius T Foobar
The only thing that's "all the rage with the kids" is *calling* it "NoSQL".
 Berkeley DB has been a simple key/value data store for 30 years.  And until
recently it's worked fine for us. 
 


[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-07 Thread Nurb432


One of those new fangled no-sql things that is all the rage with the kids these days? 

Mon Aug 07 2023 10:44:40 AM EDT from IGnatius T Foobar  Subject: Re: y creashRe: Database Recovery Tools

To be honest I'm leaning towards LMDB, 


 




[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-07 Thread IGnatius T Foobar
  
 To be honest I'm leaning towards LMDB, and for the people running on Raspberry
Pi we will have to say "look, you're just going to have to install the 64-bit
OS before you upgrade" 
  
 Read through this presentation on LMDB.  It's practically designed for our
use case: 
  
 [ http://schd.ws/hosted_files/buildstuff14/96/20141120-BuildStuff-Lightning.pdf
] 
 


[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-07 Thread IGnatius T Foobar
  
 The options currently under consideration are SQLite, MariaDB, and LMDB.

  
 SQLite: well known, well respected, embeddable.  To do it right, however,
would require adding a schema layer.  The idea of just throwing away the SQL
semantics and storing all records as blobs kind of bothers me from a design
point of view. 
  
 MariaDB: requires a separate database server process, plus the schema issue.
 To be honest I'm not a big fan of this idea. 
  
 LMDB: also very well regarded, and considered by most in the open source
community to be "the" replacement for Berkeley DB.  It uses memory mapped
file semantics as its storage layer, so it's fast and stable.  The downside
is that because of memory mapped files, the maximum database size is 4 GB
on a 32-bit system.  This is not enough for Citadel, so we would have to end
support for 32-bit hardware.  On x86 this is no problem, but on ARM it could
be an issue. 
  
 More on this soon.  We have to do something. 
 


[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-07 Thread Nurb432


With as long as it was gone, i figured it was not intentional. :( 
I know i cant contribute code from lack of time and i'm so out of practice, but SQLite might be an easy and safe replacement? ( unless you go with the total abstraction model then its academic ) 

Mon Aug 07 2023 09:56:00 AM EDT from IGnatius T Foobar  Subject: Re: y creashRe: Database Recovery Tools

Aaaand Uncensored crashed last night and took the database with it. I don't know what the deal is with this; we've been running Berkeley DB for more than 20 years and it's never been this unstable before. But now it's a liability and I am afraid that some people will begin shying away from Citadel because of it -- if they're not already. It has to go. 


 




[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-05 Thread IGnatius T Foobar

 Ok, I think I found it.   

 [ https://docs.oracle.com/cd/E17276_01/html/installation/build_unix_small.html
]   

 Easy Install now uses the "--enable-smallbuild" flag, which disables verify.
  

 I am going to change it to
  
 --with-cryptography=no --disable-hash --disable-heap --disable-queue \ 
 --disable-replication --disable-statistics \ 
  
 That'll give us back the "verify" code and more verbose error messages too.

 


[Citadel Development] Re: y creashRe: Database Recovery Tools

2023-08-05 Thread IGnatius T Foobar
I changed your project role from Developer to Maintainer, so hopefully you
can do merges now.  I'm also going to try to get GitLab to send more "news"
to this room.