On Fri, Jun 29, 2007 at 09:41:49PM +0200, Almir Karic wrote:I don't. But that's me. Err... No. NOTHING outperforms flat files. LDAP is good, but not that good. The more users that you have, the *more* likely you are to use postfix's builtin maps (esp btree). The way that ISP's often do it: Keep customer data in a Postgres database (views, forigen keys, ACID, triggers, stored procedures, functions,..... this is what a database is for....) Support staff and customers can web into this and manipulate accounts. Heck, even give the account's lassie a button where she can suspend services for non-payment. Customer data != OS data. Have scripts that pull data from (materialised) views periodically, use that data to generate the postfix maps. Diff the new maps to the live ones, and install the new ones if there is a difference, on all of the MTA boxes in your mail farm. When you have (tens of) thousands of users, your CPU is going to be busy with spam and virus filtering, and SQL is just way to slow. LDAP is faster, but it is just as much work to set up as is some perl/shell scripts to set up maps. But you have introduced a weak point, namely LDAP must be online for you to receive mail. Repeat the above for passwd, httpd.conf, ftpusers, ftpchroot, sshd_config, quota.user, mailman, courier,.... mysql wont help you with half of the services that you'll end up offering, so why bother? And just so you don't think that I'm anti SQL, I work as an SQL Data Analyst. Before that, I worked as a sysadmin, and before that, I worked as a sysadmin for a national ISP. Just take the time to think about what it is that you want to achive, and work back from there, using the bare minimum of stuff, because stuff goes wrong. e.g: you place all of your trust in a database, and a new release comes out, that enforces strict practices that your schema does not adhere to. You upgrade, can't serve requests for week while you alter all of your data, your name is mud. If you use flat files, kill the update cronjobs so that things run as they are, fix your data, and then you can insert new customers. But your existing customers are unaware that there was a problem at your end as the vast bulk of business went on as normal. SQL is complex, and complex equals unreliable. It has its place, but be careful where you use it. -- Craig Skinner | http://www.kepax.co.uk | aye-right@kepax.co.uk
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Greg KH | [patch 00/04] RFC: Staging tree (drivers/staging) |
| James Bottomley | Re: Integration of SCST in the mainstream Linux kernel |
| Steven Rostedt | [RFC PATCH 1/3] Unified trace buffer |
git: | |
| Jon Smirl | ! [rejected] master -> master (non-fast forward) |
| Marco Costalba | [ANNOUNCE] qgit4 aka qgit ported to Windows |
| Andi Kleen | Re: [kernel.org users] [RFD] On deprecating "git-foo" for builtins |
| Sverre Rabbelier | Git vs Monotone |
| Richard Stallman | Real men don't attack straw men |
| GVG GVG | ssh_exchange_identification: Connection closed by remote host |
| Damian Gerow | Oddly high load average |
| Benjamin Adams | BSD Port from OpenJDK |
| Michael Grollman | Re: 8169 Intermittent ifup Failure Issue With RTL8102E Chipset in Intel's New D945... |
| Volker Armin Hemmann | build error with 2.6.27.6+reiser4+ehci-hub patch. ERROR: "mii_ethtool_gset" [drive... |
| Evgeniy Polyakov | [resend take 2 0/4] Distributed storage. |
| Wenji Wu | A Linux TCP SACK Question |
| serial driver xmit problem | 44 minutes ago | Linux kernel |
| Why Windows is better than Linux | 44 minutes ago | Linux general |
| How can I see my kernel messages in vt12? | 7 hours ago | Linux kernel |
| Grub | 18 hours ago | Linux general |
| vmalloc_fault handling in x86_64 | 1 day ago | Linux kernel |
| epoll_wait()ing on epoll FD | 1 day ago | Linux kernel |
| Framebuffer in x86_64 causes problems to multiseat | 1 day ago | Linux kernel |
| Difference between 2.4 and 2.6 regarding thread creation | 1 day ago | Linux general |
| Netfilter kernel module | 1 day ago | Linux kernel |
| Compiling gfs2 on kernel 2.6.27 | 1 day ago | Linux kernel |
