Will Mystic 2.0 come to light one day?
There is almost always a "Mystic 2 build" that I am working on that has never been released. They are sort of a "proof of concept" and one was even written in Java. The current unreleased iteration focuses on an entirely new terminal engine, a entirely new MPL, and uses SQL
databases. Maybe that will become the real Mystic 2? Or maybe some of those things will get moved into 1.x. Who knows!
Will Mystic 2.0 come to light one day?
Probably at some point but this is a complex answer.
Historically I've used those 2.x versions for the purpose of experimenting with
major changes that end up in the 1.x version. For example the current server >code in MIS started off as a Mystic 2 demo that people could test. It had IPV6
and SSL/SSH which weren't in 1.x at the time. The current -CFG menus started >off in a Mystic 2.x release, and so on.
Both times I had a publically released Mystic 2 branch available, the community
voted to continue with 1 and discontinue working on Mystic 2. They wanted me >to move some key features from 2 demo into 1.
There is almost always a "Mystic 2 build" that I am working on that has never >been released. They are sort of a "proof of concept" and one was even written
in Java. The current unreleased iteration focuses on an entirely new terminal
engine, a entirely new MPL, and uses SQL databases. Maybe that will become the
real Mystic 2? Or maybe some of those things will get moved into 1.x. Who >knows!
--- Mystic BBS v1.12 A47 2020/09/27 (Windows/64)
* Origin: Sector 7 | Mystic WHQ (1:129/215)
Will Mystic 2.0 come to light one day?
Probably at some point but this is a complex answer.
Historically I've used those 2.x versions for the purpose of experimenting with
major changes that end up in the 1.x version. For example the current server >code in MIS started off as a Mystic 2 demo that people could test. It had IPV6
and SSL/SSH which weren't in 1.x at the time. The current -CFG menus started >off in a Mystic 2.x release, and so on.
Both times I had a publically released Mystic 2 branch available, the community
voted to continue with 1 and discontinue working on Mystic 2. They wanted me >to move some key features from 2 demo into 1.
There is almost always a "Mystic 2 build" that I am working on that has never >been released. They are sort of a "proof of concept" and one was even written
in Java. The current unreleased iteration focuses on an entirely new terminal
engine, a entirely new MPL, and uses SQL databases. Maybe that will become the
real Mystic 2? Or maybe some of those things will get moved into 1.x. Who >knows!
--- Mystic BBS v1.12 A47 2020/09/27 (Windows/64)
* Origin: Sector 7 | Mystic WHQ (1:129/215)
I'm curious your thoughts around SQL databases. On the one hand, it standardizes your database functions around what's been the norm in industry for decades, which is cool. But on the other hand, you're
adding a dependency and you'll ultimately open yourself up to "can we
use postgres" "can we use mongo" etc.
I'm curious what you see as the benefit?
I don't think there are too many benefits considering the effort it
would take to switch over to it. The TLDR version is that if I were starting from scratch today I think I'd use SQLite3, but I am not sure
if the effort required to switch over to it justifies the gains at this point.
As far as pros, it would simplify the code once everything is working since all of the file locking and disk writing would be left up to
SQLITE.
It would make adding new columns into a database schema much easier
since SQL does all the legwork for you and when I do it with direct
data, I have to rebuild the file manually.
It would provide better access to the data outside of Mystic for writing utilities. This is both a pro and a con because its easier for people to experiment and mess up their data, but having SQL would be better for people to whip up utility functions in whatever script language they
like.
It'd also make it easier for on-the-fly sorting of data for things like message listings and file listings, since Mystic today currently relies
on sorting that data on disk. All of the internal paginating could probably be moved to SQL although that I've read is another thing that SQLite isn't amazing at doing.
Memory usage would probably increase significantly. Mystic is very lightweight when it comes to memory used when reading data, and SQLITE would require much more. I don't know the amount it would use offhand
but I do know that if you deprive it of memory it will sometimes slow it to a crawl. On the flip, Mystic today doesn't use more than maybe 8-20 kilobytes when reading data files. If there were scaled across a decent number of nodes the difference might be pretty massive.
SQLite support would probably be best left for a Mystic 2 spin off given the amount of work it'd probably take to rewrite all the message base and FidoNet/QWK stuff. It seems like it'd be easier to just build something from scratch and that would also allow me to do things like change the directory structure, MCI code system, etc, without having to build an upgrade path for the data files.
Right - and making ontological changes or adding rows here and there
would be pretty straightforward, without some gross migration binary
each release.
That shit scares me. Hehe.
Memory is damn near free these days :) My VPS has 8GB RAM and idles
around 400MB. I love efficiency and optimization but also love utility, hehe.
Did The Millionaire fire up your Mystic 2 spirit?!
You're not wrong but it depends on what your target is! Lets say someone has 25 active nodes each with the need to have a DB connection. It
might look something like:
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 376 |
Nodes: | 16 (2 / 14) |
Uptime: | 23:43:41 |
Calls: | 8,034 |
Calls today: | 4 |
Files: | 13,034 |
Messages: | 5,828,976 |