I'm struggling with finding a database which is good enough for 95% of all users, which
- Is free of charge
- Supports concurrency
- Can be shipped with open source software
- Has good performance
Our posts crossed but as much as I understand this (and it's quite likely true to a certain extent) if someone can't take the few minutes it takes to install SQL what makes you think they're suited to run a mail server?martin wrote:I'm worried that a lot of users will give up to early if they are forced to first install some other software prior to installing hMailServer. If there is a good database engine - and the new SQL Compact or SQLite which will both be released this week - I think it would be good to bundle them. Both the releases this week are designed to improve concurrency which is the main problem I've had with SQL Compact...
Trust me I understand & agree but you hit head on nail right there! To me installing SQL is not tough (although knowing which settings to use for mysql can be intimidating) so just link to how-to's with step by step's with suggested settings and if they get past that test they graduate to being 'licensed' to run a mail server. lolmartin wrote: One could argue that these users are too lazy to install an email server anyway, though..
Cyrus - Berkeley DB. Lots of small databases in files without central SQL server.DeanoX wrote:What are other mail servers using now? Included relational database engines, flat files, windows registry?, It's been a while since I have looked at other mail servers.
FireBird maybe? Just heard about it, but it fulfils - IMO - all of your (and so ourmartin wrote:If you guys are wondering what's taking me so long, I can inform you that it's this's effect on choice of database backend.
I'm struggling with finding a database which is good enough for 95% of all users, which
The actual implementation of 5.4 is ready for beta, but this major part is still missing.
- Is free of charge
- Supports concurrency
- Can be shipped with open source software
- Has good performance
Agreed!martin wrote:Well, people could add support for alternative databases even if there's one included by default. I don't see that including one would prevent anything.
Yeah, I have selected hMailServer, because I'm a Linux noob, and I just hate 10-pages How-To's how to setup MySQL then the mail server - I know I'm lame, but I have just enough work to be happy if the installer takes care of almost everything...martin wrote:As I wrote, I'm guessing a lot of people will feel that "i just want to install an email server, why would I want to install a database server?" if the installation program asked them to do just that. One could argue that these users are too lazy to install an email server anyway, though..
I have seen Firebird in action.StormChild wrote:FireBird maybe?
FireBird related stuff: http://www.ibphoenix.com/main.nfs?a=ibp ... b_downloadmattg wrote:Tools to access Firebird are fairly limited and clunky in my very limited experience. I recall that the one I found was command line only (no GUI) and required a knowledge of SQL to get anywhere.
rolaids0 wrote:If the user's need a way to manage the DBs then look at MySQL or MSSQL
So which is it?rolaids0 wrote:Those tools already exist, and could be bundled. http://www.sqlite.org/download.html
rolaids0 wrote:As far as repair, not all REPAIR TABLE or CHECK TABLE will work, rare times you have to bust out a hex editor and fix the tables, but that's way beyond any n00b will be able to handle. So yes, SQLite would be a good fit 'cause there isn't another service to configure, open ports and firewall issues to worry about, and increased management overhead.
rolaids0 wrote:With regards to MT, http://www.sqlite.org/compile.html#threadsafe
Btw when I think of 'manage' I think of the non technical mail server novice who easily got hmail running thanks to integrated sqlite but then when the server locks up mid write of the database and it becomes corrupted & they come in here asking what to do.. Or that same user who has tried hmail & now wants to run it for real with 100's of domains & 1000's of users & you have to tell them sqlite can't do that well & they now need to migrate to mysql or mssql.. (Pretty much same thing happens over & over with mssql ce now) If there are tools available then great but if any db is integrated with hmail it needs to be supported & supportable and if integrating sqlite is to make hmail ez to eval there needs to be a way to migrate them to a 'real' db like mysql or you're looking for more aggravation than just not including a db & dealing with helping get mysql setup..rolaids0 wrote:Those users SHOULD go to MySQL or MSSQL if they are unable to manage the servers themselves. Pay the support fees and a consultant to set it up for them. I can understand having everything in the box to get hM running.
I agree with that, a lot of people here prefer MySQL (myself included) and use it on a daily basis. I don't know many people that use MSSQL on here and thus support for it is largely left for the user to work out.Bill48105 wrote:I get a similar feeling now with msql ce in that it's 'part' of hmail but often it's almost treated like it's only partially supported.
I agreem with your satement about that MySQL is better supported, altough I have had issues in the past that restoring backups from MySQL won't work propperly, and is for me the reason to use MSSQL. And I must say, that even tough MSSQL is not always well known here, there are alot of online topics to help if needed.^DooM^ wrote:I agree on limitations. Having SQLite limited to a single domain and 10 accounts which is fine for testing and small home use, then if users want more, they should upgrade to a proper database of their choice.
I agree with that, a lot of people here prefer MySQL (myself included) and use it on a daily basis. I don't know many people that use MSSQL on here and thus support for it is largely left for the user to work out.Bill48105 wrote:I get a similar feeling now with msql ce in that it's 'part' of hmail but often it's almost treated like it's only partially supported.
Do you realize the consequences of having email data store in one huge file? What can go wrong?zeb wrote:Hi..
It's very convenient to have everything in a database.
BUT the emails too should be in the database, not in files.
Was that with SQL Compact 3.5? I assume it was.dzekas wrote:Do you realize the consequences of having email data store in one huge file? What can go wrong?zeb wrote:Hi..
It's very convenient to have everything in a database.
BUT the emails too should be in the database, not in files.
Can you prove that you are DBA? I suspect that you are not or you forgot "do not store big binary blobs in DB" part.
hMailServer with MS SQL CompactEd had performance problems with indexing turned on. DB was only 30 MB. How what happens if 100K messages weighting over 2GB will go into that "database". What happens when you have 10M messages in data store?
I see no problems with the current setup, you have to backup the data directory along with the DB, it's not a difficult process to do.zeb wrote:The two best things with a all-in-db solutions and that is backup/restore/moving the hMailserver to another server
Windows text search works well, I also wrote a PHP application that scans through data folder looking for specific words, Emails do not need to be in the database to search through them.zeb wrote:and to be able to search all emails using TSQL.
People do not always include attachments and directly paste the data to email body which would end up in the same situation. Current solution works perfectly well.zeb wrote:Otherwise is just as good having the attachments on disk, or maybe even better then the attachments are directly accessible
for any other application.
So I revise my suggestion to storing the attachments on disk and the email in the DB.
Sure, things can be done in different ways, I just suggested the absolute best, easiest way. The Select command in SQL is very powerful and can be usd by different applications to access the emails, import data from them etc.^DooM^ wrote:I see no problems with the current setup, you have to backup the data directory along with the DB, it's not a difficult process to do.zeb wrote:The two best things with a all-in-db solutions and that is backup/restore/moving the hMailserver to another server
Windows text search works well, I also wrote a PHP application that scans through data folder looking for specific words, Emails do not need to be in the database to search through them.zeb wrote:and to be able to search all emails using TSQL.
People do not always include attachments and directly paste the data to email body which would end up in the same situation. Current solution works perfectly well.zeb wrote:Otherwise is just as good having the attachments on disk, or maybe even better then the attachments are directly accessible
for any other application.
So I revise my suggestion to storing the attachments on disk and the email in the DB.
SQL does not know anything about email formats and MIME stuff. Email data is binary blob for SQL. You can't do full text search in email within existing SQL specification.zeb wrote: Sure, things can be done in different ways, I just suggested the absolute best, easiest way. The Select command in SQL is very powerful and can be usd by different applications to access the emails, import data from them etc.
Is I said earlier we don't use hMailserver mail server for any employees but for importing power consumption files from our
partners and other data exchange between different systems. Then SQL would provided a nice interface to find emails which has not been imported by the "other" system, to export statistics etc. If the configuration was stored then it would also be easy to search and replace data.
This is from an admins point of view.
No SQL doesn't "speak" mime, but there is where the developer comes in and reads/writes to SQL. And the application knows what the data is.dzekas wrote:SQL does not know anything about email formats and MIME stuff. Email data is binary blob for SQL. You can't do full text search in email within existing SQL specification.zeb wrote: Sure, things can be done in different ways, I just suggested the absolute best, easiest way. The Select command in SQL is very powerful and can be usd by different applications to access the emails, import data from them etc.
Is I said earlier we don't use hMailserver mail server for any employees but for importing power consumption files from our
partners and other data exchange between different systems. Then SQL would provided a nice interface to find emails which has not been imported by the "other" system, to export statistics etc. If the configuration was stored then it would also be easy to search and replace data.
This is from an admins point of view.
Can you imagine how you backup 1 TB SQL data? I've already said. Moore's Law does not apply to hdd sustained transfer rate. If you must backup 1GB db file, your service might be unavailable until you copy that file. Do incremental backups work on SQL?
Developer can also read and write file without SQL processing overhead.zeb wrote: No SQL doesn't "speak" mime, but there is where the developer comes in and reads/writes to SQL.
Correct me if I'm wrong but yes you have control over the data. You are yourself as an developer creating the database, tables, properties, stored procedures, tables etc. Everything. If you store it in SQL you can also easily develop plug-ins which can access the data directly from SQL without hMailserver.dzekas wrote:Developer can also read and write file without SQL processing overhead.zeb wrote: No SQL doesn't "speak" mime, but there is where the developer comes in and reads/writes to SQL.
If hMailServer stores data in SQL server, it does not control the way data is stored on SQL server.
Data is still proprietary, because you must know DB layout.zeb wrote:By putting the data and config in SQl you are making the data non-proprietary i.e. you can access/use it however you like.
If hMailServer is Open Source and the SQL server is in your hand then it's not proprietary in reality.Data is still proprietary, because you must know DB layout.
Then I don't know if MySQL or PostgreSQL or any other will be the best chioce..If one already had workgroup or better licenses, then sure no problem. It seems, however, the general audience of this product (people not spending a fortune on a mail server) will probably look to MySQL to fit their needs.
rolaids0 wrote:Well, as it is, PostgreSQL isn't supported. I have read and seen that PostgreSQL is quicker than MySQL. My point was that MySQL support is there, and once the source is released then it would probably not take much to add DB based storage. But benchmark, benchmark, benchmark.
I like the idea and might actually do some clustering that way.
bescher wrote:I am not a heavy user of Hmail. I run it on 3 different servers with 1 as a backup for the other 2. Total domains may be about 120 with about 400 users. Total emails rec and sent in 1 day may be close to about 4000 (that includes spam) I am not a programmer but I am a sys admin that deals half with hardware and half with software issues. I some some web work (html, java scripting etc) to be damgerous but I do know enough that as a new user I would understand the need to install MY SQL (Which I have and work with it using SQLYOG)
Martin as I said in the other post you do what you need to do. If people like your program they will avail themselves to install and learn what is needed (I did) part of that was with the great help of David Fitch) but I was willing. I started out with Post Office back in 1997, then went to Argosoft and now have been using Hmail for 3 years.
It works. It is pretty easy to set up (The manual could be simpler for new users) But it works
Just as the commercial says. It keeps on ticking and ticking and ticking
Keep up the good work