Slashdot Mirror


Why IBM Open Sourced Cloudscape

An anonymous reader writes "A common and a consistent framework for accessing information enables developers to do more things with more people more often. This article shares how Derby fits into IBM's developer strategy, the Java application stack, its intention to drive more innovation around Java on Linux, and why they want to make the Derby database become as ubiquitous as the Apache HTTP server." (Derby is the new name for the project based on the formerly commercial Cloudscape database.)

108 comments

  1. All this talk... by swordboy · · Score: 4, Interesting

    IBM has been the open source hero for many but why on earth haven't they opened OS2? Are they just going to let it rot?

    --

    Life is the leading cause of death in America.
    1. Re:All this talk... by madman101 · · Score: 3, Informative

      Because too much of the underlying code is owned by Microsoft.

    2. Re:All this talk... by pix · · Score: 5, Informative

      IBM cannot just open-source OS/2. There are technologies and copyrights in OS/2 that belong to third-parties (such as Microsoft).

      OS/2 is still available and developed as eComStation http://www.ecomstation.com/. I have to say that I think that it is very expensive, on the other hand it is far from dead.

    3. Re:All this talk... by MartinG · · Score: 1

      I suspect os/2 contains many bits of licensed technology which probably don't permit opening the source.

      I can't say this with any authority, but for a project of that size I would be surprised if every single line of code was written by IBM internally and there are no patent licenses involved.

      --
      -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
    4. Re:All this talk... by luvirini · · Score: 2, Insightful

      The real reasons are probably more in the line:
      -They have mutual lisencing treaties with Microsoft as the first versions were developped together with microsoft, thus they canot give away other peoples' code -They probably have other parts of the system lisenced from other parties and thus again cannot give away other peoples' code. -Last but not least: by now they probably just want the thing to silently die as it is not a commercially viable product, but they are encumbered by it.

    5. Re:All this talk... by pagal_paanda · · Score: 2, Interesting

      Yesterday I paid a corporate visit to IBM premises in Bangalore. What surprised me a little was that all their PC's were running XP. Is that me or did I heard from IBM a while back that they would switch to Linux from Windows, atleast internally?

    6. Re:All this talk... by DARKFORCE123 · · Score: 0

      I believe there are still many banks that run OS/2. Releasing it as open source now may reveal security flaws that IBM is not ready to admit or fix right away. With respect to my potential financial security, I guess I can do without OS/2.

    7. Re:All this talk... by salvorHardin · · Score: 1, Funny
      Please, dear god, no!

      If OS/2 gets open-sourced, it might encourage people to install it. Think of the suffering!

      I sort through my snail mail and crack open the BOFH Monthly Newsletter, "kill -9" and check out the articles therein. There's a nice peice on making OS/2 slow, boring and painful, but it looks exactly like the OS/2 installation instructions to me...

      BOFH 11
    8. Re:All this talk... by Anonymous Coward · · Score: 1, Interesting

      Sure - IBM would like to do that and there are plans to look at how to do it. It'll take some time to get there though. Until then, Windows XP is the standard IBM client platform.

    9. Re:All this talk... by Anonymous Coward · · Score: 1, Insightful

      Let it rot. Seriously, OS/2 is a low-tech kludge compared to any Linux distro and you don't want it. (i286 kernel, no user-security, a single program can lockup the entire system, the list goes on and on.)

    10. Re:All this talk... by IGnatius+T+Foobar · · Score: 4, Insightful

      IBM has been the open source hero for many but why on earth haven't they opened OS2? Are they just going to let it rot?

      We hear this every couple of months, but let's look at the bigger picture for a minute. Why bother? OS/2 code might have been useful to the open source community half a decade ago, but by now we've made significant advances in every major area of operating system and user interface design -- there's simply nothing left in OS/2 that we can make any use of, because at this stage of the game we've already re-implemented it all.

      IBM has, in fact, checked a bunch of stuff into the Linux kernel that the did own -- things like zero copy, etc. that may have been (among other places) in OS/2. So we actually did get the things which IBM owned and felt we could make use of. But if the whole OS/2 code base were opened tomorrow, I don't really think it would have much of an impact on anything. Maybe an SCO-style lawsuit from Microsoft, but not much in the technology realm.

      --
      Tired of FB/Google censorship? Visit UNCENSORED!
    11. Re:All this talk... by a_ghostwheel · · Score: 2, Interesting

      IBM has not switched internally to Linux. However they do support both Windows XP and Linux on laptops/workstations (true at least for IBM Business Consulting Services) so an employee can request Linux to be installed instead of XP.

    12. Re:All this talk... by gUmbi · · Score: 1

      Why bother? OS/2 code might have been useful to the open source community half a decade ago ... there's simply nothing left in OS/2 that we can make any use of, because at this stage of the game we've already re-implemented it all.

      I don't know about that - I still haven't seen anything that remotely compares to the Workplace Shell in OS/2. It was so completely and elegantly object oriented. I'm pretty sure this is all IBM code too.

    13. Re:All this talk... by tmasssey · · Score: 4, Informative
      None of this has been true since 1998 at the *latest*, and some of these haven't been true since 1992!

      OS/2 2.0 was a fully 32-bit, reentrant, fully preemptive multitasking kernel in 1992. Linux still has issues with a preemptive kernel! The graphics interface went 32-bit in OS/2 2.1. It is a single-user system, so there is (or was, anyway) little focus on multi-user style security, at least for local users (the HPFS, and especially HPFS386 filesystems were excellent for multi-user security, including full support for extended attributes).

      As for the single program locking up the entire system, that was a design decision in the Presentation Manager (the GUI API and program). It had a single input queue: all window messages went through a single queue. This has performance and usability advantages, especially when one window must modify or handle the messages for another.

      However, yes, a single program that did not respond to messages could lock the GUI. The computer would run, but the GUI would be locked until you killed it.

      That was changed in Warp 4.0. There were a number of user selectable ways that this could be addressed, depending on how much you might need the features of SIQ.

      I'm not saying that OS/2 is perfect, or even valuable in the year 2004, but give me a break. You're talking about issues that were addressed between 6 and *12* years ago!

      And the Workplace Shell features a level of object orientedness I have never experienced anyplace else, one that worked *extremely* well. The GUI was not pretty, but it was extremely robust, with a collection of very powerful features.

    14. Re:All this talk... by CaptnMArk · · Score: 1

      Seconded.

      Maybe in another decade.

      (In practice, WPS will have to be redesigned/reimplemented, since the OS/2 version ran all in one process which is a showstopper these days, unless you use Java which brings it's own problems)

    15. Re:All this talk... by khuber · · Score: 1
      One OS/2 feature I haven't seen anywhere else is the bidirectional shortcuts (shadows). Also REXX seemed much better than Windows batch files and could interact with the GUI like AppleScript. I thought the Warp GUI itself was ugly and clunky though.

      I still would take Unix any day of the week over OS/2.

    16. Re:All this talk... by Anonymous Coward · · Score: 0

      Bullshit. OS/2 still to this day uses 16-bit device drivers. The kernel was never ever "fully 32-bit". OS/2 was a decent design for 1992-style computers, but in 2004 your marketdroid rhetoric is ridiclous.

    17. Re:All this talk... by LodCrappo · · Score: 1

      I used to use OS/2 quite a bit several years ago. While it doesn't seem that open sourcing the operating system itself would do much good, as Linux and the bsds seem to have equal or better low level functionality in most areas, what about the Workplace Shell? The WPS has some great ideas that I have yet to see implemented in another GUI. I know that the WPS is not tied to OS/2 too tightly, because I have a verion that runs as a filemanager type app in DOS. It was released by IBM many years ago in some sort of beta program I participated in. I would think that the Gnome and/or KDE project might be able to take some inspiration if not source code from the WPS.

      --
      -Lod
  2. Cloudscape, er Derby, is good stuff by YetAnotherName · · Score: 5, Interesting

    With more and more small form factor devices that run Java (Sharp Zaurus PDA, HomePod media player, various set top boxes) and even Java processors (aJile, for example), a lightweight database presents some nice application opportunities.

    I've played with Cloudscape before and it's not as speedy as MySQL or as rugged as Oracle, but it does get the job done. And having a relational database right in the set top box or PDA means independence from a more heavy duty machine on the LAN, WiFi, etc.

    Open source is just icing on the cake.

    1. Re:Cloudscape, er Derby, is good stuff by pdamoc · · Score: 4, Interesting

      How about SQLite?
      from IBM's site:
      "it's just a 2-MB .jar file"
      from SQLite site:
      "less than 250KB code space (gcc on i486)"

    2. Re:Cloudscape, er Derby, is good stuff by duffbeer703 · · Score: 4, Interesting

      SQLite really rocks. But it is what it is, no more.

      The cool thing about newer versions of Cloudscape is that it uses the exact same libraries as DB2 and I believe now supports all of the same datatypes.

      So you can develop some small-scale application and run it on cloudscape, and then migrate it up to a DB2 system as your needs grow with minimal effort.

      --
      Conformity is the jailer of freedom and enemy of growth. -JFK
    3. Re:Cloudscape, er Derby, is good stuff by spookymonster · · Score: 5, Informative

      SQLite isn't written in Java; it's C++. The code may be platform-independent, but the binaries it produces aren't.

      A fairer comparison would be Hypersonic SQL, a free, open-source small (~100K) database server.

      --
      - Despite popular opinion, I am not perfect.
    4. Re:Cloudscape, er Derby, is good stuff by log2.0 · · Score: 1

      Im sure IBM saw it that way when they open sourced it :)

      note: im not saying thats a bad thing!

      --
      Can your karma go above being Excellent?
    5. Re:Cloudscape, er Derby, is good stuff by Eric+Giguere · · Score: 3, Interesting

      Not sure Cloudscape actually qualifies as "lightweight". Current Java-capable handheld devices are still pretty limited in what they can run, in many cases you still have to go down to the C/C++ level to truly get the "pedal to the metal". Over time this will correct itself, of course, but for now the choices for data persistence in Java are very limited. Most people I know end up rolling their own solution on top of MIDP's Record Management System.

      Eric
      Eric's J2ME Pages

    6. Re:Cloudscape, er Derby, is good stuff by Anonymous Coward · · Score: 0
      a lightweight database presents some nice application opportunities.

      Please mod parent -1, Duh

      It's like he had a homework assignment to write a two line summary, and just slapped together a couple of serious-sounding phrases and then went out for a beer.

    7. Re:Cloudscape, er Derby, is good stuff by deltagreen · · Score: 2, Interesting

      I don't know much about databases, but what I have been told, is that IBM bought Cloudscape, implemented the DB2 datatypes, and then open sourced the whole thing.

      Obviously this was not only to be nice and get goodwill from the open source community, but to have a product that can get a foothold with small businesses instead of e.g. MySQL. The difference is of course that the direct upgrade path from Cloudscape is IBM's own DB2.

    8. Re:Cloudscape, er Derby, is good stuff by AchilleTalon · · Score: 2, Insightful
      RTFA, the whole point is about:
      1. Pushing Java, NOT C, as the language of choice for development on embedded systems
      2. Provide scalability by providing a migration path to the IBM flagship RDMS, namely DB2

      --
      Achille Talon
      Hop!
    9. Re:Cloudscape, er Derby, is good stuff by AchilleTalon · · Score: 1
      And a feature to feature comparison will be required before concluding only the size matters, we are not talking sex, after all (anyway, saying: "Mine is smaller than yours!" doesn't make sense either in that field...)

      --
      Achille Talon
      Hop!
    10. Re:Cloudscape, er Derby, is good stuff by OrangeTide · · Score: 1

      SQLite is pure C, not C++. Also it's true Public Domain, so you can simply stuff it in you source tree with your application without worrying about licensing.

      --
      “Common sense is not so common.” — Voltaire
    11. Re:Cloudscape, er Derby, is good stuff by Anonymous Coward · · Score: 0

      SQLite is a single-user database for the local system only. It locks the entire database whenever it needs to lock something. It has a nifty API for adding user functions, but they rely on the host to execute them -- it doesn't support stored procedures. No triggers at all.

      Still, it has better SQL support than MySQL though. But hell, so does Access.

  3. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  4. compatibility? by geg81 · · Score: 4, Interesting

    Is it compatible with gcj and other free Java-like platforms, or does it require Sun's proprietary Java implementation?

    1. Re:compatibility? by Anonymous Coward · · Score: 0

      [i]s it compatible with gcj and other free Java-like platforms, or does it require Sun's proprietary Java implementation?[/i]

      Wow, you _REALLY_ don't know what you are talking about do you?

      It's written in Java, you have the source code you can compile it with any compile that meets the Java specification and run it on any VM that meets the specification.

    2. Re:compatibility? by Anonymous Coward · · Score: 2, Interesting

      Wow, you _REALLY_ don't know what you are talking about do you?

      Actually, he's got a reasonable point. Yes, in theory it *should* run on any Java, but GCJ isn't 100% there yet. It's coming along, though.

    3. Re:compatibility? by Anonymous Coward · · Score: 0
      Yes, in theory it *should* run on any Java, but GCJ isn't 100% there yet.

      Uh, by which I mean GCJ isn't a complete generic Java rather than GCJ doesn't run Derby. As they say here
      Most of the APIs specified by "The Java Class Libraries" Second Edition and the "Java 2 Platform supplement" are supported, including collections, networking, reflection, and serialization. AWT is currently unsupported, but work to implement it is in progress.
    4. Re:compatibility? by Anonymous Coward · · Score: 0

      The point is that GCJ does not fully comply with the specification whereas the Sun J2SE does. So no it might not run under GCJ but then that's is nobodies fault but the CGJ developers.

      This isn't a critisism of the CGJ developers (it's a massive effort creating what they are creating).

    5. Re:compatibility? by orasio · · Score: 2, Informative

      It requires an implementation of the open (by now) Java specification.
      Whether you use a free implementation or a proprietary, it's your problem. There could be trouble finding a complete free Java implementation, but the GCJ team is working on it.

    6. Re:compatibility? by pix · · Score: 2, Informative

      Actually, being IBM code it was probably developed using IBM's JVM not Sun's.

    7. Re:compatibility? by Anonymous Coward · · Score: 1, Interesting

      You can write broken, incompatible code in Java, too. Such code runs by pure chance and coincidence on Sun's VM. Use some com.sun.* api, for example, and you can wave good bye to portability.

      For people who believe in Java as a portability silver bullet, it may be suprising how much code in practice does such unportbale things. Otoh, coming from a C background, it's not that suprising: people will write their code to whatever they work with, in general. If it works for them, they'll ship it and ignore the little quirks, workarounds, and ocassional importable code until they are forced to deal with it by crashes, flakyness, and customer complaints. That's just how software development works in practice :)

      While gcj, Kaffe & other runtimes have their share of issues, most of the time, that's what makes running some complex software quite hard on free runtimes: it's full of assumptions outside the scope of the specifications that are specific to some specific version of Sun's VM. And it takes a good deal of time to rewrite such broken, unportable Java code.

      I'm working on fixing OpenOffice, among other things. It could use a good rewrite :)

      cheers,
      dalibor topic

    8. Re:compatibility? by Anonymous Coward · · Score: 0

      1. The Java spec is not free.

      2. Nothing has changed about the non-free status of the Java spec, so your , "by now" remark must be intended to mislead people into thinking that something has.

      3. You don't know the answer to the question and are just bullshitting.

    9. Re:compatibility? by Anonymous Coward · · Score: 0


      Actually, being IBM code it was probably developed using IBM's JVM not Sun's.


      Well... It is (was?) IBM's code as in "IBM bought it" and even "IBM maintained it". but it wasn't written at IBM.

      That said, yes it works with IBMs JRE as well as Sun's. It should work with any reasonably compliant JVM/JRE.

    10. Re:compatibility? by Anonymous Coward · · Score: 0

      The Java spec is not free.

      He didn't say "free". He said "open". They are not the same thing.

      The Java Specification has been open for a very long time.

    11. Re:compatibility? by gbjbaanb · · Score: 1

      I had some Java incompatibility problems with Firefox... we have a timesheet application that is written in Java, and it works fine in IE, but I use Firefox nowadays.

      So, just for the hell of it, I try the timesheet app in FF - after installing the Sun JVM as you have to - and it works.. after a fashion. The combo boxes continually flick open and closed (so its keybopard only guys), and the edit fields won;t tab between them and so on - enough problems that I went back to doing my timesheets in IE... except that the same problems are now there too.

      In the end, I had to uninstall the Sun JVM in order to make the painful task of filling in my timesheet not more soul crushing than it already is.

      Portability of Java.. yes, it worked in a different JVM; no, it wasn't portable enough to be useable.

    12. Re:compatibility? by orasio · · Score: 1

      1. Ok, it's not free, in many aspects, but it is open, as you can see many people implement it.

      2. I am not a native english speaker, I tried to say about the opposite: that the "openness" of the spec is real right now, but not assured in the future.

      3. I didn't say I knew the answer to the question, I was just stating in a subtle way that the question was stated in a wrong way. From the question it could be implied that incompatibilities could be the fault of the app developer, when they couldn't, if they implement compliant Java software.

      4. I believe you are a dumbass.

    13. Re:compatibility? by tanguyr · · Score: 1

      in IE:

      Tools -> Internet Options -> Advanced -> (scroll, scroll, scroll) -> Java (Sun) -> uncheck "use Sun JVM 1.4.xxx blahdiblah"

      I have the same problem to use Netegrity's Siteminder admin tool. Most annoying.

      --
      #!/usr/bin/english
    14. Re:compatibility? by Anonymous Coward · · Score: 0

      you can compile it with any compile that meets the Java specification and run it on any VM that meets the specification.

      But there are no open source, free, or third party implementations of Java that meet the specification; all implementations that do derive from Sun source code.

      So, the question remains: does this code work with some of the non-compliant implementations?

    15. Re:compatibility? by Anonymous Coward · · Score: 0

      The Java spec is NOT open; it is only available under a license that imposes lots of constraints.

    16. Re:compatibility? by Decaff · · Score: 1

      all implementations that do derive from Sun source code.

      No - this is a myth that strangely won't die.

      Many Java implementations are 'clean room' and do not derive from Sun's code. HPs Java is an example.

  5. Open OS/2 by ebooher · · Score: 4, Interesting

    It's time once again boys and girls for my Patented Bullshit Theory of the Day!! All BToD opinions are copyright and drug induced from the unraveling mind of me. They are to be taken lightly and humorously.

    Open Sourcing OS/2? Could be promising, except I seem to remember that OS/2 was a collaborative effort between IBM and our beloved Microsoft. (Note, Sarcasm mistranslate netwise). Due to this much of OS/2 is in NT and much of NT is in OS/2, which is why OS/2 could run Windows 3.1 apps natively without and user intervention. OS/2 had a Win3.1 VM that worked so well Microsoft had to implement Win95/NT 4.0 style API's to break the compatibility.

    So, if my memory is correct (and with this many holes how could it be wrong) IBM simply can't Open the code to OS/2 because they don't own 100% of it. Too much of it has Uncle Bill's own stamp on it and Opening the IBM only code would not produce a working system.

    Also if memory serves, there may be some major HIPAA style agreements in place that would keep it from happening even if the ol' Softie claimed that no code from OS/2 was in the 2K version of the NT kernel and that they didn't care if the whold world saw it. Because OS/2 is used in a lot of back office banking, telecom, and medical solutions. I know that one is true, I worked for a CLEC for a while and a good 80% of the boxes were running OS/2 Warp 4.0.

    So, even though it might be kind of interesting to take a long hard look at the OS/2 code. I don't personally think it would ever happen. Too many legalities and too much legacy in place that still just works to hand keys to something that might enable those less fortunate of us (humans) that feel it's ok to commit grand theft to circumvent the already cheese cloth security surrounding very personal data.

    But all this is circumstantial and delusional and part of my deranged mind, and as such this has been another Bullshit Theory of the Day

    We now return you to your regularly scheduled rant.

    --
    "Genius may shine aloof and alone, like a star, but goodness is social, and it takes two men and God to make a Brother."
    1. Re:Open OS/2 by justins · · Score: 1
      Due to this much of OS/2 is in NT and much of NT is in OS/2, which is why OS/2 could run Windows 3.1 apps natively without and user intervention.

      You've basically got a good point, but... there were copies of OS/2 sold which could NOT run Windows 3.1 programs unless you provided your own copy of windows. These copies were sold at a lower cost. There's probably plenty of code in OS/2 that Microsoft has rights to, but that's not necessarily related to windows at all.

      OS/2 had a Win3.1 VM that worked so well Microsoft had to implement Win95/NT 4.0 style API's to break the compatibility.

      win16 support in OS/2 was nothing like a VM, in the way most are used to thinking about them. Just thought I should point that out.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    2. Re:Open OS/2 by jonwil · · Score: 1

      I dont know for sure but I think that the windows layer in OS/2 was basicly something like WINE (in that it translated windows calls into OS/2 calls)

    3. Re:Open OS/2 by justins · · Score: 1
      I dont know for sure but I think that the windows layer in OS/2 was basicly something like WINE (in that it translated windows calls into OS/2 calls)

      I suspect it's another ABI built into the kernel rather than a userland service like WINE. This isn't at all unusual. NT, BSD, and Linux all support binaries for other operating systems in the kernel, to one degree or another.

      It would be analagous to WINE if WINE were a Linux kernel module. Which has been discussed, but never done.
      --
      Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
    4. Re:Open OS/2 by jonwil · · Score: 1

      aah, so its more like the WOW layer windows NT uses to run 16 bit apps...

  6. vs HSQL? by Joseph+Vigneau · · Score: 4, Interesting

    How does Cloudscape/Derby compare with the other open source Java database engine, HSQL?

    1. Re:vs HSQL? by Anonymous Coward · · Score: 2, Informative


      How does Cloudscape/Derby compare with the other open source Java database engine, HSQL?


      The big feature that Cloudscape has that I don't see on the HSQL page is XA support. Uninteresting unless you are working with a TM, but when you are XA can be the difference between "this could be made to work" and "this is a non-starter"

    2. Re:vs HSQL? by Anonymous Coward · · Score: 5, Informative
      I've found that derby is much slower than hsqldb. However, that depend on which way you use hsqldb. hsqldb is able to run completely in memory, with the on-disk database being just a list of the sql statements you issued. When I run hsqldb this way, it runs very fast, but that doesnt seem too scalable to me.


      Derby seems to be more of a traditional database, in comparison.

    3. Re:vs HSQL? by Java+Ape · · Score: 2, Interesting
      I have the same question. I use HSQL fairly extensively for just the sort of tasks they are recommending Derby for. For those not familiar with HSQL, it's a very small, extremely fast database written in Java. It lacks many of the features of the big boys, but it's bang-up at what it does.

      For large projects I use Oracle or PostgreSQL, but HSQL is ideal for inclusion with programs that need a database distributed with the program. It's easy to use, easy to add to a java program, and works like a charm. Frankly, I don't think it's attracted the attention it deserves.

      I don't know about Derby. It's definately worth taking a look at, but in my opionion it would have to be pretty spectacular to displace HSQL.

    4. Re:vs HSQL? by brienv · · Score: 5, Informative

      We use both HSQL and Derby and our experience was that while HSQL was great for small databases, it started to become impractical for medium-to-large databases. Just doing a SELECT Count(*) FROM Foo (which should be instant) can take 30 seconds or more on a large table. Also, if you do a lot of updating (incrementing statistics records, for instance) the table size can get out of hand quickly since each update effectively adds a new record to the table file (until you compact it).

      Here are some preliminary notes one of our engineers compiled while investigating adding Derby to our project. They were just preliminary notes so I make no guarantees as to accuracy but they might be helpful... :

      CHAR/VARCHAR/LONG VARCHAR
      Derby strictly enforces the size specification in CHAR and VARCHAR fields. CHAR fields are space extended; non-space data the does not fit in the field raises an exception on insert or update. LONG VARCHAR data cannot be ordered, grouped, or indexed. (Really!) I believe that SQLServer (and possibly MySQL) has these stupid limitations, too. It may go all the back to the SQL-92 spec. HSQLDB, on the otherhand, ignores all size specifications, treating CHAR/VARCHAR/LONG VARCHAR as synonymns for java.lang.String.

      TOP/LIMIT
      Derby does not support the TOP or LIMIT syntax. There appears to be a "FIRST n ROWS ONLY" syntax that was added to DB2 that never found its way into Cloudscape.

      Case sensitivity
      Derby appears to treat all columns as case sensitive; and there appears no way to change this. HSQLDB, on the otherhand, can be configured on a field-by-field basis. (SET IGNORECASE is used for the database default; and VARCHAR_IGNORECASE is used as the data declaration.)

      IDENTITY fields
      Derby uses the bizarre syntax GENERATE ALWAYS AS IDENTITY. This also does not imply that the field is a primary key. So, "IDENTITY" in HSQLDB becomes "GENERATED ALWAYS AS IDENTITY PRIMARY KEY". Derby allows specification of initial value and increment.

      GENERATE ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 2)

      Performance
      Derby is nearly instantaneous for COUNT(*) queries on databases with large number of rows. HSQLDB appears to count the rows, resulting in very poor performance. Derby appears to have a better architecture for large databases. Queries seem to run in time proportional to the size of the result set. Many simple HSQLDB queries run in time proportional to the size of the database.

      CHECK constraints
      Derby supports CHECK constraints, e.g.,
      size INTEGER DEFAULT 0 NOT NULL CHECK (size >= 0)
      disposition CHAR(1) DEFAULT '+' NOT NULL CHECK (disposition IN ('+', '-', 'B', 'M', 'Q'))

      FOREIGN KEY constraints
      Derby supports inline foreign key declarations with implied column matching, e.g.,
      smtpID CHAR(17) NOT NULL REFERENCES InboxEvents ON DELETE CASCADE
      HSQLDB requires table-level contraints with explicit column matching:
      FOREIGN KEY (smtpID) REFERENCES InboxEvents (smtpID) ON DELETE CASCADE

      Cheers,
      Brien Voorhees
      Red Condor
      Corporate anti-spam gateway service for less than $2/user/month

    5. Re:vs HSQL? by sean.geek.nz · · Score: 1

      HSQL works well if it runs in the same JVM as the single app that is using it. It isn't (as far as I can see from looking at it) built to be horizontally scaleable. Which means that for small Java apps (or embedded devices?) it seems to me that HSQL is a better choice.

      But Derby's advantages are only really advantages if it's clusterable (I assume it is) and if you need to cluster (now or later).

      Comments?

      Sean

  7. I Know One Bug That Needs Fixed ASAP... by Black-Man · · Score: 4, Informative

    Sometimes on re-start the db process just hangs and you can't connect.

    You have to blow away the dbcache directory to get it to start-up. It doesn't occur frequently, but it has happened more than once in an otherwise stable environment.

    1. Re:I Know One Bug That Needs Fixed ASAP... by Paradise+Pete · · Score: 1
      why are people propagating it?

      Is it a trend? I haven't seen it before. I just assumed the writer made a mistake. But if it is a trend it sure needs fixed.

    2. Re:I Know One Bug That Needs Fixed ASAP... by Cobron · · Score: 2, Informative

      Perusing the docs of Derby it says somewhere that no garbage collection on the connection will be performed until all references to the connection are gone. You shouldn't close the connection once opened (it says), so perhaps the gc isn't run yet after a reboot? Perhaps try running the gc manually on startup? (I don't know if "perusing" is spelled or even used correctly, but I couldn't miss the opportunity to try that word out ;) )

  8. This makes sense... by leftCoaster · · Score: 4, Interesting

    Much like dropping general development for OS/2. Why have your own army developing, marketing and supporting a product (database, OS, et. al.) when you can get someone else to do the heavy lifting then sell services to support it. I thought OS/2 Warp was a fine product with a lot going for it, but I understand that it was costing IBM more than they recovered in revenue from sales. This looks like the same kind of thinking.

    1. Re:This makes sense... by supersnail · · Score: 2, Informative

      IBM picked this up when they grabbed informix.

      It is used extensively within IBM java based projects. (WSAD - the websphere IDE come with Cloudscape and works with cloudscape by default).

      But its quite difficult to sell for two reasons.

      One IBMs database brand is DB2, which these days scales down to small hardware.

      Two cloudscapes biggest plus is that it is implemented as a single jar file, but, how do you collect license fees when anyone can copy and use your jar file?

      --
      Old COBOL programmers never die. They just code in C.
  9. The real reason they did it by codepunk · · Score: 3, Informative

    Remember that little deal a while ago about ibm building some off line web technology that auto syncs when you regain a connection?

    The technology we are talking about is called App Play and guess what it uses for data syncronization?

    It does not matter if they open sourced it since they where going to be puttting it on tons of clients anyhow.

    --


    Got Code?
    1. Re:The real reason they did it by querencia · · Score: 1

      So... if you're putting it on tons of clients, it doesn't matter if you open-source it? Ummm, huh?

      I wish Microsoft saw the world the way you do.

  10. Differences with HSQL? by aluminum+boy · · Score: 1

    Has anybody that has used both HSQL and Cloudscape/Derby could offer a comparision? Just curious.

  11. Real Reasons by Anonymous Coward · · Score: 0

    Now with the real reasons they open sourced it:

    1. Poor sales.
    2. Worth more as a tax write-off.
    3. Makes them look good to the open source community.

    1. Re:Real Reasons by Bryan-10021 · · Score: 1

      Exactly. And you forgot the other thing, they HAVE a commercial database already and it's called DB2.

  12. Gump is starting to do nightly builds on OSS by steve_l · · Score: 3, Informative
    If you look at gump, you will see that apache are starting to do nightly builds of all the main OSS Java projects on the Kaffe/classpath/gcj toolchain.

    Cloudscape is a long way down the dependency graph, and you shouldnt expect it for a while. We need to get ant to boot first, which is seemingly a compiler problem.

  13. Hmm by Bill,+Shooter+of+Bul · · Score: 3, Informative

    Due to this much of OS/2 is in NT and much of NT is in OS/2, which is why OS/2 could run Windows 3.1 apps natively without and user intervention. OS/2 had a Win3.1 VM that worked so well Microsoft had to implement Win95/NT 4.0 style API's to break the compatibility.

    No, none of NT was in OS2. Nor is any OS2 in NT. That was one of the reasons for creating NT. There is Win 3.1 in OS2 in the VM that you mentioned, but I hardly think that played much of a decision in creating a 32 bit WIN API. After the success of win 3.1, Microsoft realised that it could succed with out OS2 or IBM. So it made win 3.1 32 bit and created win 95 until NT was ready for mainstream use.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
    1. Re:Hmm by tmasssey · · Score: 5, Informative
      This is incorrect.

      Microsoft largely wrote OS/2 1.x according to IBM's specifications. IBM was responsible for writing OS/2 2.x. This includes the entire Workplace Shell, which started life as a shell for 1.x, actually: I saw it demo'ed in 1998 running on 1.x. This was an early demo: even window resize did not work! :)

      While IBM was working on 2.x (mainly WPS stuff), Microsoft was tasked with writing the next version of OS/2: 3.0. It was about this time that Windows 3.0 became such a success. Microsoft then too their OS/2 3.0 code and decided to make Windows NT.

      That is why an *amazing* number of Win32 (as in NT, *not* 95) calls are merely renamed OS/2 calls. In fact, IBM ported Lotus SmartSuite to OS/2 by creating a Win32 (again, NT, not 95) to OS/2 translation layer that allowed them to port like 85% of the SmartSuite code without rewriting.

      Windows 95 was not even *thought* of at this time. We're talking 1991 timeframe. Windows 95 was never supposed to exist: NT (NT 3.1, that is) was supposed to be the 32-bit OS that the world moved to. But it was too big, too bloated, too unusable.

      However, there is (well, was) a *ton* of code that started life as OS/2 3.0 in Windows NT. That's why during the divorce, IBM was given the rights to a source license of Windows 3.1. Which is also why shortly afterward Microsoft release Windows 3.11! :) In IBM's "Blue Spine" version of OS/2 (the one that included Windows 3.1), IBM's copy of Windows 3.1 ran 10% faster than Microsoft's. Why? They recompiled Windows with the Watcom C compiler instead of MSVC! :)

      However, it's all kind of moot, anyway. The Win32 API is now quite a bit different (Windows 95's 'Win32' API was quite a bit different from NT 3.5's, and Windows 2000 and XP have moved in new directions, too), and OS/2 isn't going anywhere.

    2. Re:Hmm by Anonymous Coward · · Score: 0
      No, none of NT was in OS2. Nor is any OS2 in NT.
      Really? So, the OS/2 subsystem that is included in NT 3.5x and 4 is ... what, window dressing?
      The first part is correct, there is none of NT is OS/2.

      Windows was not "included" in OS/2 unless you bought it that way. If you already owned a Windows license, you could buy OS/2 without and use your existing copy of Windows. The DOS VM in OS/2 was quite solid.

      but I hardly think that played much of a decision in creating a 32 bit WIN API. After the success of win 3.1, Microsoft realised that it could succed with out OS2 or IBM. So it made win 3.1 32 bit and created win 95 until NT was ready for mainstream use.

      Ha! It was so successful that when Win 3.1 came out, it "broke" the Windows compatibility in OS/2 - IBM quickly released a fix pack.

      BTW, Windows 3.1 is not 32 bit, and 95, aka Chicago, was announced over 3 years before it was available as the "32 bit windows", which it wasn't in the opinion of many. It was named 95 because that was when it was finally released.
      The first release of NT, 3.1, was a clunker.

      After the success of win 3.1, Microsoft realised that it could succed with out OS2 or IBM.

      Read up on your history - Microsoft broke away from its agreement with IBM _LONG_ before Windows 3.1 was released.

    3. Re:Hmm by Anonymous Coward · · Score: 0

      No, none of NT was in OS2. Nor is any OS2 in NT.

      Not true. I used WinNT 3.1, and some error messages contained the text "OS2" at the beginning of the error code portion of the message. I assume MS had/has a right to use that code, but you'd think they would have at least done a global find/replace on the code to replace "OS2" with "NT" or something.

    4. Re:Hmm by IntlHarvester · · Score: 1

      That is why an *amazing* number of Win32 (as in NT, *not* 95) calls are merely renamed OS/2 calls

      The Other way around: IBM licenced the Win16 API from Microsoft for use in OS/2 PM. MS wanted the OS/2 API to be "just a recompile" for Windows programmers, but IBM balked and changed/renamed some things. Eventually MS introduced Win32 which was much closer to Win16 than PM was.

      Win32 and PM look similar because they both derive from the same base (Win16).

      --
      Business. Numbers. Money. People. Computer World.
    5. Re:Hmm by Anonymous Coward · · Score: 0
      Microsoft largely wrote OS/2 1.x according to IBM's specifications. IBM was responsible for writing OS/2 2.x. This includes the entire Workplace Shell, which started life as a shell for 1.x, actually: I saw it demo'ed in 1998 running on 1.x. This was an early demo: even window resize did not work! :)
      1998? Surely you mean 1988 (when OS/2 version 1.1 was up to date) -- by 1998 OS/2 Warp 4.0 had been out for two years already.
  14. My reason for not using it by Anonymous Coward · · Score: 1, Insightful

    I do not want to pay for a commercial lic to ship a product I develop that uses it. There are other capable, low main, FREE db's out there. e.g. Firebird.

    If they had no cost for commercial prod usage, I would be very happy to give it a spin!

    1. Re:My reason for not using it by the+quick+brown+fox · · Score: 2, Informative
      You don't need to pay for commercial usage. It uses the Apache license.

      explanation in plain english

  15. A common and a consistent framework by happyfrogcow · · Score: 2, Funny

    A common and a consistent framework does nothing but open the road for coding style and indenting arguments.

  16. Why? Because it's not DB2 by Eric+Giguere · · Score: 4, Insightful

    IBM acquired Cloudscape as a by-product of acquiring Informix. Open sourcing it is one way to get rid of YADB (yet another database) to focus on their bread and butter, DB2. Probably not a bad deal for them in the sense that it generates lots of goodwill in the community at the same time. Not that I'm cynical or anything.

    Eric
    How to masquerade your browser

  17. McKoi, HypersonicSQL by Hard_Code · · Score: 3, Insightful

    So how does it stack up agains McKoi and HypersonicSQL, both of which are pure java, and "embeddable" databases. Do we need another?

    Personally I wish instead of more databases, the various vendors/projects would just decide on common freakin SQL syntax...it's embarassing and stupid to have to many copies of the same SQL scripts that are only slightly different because the keywords are slightly difference.

    --

    It's 10 PM. Do you know if you're un-American?
  18. Real reason... by Anonymous Coward · · Score: 0

    Maybe they open sauced it because it is free for them, work for you?

  19. It is DB2 -- in a way ... by Laz10 · · Score: 1

    I might have gotten it wrong, but from what I read the networked JDBC driver you use for Derby is the same as you use for remote-connecting to a DB2 server. That would mean that your code will be closely compatable -- offering a nice migration path to a full DB2. I think it sounds like a sweet way to boost DB2 sales. http://www-106.ibm.com/developerworks/db2/download s/jcc/

    1. Re:It is DB2 -- in a way ... by Eric+Giguere · · Score: 2, Informative

      True, the SQL syntax for Cloudscape 10.0 is apparently a subset of the DB2 syntax. So there's definitely a migration path there, which is good for DB2. So the focus is still on DB2. This is one way to move customers over to DB2 if Derby doesn't meet their requirements. Similar to what Microsoft has done with MSDE (now SQL Server Express), except that the IBM way is arguably much friendlier since they've open sourced the codebase instead of just allowing free redistribution of Windows-only binaries.

      Eric

  20. Great Business Move by mr_z_beeblebrox · · Score: 2

    Not only are they giving away a database which is a great fit for small to mid-size companies (which may be in a growth phase) but they are developing specialized tools to migrate to their larger commercial platforms. So, your small company chooses derby because of cost then when you are huge you choose DB2 because of lower cost of migration. Excellent idea, I hope it works as well as it sounds.

  21. Derby seemed like a step back... by Muad'Dave · · Score: 3, Informative

    ...compared to hsqldb for my purposes. Hsql supports persisting Java objects directly into an Object-type column [preparedStatement.setObject(obj)]. Derby requires that you persist your object manually and stuff it into a (statically-sized) BLOB by manipulating streams - ick!

    Also, hsql allowed ps.setObject(1, null) as a shortcut to ps.setNull(1, Types.). This was really handy.

    It _looks_ like derby 10 claims JDBC 2.0 support; shouldn't it have the OBJECT data type?

    --
    Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
    1. Re:Derby seemed like a step back... by Earlybird · · Score: 3, Insightful
      While I'm sure you are right, it sounds like you're trying to fit a square peg into a round hole here. Derby is a relational database (or at least a specimen of its drooling imbred cousin variety, the SQL database) and therefore designed to store relations.

      The relational model supports any kind of data structure ever invented, but it's true that you sometimes want to store opaque blobs of data such as graphics or XML documents, and most databases, including Derby, supports that as well.

      Perhaps you should look at an object-relational mapping layer such as Hibernate or TJDO, or a hybrid object database such as Prevayler.

    2. Re:Derby seemed like a step back... by Anonymous Coward · · Score: 0

      So, how do you dynamically adjust all of a given class' properties in an object database?

      What is the ODB equivalent of:

      alter mytable add column slashdotrulz int default 1

  22. Real Database they should have open sourced by FirefoxUser · · Score: 3, Interesting

    IBM should open source the O2 database that they got when they bought Informix (which bought a couple of other smaller companies that got O2). O2 was a great object database that could handle both Java and C++.

  23. Postgres/Java by Doc+Ruby · · Score: 2, Interesting

    I want a JVM for Postgres, or a proxy interface for Postgres queries to relate across to something like Tomcat. I'd like to run an app that populates a Postgres DB with a catalog of entities in Tomcat, then run relations on them in Postgres, with the objects in the app server called transparently. Of course, this wishlist includes an app that replaces all persistent data calls from Java objects in Tomcat to SQL calls on Postgres. That kind of integration would make distributed object development so much faster and less complex (for the app developer), that it could be practiced by many more developers around the world.

    --

    --
    make install -not war

    1. Re:Postgres/Java by Anonymous Coward · · Score: 0

      An ORM layer like Hibernate? I'm probably not getting what you're trying to say here.

    2. Re:Postgres/Java by Doc+Ruby · · Score: 1

      Yeah, some kind of object-relational model that links Postgres and Tomcat (or other decent Java app server) so I only have to deal with the Postgres API to use it in my apps. As a side benefit, in the other direction, I'd like my Java apps installed in Tomcat to use Postgres for all their persistent data. Does Hibernate do that (either)? How much extra overhead development does it take to use Hibernate?

      --

      --
      make install -not war

  24. "Fair" comparison by vlad_petric · · Score: 3, Informative
    The problem with HSQL is that it lives completely in memory; consequently it just can't possibly meet the Durability requirement from ACID (IOW, once you committed a transaction it's not the case that it's on permanent storage). Disk is one of the biggest bottlenecks with databases, so I would expect HSQL to actually be significantly faster with update transactions.

    So, no, the comparison isn't fair at all.

    --

    The Raven

    1. Re:"Fair" comparison by iwadasn · · Score: 2, Interesting


      HSQL isn't entirely in memory. It writes a log file, and can have cached tables that are persisted to disk. Even non-cached tables are persisted through the log file. It does however keep all the indices in memory, and is limited to 2 GB of data, those are the real limitations.

      It is faster though, primarily due to in memory indices, etc... For JDBC databases, I'm not sure anything is faster on small datasets, it certainly blew postgres out of the water by at least a full order of magnitude last time I used it, but your mileage may vary.

    2. Re:"Fair" comparison by spookymonster · · Score: 2

      The problem with HSQL is that it lives completely in memory

      Not entirely true. Yes, HSQL can run as a non-persistent, entirely-in-memory database. However, this is not the only mode, nor is it even the default mode. The standalone server and servlet modes both connect to physical database files, and therefore do perform real disk I/O.

      --
      - Despite popular opinion, I am not perfect.
    3. Re:"Fair" comparison by Anonymous Coward · · Score: 1, Informative

      You are mistaken: HSQL (http://hsql.sourceforge.net) is defunct; the DB being discussed here is HSQLDB (http://hsqldb.sourceforge.net/), which can indeed persist data to disk (as others have mentioned).

  25. Preemptive kernel implementation? by FatSean · · Score: 0

    ...that could be usefull....

    --
    Blar.
  26. Executive Summary by mcrbids · · Score: 1

    I develop PHP apps on Postgres. Why would I consider Cloudscape?

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  27. ATMs by gilesjuk · · Score: 1

    Not to mention some of the code is in use in ATM machines. Given the lack of use in the mainstream it probably has quite a few exploits that are undetected. Open the code and people will find them.

  28. Permanent storage... by gp310ad · · Score: 1

    What's permanent?
    Sun addresses the problem of slow disk writes (safe writes) under NFS with a NVRAM cache for writes and utility to 'clena up the mess'. It is possible to pull the power on one of these systems, bring it back up, and complete the transfer to disk. EMC and others do the same thing with their storage units. Lots of battery backed RAM for fast 'safe' transaction committal. It's not a software problem!

    --
    Do not look into LASER with remaining eye!
  29. Sleepycat Berkeley DB Java Edition by JSBiff · · Score: 1

    Hello,
    I applaud IBM for OpenSourcing Cloudscape. Always good to have different alternatives, that are suited to different needs. For people looking for Java embedded databases, in addition to Derby, there is also Berkeley DB Java Edition that you might be interested in. I don't work for sleepycat or have any connection to them or their products. I just remembered seeing this product awhile back and it came to mind when I read about Derby.

    Anyhow, thought I'd toss that out for those interested in embedded DBs in Java. There might be very valid reasons for picking Derby over BDbJE, like some have mentioned that Derby and DB2 use the same client libs so it's easy to scale from one to the other. There may also be compelling reasons to pick BDbJE in some circumstances. Haven't used either so I can't, personally, offer an informed opinion.

  30. IBM? by Anonymous Coward · · Score: 0

    It always amuses me when IBM is touted as the hero of Open Source and Sun is the villian, despite Sun contributing more source code lines to OpenSource than any other company in history (obviously excluding Berkley). IBM marketing has really done a fantastic job.

  31. Because "Open Source" is the new buzz word? by Anonymous Coward · · Score: 0

    Let's face it big business only gets involved in things because it's the "in" thing at the time. Buzz kill will eventually quite OSS down to a trickle eventually just like every "in" thing and the Open Source movement will loose its steam. This is how it's been and always will be unless there is a major paradigm shift in business.

    1. Re:Because "Open Source" is the new buzz word? by rwxr-xr-- · · Score: 1

      (something important seems to be missing from your comment ... like the body or the subject!)