@@ -345,7 +345,7 @@ From owner-pgsql-hackers@hub.org Tue Oct 19 10:31:10 1999
345
345
Received: from renoir.op.net (root@renoir.op.net [209.152.193.4])
346
346
by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id KAA29087
347
347
for <maillist@candle.pha.pa.us>; Tue, 19 Oct 1999 10:31:08 -0400 (EDT)
348
- Received: from hub.org (hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.10 $) with ESMTP id KAA27535 for <maillist@candle.pha.pa.us>; Tue, 19 Oct 1999 10:19:47 -0400 (EDT)
348
+ Received: from hub.org (hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.11 $) with ESMTP id KAA27535 for <maillist@candle.pha.pa.us>; Tue, 19 Oct 1999 10:19:47 -0400 (EDT)
349
349
Received: from localhost (majordom@localhost)
350
350
by hub.org (8.9.3/8.9.3) with SMTP id KAA30328;
351
351
Tue, 19 Oct 1999 10:12:10 -0400 (EDT)
@@ -454,7 +454,7 @@ From owner-pgsql-hackers@hub.org Tue Oct 19 21:25:30 1999
454
454
Received: from renoir.op.net (root@renoir.op.net [209.152.193.4])
455
455
by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id VAA28130
456
456
for <maillist@candle.pha.pa.us>; Tue, 19 Oct 1999 21:25:26 -0400 (EDT)
457
- Received: from hub.org (hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.10 $) with ESMTP id VAA10512 for <maillist@candle.pha.pa.us>; Tue, 19 Oct 1999 21:15:28 -0400 (EDT)
457
+ Received: from hub.org (hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.11 $) with ESMTP id VAA10512 for <maillist@candle.pha.pa.us>; Tue, 19 Oct 1999 21:15:28 -0400 (EDT)
458
458
Received: from localhost (majordom@localhost)
459
459
by hub.org (8.9.3/8.9.3) with SMTP id VAA50745;
460
460
Tue, 19 Oct 1999 21:07:23 -0400 (EDT)
@@ -1006,7 +1006,7 @@ From pgsql-general-owner+M2497@hub.org Fri Jun 16 18:31:03 2000
1006
1006
Received: from renoir.op.net (root@renoir.op.net [207.29.195.4])
1007
1007
by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id RAA04165
1008
1008
for <pgman@candle.pha.pa.us>; Fri, 16 Jun 2000 17:31:01 -0400 (EDT)
1009
- Received: from hub.org (root@hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.10 $) with ESMTP id RAA13110 for <pgman@candle.pha.pa.us>; Fri, 16 Jun 2000 17:20:12 -0400 (EDT)
1009
+ Received: from hub.org (root@hub.org [216.126.84.1]) by renoir.op.net (o1/$Revision: 1.11 $) with ESMTP id RAA13110 for <pgman@candle.pha.pa.us>; Fri, 16 Jun 2000 17:20:12 -0400 (EDT)
1010
1010
Received: from hub.org (majordom@localhost [127.0.0.1])
1011
1011
by hub.org (8.10.1/8.10.1) with SMTP id e5GLDaM14477;
1012
1012
Fri, 16 Jun 2000 17:13:36 -0400 (EDT)
@@ -1283,3 +1283,233 @@ in src/Makefile.custom.
1283
1283
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
1284
1284
"I have the heart of a child; I keep it in a jar on my desk."
1285
1285
1286
+ From pgsql-general-owner+M4010@postgresql.org Mon Feb 5 18:50:47 2001
1287
+ Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
1288
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id SAA02209
1289
+ for <pgman@candle.pha.pa.us>; Mon, 5 Feb 2001 18:50:46 -0500 (EST)
1290
+ Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
1291
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f15Nn8x86486;
1292
+ Mon, 5 Feb 2001 18:49:08 -0500 (EST)
1293
+ (envelope-from pgsql-general-owner+M4010@postgresql.org)
1294
+ Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
1295
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f15N7Ux81124
1296
+ for <pgsql-general@postgresql.org>; Mon, 5 Feb 2001 18:07:30 -0500 (EST)
1297
+ (envelope-from pgsql-general-owner@postgresql.org)
1298
+ Received: from news.tht.net (news.hub.org [216.126.91.242])
1299
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f0V0Twq69854
1300
+ for <pgsql-general@postgresql.org>; Tue, 30 Jan 2001 19:29:58 -0500 (EST)
1301
+ (envelope-from news@news.tht.net)
1302
+ Received: (from news@localhost)
1303
+ by news.tht.net (8.11.1/8.11.1) id f0V0RAO01011
1304
+ for pgsql-general@postgresql.org; Tue, 30 Jan 2001 19:27:10 -0500 (EST)
1305
+ (envelope-from news)
1306
+ From: Mike Hoskins <mikehoskins@yahoo.com>
1307
+ X-Newsgroups: comp.databases.postgresql.general
1308
+ Subject: Re: [GENERAL] MySQL file system
1309
+ Date: Tue, 30 Jan 2001 18:30:36 -0600
1310
+ Organization: Hub.Org Networking Services (http://www.hub.org)
1311
+ Lines: 120
1312
+ Message-ID: <3A775CAB.C416AA16@yahoo.com>
1313
+ References: <016e01c080b7$ea554080$330a0a0a@6014cwpza006>
1314
+ MIME-Version: 1.0
1315
+ Content-Type: text/plain; charset=us-ascii
1316
+ Content-Transfer-Encoding: 7bit
1317
+ X-Complaints-To: scrappy@hub.org
1318
+ X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U)
1319
+ X-Accept-Language: en
1320
+ To: pgsql-general@postgresql.org
1321
+ Precedence: bulk
1322
+ Sender: pgsql-general-owner@postgresql.org
1323
+ Status: OR
1324
+
1325
+ This idea is such a popular (even old) one that Oracle developed it for 8i --
1326
+ IFS. Yep, AS/400 has had it forever, and BeOS is another example. Informix has
1327
+ had its DataBlades for years, as well. In fact, Reiser-FS is an FS implemented
1328
+ on a DB, albeit probably not a SQL DB. AIX's LVM and JFS is extent/DB-based, as
1329
+ well. Let's see now, why would all those guys do that? (Now, some of those that
1330
+ aren't SQL-based probably won't allow SQL queries on files, so just think about
1331
+ those that do, for a minute)....
1332
+
1333
+ Rather than asking why, a far better question is why not? There is SO much
1334
+ functionality to be gained here that it's silly to ask why. At a higher level,
1335
+ treating BLOBs as files and as DB entries simultaneously has so many uses, that
1336
+ one has trouble answering the question properly without the puzzled stare back
1337
+ at the questioner. Again, look at the above list, particularly at AS/400 -- the
1338
+ entire OS's FS sits on top of DB/2!
1339
+
1340
+ For example, think how easy dynamically generated web sites could access online
1341
+ catalog information, with all those JPEG's, GIFs, PNGs, HTML files, Text files,
1342
+ .PDF's, etc., both in the DB and in the FS. This would be so much easier to
1343
+ maintain, when you have webmasters, web designers, artists, programmers,
1344
+ sysadmins, dba's, etc., all trying to manage a big, dynamic, graphics-rich web
1345
+ site. Who cares if the FS is a bit slow, as long as it's not too slow? That's
1346
+ not the point, anyway.
1347
+
1348
+ The point is easy access to data: asset management, version control, the
1349
+ ability to access the same data as a file and as a BLOB simultaneously, the
1350
+ ability to replicate easier, the ability to use more tools on the same info,
1351
+ etc. It's not for speed, per se; instead, it's for accessibility.
1352
+
1353
+ Think about this issue. You have some already compiled text-based program that
1354
+ works on binary files, but not on databases -- it was simply never designed into
1355
+ the program. How are you going to get your graphics BLOBs into that program?
1356
+ Oh yeah, let's write another program to transform our data into files, first,
1357
+ then after processing delete them in some cleanup routine.... Why? If you have
1358
+ a DB'ed FS, then file data can simultaneously have two views -- one for the DB
1359
+ and one as an FS. (You can easily reverse the scenario.) Not only does this
1360
+ save time and disk space; it saves you from having to pay for the most expensive
1361
+ element of all -- programmer time.
1362
+
1363
+ BTW, once this FS-on-a-DB concept really sinks in, imagine how tightly
1364
+ integrated Linux/Unix apps could be written. Imagine if a bunch of GPL'ed
1365
+ software started coding for this and used this as a means to exchange data, all
1366
+ using a common set of libraries. You could get to the point of uniting files,
1367
+ BLOBs, data of all sorts, IPC, version control, etc., all under one umbrella,
1368
+ especially if XML was the means data was exchanged. Heck, distributed
1369
+ authentication, file access, data access, etc., could be improved greatly.
1370
+ Well, this paragraph sounds like flame bait, but really consider the
1371
+ ramifications. Also, read the next paragraph....
1372
+
1373
+ Something like this *has* existed for Postgres for a long time -- PGFS, by Brian
1374
+ Bartholomew. It's even supposedly matured with age. Unfortunately, I cannot
1375
+ get to http://www.wv.com/ (Working Version's main site). Working Version is a
1376
+ version control system that keeps old versions of files around in the FS. It
1377
+ uses PG as the back-end DB and lets you mount it like another FS. It's
1378
+ supposedly an awesome system, but where is it? It's not some clunky korbit
1379
+ thingy, either. (If someone can find it, please let me know by email, if
1380
+ possible.)
1381
+
1382
+ The only thing I can find on this is from a Google search, which caches
1383
+ everything but the actual software:
1384
+
1385
+ http://www.google.com/search?q=pgfs+postgres&num=100&hl=en&lr=lang_en&newwindow=1&safe=active
1386
+
1387
+ Also, there is the Perl-FS that can be transformed into something like PGFS:
1388
+ http://www.assurdo.com/perlfs/ It allows you to write Perl code that can mount
1389
+ various protocols or data types as an FS, in user space. (One example is the
1390
+ ability to mount FTP sites, BTW.)
1391
+
1392
+ Instead of ridiculing something you've never tried, consider that MySQL-FS,
1393
+ Oracle (IFS), Informix (DataBlades), AS/400 (DB/2), BeOS, and Reiser-FS are
1394
+ doing this today. Do you want to be left behind and let them tell us what it's
1395
+ good for? Or, do we want this for PG? (Reiser-FS, BTW, is FASTER than ext2,
1396
+ but has no SQL hooks).
1397
+
1398
+ There were many posts on this on slashdot:
1399
+ http://slashdot.org/article.pl?sid=01/01/16/1855253&mode=thread
1400
+ (I wrote some comments here, as well, just look for mikehoskins)
1401
+
1402
+ I, for one, want to see this succeed for MySQL, PostgreSQL, msql, etc. It's an
1403
+ awesome feature that doesn't need to be speedy because it can save HUMANS time.
1404
+
1405
+ The question really is, "When do we want to catch up to everyone else?" We are
1406
+ always moving to higher levels of abstraction, anyway, so it's just a matter of
1407
+ time. PG should participate.
1408
+
1409
+
1410
+ Adam Lang wrote:
1411
+
1412
+ > I wasn't following the thread too closely, but database for a filesystem has
1413
+ > been done. BeOS uses a database for a filesystem as well as AS/400 and
1414
+ > Mainframes.
1415
+ >
1416
+ > Adam Lang
1417
+ > Systems Engineer
1418
+ > Rutgers Casualty Insurance Company
1419
+ > http://www.rutgersinsurance.com
1420
+ > ----- Original Message -----
1421
+ > From: "Alfred Perlstein" <bright@wintelcom.net>
1422
+ > To: "Robert D. Nelson" <RDNELSON@co.centre.pa.us>
1423
+ > Cc: "Joseph Shraibman" <jks@selectacast.net>; "Karl DeBisschop"
1424
+ > <karl@debisschop.net>; "Ned Lilly" <ned@greatbridge.com>; "PostgreSQL
1425
+ > General" <pgsql-general@postgresql.org>
1426
+ > Sent: Wednesday, January 17, 2001 12:23 PM
1427
+ > Subject: Re: [GENERAL] MySQL file system
1428
+ >
1429
+ > > * Robert D. Nelson <RDNELSON@co.centre.pa.us> [010117 05:17] wrote:
1430
+ > > > >Raw disk access allows:
1431
+ > > >
1432
+ > > > If I'm correct, mysql is providing a filesystem, not a way to access raw
1433
+ > > > disk, like Oracle does. Huge difference there - with a filesystem, you
1434
+ > have
1435
+ > > > overhead of FS *and* SQL at the same time.
1436
+ > >
1437
+ > > Oh, so it's sort of like /proc for mysql?
1438
+ > >
1439
+ > > What a terrible waste of time and resources. :(
1440
+ > >
1441
+ > > --
1442
+ > > -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
1443
+ > > "I have the heart of a child; I keep it in a jar on my desk."
1444
+
1445
+
1446
+ From pgsql-general-owner+M4049@postgresql.org Tue Feb 6 01:26:19 2001
1447
+ Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
1448
+ by candle.pha.pa.us (8.9.0/8.9.0) with ESMTP id BAA21425
1449
+ for <pgman@candle.pha.pa.us>; Tue, 6 Feb 2001 01:26:18 -0500 (EST)
1450
+ Received: from mail.postgresql.org (webmail.postgresql.org [216.126.85.28])
1451
+ by mail.postgresql.org (8.11.1/8.11.1) with SMTP id f166Nxx26400;
1452
+ Tue, 6 Feb 2001 01:23:59 -0500 (EST)
1453
+ (envelope-from pgsql-general-owner+M4049@postgresql.org)
1454
+ Received: from simecity.com ([202.188.254.2])
1455
+ by mail.postgresql.org (8.11.1/8.11.1) with ESMTP id f166GUx25754
1456
+ for <pgsql-general@postgresql.org>; Tue, 6 Feb 2001 01:16:30 -0500 (EST)
1457
+ (envelope-from lyeoh@pop.jaring.my)
1458
+ Received: (from mail@localhost)
1459
+ by simecity.com (8.9.3/8.8.7) id OAA23910;
1460
+ Tue, 6 Feb 2001 14:28:48 +0800
1461
+ Received: from <lyeoh@pop.jaring.my> (ilab2.mecomb.po.my [192.168.3.22]) by cirrus.simecity.com via smap (V2.1)
1462
+ id xma023908; Tue, 6 Feb 01 14:28:34 +0800
1463
+ Message-ID: <3.0.5.32.20010206141555.00a3d100@192.228.128.13>
1464
+ X-Sender: lyeoh@192.228.128.13
1465
+ X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.5 (32)
1466
+ Date: Tue, 06 Feb 2001 14:15:55 +0800
1467
+ To: Mike Hoskins <mikehoskins@yahoo.com>, pgsql-general@postgresql.org
1468
+ From: Lincoln Yeoh <lyeoh@pop.jaring.my>
1469
+ Subject: [GENERAL] Re: MySQL file system
1470
+ In-Reply-To: <3A775CF7.3C5F1909@yahoo.com>
1471
+ References: <016e01c080b7$ea554080$330a0a0a@6014cwpza006>
1472
+ MIME-Version: 1.0
1473
+ Content-Type: text/plain; charset="us-ascii"
1474
+ Precedence: bulk
1475
+ Sender: pgsql-general-owner@postgresql.org
1476
+ Status: OR
1477
+
1478
+ What you're saying seems to be to have a data structure where the same data
1479
+ can be accessed in both the filesystem style and the RDBMs style. How does
1480
+ that work? How is the mapping done between both structures? Slapping a
1481
+ filesystem on top of a RDBMs doesn't do that does it?
1482
+
1483
+ Most filesystems are basically databases already, just differently
1484
+ structured and featured databases. And so far most of them do their job
1485
+ pretty well. You move a folder/directory somewhere, and everything inside
1486
+ it moves. Tons of data are already arranged in that form. Though porting
1487
+ over data from one filesystem to another is not always straightforward,
1488
+ RDBMSes are far worse.
1489
+
1490
+ Maybe what would be nice is not a filesystem based on a database, rather
1491
+ one influenced by databases. One with a decent fulltextindex for data and
1492
+ filenames, where you have the option to ignore or not ignore
1493
+ nonalphanumerics and still get an indexed search.
1494
+
1495
+ Then perhaps we could do something like the following:
1496
+
1497
+ select file.name from path "/var/logs/" where file.name like "%.log%' and
1498
+ file.lastmodified > '2000/1/1' and file.contents =~ 'te_st[0-9]+\.gif$' use
1499
+ index
1500
+
1501
+ Checkpoints would be nice too. Then I can rollback to a known point if I
1502
+ screw up ;).
1503
+
1504
+ In fact the SQL style interface doesn't have to be built in at all. Neither
1505
+ does the index have to be realtime. I suppose there could be an option to
1506
+ make it realtime if performance is not an issue.
1507
+
1508
+ What could be done is to use some fast filesystem. Then we add tools to
1509
+ maintain indexes, for SQL style interfaces and other style interfaces.
1510
+ Checkpoints and rollbacks would be harder of course.
1511
+
1512
+ Cheerio,
1513
+ Link.
1514
+
1515
+
0 commit comments