Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Programming IT Technology

SQL Over FreeNet 95

Nym writes: "It seems that another component, SQL has been added to the many layers of Freenet. Check out FreeSQL Project, and start porting your SQL apps today." The possible implications of this sort of utility are amazing.
This discussion has been archived. No new comments can be posted.

SQL over FreeNet

Comments Filter:
  • by Anonymous Coward
    after the 2=2 is parsed the 1=1 is ignored, because the criteria is already met.
    Select * from freenet.big_table order 1 would yield the same result.
    There are much better ways to crash a databse other then doing a select * and order by on a big table.
    Sorts on big tables almost never "crash" a decent database. Furthermore most client drivers would only place a cursor on the first row and only start moving into the result set when asked to, thereby eating up bandwith slowly.
    How about calling some recursive pl/sql functions that can't return?
  • Oh, shite, just when I thought I had enough of watching "The Princess Bride" (this past Sunday), you had to bring us this quote. Unconceivable!
  • by Gray ( 5042 )
    There are lots of reasons it would be hard, but if it where ever pulled off, wow..

    One big untracable anonymous SQL server with everything in the world on it.. That would be some hot ish..
  • >Unconceivable!

    Inconceivable, dude. Inconceivable.
  • It has a very slow start-up time (without any connection).

    And a User Interface which is very unresponsive on my Celeron 333 with 256Mb of RAM (it might be due to the processing of the connections, though).

    But I agree with you: changing the language would NOT speed up the connections which are dead slow even with the ADSL.
  • From the Freesql Homepage

    "FreeSQL is an attempt to build a SQL layer for Freenet, so that you can use Freenet as the storage component for SQL-based applications. Implemented (for now) in perl, it strives for total SQL compliance, so that any SQL-based app can be ported to Freenet."

  • Who's forcing you to look at AOLer-Britney Spears pages? I don't think I've ever had one forced down my throat....
  • You don't get it! There WILL be search engines man!

    There already are.

    But don't take my word for it. Install Freenet and see.

  • That doesn't have to be a problem. For most bizish apps the concept is (seems) pointless. But for Scientific apps with lots of static "historical" type data, it could be sweet. Through in some automatic magic "partitioning" of the dataspace across N hosts and you might have something pretty amazingly useful.
  • C'mon guys. Work on basic functionality like increased key-search speeds and simplifying the key system for grandma to use before you start adding additional features.

    Whoa. Notice that the project manager of Freenet is posting on slashdot that he thinks this is a bad idea. I think it's safe to assume that this isn't part of the Freenet project.
  • Well, although I agree with Mr. Clarke about the current level of maturity of this project, I have to give the fellows a hearty huzzah just for the pure hubris of the whole thing.

    I mean, holy mackerel! A SQL enging built on top of Freenet?! The mind boggles!

  • Reading these posts it's amazing how close-minded people are and it's amazing how little they know about what SQL is and what it could possibly be used for.

    From reading over the stuff on SourceForge this did not strike me as the most heavily engineered project... so what?

    I hope they pull it off... i.e. produce something useful.
  • But it did drive people to the Freenet site right? :)
  • Dude, I'm in a foreign country, all my friends are 10000 miles away and you wanna give me shit about my spelling. Do fuck off.
  • Hi believe the local popularity is flawed for a network of network like the internet.

    Community in an on-line world are not formed within geographical bondaries.

    You may have a community of people which is large enough that if you put every one in the same location you would never drop any content. But in an on-line world, this same community can easily be scattered geographicaly. Freenet will not help this community and content used by this community may be discarded if the network nodes are near full capacity.

  • Perhaps you should check Freshmeat before you post:
    LibFreeNet [freshmeat.net]
    FreeClient [freshmeat.net]

    Both are writtin in C.

    As someone else noted, writing it in another language would simply slow development and hinder FreeNet's cross platform nature. Also, keep in mind that FreeNet is very experimental and the current release is still considered proof-of-concept stage, ie. nowhere near finished.

    "Goose... Geese... Moose... MOOSE!?!?!"
  • . . . centrally managed. Redundancy (i.e. backups) help, but not always when they're in the form of computers that aren't necessarilly accessable when they need to be. I'd question the logic in trusting my data (even encrypted) to reside on someone's computer that I not only don't know, but have no legal way of holding accountable for misuse of my data. How many of you would want your records stored in a supposedly safe, but undisclosed, location? How many of you really believe this to be useful for anything more sensitive than a grocery list? I rest my case.
  • Just about everything on Freenet is encrypted six ways to Sunday. By the time it reaches another computer it really resembles random noise more than 'data' in any real sense of the word.
  • Me too! I immediately went and downloaded it...

    This is something worth taking note of.
  • The Freenet site on Sourceforge mentions that Freenet (in it's current form) is not very searchable. Adding an SQL layer provides this functionality. My questions would be "How do you still maintain anonymity?" and "What happens when you go looking for something that has been removed because of 'lack of interest'?"

    I haven't read the developer docs yet, so I don't know a whole lot about the system. Does someone know the answers to this?
  • Is this even newsworthy?
    What I find funny is that this is front page material, and OpenBSD's 4YEARS without a remote root exploit goes only in the BSD section.

    On /. Vaporware=good, GoodCode=bad

    I'm sure people disagree, but if Vaporware deservers a front page posting.....
  • A lot of the work for this is already done as part of the Everything Over Freenet [sourceforge.net] (EOF) project. Check out the "News" support, which basicly allows you to look at certian documents on Freenet as if they were USENET posts. I bet it would be easy to put this into slash.


  • There is a GCJ (which can compile directly to machine code) compile being worked on, and there is quite a bit of intrest in it on the mailing list. Currently, a GCJ-compiled node has worse reliablity then a "real" Java node, and some of the crypto goes slower then what IBM's VM can do.

    There is also a C++ implementation called "Whiterose". It is skipping the 0.3 series (which was/is very broken) and going right for 0.4 compliance.


  • There has been some attempt at a GCJ compile. The result, overall, is worse then using a JIT compiler. Maybe as GCJ matures this will change, but not now.


  • As regards Java, using gcj it can be compiled
    to native code. End of problem.

    As regards p2p-ness, there's nothing intrinisically slow about being a peer application. Unfortunately freenet was not
    designed to accommodate Internet topology
    as a distributed app, but it will be optimized
    by the million monkeys, over time.
  • Looking through the perl script that they have on SourceForge, I noticed a comment that there is no drop in freesql and that one should simple change your username and schema for connecting ...
    Does this mean you would just start over any time you wanted to change your db schema?
    Is the content of freenet read only?
    I wonder about the value of a sql repository if the structure is read only ... how would permissions to change data be handled?

    Hmmm ... lots of questions ... ?
  • I think this is what he was complaining about ...
    http://freesql.sourceforge.net/ [sourceforge.net]

    Besides, I think more than one sentence is in order, don't you?
  • While Freenet does have its limitations (P2P scaling is hard and as for speed....) i'm glad to see it getting more and more uses, what it needs is an easy to use front end for windows (larger userbase) and u have the base the the fabled 'second internet' somthign that is impossible to control, censor, track etc, make Metallica and Sony shit their pants with any luck.
  • Umm, because it's the de-facto database language?
  • Perhaps you wish more articles on the latest Anime release? This is a step up. :)

  • I would recommend looking in phpgroupware/phpgwapi/inc/class.db_*.inc.php and phpgroupware/phpgwapi/inc/class.Template.inc.php
    :) We have been using some of phplib since it began.

    until (succeed) try { again(); }

  • If so, we could port phpGroupWare over to it ... it might be slow as sh** ... but hey :)

    until (succeed) try { again(); }
  • I just don't see anybody entrusting a SQL database of any importance to any "filing system" that cannot be centrally administrated. Potential for data corruption and the inability to have reliable backups are nightmares for any DBA's...
  • i never even mentiontioned that it dropped information, merely the time taken to find info. Clearly you dont have the time. after two+ years of hype freenet is still not much more than vapourware that doesnt install on w2k and that nobody uses.
  • This concept alone makes freenet a complete paradox in itself, and largely a waste of time. underground information which would benefit from a freenet type system is rarely popular, other than maybe some forms of extreme porn. instead freenet is going to be a system were conformity is rewarded -> if we all view the same information it works really well, otherwise be prepared to wait.
  • Theoretically, I think that if you set up a freenet client/server on one of your own machines with some TB of cache memory, and maybe automate browsing for content acquisition, you could turn your own machine into an archive for content easily.

    Any volunteers :-P

  • maybe i'm just uninformed, but i've recently checked out freenet and been very impressed by the potential ... however, what happens when *you* want to publish your webpage on freenet? do we assume a large enough user base to store it? if we have to wait five minutes to retrieve it will we look? aren't there going to be massive problems with the publishing/distribution issues as soon as freenet gets larger?

    basically, what i'm saying: if freenet gets huge, will the "little guy" still be able to even publish a website on it? i mean, right now it seems difficult enough to get connections to the point where your webpage will be constantly accessible -- will this be an HTML Napster where all we can find is britney spears and her ilk?


    just curious ... someone prove me wrong.
  • Um..

    The keys are FreeNet's equivalent to URLs. How did you find this place? I wouldn't be surprised if you saw "www.slashdot.org" posted on a board somewhere. "www.slashdot.org" is the "key" to this place.

    As for searching capabilities, nothing stops search engines from being created just like they are on the internet. Keys being submitted, spidered, and indexed.
  • If you were really concerned about making the file permanent you could preserve routing by regularly requesting popular content with similar keys from the hacked node. That way a request for the file would probably still reach you even after it had disappeared from the rest of Freenet.
  • You may make some hack to keep it in your datastore, but if it is unpopular, there will be no routing to it, so it is only 'permanent' for you.
  • It isn't meant for the 'little guy'. Popular data spreads, junk falls out. It won't ever be a Geocities. Popular sites at this moment can be accessed as quickly as the web. Check out the default page in Fproxy. Any of those sites will load quickly.

    At the moment the most popular way to store a website is with date based redirects. Most pages are updated once a day. The previous days don't get referenced and fall out of Freenet.

  • No. Freenet stores and retrieves data.

    There are no cgi scripts, no server side anything.

    Any processing has to be done by the web browser (Javascript, Java etc.).

  • Some governments may be able to hold people responsible for certain information. You probably won't find any of the developers of Freenet posting freenet: URIs to warez on the Web. Careless people will get caught.

    Are you skeptical of the World Wide Web? You can view something deemed illegal in just about any country and have it stored in your cache.

    What Freenet does do is prevent governments from removing data. Just by 'looking at' data spreads it.

    Think: Scientology.

  • Work on basic functionality like increased key-search speeds and simplifying the key system for grandma to use before you start adding additional features.

    What does your grandma have to share on Freenet that shouldn't be put on the Web instead?

    I want to meet your grandma!

  • anything that can be reasonably talked to in SQL ought to have an SQL front end, just for compatibility.

    It already does - you can get ODBC drivers for practically every record-structured data file format known to man.

  • do the research, you clearly don't understand what you are talking about. Freenet drops data based on local popularity, not global, which means that your fear is not justified. Visit the website for more info - I don't have time to spoonfeed.


  • popularity on freenet is measured locally, not globally. For example, globally the Spice Girls might be extremely popular, but with a local region, such as Oxford, England, Radiohead might be more popular. Thus Freenet would retain Radiohead in Oxford, even though the Spice Girls would be more globally distributed (actually, this is a simplification, but it is the best explanation I can do at 1.45am).

    Of course, data may eventually be dropped, however a mechanism to permenantly store data is a very different design proposition to Freenet. Not that one is better than the other, any more than a knife is better than a fork, they are different tools for different jobs. Actually, the WWW is one way to store content permenantly (provided you can afford it - there is always a trade-off).


  • Then don't. You have a lot of work to do to catch up with people who were writing useful code while you were working the PR machine, you don't need to be wasting time arguing about minutiae with them here.
    Do you have to try to be an asshole or does it come naturally?


  • It is not at random. As far as the retriever is concerned the availability of data will be proportional to its popularity.


  • Geography isn't physical on Freenet, but groups of people with similar interests are rarely associated with geography either. I don't think this really matters for what we are discussing.


  • Just because the someone doesn't know what causes a pattern does not make it random.

    And then, after insulting me, you agree with my original comment - that it is not, in fact, random!

    I don't know why I bother...


  • ....but my other points still stand.


  • Even if it's not persistent and stable like a traditional database, there's likely to be some good use for it; after all, traditional file systems are persistent and stable, and FreeNet by itself implements a filesystem of a different sort.
  • Assuming slow, unreliable SQL database access to multiple copies of inconsistently-replicated data is a Good Thing (and it can be in some cases), this is a wrongheaded approach.

    I looked at the Perl. What nonsense. What would be useful from a transparency standpoint would be doing this as an ODBC or JDBC driver so existing apps can hit the data.

    Even more useful would be SOAP client and server transport interfaces via Freenet; then you could expose or access any API you want as-is, instead of using a special "Freenet SQL interface". If SMTP and POP3 can be viable SOAP transports--and they are, functioning as a no-budget message queue like MQSeries--why not Freenet? The asynchronous model makes more sense than a synchronous one anyway.
  • Now let's say I'm the author of document #12345 and want it to be available no matter what. If I'm willing to take the risk, couldn't I hack my local server such that a copy of document #12345 is always returned, no matter what?

    If you request a file, and your local Freenet node can find it, it will be cached.

    Files are only discarded from the cache when they fail to be requested for a long time. There's some sort of least-recently-used algorithm, I believe. (Freenet coders, correct me if I'm wrong.)

    Therefore, the obvious way to make sure your local node never forgets your one-shot static files is to keep requesting them. A daily freenet_request crontab should suffice.

    Of course, if you're publishing a Freesite with a DBR (date-based redirect), then you're going to be re-inserting your (potentially modified) index pages and verifying your data files every day anyway, so it'll always be fresh on your local node. See my previous comment in this story for more details.

  • Freenet drops data based on local popularity, this is hardly "at random".

    Yes, that is correct, and it is why I said *practically* at random. As far as the storer or retriever is concerned, the difference between random and LRU cache-replacement strategies at intermediate nodes is unnoticeable.

  • It is not at random. As far as the retriever is concerned the availability of data will be proportional to its popularity.

    In other words, as far as the receiver is concerned the availability of data is proportional to a quantity that the receiver has no way to calculate. Well done, Einstein. Without having any way to gauge popularity, without knowing about intermediate nodes' topology or cache sizes, the receiver is no more able to calculate the probability of data being available than if the cache-replacement strategy were truly random, so it's "practically random" as I originally stated.

    There's no point splitting hairs here. We all know it's not really random, but there's just no reason to care. It doesn't make FreeNet any more suitable for storage of data whose continued presence needs to be assured. Anyone who thinks it matters whether it's really random or not is "practically braindead".

  • Just because the someone doesn't know what causes a pattern does not make it random

    Good thing nobody ever said it was actually random, then, just *practically* random. Why don't you explain to us, Mr. Wizard, how the actual policy is *usefully* different from random cache replacement, with respect to the presence or absence of requested data from the perspective of a requestor? That would actually be useful and productive, unlike this stupid hairsplitting.

    I don't know why I bother...

    Then don't. You have a lot of work to do to catch up with people who were writing useful code while you were working the PR machine, you don't need to be wasting time arguing about minutiae with them here.

  • I hope that in a not so distant future we can say that data dropping from Freenet is more of a theoretical problem than a real one.

    I'm sorry, but Freenet has a long way to go protocol-wise before loss of data ceases to be an issue. I'll try to explain why I say that, but it might take a while so please bear with me.

    First, I should point out that I also work in the area of data distribution, and have been doing so since long before Freenet existed. In fact, a system I designed about four years ago had a lot in common with Freenet in terms of caching, though many other aspects were quite different. It's because of that similarity that I've kept a close eye on Freenet.

    That brings me to my next point. Ian is probably pretty pissed at me right now, so I feel compelled to point out that I think Freenet is great. It's just unsuitable for some purposes, and IMO has received a disproportionate share of attention relative to many other projects that are also great. Ian has shown far more talent for making promises than for delivering on them, and that's a risk for people like me who work in the same general area. I've seen whole technical areas poisoned and neglected for years because of the disillusionment among investors and would-be deployers who got burned when one early project's hype outran its reality. I don't want to see it again, and Ian seems to be doing his best to ensure that it does happen. That simply pisses me off.

    OK, on with the show. Why is it unlikely that the issue of data loss will go away for Freenet? First, it's important to note that anything short of a guarantee that data will stay in the system is worthless. People who might otherwise run serious applications on top of a storage system will not find it acceptable if there's *any* realistic chance that data will be dropped during "normal" operation and even in the face of common failures. Rant and rave and wallow in denial all you want, that's just the way it is.

    So, if you want to provide a *guarantee* that data will remain in the system between the time it's inserted and the time it's superseded by new data or explicitly removed, you have two choices. One is to give it one or more authoritative "home" locations, and treat all other possible locations as caches of what's in those home locations. That's just pretty much impossible to reconcile with Freenet's anonymity and non-censorability goals.

    The only other option is to have each node that caches data know - at the very least - how many other copies there are, so that it doesn't throw away the last one. In practical terms, you pretty much need to ensure that at least two copies remain in the system, to guard against simple failures. Maintaining this information - and it needs to be both accurate and timely - is possible but quite difficult. It becomes more difficult as nodes become less reliable, and it becomes even more difficult if you want the system to run efficiently without getting bogged down by coordination traffic. That anonymity thing also tends to get in the way a bit. It's quite possibly doable, I can almost see the algorithms and protocols in my head because I've worked on similar ones myself, but they're quite different than the ones Freenet currently uses. Even then, the complexity of the result might well exceed the bounds of maintainability (that wall's a lot closer than people think, in distributed systems) and/or the performance of the result might not be acceptable.

    There, at long last, you have it. For all of the reasons described above, I think loss of data will always be a problem in Freenet and derivative systems - a real problem, not a theoretical one, and one that makes it unusable for some purposes. To overcome that, Freenet would have to change so much that it would be unrecognizable. I don't even think it's a valid goal for Freenet. Freenet should continue to be developed for the niche toward which it has always been targeted, and for which it is quite well suited. Other solutions should be found for other problems, and none should create credibility risks for the entire field by claiming to be all things to all people.

  • FreeSQL is implemented so that Freenet is only used for storing data, indexes, and various other forms of meta-data. If you run a boneheaded query, only your local node is affected.
  • Hey, thanks for the kind words. I'm always shocked by the number of negative/cynical posts on this kind of story. Drop me a line if you'd like to get involved...
  • We have our very own contorted key-versioning scheme in FreeSQL that allows us to update and "delete" data by inserting new versions. On startup, FreeSQL has to do some work to get all the latest version numbers, but it's not as bad as you might think.
  • Yes, you bet it will. In fact, one of our short-term goals is to get PHPLIB (a SQL/sessions/userauth layer for PHP) ported. We'd love to get phpGroupWare ported - please please please contact me if you are interested.
  • The original impetus for FreeSQL was the idea to port Slash and a few other web-based apps to Freenet. If you want to come help out, we'd be thrilled.
  • Keep in mind that a "local" area on Freenet simply means nodes that think of each other as "adjacent" - there is no reason for them to be geographically near to each other.
  • Thanks for your very clueful post. Also, thanks for the shout-out on Snarfoo. I've been trying to send you feedback for a while, but I can't get your feedback page to load. Glad you posted here :)

    Snarfoo is a great site. I'm wondering if you have any interest in trying to run it as a "real" Slash-based site with real comments, moderation, etc. That is what FreeSQL was written for in the first place. I'd love to collaborate with someone who is actually running a real freesite.

    Anyway, feel free to get in touch with me if you are interested. And thanks again.


    PS. Your article "Reducing the Slashdot Effect with Freenet" reminded me of the World Free Web [sourceforge.net] - check it out.

  • The reason Freenet drops content, is that the protocol provides for the situation where there isn't enough storage. This means the larger the network, the less reason there is for stuff to drop off. However there is a bit of a catch 22 here as long as the network is small it suffers form dataloss, and as long as it suffers from dataloss people are less likely to adopt Freenet. (So everyone run nodes!)
    Now, I have to admit there are some issues with the current aggressive caching strategy that causes the amount of available storage to be smaller than it needs to be, but these issues are being addressed.
    I hope that in a not so distant future we can say that data dropping from Freenet is more of a theoretical problem than a real one.
  • The possible implications of this sort of utility are amazing.

    Excuse me for being close-minded, but I feel this statement warrents a "Such as what?" reply. What will allowing SQL over FreeNet accomplish that cannot already be done? I would imagine that running a database over the internet would be fairly frustrating, why will running it over FreeNet (which is still at be any better?

    So where are we going to see this "amazing new utility" (Which is composed of 370 lines of perl) in action?

    I hate to sound so pessimistic, but might this be a fair bit premature?
  • Somebody mentioned the idea already, but I'll repeat it anyway. Use Freenet as the database for a news service. The story content is on Freenet, distributed and encrypted making censoring the data itself somewhat difficult. Then a front-end application that accesses Freenet, searches for the stories and presents them to the reader.
    Sketchy, I know, but the basics are there. There are significant issues involved with response times and data loss, but I think the advantage of keeping the data liberated is important.
    Imagine political dissidents in Myanmar or Indonesia or China or elsewhere having a news feed that is obtuse enough to make censorship extremely dificult.
    I think the most important thing to remember is that you are not using Freenet to facilitate SQL, but SQL to realise part of Freenet's potential.
  • Freenet is designed to scale up. It's not very well designed to scale down. Right now, the total size of the network is fairly small and the current referance implementation (0.3) is very broken.


  • This would bet THE ideal thing to port slashdot to. Store the comments on freenet, and leave the metadata like mod points and such at a centrally controlled site. No more being forced to pull a comment due to lawyers babbling, and no more problems with old content that people still want going away, etc. etc.

    Since it is under the GPL, and the source is available, have a crack at it. Note that Slashdot is based on apache, Mysql, mod_perl among other things. So this would tie in well with the original idea of SQL on Freenet in the first place.

    but you would also have to deal with the original Cmdr Taco Spaghetti code as well.


    Check out the Vinny the Vampire [eplugz.com] comic strip

  • Before anyone says "but why not just add permenant data to freenet" know that someone suggests this on the freenet mailing lists about once every two days - it isn't possible while staying true to Freenet's other goals.

    Feel free to correct my ignorance, but...

    As I understand it, freenet serves as both a caching and anonymizing repeater service. I ask the local freenet server for document #12345 and it provides it to me. What it doesn't tell me is whether it had that document or it had to ask another host for that document. Unless I can watch all the involved hosts (and decrypt their traffic, as I seem to recall it being encrypted), I have no way of knowing where that document came from.

    Now let's say I'm the author of document #12345 and want it to be available no matter what. If I'm willing to take the risk, couldn't I hack my local server such that a copy of document #12345 is always returned, no matter what? Yes, it would increase the potential that the document could be traced back to me. However, one could also argue that said document was just locally popular. Further, one could argue that said document wasn't around until the law enforcement-types requested it.

    So even though I understand why Freenet as a whole doesn't support permanent documents, given space concerns and all that, I don't see why a given server operator can't keep permanent information that he personally feels is important. Am I missing something or were you referring to making information permanent for general users, who aren't running their own servers?

  • Imagine getting XML & Webservices over freenet, instead of getting sql and anoying stuff... It could allow services to be provided in a elegant way. With some parallel DNS (offered by a webservice for example), it could be incredibly cool!!!!
  • Heh.

    Wait 'til I get started! Now where was I?


    Ah yes. Have you ever heard of Aristotle? Socrates? PLATO?!



  • The way things are looking now, I believe that in a few centuries the advent of the internet may be seen as the start of the second Dark Age, in which no one was wise enough to preserve documents and history in imperishable formats. I think that would be supremely ironic, given how the current age is being touted as "the Information Age".

    While it's true governments may maintain records, that's no solution. Governments are well known for their propensity for rewriting history. The same with corporations. And all our individual histories will vanish. Think on it: We have records of individual soldiers in the Civil War, for example, because of letters home that they wrote, and regimental histories, all preserved on paper (which is probably the greatest data storage medium yet invented by man).

    However, our modern, individual histories are beginning, more and more, to take place by email and on weblogs. Which will of course vanish when the ISP folds or the hard drive goes kaput. I expect historians of the future to have their work cut out for them trying to find out what everyday life was like in the 2020's.


  • after the 2=2 is parsed the 1=1 is ignored

    Thank you for asking. The original SQL was modified to protect the identity of the original coder. :D That was just an example to bring out a point.

    The key point is the sorting of SQL statement with open condition criteria. Sometime the database parser does not work the way we logically implied. Therefore, we will use 'EXPLAIN PLAN' command to trace the SQL statement which we want to optimize. (for more info see Oracle Advanced Oracle Tuning and Admin)

    The faulty statement in question happened to be broken down into two seperated sorting statements with open codition internally. I think there isn't the case after version 7 of Oracle.

    And of course FreeSQL is not Oracle, may be same thing will not happen. :)

  • Imagine getting XML & Webservices over freenet, instead of getting sql and anoying stuff...

    Yeah, and also imagine getting a Buzzword and another Buzzword there... Now that free-speech-concerned people are interested about Freenet, with things like these we could get politicians and The Management interested about Freenet!

    "Yes, you can get Freenet with a red and green browser - and blue, if you pay a bit extra!" =)

  • by Greg W. ( 15623 ) on Tuesday May 08, 2001 @04:48AM (#239136) Homepage

    Does this mean you would just start over any time you wanted to change your db schema?
    Is the content of freenet read only?

    Data are inserted into Freenet using CHK (content hash keys). The basic unit of data is a file (of any size); when you insert a file, its hash value is computed, and that is used as an index for retrieval, as well as for encryption. Other forms of Freenet keys redirect to the CHK.

    If you insert file F1 into Freenet, with CHK K1, it's there to stay. You could have a human-readable KSK that points to it (e.g., freenet:KSK@/file/F1) so that it's easier to retrieve. But there's no way to delete it.

    If you modify file F1 to create file F2, and then insert it into Freenet, you end up with a new CHK K2, which is the hash of F2. But if you try to insert F2 using your old KSK (freenet:KSK@/file/F1), it won't work -- you'll get a keyspace collision.

    So in short, there's no simple way to update information that's been posted to Freenet. It will eventually die out if nobody ever reads it; but in accordance with Murphy's Law, if you made an error, it will haunt you forever.

    (This is not to say that it's impossible to have updated content on Freenet! It's just that you have to go through some fairly involved convolutions to do so. The most common technique in use today, AFAIK, is a date-based redirect (DBR). Essentially, there's some black magic in the Freenet client that lets a key of the form freenet:MSK@SSK@... redirect to a different key every day, or every week, or every hour, or however often you choose. Then you set up a crontab job to publish a new index of your data periodically, just before the deadline.)

    How this affects FreeSQL, I couldn't say.

  • by jilles ( 20976 ) on Tuesday May 08, 2001 @04:54AM (#239137) Homepage
    "Of course the real bottleneck is the P2P aspect of the application itself."

    The fact that freenet runs on Java is completely irrelevant from the point of view of network performance since the bottleneck is not execution speed or memory usage but network throughput and IO. Implementing it in for instance C would have no other effect than seriously slowing development (assuming you use the same software architecture).

    Applications like limewire (IMHO one of the best gnutella clients available) prove that Java is a very good platform for developing p2p software. My limewire gnutella client has no trouble processing the trafic generated by 13000 hosts and there's plenty of processor time left for other apps. And if you are wondering: I'm on a 450 Mhz pII with 128 Mb of ram running win2k.

    I've tried out freenet as well. Performance currently sucks but that's not a Java issue but an issue of the freenet architecture in combination with the problem of lots of transient nodes and limited available content.
  • I hear too many assumptions being made. Yes this is a SQL interface. That does not imply that there is a full featured database behind it. It only means that you can use this popular language to retrieve data.

    So what if FreeNet does not follow all tenents of a mature Relational Database model. Just because there is a SQL interface doesn't mean you have to run a business on it.
  • by QuantumG ( 50515 ) <qg@biodome.org> on Monday May 07, 2001 @07:04PM (#239139) Homepage Journal
    I really hate that. How hard is it to put a blurb of what you are doing on your sourceforge homepage? That's what it is there for!
  • FreeSQL adds no new functionality to Freenet itself. All search indexes and data are stored anonymously, distributedly, and securely on Freenet as always. However, once this data is assembled on your local node, you can run queries against it and use that to find yet more indexes and data to request, and then run queries against that, etc. Your privacy is not risked in any way.

    However, one of the prime uses (we think) for FreeSQL will be to convert existing web-based apps to Freenet. In this case, the data will be inserted into freenet as a result of your accessing one or more web pages, so just like Slashdot can invade your privacy, so could other sites.

    However, the advantage of this approach is that, because there could be many Slash-like sites using the same freenet "database" there is no possibility for a central site to censor any comments/stories/posts. And once your post gets onto Freenet, so long as your privacy wasn't violated while you were posting, your privacy cannot be violated further.
  • by rjamestaylor ( 117847 ) <rjamestaylor@gmail.com> on Monday May 07, 2001 @07:12PM (#239141) Journal
    Maybe it's late in the day and I've had a few too many late days lately, but I was hit with a sense of awe (like Dave Bowman's surprised realization that there was more - much more - to the monolith than what he imagined) considering FreeNet's possibilities.

    I've been listening to naysayers until now. From this point forward, I'm interested.

  • by Animats ( 122034 ) on Monday May 07, 2001 @09:42PM (#239142) Homepage
    It's basically a trivial SQL front-end to FreeNet. This is a reasonable idea; anything that can be reasonably talked to in SQL ought to have an SQL front end, just for compatibility. It's not that you're going to run classic SQL apps over FreeNet. It's just a more standard way to talk to FreeNet.

    That said, it's pretty dumb. It seems to be all client-side joins, for example. If you send SELECT * FROM actors WHERE firstname = "Natalie" AND lastname = "Portman", your client gets back all hits on "Natalie" and "Portman", then pulls out those with both. That's horribly inefficient if any term of the search is likely to return lots of hits.

    There's a lot of work ahead before this is useful.

  • by number one duck ( 319827 ) on Monday May 07, 2001 @07:06PM (#239143) Journal
    Doesn't this flat out contradict some of the principles of relational database design? Maintaining a *single* version of any data, for instance? With Freenet, you would get duplication and redundency inherently, but who's to tell you which version of whatever table you are using is the correct one when queries start returning duplicate, slightly temporally shifted information?

    It seems that you'd be wasting the power of freenet if you tried to build a relational database on top of it. The mathematics and goals involved in each model are almost wholly alien to eachother, unless my understanding is flawed.

  • This would bet THE ideal thing to port slashdot to. Store the comments on freenet, and leave the metadata like mod points and such at a centrally controlled site. No more being forced to pull a comment due to lawyers babbling, and no more problems with old content that people still want going away, etc. etc.

    a thought anyway.

  • by Eponymous, Showered ( 73818 ) <jase@du f a i r . org> on Monday May 07, 2001 @08:24PM (#239145) Homepage
    And in other news, recent developments seen on Sourceforge include SQL over carrier pigeon and SQL over pnuematic tube. Combined with holographic storage, room temperature fusion, and a beowulf cluster of Ximian-driven network degraders, this promises to be the future of computing.

    Getting a bit more real, Espra [espra.net] looks to be shaping up as a tasty music-sharing layer for freenet. It's a GUI-licious as a fresh dreamsicle.
  • by PDHoss ( 141657 ) on Monday May 07, 2001 @07:15PM (#239146)
    UPDATE freenet SET freenet.content = 'natalieportman.jpg';

    1,293,190,901,598 rows updated
  • ...is the problem I've always had with the internet, albeit reduced. However, it is merely changed.

    The problem is unstable content. It annoys me when I find some great webcomic or website or FTP server that really makes me sit up and say, "Wow. This is one of the reasons I get online in the first place.", and then the site up and vanishes. Either there wasn't enough funding, or it became unpopular (or rather, with my tastes, it *started* unpopular and became moreso over time ;), or it got hit hard with lawyer-torpedoes and had to be scuttled. It's gotten to the point where I've simply taken to storing anything I like on my own hard drive, because I've found that I can't trust any enjoyable site to still be there in a month.

    The only things that are permanent on the internet as far as I can see are things supported by well funded institutions, or based on something really popular. I don't have very mainstream tastes, and the sort of content the web is trying to push these days just doesn't get me excited.

    Freenet, I at first thought, would be an improvement. The third reason for content vanishment, lawyer attacks, would be removed. However, the longer I look at it the less certain I am of its usefulness. It is designed very carefully as a system to host only the most popular data. I'm beginning to think this is a dreadful weakness.

    For one thing, the quality of Freenet users will directly impact the quality of the content, in a way the web can only dream of. While it's annoying that the quality stuff on the web seems drowned out by all the AOLer-Britney-Spears-fan pages, it's at least still THERE. If those were the people using Freenet, however, there would be nothing BUT.

    Ah, but you say, surely Freenet will be used by other hackish types like me? Well, maybe, but I don't share the same views and preferences with some demographic majority of hackerdom. I think in the end the popularity system of Freenet will cause enjoyable content to be unfindable for a minority of people, of which I have little doubt I shall be a part. And eventually as Freenet grows the tastes and likes of the majority of its users will come more into line with the mainstream (ie., become more likely to delete content I enjoy).

    The other great argument for Freenet is that it is a great forum, say, to speak out on about important issues. Say, a chinese citizen could speak out about his government's crimes. However, what good is that? How will anyone hear about the document before it gets deleted due to lack of requests? How will the voice of the minority ever be heard in a system where only the content approved by the majority is maintained?

    I also find it annoying that, just like the web, there is no attempt to determine whether a piece of work is valuable IN AND OF ITSELF, and is such a masterwork that even if you don't personally like it it must be maintained indefinitely for posterity. I personally would rather Freenet have a system whereby one could rank files by their value. I would also propose that a Freenet user would have the one-time ability (if it could be made unabuseable that is), to give up his rating priviledges to mark a file as permanent and never to be deleted.

    I see a great amount of history, art, literature, and achievement being transferred to digital storage. How much of it will remain undeleted in 30 years? 50 years? I'm certainly hoping someone can reply and tell me I've got it all wrong and show me that Freenet has a fix for these problems. After all, it's gotta be better than .NET - with .NET you'll have the worst of both worlds. I *want* to believe, but I'm too depressed over how the web turned out I guess.

    Freenet, hmm. What was that saying about Democracy, eh? I guess what I'm saying is that Freenet is great, but it still does not deal with the ancient problem of those whose outlooks are in the minority getting screwed.


  • by Bonker ( 243350 ) on Monday May 07, 2001 @07:44PM (#239148)
    Freenet is doing some really amazing things along the lines of creating an alternate network of information that evades censorship and promotes personal anonymity and security. What it's not doing is finding ways for that network to be faster, both in terms of execution speed and adoption. Mod me down for posting as a troll, but I'd much rather Freenet run as an optimized executable rather than Java classes. While Java proponents go on and on about how fast Java can be under the right circumstances, the overhead in terms of processor cycles and RAM required to run an app like Freenet on top of a JVM is still pretty staggering. Of course the real bottleneck is the P2P aspect of the application itself. The current key system has no hope of ever being seriously adopted by the mainstream and an upload/propogation of a smallish webpage with a single on Freeweb ran about 35 hours over my cable connection. Are we seriously considering adding SQL calls to this morass? C'mon guys. Work on basic functionality like increased key-search speeds and simplifying the key system for grandma to use before you start adding additional features.
  • by justrob ( 445616 ) on Tuesday May 08, 2001 @08:24AM (#239149)
    Freenet is a victim of Freenet's success.

    I remember when they announced Fproxy. This would allow you to view HTML pages stored in Freenet on any web browser.

    Stupid, I thought, but somebody was bound to try it. Now it is very popular and most people who have only heard of Freenet think Freenet is a place to store your porno web pages where his wife won't find them.

    By the way. FreeSQL was reported on Snarfoo (a website in Freenet). I'll bet you wouldn't be reading it on Slashdot today if it weren't announced on a Freenet based website three days ago.

    Now a lot of people seem to think that because of Fproxy, Freenet is a replacement for the Web. When people complain about speed they must consider it is an encrypted channel. SSL is a bit slower isn't it? You don't know where the documents are coming from, of course unpopular documents may take a minute to find. Once a few people request your documents they spread like wildfire. Cheesey freesites (websites in freenet) get looked at then they fall out of Freenet.

    Freenet is not Geocities. It (please) won't ever be Geocities. If you want to have midi files playing in the background while people look at your stained glass collection, keep it on the web where it will sit and rot forever.

    People complain about the complex keys that are impossible to remember. There are also simple KSK keys like 'slashdot'. These aren't secure but they serve their purpose. You put a file in Freenet named 'flowbie', tell whoever to get it then you forget about it.

    Like someone mentioned in another thread, look at the URL for this post. You aren't going to remember that, you are going to your bookmark, or to a well known link and then to the complex URL. It is the same way in Freenet. You go to your default page then click away to get where you want to go.

    Do you use telnet with your first name as the password stored in a plain text file or do you use ssh?

    I love the Britney Spears example that keeps popping up. It is perfect. She won't be hot someday soon. Then guess what? She drops out of Freenet. Just what it was designed for. Then the next hottie will propogate.

    The guy who wrote FreeSQL did it because he could. Sound familiar? He never asked anyone to port your SQL apps to Freenet. It is for doing simple stuff in Freenet and will help to create more apps that can store and retrieve data with a simple syntax. People will create a Slashdot in Freenet and why not use something like FreeSQL? Slashdot stories aren't accessed often after the first day are they? Authors do have the ability to re-insert the data if they want to if it falls out of Freenet.

    No search engines in Freenet? Go try it. There are some great web based ones, though they are bound to get shut down. www.freegle.com is great.

    In the last two releases of Freenet they introduced in-Freenet key indexes. While a little clunky, they work. With the recent introduction of Freenet Client Protocol and XML-RPC there will be non-Java clients popping up all over the place. To examine a couple of key indexes:

    java Freenet.client.KeyIndexClient -list freegle
    java Freenet.client.KeyIndexClient -list snarfoo

    These 'start over' at 12:00am GMT so they won't be too lengthy. 3rd party programs are even better:

    fngrab.py -x freegle
    fngrab.py -x snarfoo

    FreeSQL is newsworthy. CmdrTaco doesn't know why though.

    Freenet is not permanent storage. It is a non-permantent database - why not have a simple database interface to it?

  • by Sanity ( 1431 ) on Monday May 07, 2001 @07:13PM (#239150) Homepage Journal
    While it is good to see anyone creating anything over Freenet, I have some issues with this:
    • Is this even newsworthy? There is no code, not even a homepage, nothing to suggest this isn't vapourware (of which there is no shortage on Sourceforge)
    • Freenet isn't very well suited to this task because it forgets unpopular information, which is just what you don't want a database to do
    Note that the lack of permenant data is not a flaw in Freenet, in this regard Freenet is more like a radio station than a library, or indeed, a database. Before anyone says "but why not just add permenant data to freenet" know that someone suggests this on the freenet mailing lists about once every two days - it isn't possible while staying true to Freenet's other goals.


  • I love it. Forget all that ACID crap, especially the D part, let's put a database interface on top of a storage system that is designed to drop data practically at random. Brilliant. I can't imagine why nobody thought of this before.

  • Those who tried out FreeNet know that it's slow, and it's expectable.

    However, SQL is kind of very load-demanding accessing method. Anyone who could put an excess amount of loading to the network by running an open end SQL with sorting(just an example):


    A similar carelessly written statement of above crashed an enterprise database once because excessive TEMP spaced was requested for open end sorting.

    How do they deal with the stability/performance in favour of accessibility?

If you think nobody cares if you're alive, try missing a couple of car payments. -- Earl Wilson