• The future of SMB (Synchronet Message Base)

    From Digital Man@1:103/705 to All on Monday, April 08, 2019 15:56:20
    I have an experimental fork of Synchronet v3.17 which uses SMB for the filebases. Not only does this resolve the 8.3 filename storage format limitation, but it solves a lot of capacity (e.g. description and extended description lenghts) and performance problems with the current filebase format and potentially enables msgbase-like features, like discussion threads, voting, etc.

    My plan (always subject to change) is to merge that fork in after a v3.17c release and then make that version (with SMB filebases) a v3.18 release, hopefully sometime this year.

    After that, SMB itself is possibly on the chopping block. I've been looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and performance issues. In addition, anyone familiar with sqlite should be able to write their own msgbase tools in a wide variety of languages.

    Any SQL database experts out there? This would be my first programming project utilizing one.

    digital man

    Synchronet "Real Fact" #44:
    Synchronet added JavaScript suppport with v3.10a (2001).
    Norco, CA WX: 85.5øF, 30.0% humidity, 1 mph NE wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Nightfox@1:103/705 to Digital Man on Monday, April 08, 2019 16:50:50
    Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to All on Mon Apr 08 2019 03:56 pm

    I have an experimental fork of Synchronet v3.17 which uses SMB for the filebases. Not only does this resolve the 8.3 filename storage format limitation, but it solves a lot of capacity (e.g. description and extended description lenghts) and performance problems with the current filebase format and potentially enables msgbase-like features, like discussion threads, voting, etc.

    That could be interesting.. Though, I'm not sure how much people would want to discuss the files. Voting might be more interesting for files - People could upvote or downvote files depending on how valuable/interesting or how useless/bad they think the file is.
    I see some downloads from my BBS occasionally, but these days I don't think people download from BBSes very often. And, although I could see there being some sort of reward system for users (i.e., file ratios changing) based on file upvotes/dovnvotes, that might not be as relevant these days as it once was back in the 80s/90s.

    My plan (always subject to change) is to merge that fork in after a v3.17c release and then make that version (with SMB filebases) a v3.18 release, hopefully sometime this year.

    After that, SMB itself is possibly on the chopping block. I've been looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and performance issues. In addition, anyone familiar with sqlite should be able to write their own msgbase tools in a wide variety of languages.

    Do you think the JavaScript interface in regards to the MessageBase class, voting functions, message header objects, etc. will change significantly?

    Any SQL database experts out there? This would be my first programming project utilizing one.

    I wouldn't consider myself an 'expert' per se, but I've done some SQL work
    in the past with C++. It's been about 12 years, but I worked on a project where we used MySQL and PostgreSQL and interfaced to it with C++ (and Perl), and we had a heirarchy of database classes in C++ to interface with either one (a parent class, and child classes derived from it to interface specifically with MySQL and PostgreSQL using their respective C/C++ libraries).

    Nightfox

    ---
    þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Tony Langdon@3:633/410 to Digital Man on Tuesday, April 09, 2019 10:46:00
    On 04-08-19 15:56, Digital Man wrote to All <=-

    I have an experimental fork of Synchronet v3.17 which uses SMB for the filebases. Not only does this resolve the 8.3 filename storage format

    This sounds interesting, especially going to SQLite for the messagebase. Be interesting to see how this goes, and how it performs, compared to SMB.


    ... Every action has an equal and opposite government program
    === MultiMail/Win v0.51
    --- SBBSecho 3.03-Linux
    * Origin: Freeway BBS Bendigo,Australia freeway.apana.org.au (3:633/410)
  • From dmxrob@1:103/705 to Digital Man on Monday, April 08, 2019 21:18:44
    Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to All on Mon Apr 08 2019 03:56 pm

    After that, SMB itself is possibly on the chopping block. I've been looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current

    I can see storing it in a database, with a published scheme, opening up a whole slew of ways to interface the message base with various tools, web interfaces and networking. Not to mention archiving functions - something that on the surface may seem a trivial function, but could have a lot of useful purpose as time goes on.

    Any SQL database experts out there? This would be my first programming project utilizing one.

    The biggest thing to keep in mind, for performance, is indexes. They can be death of your DB if not setup correctly. SQL in itself isn't that bad to learn. I'm no expert in any means, though I've done SQL queries and such for over 25+ years now, and always happy to lend any type of hand that I can.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to Nightfox on Monday, April 08, 2019 22:03:56
    Re: The future of SMB (Synchronet Message Base)
    By: Nightfox to Digital Man on Mon Apr 08 2019 04:50 pm

    That could be interesting.. Though, I'm not sure how much people would want could upvote or downvote files depending on how valuable/interesting or how useless/bad they think the file is.
    I see some downloads from my BBS occasionally, but these days I don't think people download from BBSes very often. And, although I could see there being some sort of reward system for users (i.e., file ratios changing) based on file upvotes/dovnvotes, that might not be as relevant these days as it once was back in the 80s/90s.

    They're just ideas. Performance, reliability, and extensibility. That's the main thing I'm after in any changes to any file formats (where it matters).

    My plan (always subject to change) is to merge that fork in after a v3.17c release and then make that version (with SMB filebases) a v3.18 release, hopefully sometime this year.

    After that, SMB itself is possibly on the chopping block. I've been looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and performance issues. In addition, anyone familiar with sqlite should be able to write their own msgbase tools in a wide variety of languages.

    Do you think the JavaScript interface in regards to the MessageBase class, voting functions, message header objects, etc. will change significantly?

    I will try to minimize any changes to APIs (C and JS), but I just won't know until I do it.

    Any SQL database experts out there? This would be my first programming project utilizing one.

    I wouldn't consider myself an 'expert' per se, but I've done some SQL work in the past with C++. It's been about 12 years, but I worked on a project where we used MySQL and PostgreSQL and interfaced to it with C++ (and Perl), and we had a heirarchy of database classes in C++ to interface with either one (a parent class, and child classes derived from it to interface specifically with MySQL and PostgreSQL using their respective C/C++ libraries).

    Well I'm mainly interested in input from folks who've designed database schemas. I want to try to do it right the first time (naturally).


    digital man

    Synchronet/BBS Terminology Definition #55:
    R0DENT = Derogatory reference to a young BBS user of the 1990's
    Norco, CA WX: 70.1øF, 53.0% humidity, 0 mph S wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From echicken@1:103/705 to Digital Man on Tuesday, April 09, 2019 11:10:27
    Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to All on Mon Apr 08 2019 15:56:20

    Any SQL database experts out there? This would be my first programming project utilizing one.

    Not an expert by any means, but I use SQL in many projects and interact with SQL DBs just about every day.

    looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and performance issues. In addition, anyone familiar with sqlite should be

    Would like to hear more about your plans for the schema. I can see this making it much easier to get messages-by-thread, and that alone would be great.

    If, while you're at it, you can add some sqlite stuff to the JS environment (not just abstracted SMB-related things) that would be handy. Even if it's just the bare minimum, stuff written in JS could be layered on top of that.

    ---
    echicken
    electronic chicken bbs - bbs.electronicchicken.com - 416-425-5435
    þ Synchronet þ electronic chicken bbs - bbs.electronicchicken.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to echicken on Tuesday, April 09, 2019 10:24:06
    Re: The future of SMB (Synchronet Message Base)
    By: echicken to Digital Man on Tue Apr 09 2019 11:10 am

    Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to All on Mon Apr 08 2019 15:56:20

    Any SQL database experts out there? This would be my first programming project utilizing one.

    Not an expert by any means, but I use SQL in many projects and interact with SQL DBs just about every day.

    looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and
    performance issues. In addition, anyone familiar with sqlite should be

    Would like to hear more about your plans for the schema. I can see this making
    it much easier to get messages-by-thread, and that alone would be great.

    Yes. I think the ability to add indexes as needed could speed things up greatly for new "use cases".

    If, while you're at it, you can add some sqlite stuff to the JS environment (not just abstracted SMB-related things) that would be handy. Even if it's just the bare minimum, stuff written in JS could be layered on top of that.

    Oh, definitely. Ragnarok already did that and has a patch set available somewhere for it... I haven't really looked at his implementation yet, but I will.

    digital man

    This Is Spinal Tap quote #12:
    Nigel Tufnel: Well, I don't know - wh-wh-... what're the hours?
    Norco, CA WX: 74.1øF, 51.0% humidity, 2 mph W wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Ragnarok@1:103/705 to Digital Man on Wednesday, April 10, 2019 13:08:03
    El 8/4/19 a las 19:56, Digital Man escribió:
    I have an experimental fork of Synchronet v3.17 which uses SMB for the filebases. Not only does this resolve the 8.3 filename storage format limitation, but it solves a lot of capacity (e.g. description and extended description lenghts) and performance problems with the current filebase
    format
    and potentially enables msgbase-like features, like discussion threads,
    voting,
    etc.

    My plan (always subject to change) is to merge that fork in after a v3.17c release and then make that version (with SMB filebases) a v3.18 release, hopefully sometime this year.

    After that, SMB itself is possibly on the chopping block. I've been looking
    at
    sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and performance issues. In addition, anyone familiar with sqlite should be able to write their own
    msgbase
    tools in a wide variety of languages.

    Any SQL database experts out there? This would be my first programming
    project
    utilizing one.


    I'm happy to see this future path.
    I think that is very appropiate to go to this way because allow to
    external tools to access the data via sql querys that is worldwide used
    for any programming language.
    You can track schemas to help to upgrate via migrations.

    I like to see a sql/database object on the sbbs js engine
    I'm not expert but i eventual use some sql servers like mysql, postgres
    or sqlite itself.

    thanks!



    Synchronet "Real Fact" #44:
    Synchronet added JavaScript suppport with v3.10a (2001).
    ---


    ---
    þ Synchronet þ Dock Sud BBS TLD 24 HS - http://bbs.docksud.com.ar - telnet://bbs.docksud.com.ar
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Ragnarok@1:103/705 to Digital Man on Wednesday, April 10, 2019 13:18:13
    El 9/4/19 a las 02:03, Digital Man escribió:


    Well I'm mainly interested in input from folks who've designed database schemas. I want to try to do it right the first time (naturally).


    First, i think that you need to avoid the Libraries->Directories->files
    (two level limited) and migrate to Tree data (more like filesystem)


    files table
    ------------
    id
    name
    description
    directory_id
    upload_by
    upload_date
    etc...


    directories table
    ---------------
    id
    name
    descripcion
    parent_directory_id
    etc....

    ---
    þ Synchronet þ Dock Sud BBS TLD 24 HS - http://bbs.docksud.com.ar - telnet://bbs.docksud.com.ar
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to Ragnarok on Wednesday, April 10, 2019 11:44:25
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Ragnarok to Digital Man on Wed Apr 10 2019 01:18 pm

    First, i think that you need to avoid the Libraries->Directories->files
    (two level limited) and migrate to Tree data (more like filesystem)

    I second this. I envision with a design like this it would be possible to have File Areas that have sub-areas.

    I would also like to see the ability in messaging to reference a file that exists in the file area or posisbly externally. Almost like a tag, but instead is a file reference. Then say I could hit a key "X" for download or something and it would automatically try to start downloading the file from the file area while I am reading the message.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Ragnarok@1:103/705 to Digital Man on Wednesday, April 10, 2019 13:46:02
    El 9/4/19 a las 14:24, Digital Man escribió:


    Oh, definitely. Ragnarok already did that and has a patch set available somewhere for it... I haven't really looked at his implementation yet, but I will.

    digital man
    that patch was a simple prof of concept only and very minial funcionality.

    This use libsqlite and export js object that represent the database.

    https://bbs.docksud.com.ar/~ragnarok/sync/js_sqlite/

    Saludos!

    ---
    þ Synchronet þ Dock Sud BBS TLD 24 HS - http://bbs.docksud.com.ar - telnet://bbs.docksud.com.ar
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to Ragnarok on Wednesday, April 10, 2019 11:22:17
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Ragnarok to Digital Man on Wed Apr 10 2019 01:18 pm

    El 9/4/19 a las 02:03, Digital Man escribió:


    Well I'm mainly interested in input from folks who've designed database schemas. I want to try to do it right the first time (naturally).


    First, i think that you need to avoid the Libraries->Directories->files
    (two level limited) and migrate to Tree data (more like filesystem)


    files table
    ------------
    id
    name
    description
    directory_id
    upload_by
    upload_date
    etc...


    directories table
    ---------------
    id
    name
    descripcion
    parent_directory_id
    etc....

    I think we're talking about 2 different things. I'm talking about the database schema for a single message area.

    digital man

    Synchronet/BBS Terminology Definition #50:
    PET = Personal Electronic Transactor (Commodore computer)
    Norco, CA WX: 67.3øF, 27.0% humidity, 1 mph NNW wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to Digital Man on Wednesday, April 10, 2019 16:16:13
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to Ragnarok on Wed Apr 10 2019 11:22 am

    I think we're talking about 2 different things. I'm talking about the database schema for a single message area.

    Msg areas should be in one table; messages in another.

    Message Area
    ------------
    ID
    Name
    OtherField1
    OtherField2
    ...

    Messages
    ------------
    ID
    Message Area ID
    Subject
    ....

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to dmxrob on Wednesday, April 10, 2019 15:47:00
    Re: Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to Digital Man on Wed Apr 10 2019 04:16 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to Ragnarok on Wed Apr 10 2019 11:22 am

    I think we're talking about 2 different things. I'm talking about the database schema for a single message area.

    Msg areas should be in one table; messages in another.

    Message Area
    ------------
    ID
    Name
    OtherField1
    OtherField2
    ...

    Messages
    ------------
    ID
    Message Area ID
    Subject
    ....


    I'm not talking about message area configuration / organization. That's a completely different matter and not something I considering using sqlite for at this time.

    digital man

    Synchronet "Real Fact" #24:
    1584 Synchronet BBS Software registrations were sold between 1992 and 1996. Norco, CA WX: 75.8øF, 17.0% humidity, 0 mph WSW wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to Digital Man on Wednesday, April 10, 2019 19:29:16
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Wed Apr 10 2019 03:47 pm

    Msg areas should be in one table; messages in another.

    I'm not talking about message area configuration / organization. That's a completely different matter and not something I considering using sqlite for at this time.

    <shrug> Well you asked for input.

    If you are considering a 1:1 relationship for tables to store messages to message areas I would say that is something I wouldn't do.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to dmxrob on Wednesday, April 10, 2019 18:41:03
    Re: Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to Digital Man on Wed Apr 10 2019 07:29 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Wed Apr 10 2019 03:47 pm

    Msg areas should be in one table; messages in another.

    I'm not talking about message area configuration / organization. That's a completely different matter and not something I considering using sqlite for at this time.

    <shrug> Well you asked for input.

    I'm inquiring if anyone here has experience constructing SQL database schemas for the purpose of a new messagebase format. Message base organization is a different matter.

    If you are considering a 1:1 relationship for tables to store messages to message areas I would say that is something I wouldn't do.

    I'm not really sure what you're saying. What I'm planning is a single database per message area, just like it is done today with SMB and most other "modern" message base formats (e.g. JAM and Squish). I think Hudson MB stores multiple message areas in a single database file, but I could be wrong.

    Anwyay, as for tables (per message base), I current envision:
    1. status (the equivalent of the SMB status header today)
    2. msg headers (header fields contained in rows)
    3. msg data (e.g. body text, tails)

    A single message data row may be shared by multiple msg headers, as is supported today in SMB, so I may need another cross-reference table to track that. Unless there's another/better way to handle data de-duplication in sqlite that I'm not aware of.

    digital man

    This Is Spinal Tap quote #44:
    It really, it does disturb me, but i'll rise above it; I'm a professional. Norco, CA WX: 69.2øF, 27.0% humidity, 8 mph E wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to echicken on Thursday, April 11, 2019 14:58:10
    Re: The future of SMB (Synchronet Message Base)
    By: echicken to Digital Man on Tue Apr 09 2019 11:10 am

    If, while you're at it, you can add some sqlite stuff to the JS environment (not just abstracted SMB-related things) that would be handy. Even if it's just the bare minimum, stuff written in JS could be layered on top of that.

    I like this idea. Possibilities would be endless if sqlite could be accessed from JS.. :)

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Thursday, April 11, 2019 15:16:26
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Wed Apr 10 2019 06:41 pm

    I'm inquiring if anyone here has experience constructing SQL database schemas for the purpose of a new messagebase format. Message base organization is a different matter.

    The files that SQLlite will store in will be it's own format if that is what you are asking... other than that, you just need the table layouts with data formats.

    I think dmxrob(?) was suggesting a possible layout for the table(s) structure to use.

    I've got lots of experience with different SQL databases if you need any help.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Thursday, April 11, 2019 15:58:47
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Wed Apr 10 2019 06:41 pm

    I'm not really sure what you're saying. What I'm planning is a single database per message area, just like it is done today with SMB and most other "modern" message base formats (e.g. JAM and Squish). I think Hudson MB stores multiple message areas in a single database file, but I could be wrong.

    Not sure you would want a single database for each message area... thinking that is a little overboard. You need a single database, let's call it 'SynchroDB'. In that database, you would have a table called 'msgbase' where everything is stored, headers and messages. SQLlite should be able to handle multiple queries and filters when requesting data from any table from the database. Not sure if there would be a need to have a seperate 'headers', 'index' and 'messages' tables.

    A simple SQL call like the following would get you all the headers in message base 5:

    SELECT id, from, to, subject, date FROM `msgbase` WHERE msgbase_id = 5;

    Just need to parse the data it returns.

    If the indexes are setup correctly it can be rather effeciant.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Nightfox@1:103/705 to High Spirit on Thursday, April 11, 2019 15:04:16
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 03:58 pm

    I'm not really sure what you're saying. What I'm planning is a
    single database per message area, just like it is done today with
    SMB and most other "modern" message base formats (e.g. JAM and

    Not sure you would want a single database for each message area... thinking that is a little overboard. You need a single database, let's call it 'SynchroDB'. In that database, you would have a table called 'msgbase' where everything is stored, headers and messages. SQLlite should be able to handle multiple queries and filters when requesting data from any table from the database. Not sure if there would be a need to have a seperate 'headers', 'index' and 'messages' tables.

    I was wondering about that.. From what I've seen, a single SQL database would contain multiple tables organizing the data.

    However, for something like a messagebase, I wonder if it would make sense to have a separate one for each message area. If there's only a single table where all headers and messages are stored, I'd wonder if it could potentially take some time to filter the messages to show only the ones relevant for the message area the user is reading. Having a separate database for each message area could eliminate that issue. Unless perhaps there's a way to have a 'msgbase' table like you describe and be able to have a separate instance of that table for each message area.. I'm not sure that's possible with an SQL database.

    Nightfox

    ---
    þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Thursday, April 11, 2019 15:51:14
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 03:16 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Wed Apr 10 2019 06:41 pm

    I'm inquiring if anyone here has experience constructing SQL database schemas for the purpose of a new messagebase format. Message base organization is a different matter.

    The files that SQLlite will store in will be it's own format if that is what you are asking... other than that, you just need the table layouts with data formats.

    I'm asking if anyone has experience defining SQL database schemas. I'm not talking about the actual sequence of bytes in the database file.

    I think dmxrob(?) was suggesting a possible layout for the table(s) structure to use.

    I think we're on a different wavelength there.

    I've got lots of experience with different SQL databases if you need any help.

    Sure: how did you handle data de-duplication?

    digital man

    This Is Spinal Tap quote #30:
    Big bottom, big bottom / Talk about mud flaps, my girl's got 'em!
    Norco, CA WX: 68.2øF, 38.0% humidity, 6 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to High Spirit on Thursday, April 11, 2019 16:48:34
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 03:58 pm

    that is a little overboard. You need a single database, let's call it 'SynchroDB'. In that database, you would have a table called 'msgbase' where everything is stored, headers and messages. SQLlite should be able to handle multiple queries and filters when requesting data from any table from the

    EXACTLY! The thought of having multiple database files makes me cringe.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Thursday, April 11, 2019 15:57:21
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 03:58 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Wed Apr 10 2019 06:41 pm

    I'm not really sure what you're saying. What I'm planning is a single database per message area, just like it is done today with SMB and most other "modern" message base formats (e.g. JAM and Squish). I think Hudson MB stores multiple message areas in a single database file, but I could be wrong.

    Not sure you would want a single database for each message area...

    That's how it's traditionaly done. And I think it's a good design.

    thinking that is a little overboard. You need a single database, let's call it
    'SynchroDB'. In that database, you would have a table called 'msgbase' where everything is stored, headers and messages.

    It sounds like you're suggestion is that all message areas are stored in a single shared database. I think there are lot of very good reasons not do that.

    SQLlite should be able to handle
    multiple queries and filters when requesting data from any table from the database. Not sure if there would be a need to have a seperate 'headers', 'index' and 'messages' tables.

    I'm assuming indexes are not tables.

    Also, like I mentioned before, it's perfectly reasonable and expected to have multiple messages share the same body/text data (e.g. sending an email to 100 users on the BBS should NOT result in 100 copies of the message text), so that dictates that a separate table for message data/text is needed and a reference schema (separate cross-reference table) be implemented.

    digital man

    This Is Spinal Tap quote #8:
    Derek Smalls: Making a big thing out of it would have been a good idea.
    Norco, CA WX: 68.2øF, 38.0% humidity, 6 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to dmxrob on Thursday, April 11, 2019 15:59:58
    Re: Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to High Spirit on Thu Apr 11 2019 04:48 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 03:58 pm

    that is a little overboard. You need a single database, let's call it 'SynchroDB'. In that database, you would have a table called 'msgbase' where everything is stored, headers and messages. SQLlite should be able to handle multiple queries and filters when requesting data from any table from the

    EXACTLY! The thought of having multiple database files makes me cringe.

    That's how all modern BBS software works, including Synchronet. Each message base (and filebase, for that matter) is a separate file (or set of files). What exactly about that makes you "cringe"?

    digital man

    Synchronet "Real Fact" #77:
    Rob Swindell still has dozens of BBS-related magazines in his possession. Norco, CA WX: 68.2øF, 38.0% humidity, 6 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to Nightfox on Thursday, April 11, 2019 18:01:10
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Nightfox to High Spirit on Thu Apr 11 2019 03:04 pm

    However, for something like a messagebase, I wonder if it would make sense to have a separate one for each message area. If there's only a single table where all headers and messages are stored, I'd wonder if it could potentially take some time to filter the messages to show only the ones relevant for the message area the user is reading. Having a separate

    With proper indexing and use of keys on the table, you could have millions of messages and still be able to retrieve the one you are looking for in 1 second (or less).

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Nightfox on Thursday, April 11, 2019 21:59:37
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Nightfox to High Spirit on Thu Apr 11 2019 03:04 pm

    I was wondering about that.. From what I've seen, a single SQL database would contain multiple tables organizing the data.

    However, for something like a messagebase, I wonder if it would make sense to have a separate one for each message area. If there's only a single table where all headers and messages are stored, I'd wonder if it could potentially take some time to filter the messages to show only the ones relevant for the message area the user is reading. Having a separate database for each message area could eliminate that issue. Unless perhaps there's a way to have a 'msgbase' table like you describe and be able to have a separate instance of that table for each message area.. I'm not sure that's possible with an SQL database.

    Databases are very effecient these days. With the computing power and memory available to them now you can have a huge database and as I said in another message, as long as the index pointers are set correctly, searching for messages in a certian message base or filtering by messages from/to users or even searching keywords in a database with thousands of messages wouldn't take much time if it was even noticeable.

    The problem with having a database for each message board is not really how a database interface like SQLite was meant to be used and managing it would not be as easy. You _COULD_ have a table for each message board but even that is a little overkill. I single field in the table to designate what subboard the message belongs to is all it would take.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Thursday, April 11, 2019 22:17:59
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:51 pm

    I'm asking if anyone has experience defining SQL database schemas. I'm not talking about the actual sequence of bytes in the database file.

    I am not sure what schemas were before databases of today, but with today's databases it refers to as a blueprint of how the database tables are laid out.

    Sure: how did you handle data de-duplication?

    You either are doing this for eliminating duplicate messages getting added to the database (either by posting or importing by QWK network or something) or to preserve storage space. I am going to eliminate storage space as we do not have storage limitations when it comes to text messages these days... so I am assuming preventing duplicate messages. One way I have prevented duplication in databases is to create a hash of the text and insert it into the record with the message. An MD5 hash of the text: "This is a test" generates an MD5 value of: ce114e4501d2f4e2dcea3e17b546f339. Now if we wanted to check for duplicate messages, we can now search the database for anything with that hash. If we come back with a record we have a duplicate message in the table... and here is where having all messages in one table will come in handy as it will only need to check the one table in the database to find a duplicate. If we have a database for each message base, each database will need to be checked if we are doing a entire database check. Even a single database with message boards in multiple tables would require a database call for each.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Thursday, April 11, 2019 22:21:30
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:57 pm

    That's how it's traditionaly done. And I think it's a good design.

    It sounds like you're suggestion is that all message areas are stored in a single shared database. I think there are lot of very good reasons not do that.

    Back then it probably was the best way to do it, but databases are quite sophisticated these days and you can do pretty much anything you want with them.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Thursday, April 11, 2019 22:33:29
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Thu Apr 11 2019 03:59 pm

    That's how all modern BBS software works, including Synchronet. Each message base (and filebase, for that matter) is a separate file (or set of files). What exactly about that makes you "cringe"?

    But all "modern" bbs's are running from code derived from the time before databases of today. If you give a 15 year old today (with experience in programming) and ask him to write a BBS from scratch (if he knew what that was), he would store the data in SQLite or MySQL and make it efficient as possible. Jumping from database to database (each time, disconnecting and reconnecting) and then from table to table (if need be) just to find a message that is sent to you would take up system resources and will probably take a lot longer than having everything in one location and asking the database to get "all new messages addressed to me" from one database call. I can search for a single word and it will come back with all the records with that word.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Thursday, April 11, 2019 22:58:19
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 10:21 pm

    Digital Man/Nightfox,

    I understand this database thing is a little confusing, it is definitely going to take some time to understand how things work and what not... I am sure dmxrob and I would be happy to help out in the understandings of today's databases.

    A few years ago, I was playing around with importing data from the current SMB format into a database (MySQL) and did import some data. Nothing ever came of it as it was just something I was tinkering with. I still have the database I was playing with, so I brought up phpMyAdmin (MySQL DB Administration tool) and grabbed some screen shots of the table and a record in the table of how I had everything stored:

    http://www.digitalrealms.net/dbtable.png

    This image has the list of tables on the left side and the table containing posts selected and showing some of the records in the table.

    http://www.digitalrealms.net/dbentry.png

    This image shows the raw data from one of the message records.

    In that specific table, I have 23858 records, I did a search for the text "data" in the message body and it came back and gave me 5759 records and took 0.0129 seconds. See linked image below for sample:

    http://www.digitalrealms.net/search.png

    Now I should point out that this database is running on a beefy system and running MySQL which might be a little more robust in handling databases better than SQLite.

    Databases are quite fast these days and they handle all the data reading and writing. I have designed a few custom programs for clients using MySQL, MSSQL and a couple of them are quite complex and store a lot of data and pulling up records is a breeze.

    Anyways, maybe I will download the JS SQL code mentioned in another message and see what results I can do running it and SQLite on my Raspberry PI. :)

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Thursday, April 11, 2019 19:59:50
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 10:17 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:51 pm

    I'm asking if anyone has experience defining SQL database schemas. I'm not talking about the actual sequence of bytes in the database file.

    I am not sure what schemas were before databases of today, but with today's databases it refers to as a blueprint of how the database tables are laid out.

    Yup, that's what I'm talking about.

    Sure: how did you handle data de-duplication?

    You either are doing this for eliminating duplicate messages getting added to the database (either by posting or importing by QWK network or something) or to preserve storage space. I am going to eliminate storage space as we do not have storage limitations when it comes to text messages these days...

    With file attachments (e.g. MIME-encoded files in emails, UUENCODED parts in newsgroup articles), the message bodies can be many megabytes each, even gigabytes if the server allows it. If a user sends 100 users the same MIME-attached file via email, we don't want to store the message body 100 times in the database. This is what I'm referring to with regards to data de-duplication.

    so
    I am assuming preventing duplicate messages.

    That's dupe preventation - a different topic and one I think I have a pretty good handle on.

    digital man

    Synchronet/BBS Terminology Definition #4:
    ATASCII = ATARI Standard Code for Information Interchange
    Norco, CA WX: 61.2øF, 50.0% humidity, 7 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Thursday, April 11, 2019 20:05:12
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 10:21 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:57 pm

    That's how it's traditionaly done. And I think it's a good design.

    It sounds like you're suggestion is that all message areas are stored in a single shared database. I think there are lot of very good reasons not do that.

    Back then it probably was the best way to do it, but databases are quite sophisticated these days and you can do pretty much anything you want with them.

    Yeah, but lets say I want to be able to have all my fidonet messages stored on a different file system (e.g. disk drive) than all my dovenet messages. How do I achieve that if all message areas are stored in the same database?

    Let's say I just want to delete all my usenet message bases quickly and easily. How do I do that if they're all stored in the same database as all of my other message areas?

    I'm not saying you couldn't store all the message bases in a single database. I'm saying the advantages of storing each message area in a unique database outweighs any disadvantages. You likely don't know, but if you run Synchronet, you already have a unigue database for each message and file area. It works pretty good, yeah? There are many things that are easy for a sysop to do *because* of that design. I don't know of any advantage to having *all* the message areas stored in a single database. Sounds like a single-point-of-failure waiting to happen.

    digital man

    Synchronet "Real Fact" #38:
    Synchronet first supported Windows NT-based operating systems w/v3.00b (2000). Norco, CA WX: 60.7øF, 52.0% humidity, 0 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Thursday, April 11, 2019 20:11:56
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 10:33 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Thu Apr 11 2019 03:59 pm

    That's how all modern BBS software works, including Synchronet. Each message base (and filebase, for that matter) is a separate file (or set of files). What exactly about that makes you "cringe"?

    But all "modern" bbs's are running from code derived from the time before databases of today.

    SQL databases first appeared in the 1970's. And plenty of BBS programs were developed much more recently and had all the "modern database of today" to choose to use (or not).

    If you give a 15 year old today (with experience in
    programming) and ask him to write a BBS from scratch (if he knew what that was), he would store the data in SQLite or MySQL and make it efficient as possible. Jumping from database to database (each time, disconnecting and reconnecting)

    SQLite has no concept of "connect" or "disconnect". And its certainly possible for an application to open multiple databases (or "connect" if that were the case) concurrently.

    and then from table to table (if need be) just to find a
    message that is sent to you would take up system resources and will probably take a lot longer than having everything in one location and asking the database to get "all new messages addressed to me" from one database call. I can search for a single word and it will come back with all the records with that word.

    When you design your own BBS software, go for it. With Synchronet, not every user has access to every message base, and each user can choose which message bases to include or exclude (from those they have access to) in any searches or scans. The separate base per area model fits the access model well and provides a lot of other management benefits that sysops enjoy.

    digital man

    Synchronet "Real Fact" #39:
    Synchronet first supported Windows NT v6.x (a.k.a. Vista/Win7) w/v3.14a (2006). Norco, CA WX: 60.7øF, 52.0% humidity, 0 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From MRO@1:103/705 to Digital Man on Thursday, April 11, 2019 22:34:17
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:57 pm


    Not sure you would want a single database for each message area...

    That's how it's traditionaly done. And I think it's a good design.


    it is a good design. if there's an issue with the msg bases it makes backup/recovery very easy. lets say i dont want a msg network anymore. i can just delete it in the setup program and the data isnt being removed from some huge communial data file.
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Ragnarok on Thursday, April 11, 2019 23:32:05
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Ragnarok to Digital Man on Wed Apr 10 2019 01:46 pm

    that patch was a simple prof of concept only and very minial funcionality.

    This use libsqlite and export js object that represent the database.

    https://bbs.docksud.com.ar/~ragnarok/sync/js_sqlite/

    Ragnarok,

    Would you happen to be still updating this? Or could you update it to work with the current version so I can integrate it with my copy and play around with it?

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 00:01:22
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:57 pm

    Somehow I missed this part of the message... ;)

    I'm assuming indexes are not tables.

    No, indexes are not tables, but they are part of the internal database schema. You can set a field in the table to be indexed. In the backend of the database when you search a field for a value (number, string, etc) you are looking for, it searches the index for what you are looking for rather then the entire database hence making results return much faster. If you search a field that is not indexed, it will search the entire field in the database.

    Also, like I mentioned before, it's perfectly reasonable and expected to have multiple messages share the same body/text data (e.g. sending an email to 100 users on the BBS should NOT result in 100 copies of the message text), so that dictates that a separate table for message data/text is needed and a reference schema (separate cross-reference table) be implemented.

    With Gigabytes and Tarabytes of storage these days, do you need to worry about having a 100 copies of a screen of text? Let's do a standard 80x25 screen, that's 2000 bytes. Lets give a little bit of overhead for header information and maybe color codes, etc so lets say 250 bytes... 100 copies of the same message is only going to use 250,000 bytes. A drop in the bucket in today's storage limitations.

    But... de-duplication could be done if you wanted too... but this would have to be handled manually and there are a few ways to do this. Here is how I would have a multi-recipient message laid out:

    The multi-recipient message would be stored in the table like any other message, but a field in the table could refer to another table of listed users who should get this message. This might be a little sloppy as the new table would require a record for each user's id and message id. But it will not take up as much space as a copy of the message itself.

    Another option would be to do break up the header and message body, kinda like you do now with the files. Each recipient would get a copy of the header part, but and it would link to a single body. Like so:

    Table: MSGHeaders
    id (each record contains a unique record id)
    user_id (user id #)
    msgbody_id (# linking to the id field in the MSGBodies table)
    headerdata1
    headerdata2
    headerdata3
    ...

    Table: MSGBodies
    id (unique record id)
    body (body text)
    ...

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to All on Friday, April 12, 2019 00:57:09
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 10:58 pm

    Not sure if this would help, but here is a basic query to a database with PHP:

    if (mysql_connect("localhost", "dbuser", "dbpassword")) {
    if (mysql_select_db("dbname")) {
    $users = sql_query("SELECT * FROM users WHERE active = '1';");
    while ($user = sql_fetch_assoc($users)) {
    echo "User ID: " . $user[id] . "\n";
    echo "User Name: " . $user[name] . "\n";
    echo "Other: " . $user[otherinfo] . "\n";
    }
    } else {
    LogDBError("SQL Select Database Error", mysql_error() . "\n\n");
    }
    } else {
    echo "SQL Connect Error", mysql_error() . "\n\n";
    }

    This would list all the records in the user table.

    Change the query code to: "SELECT name, otherinfo FROM users WHERE id = 2;" and you will get the name and otherinfo field of user #2.

    SELECT * FROM users WHERE name LIKE "%Spirit%" ORDER BY joindate DESC LIMIT 10;

    This query will return up to 10 records containing all fields from users where "Spirit" is in the name in descending order of the datejoined field.

    Updating a record is just as easy:

    UPDATE users SET name = "High Spirit" WHERE id = 1;

    Inserting a record:

    INSERT INTO users (name, password, otherinfo) VALUES ("High Spirit", "MySecretPassword", "Noob");

    The database will automatically (if the table schema is setup correctly) fill in the id field as the next available number.

    SELECT, INSERT and UPDATE are going to be your main SQL commands.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 01:12:06
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:05 pm

    Yeah, but lets say I want to be able to have all my fidonet messages stored on a different file system (e.g. disk drive) than all my dovenet messages. How do I achieve that if all message areas are stored in the same database?

    Okay... I see your point here. :) You've got me on that one!! haha

    Let's say I just want to delete all my usenet message bases quickly and easily. How do I do that if they're all stored in the same database as all of my other message areas?

    Let's say everything is stored in the same data base. Your usenet message
    base id # is 5.
    "DELETE FROM messages WHERE msgbaseid = 5;"
    This will delete all the messages in the table that belong to message base 5. Run for each usenet message base you are deleting.

    I'm not saying you couldn't store all the message bases in a single database. I'm saying the advantages of storing each message area in a unique database outweighs any disadvantages. You likely don't know, but if you run Synchronet, you already have a unigue database for each message and file area. It works pretty good, yeah? There are many things that are easy for a sysop to do *because* of that design. I don't know of any advantage to having *all* the message areas stored in a single database. Sounds like a single-point-of-failure waiting to happen.

    Oh database failures happen... I have not had one in Synchronet as of yet... probably cause it's been well taken care of! ;) But as an IT Guy I've seen many clients files lost over the years becuase they do not have a backup plan in place. My Syncronet is backed up nightly to a NAS along with any other important data I have on any of my systems. :)

    I do recall a point in time where I had to rename one of my file bases... I forget the reason why, but it was the easiest thing to do, due to something I did, but can't remember why at the moment. It is also nice to see how much space a single message board is taking up.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 01:31:11
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:11 pm

    SQL databases first appeared in the 1970's. And plenty of BBS programs were developed much more recently and had all the "modern database of today" to choose to use (or not).

    I remember a lot of talk about BBS's using CBase and maybe a few other database programs but other than that, either thier custom format or SMB like Synchronet uses.

    SQLite has no concept of "connect" or "disconnect". And its certainly possible for an application to open multiple databases (or "connect" if that were the case) concurrently.

    Yeah, I see that with SQLite. The connect/disconnect is more of open database and close database which opens the file and closes it.

    When you design your own BBS software, go for it. With Synchronet, not every user has access to every message base, and each user can choose which message bases to include or exclude (from those they have access to) in any searches or scans. The separate base per area model fits the access model well and provides a lot of other management benefits that sysops enjoy.

    Nah... no designing BBS software for me.

    In the Synchronet source, you have code that cycles through each message base that the user has access to or is scanning/searching. At some point in the code you are opening the files for each message base and doing what is needed. With all message records in one table, you just do not search/scan/list any messages from that message base id. If you are scanning each message base you could do it all in one shot like:

    SELECT * FROM messages WHERE msgbase_id = 1;
    <display messages>
    SELECT * FROM messages WHERE msgbase_id = 7;
    <display messages>
    etc.

    You can also tack on searches with that by adding another WHERE clause like: SELECT * FROM messages WHERE msgbase_id = 4 AND subject LIKE '%The Future of%';

    But.. I am beginning to understand using the individual databases. So I am not saying it is wrong, but just pointing out that you can do a lot of things with everything in a single database as well.. :)

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to MRO on Friday, April 12, 2019 01:37:16
    Re: Re: The future of SMB (Synchronet Message Base)
    By: MRO to Digital Man on Thu Apr 11 2019 10:34 pm

    it is a good design. if there's an issue with the msg bases it makes backup/recovery very easy. lets say i dont want a msg network anymore. i can just delete it in the setup program and the data isnt being removed from some huge communial data file.

    That is a good point. SQLite stores everything in one file. Other database programs (MySQL, etc) will store a database in a folder and each table has it's own couple files.

    As simplistic as SQLite is, it could be a good way to go... I have used SQLite a little bit in the past years, but all my clients required something with more power. :)

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 01:54:24
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to MRO on Fri Apr 12 2019 01:37 am

    This was just a thought as I was heading to bed... since SQLite does not use a client/server model, I checked on concurrent connections and found this from https://www.sqlite.org/whentouse.html:

    SQLite supports an unlimited number of simultaneous readers, but it will only allow one writer at any instant in time. For many situations, this is not a problem. Writers queue up. Each application does its database work quickly and moves on, and no lock lasts for more than a few dozen milliseconds. But there are some applications that require more concurrency, and those applications may need to seek a different solution.

    So should be good and if each message base is in it's own database, even less time the BBS has a single database open.

    Just out of curiosity, how does Synchronet handle open message base files now?

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to Digital Man on Thursday, April 11, 2019 23:25:11
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Thu Apr 11 2019 03:59 pm

    EXACTLY! The thought of having multiple database files makes me cringe.
    That's how all modern BBS software works, including Synchronet. Each message base (and filebase, for that matter) is a separate file (or set of files). What exactly about that makes you "cringe"?

    How guys have designed BBS software and how SQL databases work are like comparing rocks and
    chimpanzees. I can't see how, in database-land, storing messages for different
    BBS message
    areas in to different databases altogether makes any sense, as you'd want your single DB to
    have all the tables it needs to handle users, message headers, message data, file header
    information, perhaps. How do you do queries joining multiple databases? You'd
    want that data
    to be in separate tables in the same db, etc.

    If I were to look to persue this sort of thing for a BBS, I would go look at the DB schemas
    for mature web forum software - they've been doing this sort of stuff for years.

    I'm not an expert at that sort of thing, though, but I think if you came at it from the other
    angle (not the "this is the way BBSes do it" end of it), you may find that few (if anyone?)
    separates their application out in to multiple databases.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to Digital Man on Thursday, April 11, 2019 23:38:14
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:05 pm

    I'm replying mostly for the exercise... there could well be better ways of doing the things
    I'm suggesting.

    Yeah, but lets say I want to be able to have all my fidonet messages stored on a different file system (e.g. disk drive) than all my dovenet messages. How do I achieve that if all message areas are stored in the same database?

    I don't think that would fall in to the design, generally. You'd build storage
    to hold the
    database. Maybe you store message attachments on-disk and separate that out.

    Let's say I just want to delete all my usenet message bases quickly and easily. How do I do that if they're all stored in the same database as all of my other message areas?

    delete from messages where msg_base like 'usenet%';

    Or, enhance scfg to take on those tasks?

    I'm not saying you couldn't store all the message bases in a single database. I'm saying the advantages of storing each message area in a unique database outweighs any disadvantages. You likely don't know, but if you run

    I think some of this has just been answered by others (as I believe there's pretty strong
    technical reasons for not trying to connect to many different databases), so I'm looking
    forward to seeing how that discussion proceeds.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to MRO on Friday, April 12, 2019 01:11:48
    Re: Re: The future of SMB (Synchronet Message Base)
    By: MRO to Digital Man on Thu Apr 11 2019 10:34 pm

    Not sure you would want a single database for each message area...

    That's how it's traditionaly done. And I think it's a good design.


    it is a good design. if there's an issue with the msg bases it makes backup/recovery very easy. lets say i dont want a msg network anymore. i can just delete it in the setup program and the data isnt being removed from some huge communial data file.

    Aye.

    digital man

    Synchronet/BBS Terminology Definition #76:
    XJS = External JavaScript (SSJS embedded within HTML/CSS)
    Norco, CA WX: 53.5øF, 77.0% humidity, 0 mph SSW wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Friday, April 12, 2019 01:21:54
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Fri Apr 12 2019 12:01 am

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 03:57 pm

    Somehow I missed this part of the message... ;)

    I'm assuming indexes are not tables.

    No, indexes are not tables, but they are part of the internal database schema. You can set a field in the table to be indexed. In the backend of the database when you search a field for a value (number, string, etc) you are looking for, it searches the index for what you are looking for rather then the entire database hence making results return much faster. If you search a field that is not indexed, it will search the entire field in the database.

    Also, like I mentioned before, it's perfectly reasonable and expected to have multiple messages share the same body/text data (e.g. sending an email to 100 users on the BBS should NOT result in 100 copies of the message text), so that dictates that a separate table for message data/text is needed and a reference schema (separate cross-reference table) be implemented.

    With Gigabytes and Tarabytes of storage these days, do you need to worry about having a 100 copies of a screen of text?

    When you email (or post) a file attachment, that results in a message text at least 1.33 times the size of the file(s) you've attached. I don't "worry" about any of it, but I'm not in the habit of duplicating data needlessly. Especially when that data can easily be hundreds of megabytes.

    Let's do a standard 80x25
    screen, that's 2000 bytes. Lets give a little bit of overhead for header information and maybe color codes, etc so lets say 250 bytes... 100 copies of the same message is only going to use 250,000 bytes. A drop in the bucket in today's storage limitations.

    I'm not sure what world you live in, but the average messages size in my mail base is way larger than 2000 bytes.

    But... de-duplication could be done if you wanted too... but this would have to be handled manually and there are a few ways to do this. Here is how I would have a multi-recipient message laid out:

    The multi-recipient message would be stored in the table like any other message, but a field in the table could refer to another table of listed users who should get this message. This might be a little sloppy as the new table would require a record for each user's id and message id. But it will not take up as much space as a copy of the message itself.

    Another option would be to do break up the header and message body, kinda like you do now with the files. Each recipient would get a copy of the header part, but and it would link to a single body. Like so:

    Table: MSGHeaders
    id (each record contains a unique record id)
    user_id (user id #)
    msgbody_id (# linking to the id field in the MSGBodies table)
    headerdata1
    headerdata2
    headerdata3
    ...

    Table: MSGBodies
    id (unique record id)
    body (body text)
    ...

    That's similar to the table approach I already posted here.

    What I don't know is how does a "MSGBodies" table row get automatically deleted when the last referencing msg header is deleted?

    digital man

    Synchronet "Real Fact" #80:
    85 SBBSecho registrations were sold (at $49) between 1994 and 1996.
    Norco, CA WX: 53.5øF, 77.0% humidity, 0 mph SSW wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to High Spirit on Friday, April 12, 2019 01:25:39
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Fri Apr 12 2019 01:54 am

    Just out of curiosity, how does Synchronet handle open message base files now?

    Multiple readers, single writer. For details, see http://synchro.net/docs/smb.html

    digital man

    This Is Spinal Tap quote #42:
    What day the Lord created Spinal Tap and couldn't he have rested on that day? Norco, CA WX: 52.8øF, 77.0% humidity, 0 mph SW wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to Va7aqd on Friday, April 12, 2019 01:31:30
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Va7aqd to Digital Man on Thu Apr 11 2019 11:25 pm

    I'm not an expert at that sort of thing, though, but I think if you came at it from the other angle (not the "this is the way BBSes do it" end of it), you may find that few (if anyone?) separates their application out in to multiple databases.

    I think you'd find opposite. Unix NNTP servers store users and messages in multiple databases. Windows Exchange servers store users and messages in multiple databases.

    digital man

    Synchronet/BBS Terminology Definition #76:
    XJS = External JavaScript (SSJS embedded within HTML/CSS)
    Norco, CA WX: 52.8øF, 77.0% humidity, 0 mph SW wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to Va7aqd on Friday, April 12, 2019 01:34:53
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Va7aqd to Digital Man on Thu Apr 11 2019 11:38 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:05 pm

    I'm replying mostly for the exercise... there could well be better ways of doing the things I'm suggesting.

    Yeah, but lets say I want to be able to have all my fidonet messages stored
    on a different file system (e.g. disk drive) than all my dovenet messages.
    How do I achieve that if all message areas are stored in the same database?

    I don't think that would fall in to the design, generally. You'd build storage to hold the database. Maybe you store message attachments on-disk and separate that out.

    Message attachments are encoded within the message text. That's how message attachments work on the Internet (whether it's SMTP, IMAP, POP3, or NNTP).

    Let's say I just want to delete all my usenet message bases quickly and easily. How do I do that if they're all stored in the same database as all
    of my other message areas?

    delete from messages where msg_base like 'usenet%';

    Or, enhance scfg to take on those tasks?

    I'm not saying you couldn't store all the message bases in a single database. I'm saying the advantages of storing each message area in a unique
    database outweighs any disadvantages. You likely don't know, but if you run

    I think some of this has just been answered by others (as I believe there's pretty strong technical reasons for not trying to connect to many different databases), so I'm looking forward to seeing how that discussion proceeds.

    I haven't seen any "strong technical reasons" for a single monolithic database that you seem to be advocating for.

    digital man

    Synchronet/BBS Terminology Definition #28:
    FSP = FidoNet Standards Proposal
    Norco, CA WX: 52.8øF, 77.0% humidity, 0 mph SW wind, 0.00 inches rain/24hrs
    --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Wilfred van Velzen@2:280/464 to Digital Man on Friday, April 12, 2019 15:20:41
    Hi Digital,

    On 2019-04-08 15:56:20, you wrote to All:

    After that, SMB itself is possibly on the chopping block. I've been looking at sqlite and mentally planning out a database schema for the basis of a new SMB format. Utilizing sqlite should, at least in
    theory, resolve current capacity (e.g. 2+GB msgbase), concurrency/corruption and performance issues. In addition, anyone familiar with sqlite should be able to write their own msgbase tools
    in a wide variety of languages.

    Any SQL database experts out there? This would be my first programming project utilizing one.

    I know Kees van Eeten uses a (My)SQL database to export received echomail messages to. (And I think Ulrich Schroeter uses the same database). You could ask them what kind of database schema they are using?


    Bye, Wilfred.

    --- FMail-lnx64 2.1.0.18-B20170815
    * Origin: FMail development HQ (2:280/464)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 09:09:57
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Fri Apr 12 2019 01:21 am

    Table: MSGHeaders
    id (each record contains a unique record id)
    user_id (user id #)
    msgbody_id (# linking to the id field in the MSGBodies table)
    headerdata1
    headerdata2
    headerdata3
    ...

    Table: MSGBodies
    id (unique record id)
    body (body text)
    ...

    That's similar to the table approach I already posted here.

    What I don't know is how does a "MSGBodies" table row get automatically deleted when the last referencing msg header is deleted?

    If you were to delete a specific message from this database, there would be
    3 database calls.

    SELECT msgbody_id FROM MSGHeaders WHERE id = 1234;

    This will get you the reference to the MSGBody record.

    DELETE FROM MSGBodies WHERE id = msgbody_id;

    and then

    DELETE FROM MSGHeaders WHERE id = 1234;

    Now if you were to have a field in MSGBodies with the id value for the MSGHeaders, you could do this in 2 calls.

    DELETE FROM MSGHeaders WHERE id = 1234;
    DELETE FROM MSGBodies WHERE msgheder_id = 1234;

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 09:14:19
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Fri Apr 12 2019 01:25 am

    Just out of curiosity, how does Synchronet handle open message base
    files now?

    Multiple readers, single writer. For details, see http://synchro.net/docs/smb.html

    So basically the same thing? The writer will wait (retry) until the file is available for writing and then lock the file do it's thing and then unlock.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 09:28:41
    Re: a
    By: Digital Man to Va7aqd on Fri Apr 12 2019 01:31 am

    I think you'd find opposite. Unix NNTP servers store users and messages in multiple databases. Windows Exchange servers store users and messages in multiple databases.

    That is because Active Directory (users) and Exchange (email) are two different things. You cannot have an Exchange server without having an Active Directory.

    Funny you should bring up Exchange... for years, I've been bitching about Microsoft storing all mail in a single database when I think it should be split into a database per users or something easier to manage... I've got clients with HUGE (over 100GB) exchange databases and thier exchange database repair tools take hours to scan and repair it while the client has no access to email.

    You're swaying me more and more DM! ;)

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to Digital Man on Friday, April 12, 2019 10:20:47
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Wilfred van Velzen to Digital Man on Fri Apr 12 2019 03:20 pm

    DM has got me sold on having seperate databases for each message base, but I think I would only go as far as to have 1 database per message base. In each database, you could have any number for tables needed. Looking at http://synchro.net/docs/smb.html, there are 6(?) files in the current SMB spec. Each file could be a table in the message base database.

    So tables would be:
    Index
    id (new field to link header and data records to the index)
    to
    from
    subj
    attr
    header_id (replaces offset)
    number (is this what id would replace or is this something else?)
    time
    crc (crc of message from *.SCH file)?

    Header (not sure I understand how this works)
    id
    index_id
    headerdata(?)
    version (still needed?)
    length (do not think this is needed either?)

    Data
    index_id
    text_body
    text_tail

    Header Allocation, Data Allocation might not be needed?

    Can CRC history be integrated into one of the other tables?

    Just a thought.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From kmelillo@1:103/705 to High Spirit on Friday, April 12, 2019 14:49:57
    Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to echicken on Thu Apr 11 2019 02:58 pm

    Wow... I saw that checkbox avatar, and had to comment... it really stood out! Love it!

    Kevin Melillo | Conspiracy Theory BBS | bbs.dotheyknow.net

    ---
    þ Synchronet þ Conspiracy Theory telnet://bbs.dotheyknow.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 11:18:02

    On 2019 Apr 11 15:58:46, you wrote to Digital Man:

    I'm not really sure what you're saying. What I'm planning is a single
    database per message area, just like it is done today with SMB and
    most other "modern" message base formats (e.g. JAM and Squish). I
    think Hudson MB stores multiple message areas in a single database
    file, but I could be wrong.

    Not sure you would want a single database for each message area... thinking that is a little overboard. You need a single database, let's call it 'SynchroDB'. In that database, you would have a table called 'msgbase' where everything is stored, headers and messages.

    see? that's where things get screwey... back in the day, what you call a table was an individual db file... then someone came along and changed the names...

    a message base has several files which would be converted into tables using today's language... so each message base would have at least two tables... headers and control info in one table and the actual messages in another table... sure, you could put all of that into one table...

    so like i currently have 240+ message areas... that would be 240 tables... or 480 tables if each area is split into two related tables...

    SQLlite should be able to handle multiple queries and filters when requesting data from any table from the database.

    yes but has anyone else had any concerns for how the data is really stored? i can't lay my hands on it now but several years ago there was talk about how the
    data in sqlite was really stored and it wasn't a pretty picture... then there's
    this article which matches others i've read on the same lines...

    https://djangodeployment.com/2016/12/23/which-database-should-i-use-on-production/

    or

    http://tinyurl.com/yagt95h9

    Not sure if there would be a need to have a seperate 'headers',
    'index' and 'messages' tables.

    read the above... being able to recreate lost data is essential... if you lose one table, to you really want to have lost thousands and thousands of historical messages?

    A simple SQL call like the following would get you all the headers in message base 5:

    SELECT id, from, to, subject, date FROM `msgbase` WHERE msgbase_id = 5;

    Just need to parse the data it returns.

    If the indexes are setup correctly it can be rather effeciant.

    but can it scale? that's the real question... remember, right now we can easily
    have sbbsecho tossing mail, QWK-FTP tossing mail, users uploading mail, users reading mail via the terminal or http or downloading via QWK... ramp up the number of users and message base interaction tools and what happens?

    IF an SQL database is to be used, i might start off experimenting with sqlite but the real goal would be to get my feet wet and gain better understanding before taking the path to postgres... maybe a stop along the way with mysql which is a lot better than sqlite but not quite as good as postgres...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Judgin' by the taste, I'd say the other one's Shinola.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to dmxrob on Friday, April 12, 2019 09:47:08

    On 2019 Apr 11 16:48:34, you wrote to High Spirit:

    that is a little overboard. You need a single database, let's call it
    'SynchroDB'. In that database, you would have a table called 'msgbase'
    where everything is stored, headers and messages. SQLlite should be
    able to handle multiple queries and filters when requesting data from
    any table from the

    EXACTLY! The thought of having multiple database files makes me cringe.

    the thought of losing everything when one database or table is corrupted beyond
    repair scares me even more...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Here...have some chocolate. Feel better now?
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Digital Man on Friday, April 12, 2019 09:48:58

    On 2019 Apr 11 15:57:20, you wrote to High Spirit:

    SQLlite should be able to handle multiple queries and filters when
    requesting data from any table from the database. Not sure if there
    would be a need to have a seperate 'headers', 'index' and 'messages'
    tables.

    I'm assuming indexes are not tables.

    they may be mixing up database indexes with message base indexes... they do serve similar purposes and there could easily be a database index of message index pointers...

    Also, like I mentioned before, it's perfectly reasonable and expected
    to have multiple messages share the same body/text data (e.g. sending
    an email to 100 users on the BBS should NOT result in 100 copies of
    the message text), so that dictates that a separate table for message data/text is needed and a reference schema (separate cross-reference table) be implemented.

    there are various methods for doing this and having only one message body... in
    my old bbs, we did it by setting a flag on all users... then displaying a file to all users with that flag set... once they had seen the file and acknowledged
    it, then the flag was reset and they didn't see the file again... the problem was scalability because we had to use the existing flags because there weren't any specific to this type of use... i'm calling them flags but bits would be the better term... still a bit of a limit going that way and other methods would be better but would have to be specifically coded...

    one idea is have an expanding(?) numerical field in the message header with each bit position representing the users' static usernumber... the bits all start as zeros (false)... when the user reads the message, their bit is flipped
    to a one (true)... this could be done the other way, too, with the expanding numerical field being in the users' records and the bits representing the number of the message to be read...

    the easiest is, of course, the most inefficient and you're trying to avoid duplicated message bodies... using multiple message bodies allows the users to read the message as many times as they like and they have to choice to delete the message when they are done with it...

    we on the beta team discussed this problem for several months back when RemoteAccess BBS was in active development... nothing was ever really decided and the individual message per user was still used... mainly because some viewed multiple headers pointing to the same message body as being crosslinked... it is/was kind of a similar situation with DOS when billG and company stripped out the capability of having multiple pointers to the same file... yet, *nix embraced that capability and use it widely... the funny thing
    is that winwhatever is reintroducing this capability :lol:

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... It's not mealtime, it's time for a fix.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 11:18:28

    On 2019 Apr 11 21:59:36, you wrote to Nightfox:

    Databases are very effecient these days. With the computing power and memory available to them now you can have a huge database

    do you really want to have to have 64+Gig of RAM just to run a BBS using a database format? look at what we have today using proprietary databases and running in much much less memory...

    and as I said in another message, as long as the index pointers are
    set correctly, searching for messages in a certian message base or filtering by messages from/to users or even searching keywords in a database with thousands of messages wouldn't take much time if it was
    even noticeable.

    true... at the expense of memory and scalability...

    The problem with having a database for each message board is not
    really how a database interface like SQLite was meant to be used and managing it would not be as easy. You _COULD_ have a table for each message board but even that is a little overkill. I single field in
    the table to designate what subboard the message belongs to is all it would take.

    true again but then it is also all too easy to lose the entire thing if something gets corrupted...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... 137 Americans die in vicious aisle-to-aisle Boxing Day mall combat.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 10:17:34

    On 2019 Apr 11 22:17:58, you wrote to Digital Man:

    so I am assuming preventing duplicate messages. One way I have
    prevented duplication in databases is to create a hash of the text and insert it into the record with the message.

    what do you do about hash collisions? the MD5 table space is not infinite and we can easily create messages with different message bodies having the same MD5
    checksum... heck, i just saw, the other day, a malware that has the same MD5 for multiple types of files used to deliver it...

    An MD5 hash of the text: "This is a test" generates an MD5 value of: ce114e4501d2f4e2dcea3e17b546f339. Now if we wanted to check for
    duplicate messages, we can now search the database for anything with
    that hash. If we come back with a record we have a duplicate message
    in the table...

    this is already being done in the current format... no general sql database needed ;)

    and here is where having all messages in one table will come in handy
    as it will only need to check the one table in the database to find a duplicate. If we have a database for each message base, each database
    will need to be checked if we are doing a entire database check. Even
    a single database with message boards in multiple tables would require
    a database call for each.

    here's where we get into the question of "what is a duplicate message"... in FTNs, some mail tossers have one database for all message signatures... that prevents the same message from being posted to multiple areas... that's not a good thing when one considers a message being cross-posted to multiple message areas... other tossers have a duplicate database per area... this prevents duplicate messages in that one area and allows for cross-posted messages to other areas...

    one problem that comes up is things like monthly postings where the message body stays the same for multiple postings... only the header is different... most notably that would be the time stamp since the To, From and Subject fields
    would all be the same... MSGIDs should alleviate this but as noted above about different FTN mail tossers, some use the same MSGID in each message that is cross-posted... single database for all areas dupe detection would throw out the others whereas one database per area dupe detection would allow them to pass...

    when it coes right down to it, i would much rather lose one message area due to
    unrecoverable corruption than lose all of them because they were stored in one database/table...

    remember, some of us old folks see what you call a table as a database as it was back in the dBase I - IV days...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Money isn't everything, but it keeps the kids in touch!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 10:31:14

    On 2019 Apr 11 22:33:28, you wrote to Digital Man:

    Jumping from database to database (each time, disconnecting and reconnecting) and then from table to table (if need be) just to find a message that is sent to you would take up system resources and will probably take a lot longer than having everything in one location and asking the database to get "all new messages addressed to me" from one database call.

    this is the main difference between using a dedicated special purpose database and a general purpose database... dedicated special purpose databases will always be faster and more efficient than a general purpose database can ever think about being...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Trespassers will be violated.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Digital Man on Friday, April 12, 2019 10:36:00

    On 2019 Apr 11 20:11:56, you wrote to High Spirit:

    If you give a 15 year old today (with experience in programming) and
    ask him to write a BBS from scratch (if he knew what that was), he
    would store the data in SQLite or MySQL and make it efficient as
    possible. Jumping from database to database (each time, disconnecting
    and reconnecting)

    SQLite has no concept of "connect" or "disconnect". And its certainly possible for an application to open multiple databases (or "connect"
    if that were the case) concurrently.

    not only that but you would probably also want to take advantage of transactions so that in case of a problem, actions can be rolled back as if they had never taken place... then there's the case of a crash and being able to replay transactions to rebuild the database... replication also wants to use
    transactions so you have the same data in other (backup?) databases incase the main one gets damaged... i don't think sqlite has transactions or replication built in... sure, there may be 3rd party tools to provide these functions but why when you can use a more robust database to start with and have this all built in with no extra work needed?

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Just because you own power tools doesn't mean you can fix it.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 10:44:10

    On 2019 Apr 12 00:01:22, you wrote to Digital Man:

    With Gigabytes and Tarabytes of storage these days, do you need to worry

    *terabytes... i don't think Tara's bites are storage... maybe kinky but certainly not storage ;)

    Another option would be to do break up the header and message body, kinda like you do now with the files. Each recipient would get a copy of the header part, but and it would link to a single body. Like so:

    i think this is exactly what he was talking about... it could be done the same way in the current proprietary format, too...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... CLIP CLOP CLIP CLOP <BANG> <BANG> CLIP CLOP - Amish Drive by shooting.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 10:48:34

    On 2019 Apr 12 01:12:06, you wrote to Digital Man:

    Let's say I just want to delete all my usenet message bases quickly
    and easily. How do I do that if they're all stored in the same
    database as all of my other message areas?

    Let's say everything is stored in the same data base. Your usenet
    message base id # is 5. "DELETE FROM messages WHERE msgbaseid = 5;"
    This will delete all the messages in the table that belong to message
    base 5. Run for each usenet message base you are deleting.

    will it also compress the data files and regain that storage space that is now freed? when i/we delete stuff, we expect to see the available drive space go up
    and the file sizes of the database get smaller... we call that "pack and purge"
    even though it kinda works the other way... purge (aka delete) the old messages
    and then pack the message base to reduce the size...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Et cetera: That which makes people believe you know more than you do.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 10:59:32

    On 2019 Apr 12 01:37:16, you wrote to MRO:

    it is a good design. if there's an issue with the msg bases it makes
    backup/recovery very easy. lets say i dont want a msg network
    anymore. i can just delete it in the setup program and the data isnt
    being removed from some huge communial data file.

    That is a good point. SQLite stores everything in one file. Other
    database programs (MySQL, etc) will store a database in a folder and
    each table has it's own couple files.

    that depends on the storage engine being used... MySQL's MyISAM does that, IIRC, but their InnoDB does not... it uses one or two files for everything... then there's their other storage formats to consider, too...


    InnoDB
    MyISAM
    Memory
    CSV
    Merge
    Archive
    Federated
    Blackhole
    Example

    https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html

    As simplistic as SQLite is, it could be a good way to go... I have
    used SQLite a little bit in the past years, but all my clients
    required something with more power. :)

    i think this is really something that an operator should be able to choose... some might be quite ok with sqlite whereas others might prefer MySQL's InnoDB format with its transactional and replication capabilities... i know that some sbbs systems have decades worth of messages stored in them and i'm extremely positive that they do not want to lose all of those messages... being able to use a distributed database model may also appeal to some operators...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Save trees, legalize hemp for fiber farming.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 11:08:40

    On 2019 Apr 11 23:25:10, you wrote to Digital Man:

    you may find that few (if anyone?) separates their application out in
    to multiple databases.

    remember us old folks and old-school terminology... today's tables are our databases from yesteryear ;)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... A mere caricature of a recipe.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Digital Man on Friday, April 12, 2019 11:13:34

    On 2019 Apr 12 01:21:54, you wrote to High Spirit:

    What I don't know is how does a "MSGBodies" table row get
    automatically deleted when the last referencing msg header is deleted?

    that would be another SQL query... you'd query all the message bodies without a
    referencing header... once you have them you remove/delete them...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Pi R Round, and Cornbread R Square.
    ---
    * Origin: (1:3634/12.73)
  • From dmxrob@1:103/705 to Digital Man on Friday, April 12, 2019 11:13:00
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to dmxrob on Thu Apr 11 2019 03:59 pm

    That's how all modern BBS software works, including Synchronet. Each message base (and filebase, for that matter) is a separate file (or set of files). What exactly about that makes you "cringe"?


    It makes no sense. I've worked with various databases for over 30 years, and no product I've used or designed have we ever split things out like that. Again, proper indexing and such will make it so that retrieving messages and such from a single table is super-fast.

    Plus, when querying data who wants to jump from table to table or file to file? That is highly ineffecient. Not to mention backup and restore considerations, etc.

    I work with a system that handles millions of transactions a day, from various groups. We have one master table each transaction goes into. Are there supporting tables? Absolutely, but we do not break them down by group into seperate tables. That would make no sense.

    With proper indexing and the right use of queries, we can retrieve any transaction in less than 1 second. Often in less than half-a-second.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to High Spirit on Friday, April 12, 2019 11:28:59
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Nightfox on Thu Apr 11 2019 09:59 pm

    The problem with having a database for each message board is not really how a database interface like SQLite was meant to be used and managing it would not be as easy. You _COULD_ have a table for each message board but even

    Management is an issue, but when you start breaking things down into their own tables or even databases (as has been suggested) then getting any type of useful information out of them becomes near impossible.

    If I am trying to run a query about how many messages a user has posted, for example, I either need to go through all these seperate tables or I need to run it against each and every database out there to gather the data. Something that should be a 2-second query turns into an entire project.

    My 2-c.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to High Spirit on Friday, April 12, 2019 11:30:49
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Thu Apr 11 2019 10:33 pm

    But all "modern" bbs's are running from code derived from the time before databases of today. If you give a 15 year old today (with experience in programming) and ask him to write a BBS from scratch (if he knew what that

    Highly agree with this statement. I almost laughed when I read 'modern bbs'. No matter how you slice it, every BBS package is buried in legacy code. Some of that legacy code works just fine even today, but some of those ideas and concepts went the way of the dinosaur long ago.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to Digital Man on Friday, April 12, 2019 11:37:12
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:05 pm

    sysop to do *because* of that design. I don't know of any advantage to having *all* the message areas stored in a single database. Sounds like a single-point-of-failure waiting to happen.

    You let the DB management system handle things like this. Data storage - let the DB handle it. Recovery and Backup - let the DB management system coordinate and manage it.

    You said "Delete all my Usenet areas" - easy, that should be a field that indentifies that as belonging to Usenet. Query and delete - whala. 10 seconds to write the query. DELETE from MESSAGESTORE where FORUM_ID = '48474';

    Want to find all your Usenet forums? SELECT FORUM_ID from FORUMS where NET_TYPE = 'U';

    None of this would be easy queries if I have to jump around to multiple databases to search for this data.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to Digital Man on Friday, April 12, 2019 11:40:45
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:11 pm

    searches or scans. The separate base per area model fits the access model well and provides a lot of other management benefits that sysops enjoy.

    Again, you asked for input - and two people (and I am sure more) who have worked with databases for many years are giving you our input and you just continue to either tell us we are wrong or tell us why it can't be done, or some combination thereof.

    I don't see what you want at this point, other than a "you are right!" and so I am just going to remove myself from this conversation. It is clear that you have your mind made up, best of wishes with it.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to High Spirit on Friday, April 12, 2019 11:47:17
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Digital Man on Fri Apr 12 2019 09:28 am

    I think you'd find opposite. Unix NNTP servers store users and messages in multiple databases. Windows Exchange servers store users and messages in multiple databases.

    That is because Active Directory (users) and Exchange (email) are two different things. You cannot have an Exchange server without having an Active Directory.

    :-) ... yep....

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to Digital Man on Friday, April 12, 2019 09:19:06
    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to Va7aqd on Fri Apr 12 2019 01:34 am

    Message attachments are encoded within the message text. That's how message attachments work on the Internet (whether it's SMTP, IMAP, POP3, or NNTP).

    Sure, and maybe it makes sense for Synchro to store things like that as well, and when that's the case, it's
    not Synchro's responsibility to give a darn about the back-end storage space (aside from having a mechanism to
    gracefully handle it being full). As mentioned elsewhere, when one can slap a multi-terabyte system together
    cheaply and easily these days, what is the concern, exactly?

    I haven't seen any "strong technical reasons" for a single monolithic database that you seem to be advocating for.

    How about this one:

    If your goal is simply to put message bases in to some kind of different database management, then what's SQL
    going to get you? Better question might be, what's an RDBMS going to get you?
    If you separate out all of
    your "things" that you're storing, then the "R" in "RDBMS" goes away, and you lose much of what that storage
    engine can do for you.

    If you were to take pretty much everything you create little databases for currently and put them in to a
    single DB, you can then make the DB engine do the work for you for things like:

    - Return me a list of the next 10 messages in message area 27 that user 42 has access to
    - How many new messages across the entire system are there for this user?
    - What are all the messages on the system this user has written?

    These are all single SQL queries when you have all that data together.

    But it sounds like you're mostly interested in some kind of different storage engine for message bases, and
    want to have all the data management processing happening in Synchro's code, not in a DB engine.

    One of the other items that was mentioned wasn't even a thing. You want to remove a message area or areas?
    You do that through SQL - either manually (which might be dangerous) or Synchro
    would just do it automatically
    via scfg (much smarter). Even as it is right now - don't you want to remove a message base in Synchro via
    scfg and not by just deleting the files on disk?

    The fact that the SQL engine then does it's work in the background isn't an issue - it's just something you
    rely on when you use an SQL engine. There really isn't a problem there. Backups aren't a problem. These
    things are all non-issues for anyone who's ever administered an SQL engine.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to mark lewis on Friday, April 12, 2019 14:06:58
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 10:48 am

    will it also compress the data files and regain that storage space that is now freed? when i/we delete stuff, we expect to see the available drive space go up
    and the file sizes of the database get smaller... we call that "pack and purge"
    even though it kinda works the other way... purge (aka delete) the old messages
    and then pack the message base to reduce the size...

    Not sure if SQLite has the capability for pack and purge.. as I said in other messages, I have not used SQLite enough to see how everything works. All my projects, I have used MySQL and MSSQL.

    The current SMB format does not have any built-in capiabilities to pack the database and in order to pack the database it would have to go through each record one at a time and write to new SMB files and then delete the old and rename the new... not sure if this is actually done with the current format or not... but something simlar could be done with the SQLite database (if there is no compact feature) and read through each record and then write to a new database, delete and rename when complete.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 14:19:14

    On 2019 Apr 12 09:19:06, you wrote to Digital Man:

    As mentioned elsewhere, when one can slap a multi-terabyte system
    together cheaply and easily these days, what is the concern, exactly?

    efficiency... why throw storage space and gobs of memory at an inefficiency problem when it can be written to be faster and smaller which makes a lot more sense...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Look! Velveeta sticks to the ceiling!!!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 14:28:56

    On 2019 Apr 12 14:06:58, you wrote to me:

    will it also compress the data files and regain that storage space
    that is now freed? when i/we delete stuff, we expect to see the
    available drive space go up and the file sizes of the database get
    smaller... we call that "pack and purge" even though it kinda works
    the other way... purge (aka delete) the old messages and then pack
    the message base to reduce the size...

    Not sure if SQLite has the capability for pack and purge.. as I said
    in other messages, I have not used SQLite enough to see how everything works. All my projects, I have used MySQL and MSSQL.

    yeah, probably not... i've stayed away from MSSQL ever since i saw folks struggling with it and trying to do something that was a two second job in other SQL databases...

    The current SMB format does not have any built-in capiabilities to
    pack the database and in order to pack the database it would have to
    go through each record one at a time and write to new SMB files and
    then delete the old and rename the new...

    that's exactly how it is done in most any format except one-message-per-file formats... in those cases, the files are simply deleted... they may be renumbered if that option is selected but many of us don't renumber even if we do pack and purge expired or deleted messages...

    not sure if this is actually done with the current format or not...
    but something simlar could be done with the SQLite database (if there
    is no compact feature) and read through each record and then write to
    a new database, delete and rename when complete.

    hummm...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... The strongest muscle in the body is the tongue.
    ---
    * Origin: (1:3634/12.73)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 11:28:00
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 11:18 am

    read the above... being able to recreate lost data is essential... if you lose one table, to you really want to have lost thousands and thousands of historical messages?

    Isn't that a problem for appropriately backing up one's system, regardless of the database mechanism?

    but can it scale? that's the real question... remember, right now we can

    How many millions of queries per second is enough?

    http://tinyurl.com/y6cbvc72

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 11:39:18
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 10:48 am

    will it also compress the data files and regain that storage space that is now freed? when i/we delete stuff, we expect to see the available drive space go up
    and the file sizes of the database get smaller... we call that "pack and purge"
    even though it kinda works the other way... purge (aka delete) the old messages
    and then pack the message base to reduce the size...

    Is that actually true? It seems to me that Synchro has to run an external utility to do that work, it surely isn't packing the
    message DB on every message deletion?

    In SQLite objects are just marked for deletion and one is apparently expected to run a vacuum command on the db periodically. Same
    thing occurs in MySQL, you optimize the tables periodically.

    I'm not sure how this is a detriment to using SQL though. Just a (potential) difference in how the DB storage is handled.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 11:44:13
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 10:59 am

    that depends on the storage engine being used... MySQL's MyISAM does that, IIRC, but their InnoDB does not... it uses one or two files for

    InnoDB has the innodb_file_per_table option, which has become default in MySQL and MariaDB.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 11:45:59
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 11:08 am

    you may find that few (if anyone?) separates their application out in to multiple databases.

    remember us old folks and old-school terminology... today's tables are our databases from yesteryear ;)

    Perhaps, yes! I consider myself an old fart these days, but I wasn't playing with RDBMSes prior to maybe 1998.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to mark lewis on Friday, April 12, 2019 14:39:50
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 11:18 am

    Databases are very effecient these days. With the computing power
    and memory available to them now you can have a huge database

    do you really want to have to have 64+Gig of RAM just to run a BBS using a database format? look at what we have today using proprietary databases and running in much much less memory...

    Challenge accepted! LOL JK. No way 64GB of ram is needed, back when we had a few megabytes to work with, or even less, things were written to work with the memory space available at the time. My RPi with Sycnrhonet uses 160MB of ram with 375MB free, so I have some room to run a small database program like SQLite.

    and as I said in another message, as long as the index pointers are
    set correctly, searching for messages in a certian message base or
    filtering by messages from/to users or even searching keywords in a
    database with thousands of messages wouldn't take much time if it
    was even noticeable.

    true... at the expense of memory and scalability...

    I am not sure if indexing the message bodies would be a good idea, but header information would help.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to mark lewis on Friday, April 12, 2019 14:49:31
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 10:17 am

    so I am assuming preventing duplicate messages. One way I have
    prevented duplication in databases is to create a hash of the text
    and insert it into the record with the message.

    what do you do about hash collisions? the MD5 table space is not infinite and we can easily create messages with different message bodies having the same MD5
    checksum... heck, i just saw, the other day, a malware that has the same MD5 for multiple types of files used to deliver it...

    Synchronet is currently using a CRC32 hash.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to mark lewis on Friday, April 12, 2019 14:54:02
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 10:44 am

    With Gigabytes and Tarabytes of storage these days, do you need to
    worry

    *terabytes... i don't think Tara's bites are storage... maybe kinky but certainly not storage ;)

    I know a Tara... I could picture her being kinky... uhh give me 5 mins please.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to dmxrob on Friday, April 12, 2019 15:07:22
    Re: Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to High Spirit on Fri Apr 12 2019 11:28 am

    Management is an issue, but when you start breaking things down into their own tables or even databases (as has been suggested) then getting any type of useful information out of them becomes near impossible.

    If I am trying to run a query about how many messages a user has posted, for example, I either need to go through all these seperate tables or I need to run it against each and every database out there to gather the data. Something that should be a 2-second query turns into an entire project.

    I have actually been looking in to the SMB format and the Synchronet source code and it would work. Technically it is how it is doing it now. Open MSGBASE, gather data, Close MSGBASE, repeat. SQLite is just adding an interface to store and retrieve data.

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 12:02:35
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 02:19 pm

    As mentioned elsewhere, when one can slap a multi-terabyte system together cheaply and easily these days, what is the concern, exactly?

    efficiency... why throw storage space and gobs of memory at an inefficiency problem when it can be written to be faster and smaller which makes a lot more sense...

    I think this still referred to the part of the discussion that revolves around using a separate database or file or whichever per
    message base, correct?

    So, I'm not sure how a single file DB (or potentially separate file per table) is somehow more inefficient. In fact, as has been
    touched on, you could deduplicate messages that have multiple recipients or message bases by only storing that message once and
    referring to it appropriately from a header reference elsewhere.

    How is spreading files across file systems more efficient in any way? It's flexible, sure, but I don't see it saving anything.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 15:41:32

    On 2019 Apr 12 11:28:00, you wrote to me:

    read the above... being able to recreate lost data is essential... if
    you lose one table, to you really want to have lost thousands and
    thousands of historical messages?

    Isn't that a problem for appropriately backing up one's system,
    regardless of the database mechanism?

    one might look at it like that but let's take reality into account, ok?

    in all your years, how many times have you taken a fresh backup of your system and immediately restored it to a duplicate system to make sure it works? how many people have a duplicate system they can test restorations on and be sure everything is correct? even in the corporate world, i've not seen any backups tested like this to make sure things are working right... not even the large multi-million dollar corps i've worked with wanted to purchase a second machine
    specifically and dedicated to restoration testing...

    but can it scale? that's the real question... remember, right now we
    can

    How many millions of queries per second is enough?

    queries is one thing... i'm thinking more of writes... like when newslink runs and imports 10000 new news group posts... does everything else grind to a halt until all those new messages are imported and then the user sending him mother an email finally gets notice that his email was sent?

    http://tinyurl.com/y6cbvc72

    they're using a customized transaction layer, though...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... There is nothing more respectable than an ancient evil.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 15:50:46

    On 2019 Apr 12 11:39:18, you wrote to me:

    will it also compress the data files and regain that storage space that
    is now freed? when i/we delete stuff, we expect to see the available
    drive space go up and the file sizes of the database get smaller... we
    call that "pack and purge" even though it kinda works the other way...
    purge (aka delete) the old messages and then pack the message base to
    reduce the size...

    Is that actually true?

    absolutely...

    It seems to me that Synchro has to run an external utility to do that work, it surely isn't packing the message DB on every message
    deletion?

    i don't know if it is or not... we always did this during our midnight maintenance when the file bases were processed, new files lists were created, door games were cycled, etc...

    In SQLite objects are just marked for deletion and one is apparently expected to run a vacuum command on the db periodically. Same thing occurs in MySQL, you optimize the tables periodically.

    never ever did that in 15 or 20 years of running phpBB on mysql... it may have done it automatically but i don't know...

    I'm not sure how this is a detriment to using SQL though. Just a (potential) difference in how the DB storage is handled.

    i haven't been trying to point out detriments... only things that one might expect to do with a BBS system... i ran RemoteAccess BBS with FrontDoor and FastEcho from 1989 or so until 2018 Sept when Hurrocane Florence came through here and lead to my system not knowing how to init its drives when power was restored two weeks later... there were things that we always had to do... especially back then when we only had the HMB (Hudson Message Base) format to work with... then along came JAM and the restrictions of the HMB were lifted overnight :)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... OK, after this message, we're BACK on TOPIC.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 16:26:26

    On 2019 Apr 12 11:44:12, you wrote to me:

    that depends on the storage engine being used... MySQL's MyISAM does
    that, IIRC, but their InnoDB does not... it uses one or two files for

    InnoDB has the innodb_file_per_table option,

    i wasn't aware of that... the last time i set something up, i was freaked out that the database files were not where i was expecting to find them... then i discovered that InnoDB was being used by default instead of MyISAM... this was after spending hours making sure the data was imported from an old database server into the new one... after spending all that time, we were quite loath to
    kill it all and do it again with MyISAM which we were used to...

    which has become default in MySQL and MariaDB.

    yeah, i read that MariaDB came from MySQL when oracle snarfed it up... i think i would have left, too ;)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... 11. If you're staying more than one night, unpack.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 16:27:38

    On 2019 Apr 12 11:45:58, you wrote to me:

    you may find that few (if anyone?) separates their application out
    in to multiple databases.

    remember us old folks and old-school terminology... today's tables
    are our databases from yesteryear ;)

    Perhaps, yes! I consider myself an old fart these days, but I wasn't playing with RDBMSes prior to maybe 1998.

    they weren't even called relational databases at that time... much less (R)DBMSes... at least not in dBase and Foxbase* but you could easily relate two
    databases together by an indexed field and yank the needed data as needed... none of this weird SQL muckity-muck :lol:


    * Foxbase before m$ got their grubby mitts on it... we dropped it like a hotcake when that happened... i left the company i was working with shortly after... we sold and modified SBT Accounting... we had source code level and developed modifications for the entire accounting suite as well as writing custom modules for it... inventory management and shipping management were two of the main ones i worked on... then there was the huge custom job for a contact lens manufacturer... that one was fun, to say the least... that was when i set my ""record"" uptime... -my- uptime... not a machine... i did 240 hours (!!) straight coding on that project... then went home and slept for four
    days straight much to the chagrin of my bosses... c0ffee, cigs and pizza can only take you so far ;)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... A SNAG walks into a bar. And leaves when he sees someone smoking.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 16:14:12

    On 2019 Apr 12 14:39:50, you wrote to me:

    Databases are very effecient these days. With the computing power
    and memory available to them now you can have a huge database

    do you really want to have to have 64+Gig of RAM just to run a BBS
    using a database format? look at what we have today using proprietary
    databases and running in much much less memory...

    Challenge accepted! LOL JK.

    hahahaha!

    No way 64GB of ram is needed,

    it could be... depending on the database and the quantity of data and especially if one is needing speed...

    back when we had a few megabytes to work with, or even less, things
    were written to work with the memory space available at the time.

    i'm thinking about a full accounting suite with hundreds of thousands of customer accounts, inventory items and i won't even try to dredge up the old memory of how many transactions per month that all had to be processed in, now get this, effin' BATCH mode! instead of processing everything as it came in... no... they just had to have batch mode... i think they got one of our first 486
    systems and i know we had to add several memory cards to it so the accounting system would run at a decent speed... the memory cards, fully populated, were like four times the cost of the system, itself...

    My RPi with Sycnrhonet uses 160MB of ram with 375MB free, so I have
    some room to run a small database program like SQLite.

    :)

    [...] filtering by messages from/to users or even searching keywords
    in a database with thousands of messages wouldn't take much time if
    it was even noticeable.

    true... at the expense of memory and scalability...

    I am not sure if indexing the message bodies would be a good idea, but header information would help.

    there has to be an index in the message bodies for the headers to be linked to ;)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... McSushi - cooked fresh EVERYDAY!!!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 16:28:06

    On 2019 Apr 12 14:49:30, you wrote to me:

    so I am assuming preventing duplicate messages. One way I have
    prevented duplication in databases is to create a hash of the text
    and insert it into the record with the message.

    what do you do about hash collisions? the MD5 table space is not
    infinite and we can easily create messages with different message
    bodies having the same MD5 checksum... heck, i just saw, the other
    day, a malware that has the same MD5 for multiple types of files used
    to deliver it...

    Synchronet is currently using a CRC32 hash.

    i'm aware :) there's also several levels of duplicate detection that can be used... or one can turn that off if they like... at least they won't miss the unchanging monthly rules postings in the message areas that do such :lol:

    but no comment on hash collisions with different data giving the same hash? :) :) :)

    and nothing about the malware using hash collisions specifically to hide itself? ;) ;) ;)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Clear your mind...if there's anything there, @FN@!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 16:23:36

    On 2019 Apr 12 14:54:02, you wrote to me:

    With Gigabytes and Tarabytes of storage these days, do you need to
    worry

    *terabytes... i don't think Tara's bites are storage... maybe kinky
    but certainly not storage ;)

    I know a Tara... I could picture her being kinky...

    picture? hahahahaha!

    uhh give me 5 mins please.

    TMI!

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Cockie Leekie is *not* a urological condition.
    ---
    * Origin: (1:3634/12.73)
  • From High Spirit@1:103/705 to Va7aqd on Friday, April 12, 2019 16:12:30
    Re: The future of SMB (Synchronet Message Base)
    By: Va7aqd to mark lewis on Fri Apr 12 2019 11:28 am

    but can it scale? that's the real question... remember, right now we
    can

    How many millions of queries per second is enough?

    http://tinyurl.com/y6cbvc72

    The little SQL Engine that could. ;) But I do not see Synchronet ever needing to do millions of queries per second...

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Nightfox@1:103/705 to High Spirit on Friday, April 12, 2019 14:34:39
    Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Va7aqd on Fri Apr 12 2019 04:12 pm

    The little SQL Engine that could. ;) But I do not see Synchronet ever needing to do millions of queries per second...

    You never know.. What if there's a BBS that's very active, with many users online simultaneously? :P

    Nightfox

    ---
    þ Synchronet þ Digital Distortion: digitaldistortionbbs.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to mark lewis on Friday, April 12, 2019 14:52:19
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 10:44 am

    Another option would be to do break up the header and message body, kinda like you do now with the files. Each recipient would get a copy of the header part, but and it would link to a single body. Like so:

    i think this is exactly what he was talking about... it could be done the same way in the current proprietary format, too...

    And that's exactly how SMB has worked in 1993. It's not new, I'm just trying to figure out the best way to achieve the same thing (many to one, msg headers to msg data) in a SQL database. I guess I should probably just find a good book on the subject (creating SQL databases). I'm kind of sorry I brought it up here to be honest.

    digital man

    This Is Spinal Tap quote #5:
    Nigel Tufnel: Authorities said... best leave it... unsolved.
    Norco, CA WX: 73.0øF, 33.0% humidity, 5 mph WNW wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From MRO@1:103/705 to dmxrob on Friday, April 12, 2019 16:35:37
    Re: Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to Digital Man on Fri Apr 12 2019 11:40 am

    Re: Re: The future of SMB (Synchronet Message Base)
    By: Digital Man to High Spirit on Thu Apr 11 2019 08:11 pm

    searches or scans. The separate base per area model fits the access model well and provides a lot of other management benefits that sysops enjoy.

    Again, you asked for input - and two people (and I am sure more) who have worked with databases for many years are giving you our input and you just continue to either tell us we are wrong or tell us why it can't be done, or some combination thereof.

    I don't see what you want at this point, other than a "you are right!" and so I am just going to remove myself from this conversation. It is clear that you have your mind made up, best of wishes with it.


    well i've been using synchronet bbs since 2000-2001
    i use mysql on my servers and i'm familiar with how it works and i have to maintain the databases and fix issues.

    i'm just happy with how synchronet is setup in this regard and i dont think i want the changes you are suggesting.

    now you have an idea. it's just that. i wouldnt call it a good idea or a bad idea. i dont think it's something we would benefit from.

    please dont feel insulted because people don't agree with your idea.
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to mark lewis on Friday, April 12, 2019 17:47:10
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 02:28 pm

    yeah, probably not... i've stayed away from MSSQL ever since i saw folks struggling with it and trying to do something that was a two second job in other SQL databases...

    I've had MSSQL running for over 7 years now on one instance. Hasn't rebooted or been shut down once. Not. One. Time. It's solid and almost up to snuff with Oracle in many areas nowadays.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to High Spirit on Friday, April 12, 2019 17:49:29
    Re: Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to dmxrob on Fri Apr 12 2019 03:07 pm

    I have actually been looking in to the SMB format and the Synchronet source code and it would work. Technically it is how it is doing it now. Open MSGBASE, gather data, Close MSGBASE, repeat. SQLite is just adding an interface to store and retrieve data.

    Why? Why in the world would I want to write and maintain what a RDMS gives me already?

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to mark lewis on Friday, April 12, 2019 17:51:55
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 03:41 pm

    works? how many people have a duplicate system they can test restorations on and be sure everything is correct? even in the corporate world, i've not seen any backups tested like this to make sure things are working right... not even the large multi-million dollar corps i've worked with wanted to purchase a second machine
    specifically and dedicated to restoration testing...
    Not sure where you are working, but we have this in all our critical systems. Have for the 18+ years I've been here.

    How many millions of queries per second is enough?

    queries is one thing... i'm thinking more of writes... like when newslink runs and imports 10000 new news group posts... does everything else grind to a halt until all those new messages are imported and then the user sending him mother an email finally gets notice that his email was sent?

    Writes can be handled right alongside queries in any RDMS worth its salt.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to High Spirit on Friday, April 12, 2019 17:53:38
    Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Va7aqd on Fri Apr 12 2019 04:12 pm

    The little SQL Engine that could. ;) But I do not see Synchronet ever needing to do millions of queries per second...

    I've had the opportunity to see how Wal-Mart does their register lookups. Amazing. Based on a parent-key database system and it rocks. The number of transactions they are doing per second was mind blowing. The response time was incredible.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 18:32:28

    On 2019 Apr 12 16:12:30, you wrote to Va7aqd:

    How many millions of queries per second is enough?

    http://tinyurl.com/y6cbvc72

    The little SQL Engine that could. ;) But I do not see Synchronet ever needing to do millions of queries per second...

    really? you cannot imagine a central sbbs server handling everything and all other systems are just multi-terminals into that one global system? damn, that almost sounds like AOL/Compuserv/Prodigy <gd&r>

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... I am at one with my duality.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Nightfox on Friday, April 12, 2019 18:17:40

    On 2019 Apr 12 14:34:38, you wrote to High Spirit:

    The little SQL Engine that could. ;) But I do not see Synchronet ever
    needing to do millions of queries per second...

    You never know.. What if there's a BBS that's very active, with many users online simultaneously? :P

    there's one in europe that purports to have 100+ callers a day and their x-node
    chat stays busy...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... To find friendship, offer friendship.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Digital Man on Friday, April 12, 2019 18:18:48

    On 2019 Apr 12 14:52:18, you wrote to me:

    Another option would be to do break up the header and message body,
    kinda like you do now with the files. Each recipient would get a
    copy of the header part, but and it would link to a single body.
    Like so:

    i think this is exactly what he was talking about... it could be done
    the same way in the current proprietary format, too...

    And that's exactly how SMB has worked in 1993. It's not new,

    very true...

    I'm just trying to figure out the best way to achieve the same thing
    (many to one, msg headers to msg data) in a SQL database.

    the main thing is understanding RDBMSes and how they are linked relationally...
    from there it is simply a matter of an indexed field that contains the same identifying marker which links the two databases together... you're basically already doing this and the ""problem"", such as it is, is to switch gears and think like a RDBMS instead of a proprietary database format... other than that it is really about the same... you just don't need to code all the storage and access stuffings... the RDBMS takes care of that for you which removes a layer or three of complexity or two from the program...

    I guess I should probably just find a good book on the subject
    (creating SQL databases).

    i'd recommend something if i had any ideas... i don't and that mainly because i
    taught myself on the job but that was in the '90s... since then i've only dabbled here and there with it... one time wasting project to teach myself was a geo-location database... it was easier when the IPs were handed out in a relatively decent order but times have changed and the IP address space has gotten fragmented... besides, it was only a curiousity task that i had thought to maybe attach to my phpBB forums when i was a lot more involved with them...

    I'm kind of sorry I brought it up here to be honest.

    i can understand that... the first thing i saw was the similarities beteween the terminology used and how that could throw things into a kilter... i had to switch gears several times while reading the responses... you did, however, get
    a lot of good information... maybe not as clearly as you desired and a lot not really related to your actual question but some of the responses did take into account the current layout of the SMB... really you could likely duplicate that
    pretty much in a RDBMS and go on from there... the gear switching part would be
    doing it with SQL queries instead of the code you're currently used to using...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Animany, Totally insaney, Cockamamey, Animaniacs!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to dmxrob on Friday, April 12, 2019 19:01:28

    On 2019 Apr 12 17:47:10, you wrote to me:

    yeah, probably not... i've stayed away from MSSQL ever since i saw
    folks struggling with it and trying to do something that was a two
    second job in other SQL databases...

    I've had MSSQL running for over 7 years now on one instance. Hasn't rebooted or been shut down once. Not. One. Time. It's solid and
    almost up to snuff with Oracle in many areas nowadays.

    right... i was speaking of the folks at the call center that was reselling DirecTV... they were writing the program to handle all their calls while the system was alive and dealing with i don't know how many calls an hour... they had 100 call handlers in one room when we went in and installed the computers which were tied into their VoIP muck... the developers in the back room were always fighting something in the code... the few times i looked over their shoulders and asked about the problem, they were shocked when i told them how easy it was to do in some other language/RDBMS... i learned my lesson and left them to it so as to not cause ripples in the companiy's chosen """solution"""...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Clear your mind...if there's anything there, @FN@!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to dmxrob on Friday, April 12, 2019 19:05:38

    On 2019 Apr 12 17:51:54, you wrote to me:

    works? how many people have a duplicate system they can test
    restorations on and be sure everything is correct? even in the
    corporate world, i've not seen any backups tested like this to make
    sure things are working right... not even the large multi-million
    dollar corps i've worked with wanted to purchase a second machine
    specifically and dedicated to restoration testing...

    Not sure where you are working,

    in the initial instance, i was talking about home networks... not work...

    but we have this in all our critical systems. Have for the 18+ years
    I've been here.

    i've still yet to see such in any corporate entity i've worked with in the last
    decade... certainly not in the last three decades...

    How many millions of queries per second is enough?

    queries is one thing... i'm thinking more of writes... like when
    newslink runs and imports 10000 new news group posts... does
    everything else grind to a halt until all those new messages are
    imported and then the user sending him mother an email finally gets
    notice that his email was sent?

    Writes can be handled right alongside queries in any RDMS worth its salt.

    i understand that but i'm talking about something like a 10000 message import at once while other things are being done... that was the example i gave above... do you lock and import them all at once or do you lock and unlock between each one... how long would it take to import 10000 messages into a database? 5 seconds? 30 seconds? 5 minutes? brings to mind my previous system that took 45+ minutes every night to perform the midnight maintanence...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Can you be a closet claustrophobic?
    ---
    * Origin: (1:3634/12.73)
  • From dmxrob@1:103/705 to MRO on Friday, April 12, 2019 17:57:32
    Re: Re: The future of SMB (Synchronet Message Base)
    By: MRO to dmxrob on Fri Apr 12 2019 04:35 pm

    please dont feel insulted because people don't agree with your idea.

    It's not about hurt feelings. It is what is called asking for input and then shooting down everything that anyone mentions. You don't want input, you want "attaboys!" at that point.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 16:05:25
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 03:41 pm

    one might look at it like that but let's take reality into account, ok?

    in all your years, how many times have you taken a fresh backup of your system and immediately restored it to a duplicate system to make sure it works? how many people have a duplicate system they can test restorations on and be sure everything is correct? even in the corporate world, i've not seen any backups tested like this to make sure things are working right... not even the large multi-million dollar corps i've worked with wanted to purchase a second machine

    Er... what? I'm not sure how being cavalier about backups gets people through.
    Either you do backups or you have data issues at
    some point. Splitting message bases in to individual files doesn't negate that. If you haven't done your storage and backup
    properly, a drive dying could be just as disastrous. Am I misreading your meaning?

    I dunno, I'm just not getting the issue - I use borg backup on all my servers and have been super pleased with all the restoration
    tests and required restorations that have had to be done. Few and far between,
    but it's been great.

    queries is one thing... i'm thinking more of writes... like when newslink runs and imports 10000 new news group posts... does everything else grind to a halt until all those new messages are imported and then the user sending him mother an email finally gets notice that his email was sent?

    That just comes down to coding the write queueing with some priorities. Let batch jobs have lower priority and interactive jobs
    like a user saving a message jump the queue.

    http://tinyurl.com/y6cbvc72
    they're using a customized transaction layer, though...

    Yes, I know, but even if Synchro's method of using it could only produce, what,
    100 write options per second, how many systems
    would that introduce any noticeable slowdown on - especially if batch queueing is done in appropriate priority?

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 16:19:24
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 03:50 pm

    expected to run a vacuum command on the db periodically. Same thing occurs in MySQL, you optimize the tables periodically
    never ever did that in 15 or 20 years of running phpBB on mysql... it may have done it automatically but i don't know...

    I believe it's only offered as an extension for PHPBB unless you want to do it by hand. It's one of those maintenance things that
    should be done, but if you have the storage space, you may never need to.

    i haven't been trying to point out detriments... only things that one might expect to do with a BBS system... i ran RemoteAccess BBS with FrontDoor and
    ...
    to do... especially back then when we only had the HMB (Hudson Message Base) format to work with... then along came JAM and the restrictions of the HMB were lifted overnight :)

    Sure, fair enough... I'm just going through the discussion on what seems to be the sane thing to do with an SQL DB or not, since I
    think some information needs to be disseminated if the DB stuff in Synchro is going to go down that road. It's obviously very
    preliminary, and I would hate to see some really obvious design flaws be developed in that would need to be corrected in short
    order as the SQL experience level came up. Actually, it wouldn't really matter
    all that much, but I've seen what I've seen with
    SQL DBs over the years, just want to be sure some of the concepts are understood where I can help with that.

    I also think it's interesting that the idea of redesigning or re-back-ending the message base DBs has come forth anyway, as the
    system seems to be pretty damn speedy all around. I don't have a ton of messages on here being processed yet, but it's tough to
    complain with a small system anyway. Would be interesting to see what kind of load Vertrauen's under at times, if the load is even
    a thing.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 16:21:29
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 04:26 pm

    i wasn't aware of that... the last time i set something up, i was freaked out that the database files were not where i was expecting to find them... then i discovered that InnoDB was being used by default instead of MyISAM... this was after spending hours making sure the data was imported

    Deja Vu! Yes, I remember the first time I had InnoDB defaulted on me - (censored) thoughts were "They did *what* with the *what*
    and where's my damn data?!?"

    yeah, i read that MariaDB came from MySQL when oracle snarfed it up... i think i would have left, too ;)

    No kidding!

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Friday, April 12, 2019 16:36:17
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 04:27 pm

    they weren't even called relational databases at that time... much less (R)DBMSes... at least not in dBase and Foxbase* but you could easily relate two
    databases together by an indexed field and yank the needed data as needed... none of this weird SQL muckity-muck :lol:

    Huh, I wonder if that's why things evolved to be contained in a single database
    with a bunch of tables... interesting.

    did 240 hours (!!) straight coding on that project... then went home and slept for four
    days straight much to the chagrin of my bosses... c0ffee, cigs and pizza can only take you so far ;)

    240 hours? I'm sorry, I'm a wuss, don't think I could do that sort of thing without falling dead - even when I was on a coffee,
    smokes and pizza diet too! lol.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to mark lewis on Friday, April 12, 2019 19:24:40
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 04:14 pm

    I am not sure if indexing the message bodies would be a good idea,
    but header information would help.

    there has to be an index in the message bodies for the headers to be linked to ;)

    I was refering to the indexing in the database to make data searches faster... :)

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From High Spirit@1:103/705 to mark lewis on Friday, April 12, 2019 19:33:26
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to High Spirit on Fri Apr 12 2019 04:28 pm

    but no comment on hash collisions with different data giving the same hash? :) :) :)

    Did there need to be? I know there are collisions with MD5.

    and nothing about the malware using hash collisions specifically to hide itself? ;) ;) ;)

    I am trying to figure out how a hash generated and stored in a database could have anything to do with malware. Are you saying malware detection programs may detect the hash collision as a false-positive in memory?

    -- High Spirit Digital Realms Main - connect.digitalrealms.net 23
    Digital Realms C=64 - connect.digitalrealms.net 6400

    ---
    þ Synchronet þ Digital Realms BBS - connect.digitalrealms.net
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From mark lewis@1:3634/12.73 to dmxrob on Friday, April 12, 2019 20:33:52

    On 2019 Apr 12 17:57:32, you wrote to MRO:

    please dont feel insulted because people don't agree with your idea.

    It's not about hurt feelings. It is what is called asking for input
    and then shooting down everything that anyone mentions. You don't
    want input, you want "attaboys!" at that point.

    errrmmmm... the original question was about creating database schemas... not how to query or how fast things may or may not be ;)

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... File not found: Loading something that looked similar.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 20:35:50

    On 2019 Apr 12 16:05:24, you wrote to me:

    http://tinyurl.com/y6cbvc72
    they're using a customized transaction layer, though...

    Yes, I know, but even if Synchro's method of using it could only produce, what, 100 write options per second, how many systems would that introduce any noticeable slowdown on - especially if batch queueing is done in appropriate priority?

    100 writes per second??? that slow, hunh? i've got code here that was tested on
    a 200mhz Pentium II system... it was clocked posting 500+ messages per second to JAM bases... that's nasty old Turbo Pascal 6 OOP code... i'm sure that sbbs's posting utility can achieve that rate and then some... especially on today's 4Ghz systems... but i may be misunderstanding what you are trying to say... it has been a long day and the meds are kicking rather meanly right now...

    i'll try to get back and answer the rest of your message... not sure when, though...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Okay, Okay! I take it back. Unfuck you.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 20:44:06

    On 2019 Apr 12 16:19:24, you wrote to me:

    expected to run a vacuum command on the db periodically. Same
    thing
    occurs in MySQL, you optimize the tables periodically
    never ever did that in 15 or 20 years of running phpBB on mysql... it
    may have done it automatically but i don't know...

    I believe it's only offered as an extension for PHPBB unless you want to
    do
    it by hand.

    i dunno... i never installed any extensions and wasn't interested in any... mainly because updating could be a problem :shrug:

    It's one of those maintenance things that should be done, but if you
    have the storage space, you may never need to.

    interesting... i must not have been much of a database admin/manager, then... i
    dunno...

    i haven't been trying to point out detriments... only things that one
    might expect to do with a BBS system... i ran RemoteAccess BBS with
    FrontDoor and
    ...
    to do... especially back then when we only had the HMB (Hudson Message
    Base) format to work with... then along came JAM and the restrictions
    of the HMB were lifted overnight :)

    Sure, fair enough... I'm just going through the discussion on what seems
    to
    be the sane thing to do with an SQL DB or not,

    understood... the original question was related only to schemas, though...

    since I think some information needs to be disseminated if the DB
    stuff in Synchro is going to go down that road.

    i understand exactly what you're saying... i think DM was speaking of doing this in a test bed to see how it would be, too...

    It's obviously very preliminary, and I would hate to see some really obvious design flaws be developed in that would need to be corrected
    in short order as the SQL experience level came up.

    that's why he was starting with the schemas ;)

    Actually, it wouldn't really matter all that much, but I've seen what
    I've seen with SQL DBs over the years, just want to be sure some of
    the concepts are understood where I can help with that.

    you sound like me... i'm always offering help in whatever manner i can... sometimes it is even nothing more than an anecdote which someone might be able to relate to and gain understanding...

    I also think it's interesting that the idea of redesigning or re-back-ending the message base DBs has come forth anyway, as the
    system seems to be pretty damn speedy all around. I don't have a ton
    of messages on here being processed yet, but it's tough to complain
    with a small system anyway. Would be interesting to see what kind of
    load Vertrauen's under at times, if the load is even a thing.

    true... i understand there is the sheer number of messages in storage going back decades...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... I smile a lot because I have no idea what's going on!
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to Va7aqd on Friday, April 12, 2019 20:50:42

    On 2019 Apr 12 16:36:16, you wrote to me:

    they weren't even called relational databases at that time... much less
    (R)DBMSes... at least not in dBase and Foxbase* but you could easily
    relate two databases together by an indexed field and yank the needed
    data as needed... none of this weird SQL muckity-muck :lol:

    Huh, I wonder if that's why things evolved to be contained in a single database with a bunch of tables... interesting.

    remember, i'm using the old terminology... .dbf files were databases... indexes
    were .ndx files... some were .mdx later on and they were like multiple indexes all in one file, IIRC...

    the main difference in terminology that what you call a table, today, was an individual .dbf file that we called a database back in the day... a whole group
    of .dbf files was also a database and i suspect thats why someone came up with "table" to describe the individual .dbf files and used "database" to describe the whole conglomeration of .dbf and .ndx files...

    did 240 hours (!!) straight coding on that project... then went home
    and slept for four days straight much to the chagrin of my bosses...
    c0ffee, cigs and pizza can only take you so far ;)

    240 hours? I'm sorry, I'm a wuss, don't think I could do that sort of thing without falling dead - even when I was on a coffee, smokes and pizza diet too! lol.

    truth be told, i grew up on computers... very little social interaction other than at school and then i was the scrawney kid the jocks tossed around and the jealous bullies picked on... i was smart and i didn't hesitate to show it... i read the school books like novels and a lot of those that picked on me could barely read or even understand the subjects being taught... they didn't ask for
    help, though... i can't think of a nice enough word to describe them without insulting the real ones that fit such words... so anyway, spending days on a system was great... it didn't bitch, gripe or complain... it didn't beat on me or throw me around... the best part was that if it didn't do what i told it to do, i shut it off and rewrote it... it was a lot more satisfying than being around other humans... then i met a girl, got pregnant, joined the USAF and everything fell apart... i'm surprised i made it this far, TBH, but i'm, not the same person i was back then...

    /meds

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Have a back-up plan, because the first one probably won't work.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 21:02:24

    On 2019 Apr 12 19:24:40, you wrote to me:

    I am not sure if indexing the message bodies would be a good idea,
    but header information would help.

    there has to be an index in the message bodies for the headers to be
    linked to ;)

    I was refering to the indexing in the database to make data searches faster... :)

    so was i... index the message body ID number to make the searches faster... the
    ID number is/was the index currently used... maybe they were based on byte position in the file or the record number of the first record of the message body... i dunno, ATM... either way, an indexed field is/was needed to relate two tables together so searching for header X would also find message body Y as
    intended...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... One good turn is usually enough to get a person lost.
    ---
    * Origin: (1:3634/12.73)
  • From mark lewis@1:3634/12.73 to High Spirit on Friday, April 12, 2019 21:05:00

    On 2019 Apr 12 19:33:26, you wrote to me:

    but no comment on hash collisions with different data giving the same
    hash? :) :) :)

    Did there need to be? I know there are collisions with MD5.

    well sure! especially when the hashes were used for other things they should never have been used for... eg: instead of storing passwords in the database, store the hash with maybe a seed added in... RA was the first BBS to do that, AFAIK... some operators liked it... others didn't... those that didn't like it didn't like it because they could no longer read a user's password in the clear...

    and nothing about the malware using hash collisions specifically to
    hide itself? ;) ;) ;)

    I am trying to figure out how a hash generated and stored in a
    database could have anything to do with malware.

    ever heard of virustotal?

    Are you saying malware detection programs may detect the hash
    collision as a false-positive in memory?

    that is a possibility, yes... then main thing i was trying to get across is that the malware infiltrates and infests systems via several different avenues... pdf and msword doc files are two... the pdf file and the doc file have the same exact hash and both use their own techniques to execute the infestation plan... IIRC, this was one of those ransomware critters but also IIRC, the encrypter was broken so it didn't do much of anything to encrypt your
    files...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... "Mele Kalikimake me ka Hauloi Makahiki hou." - Hawaiian Christmas
    ---
    * Origin: (1:3634/12.73)
  • From MRO@1:103/705 to dmxrob on Friday, April 12, 2019 22:48:49
    Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to High Spirit on Fri Apr 12 2019 05:53 pm

    Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Va7aqd on Fri Apr 12 2019 04:12 pm

    The little SQL Engine that could. ;) But I do not see Synchronet ever needing to do millions of queries per second...

    I've had the opportunity to see how Wal-Mart does their register lookups. Amazing. Based on a parent-key database system and it rocks. The number of transactions they are doing per second was mind blowing. The response time was incredible.



    yet they cant cycle count and know what their stock truly is.
    and last week i ordered black drapes and they pulled red ones for me and had no black ones in stock.
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From MRO@1:103/705 to dmxrob on Friday, April 12, 2019 22:51:59
    Re: Re: The future of SMB (Synchronet Message Base)
    By: dmxrob to MRO on Fri Apr 12 2019 05:57 pm

    Re: Re: The future of SMB (Synchronet Message Base)
    By: MRO to dmxrob on Fri Apr 12 2019 04:35 pm

    please dont feel insulted because people don't agree with your idea.

    It's not about hurt feelings. It is what is called asking for input and then shooting down everything that anyone mentions. You don't want input, you want "attaboys!" at that point.


    well he's being honest with you. he could say that's a good idea and then do nothing.


    i dont think rob swindell wants his ego stroked and if a good idea is mentioned he normally impliments it or puts it on the todo list.

    he will even impliment something if he doesnt agree with it and a lot of
    people ask for it.
    ---
    þ Synchronet þ ::: BBSES.info - free BBS services :::
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to mark lewis on Saturday, April 13, 2019 08:11:22
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to dmxrob on Fri Apr 12 2019 07:01 pm

    back room were always fighting something in the code... the few times i looked over their shoulders and asked about the problem, they were shocked when i told them how easy it was to do in some other language/RDBMS... i

    Sounds like unskilled programmers to be honest. MSSQL has got to be one of the easiest RDBMS systems to work with and it is documented like crazy.

    However, I often come across this as well in my professional life -- people writing code to "get around" the system and then wonder why the system isn't stable.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From dmxrob@1:103/705 to mark lewis on Saturday, April 13, 2019 08:13:00
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to dmxrob on Fri Apr 12 2019 07:05 pm

    unlock between each one... how long would it take to import 10000 messages into a database? 5 seconds? 30 seconds? 5 minutes? brings to mind my previous system that took 45+ minutes every night to perform the midnight

    Lot of variables there, so hard to give an answer. However, from a purely hypothetical point of view, loading 1000 messages should be mere seconds, if that. Your biggest bottleneck will be your I/O reading the packets to load.

    ---
    þ Synchronet þ Gateway to the West [ bbs.homelabber.net ]
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to High Spirit on Saturday, April 13, 2019 15:48:36
    Re: The future of SMB (Synchronet Message Base)
    By: High Spirit to Va7aqd on Fri Apr 12 2019 04:12 pm

    The little SQL Engine that could. ;) But I do not see Synchronet ever needing to do millions of queries per second...

    Exactly the point - even though these guys used an added piece, I think the question of scalability is probably well off the table.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Saturday, April 13, 2019 16:00:59
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 08:35 pm

    Yes, I know, but even if Synchro's method of using it could only produce, what, 100 write options per second, how many systems would that introduce any noticeable slowdown on - especially if batch queueing is done in appropriate priority?
    100 writes per second??? that slow, hunh? i've got code here that was tested

    Heh, sorry, let me clarify a bit of that. ... "Ever if Syncro's method of using SQLite could only produce (some really poor
    low-water example) 100 write operations per second..." Did I actually say "write options"? I didn't even have any meds to explain
    it with!

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Saturday, April 13, 2019 16:04:08
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 08:44 pm

    true... i understand there is the sheer number of messages in storage going back decades...

    I should have a closer look! Would be interesting to see how far things go back.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Saturday, April 13, 2019 16:11:19
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 08:50 pm

    insulting the real ones that fit such words... so anyway, spending days on a system was great... it didn't bitch, gripe or complain... it didn't beat on me or throw me around... the best part was that if it didn't do what i told it to do, i shut it off and rewrote it... it was a lot more satisfying than being around other humans... then i met a girl, got pregnant, joined the USAF and everything fell apart... i'm surprised i made it this far, TBH, but i'm, not the same person i was back then...

    I totally understand where you're coming from and have known many like you along the years, many fine people. I did like being
    competent on the computer as well, which has lead me in to my technical career,
    but I had enough kicks in the pants along the way
    to learn to deal with the bullies (as kids) and later just everyone in general better than if I'd kept myself too socially
    isolated. That said, I'm still a geek. heh.

    I"m sorry to hear things fell apart... but it's easy to see that you're still very in tune with having fun with the technology and
    discussing it with others.

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Va7aqd@1:103/705 to mark lewis on Tuesday, April 16, 2019 22:49:18
    Re: The future of SMB (Synchronet Message Base)
    By: mark lewis to Va7aqd on Fri Apr 12 2019 08:44 pm

    with a small system anyway. Would be interesting to see what kind of load Vertrauen's under at times, if the load is even a thing.
    true... i understand there is the sheer number of messages in storage going back decades...

    I logged on to Vert earlier today to follow up on this, as I was curious. I don't see many messages hanging around - are they
    archived somewhere?

    ---
    þ Synchronet þ VA7AQD's Tavern - bbs.isurf.ca
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From mark lewis@1:3634/12.73 to Va7aqd on Wednesday, April 17, 2019 06:39:08

    On 2019 Apr 16 22:49:18, you wrote to me:

    with a small system anyway. Would be interesting to see what kind
    of load Vertrauen's under at times, if the load is even a thing.

    true... i understand there is the sheer number of messages in storage
    going back decades...

    I logged on to Vert earlier today to follow up on this, as I was
    curious. I don't see many messages hanging around - are they archived somewhere?

    i don't know... digital man would be the one to ask about that, really... as i noted above, it is my understanding and that based on conversations read over the last few years... i've never gone looking for them, though...

    )\/(ark

    Always Mount a Scratch Monkey
    Do you manage your own servers? If you are not running an IDS/IPS yer doin' it wrong...
    ... Change the subject? I thought it was toilet trained!
    ---
    * Origin: (1:3634/12.73)
  • From poindexter FORTRAN@1:103/705 to dmxrob on Sunday, April 14, 2019 14:51:00
    dmxrob wrote to Digital Man <=-

    Not to mention backup and restore considerations, etc.

    Yes, exactly. I want to be able to do a single database dump and catch
    all my tables, instead of being offered the chance to be
    lazy/impatient and miss backing up a database because I thought I
    didn't need it. :)

    (asking for a friend)



    ... VMS must die!
    --- MultiMail/XT v0.51
    þ Synchronet þ realitycheckBBS -- http://realitycheckBBS.org
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Jason@1:103/705 to Digital Man on Monday, April 29, 2019 22:48:35
    Re: The future of SMB (Synchr
    By: Digital Man to Nightfox on Mon Apr 08 2019 05:03 pm

    They're just ideas. Performance, reliability, and extensibility. That's the main thing I'm after in any changes to any file formats (where it matters).


    Are you thinking of using 1 sqlite database for all the message areas or are you thinking of having a sqlite file for each area specifically?


    Well I'm mainly interested in input from folks who've designed database schemas. I want to try to do it right the first time (naturally).


    I've been working with SQL for several years and have built out entire online CRM systems from scratch using PHP, MySQL, and more recently using Laravel and sqlite database files. I have also built Windows based client/server apps using Microsoft SQL Server on the backend, but that is way overkill compared to SQLite.

    Needless to say, I would be happy to try and help in any way I can.

    Thanks,
    Jason

    ---
    þ Synchronet þ Hard Drive Cafe - hdcbbs.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Digital Man@1:103/705 to Jason on Monday, April 29, 2019 21:42:07
    Re: The future of SMB (Synchr
    By: Jason to Digital Man on Mon Apr 29 2019 10:48 pm

    Re: The future of SMB (Synchr
    By: Digital Man to Nightfox on Mon Apr 08 2019 05:03 pm

    They're just ideas. Performance, reliability, and extensibility. That's the main thing I'm after in any changes to any file formats (where it matters).


    Are you thinking of using 1 sqlite database for all the message areas or are you thinking of having a sqlite file for each area specifically?

    One sqlite file for each area.

    Well I'm mainly interested in input from folks who've designed database schemas. I want to try to do it right the first time (naturally).


    I've been working with SQL for several years and have built out entire online CRM systems from scratch using PHP, MySQL, and more recently using Laravel and sqlite database files. I have also built Windows based client/server apps using Microsoft SQL Server on the backend, but that is way overkill compared to SQLite.

    Needless to say, I would be happy to try and help in any way I can.

    I plan to do a lot more research before designing the database schema. You can see the other discussions here already on this topic. If you have anything valuable to add in regards to data de-duplication, I'm all ears.

    digital man

    Synchronet/BBS Terminology Definition #3:
    ASCII = American Standard Code for Information Interchange
    Norco, CA WX: 56.9øF, 85.0% humidity, 6 mph ESE wind, 0.00 inches rain/24hrs --- SBBSecho 3.07-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Jason@1:103/705 to Digital Man on Tuesday, April 30, 2019 00:52:36
    Re: The future of SMB (Synchr
    By: Jason to Digital Man on Mon Apr 29 2019 10:48 pm

    Re: The future of SMB (Synchr
    By: Digital Man to Nightfox on Mon Apr 08 2019 05:03 pm

    They're just ideas. Performance, reliability, and extensibility. That's the main thing I'm after in any changes to any file formats (where it matters).


    Are you thinking of using 1 sqlite database for all the message areas or are you thinking of having a sqlite file for each area specifically?


    Well I'm mainly interested in input from folks who've designed database schemas. I want to try to do it right the first time (naturally).


    I've been working with SQL for several years and have built out entire online CRM systems from scratch using PHP, MySQL, and more recently using Laravel and sqlite database files. I have also built Windows based client/server apps using Microsoft SQL Server on the backend, but that is way overkill compared to SQLite.

    Needless to say, I would be happy to try and help in any way I can.

    Thanks,
    Jason

    Lol.. I guess i was very late to the game on this one.. my bad!! :)

    Jason

    ---
    þ Synchronet þ Hard Drive Cafe - hdcbbs.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Jason@1:103/705 to Digital Man on Tuesday, April 30, 2019 15:56:46
    Re: The future of SMB (Synchr
    By: Digital Man to Jason on Mon Apr 29 2019 09:42 pm

    I plan to do a lot more research before designing the database schema. You can see the other discussions here already on this topic. If you have anything valuable to add in regards to data de-duplication, I'm all ears.

    Other than thinking about using a json field in the table to say who the message belongs to, or what headers belong to the post using a json field so you don't have to create multiple records to say which headers belong to a message or to whom the message is meant for... In all the messages i read here, i don't think i have seen anyone mention using a json field.. Maybe thats helpful? would prevent a lot of records from being needlessly created..

    As far as the 1 database or multiple databases, i can see the advantages and potential drawbacks to both, but i think they are both sound arguments. Of course this is just an opinion not a statement of fact.

    I do see that either way you go, you'll still probably end up having to update or create a new "SMBUTIL" helper to do maintenance on the databases either way... There is an auto vacuum mode, but i have experienced performance issues using it.. So kind of like you have now "Self Packing" and "Fast Allocation".. Then for funzies, you could create a "Hyper Allocation" mode where all the message areas are put into 1 file rather than multiple.. And like it's current setup, you can't switch between them without starting over for that message area...

    Hope some of that was helpful... :)

    Jason

    ---
    þ Synchronet þ Hard Drive Cafe - hdcbbs.com
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)