Cloudscape Gains Momentum
A reader writes: "There's been a lot of bits written recently about the growth of Open Source databases; as well as IBM's patent gift, as their release of the Java database Cloudscape. There's a contest running on SourceForge.net around Cloudscape; download and run with it." SF.net is part of OSTG, like Slashdot.
wouldn't it be quicker to print your data on paper and sort it by hand ?
And the story is about?
marketing?
A Java database?
Isn't that a little bit like writing a Fast Fourier Transform in LISP?
There are lots of things that Java is perfectly suited for. Databases are not one of those things.
Karma: Excellent Birds (mostly as a result of listening to Laurie Anderson)
You can win an Ipod or TShirt only if you are US or Canada resident....are they trying to encorage inmigration? The rest of the world should not bother about using Cloudscape I assume...
I'm from Quebec ... and as usual, contents makers will not take the trouble of being compatible with Loto-Québec's rules. They are easy to follow, strangely... not a lot of stuff to fill in. It mainly is there to make sure we don't get screwed up
... and it also means everyone in the other countries will not be able to participate. Yeehaa
Wasn't Cloudscape donated to the Apache project, where it changed its name to Derby? Don't IBM think that offering a download of "Cloudscape" is going to confuse developers?
Karma: It's all a bunch of tree-huggin' hippy crap!
The submitter mispelt 'cynical ploy' as 'patent gift', wake up editors.
No, no, no, you get it all wrong.
Java is now no longer a technology to add bullshit to webbrowsers.
It is a mature (so says Sun), fast (so says Sun) and memory-conservative (so says Sun) platform which is platform-independent (so says Sun).
It is used in major companies and organizations for mission-critical and user-centric applications which leverage the power of the human resources and empower an increasi in return-on-investment.
Do you want to imply that the CEOs and CTOs of most major companies are *gasp* fucking clueless XP-wieners? I'm sure this would come as a big surprise to all of us.
As it happens I've already written a review of cloudscape; the google cache of it is here.
Brief summary: get the Apache version; reasonably full SQL92 syntax; performance OK; a bit lacking on security.
I'm old enough to remember when discussions on Slashdot were well informed.
Java IS NOT slow
If anything, the interface gives it a feeling of slow.
I don't need a signature.
Here is a PrintFu link to the Developer Manual: http://www.printfu.org/?mcAction=pdfURL&pdfURL=htt p://publib.boulder.ibm.com/epubs/pdf/c1892470.pdf is about 9.00 bucks
Lets see how many open source projects we can get going at one time to compete against one another with absolutely no standardization! YESSSS!
But seriously -- this is getting out of hand. If every single company, individual, etc. starts an open source project what does that accomplish? Nothing. It brings about 100 different alternatives to the market most of which would never be viable in a commercial environment.
News flash: devote time and effort to succesful projects that extend the reach of the open source community. Another open source database project is just well... another project.
Portable Java is slow, because you have to use the abstract types sun give you rather than exploit your platform's capabilities.
The JVM initialisation time is waaay longer than the C runtime initialisation time on every platform I've tested, which makes short-running processes feel awful in Java.
Finally, whenever it becomes necessary to actually _do_ anything, the JNI must be crossed, and that's slow.
Phil
I guess today is a passable day to die.
- Small and embeddable
- Open source
- Native C++ interface
It seems like practically all the databases that fill the first two requirements are written in Java and use it as their primary API. Finally we settled on Sleepycat's Berkeley DB XML, which meets these requirements and has a native XML interface to boot. The one potential caveat is that they use a hybrid license that lets users "opt out" of the GPL by paying a fee, after which they can distribute their product as closed source. Personally I think this is a great thing (always nice to have more options and you don't have to pay anything if you product is also open source), but I'd be interested in the views of thePeer Pressure
Best thing about cloudscape is small embedded databases for java programs rather than making calls to a huge mysql database. You may say that java is slow but anyone using cloudscape for more than 20,000 entries may not be thinking that through. Cloudscape will also be useful for java programmers to program a database using java.
Write a program in cpp. Run it. a million times.
Now write a program in Java. Guess what, Java is not an interpretted language. It doesn't use some fluffy brightly coloured play-doh type bits, it uses regular ones, like cpp binaries.
Java compiled the byte code into executable form. Then it does some on the fly optimisation.
Java VM's can out-perform cpp over n cycles, where n is sufficient to overcome Java start times (seconds)
Secondly, FFT or a DCT in Java or cpp, I haven't seen benchmarks, but there are right and wrong ways to do it in both languages.
Thirdly, Databases, noone said they had to be FAST. Now remember Java isn't slow. Most databases on this earth spend thier time knitting and throwing stupid errors.
A few have to deal with mind-GOOGLING amount of data.
So there you have it, if you want a very nice Java db, try mckoi
http://mckoi.com/database
great support, open source, and works like a charm! I use an IBM DB server remotely, and an embedded mckoi instance for such things as prefs and other niceties. (as well as local work on data)
There you go.
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
I thought it would be a great test of my increasing Java skills and maybe I'd learn more about transactions, stored procedures, etc.
Well, an hour later I'd got Cloudscape working, I'd unlocked the Magic Word and I was looking it up in the dictionary thinking "is it really a real word?"
If you can do SELECTs, it's quite a trivial 'challenge' I'm afraid.
Embedding a database in an application can be very useful, such as in a desktop GUI where you cannot rely on network communication or maybe don't want to bother with a client/server environment.
I'd certainly consider Java/Cloudscape for a desktop db-backed application over anything built in Access.
As always, fit the tool to the job, not the job to the tool.
You bastards! Thanks for cutting my chances of winning an iPod down 100x.
Namely HSQLDB and Mckoi?
Anyone find a decent article comparing the three yet?
The most interesting part of that Cloudscape promotion on SF is the prize tht follows the pattern of all other promotions I've seen recently: "Win an iPod!"
That says something about Apple and iPod brand, no? That is also a great marketing for Apple and its iPod product! Jobs must be rubbing his hands...
Simpy
I can't take anyone seriously when they say the above.
The JNI is not slow...
How many of you actually read through the license? Did you see the part where they can use any of your contact information and provide ANYTHING they get about you. So, it looks like IBM is now in the business of providing SPAM databases as well.
I should note that I stopped there. I will unlikely ever download and use the product, regardless of usefullness.
What do the iPod and IBM have to do with each other again? Remotely maybe the boost in sales of iPods correlates to a boost in Power4/5 Processors for IBM, but only remotely.
This would have been a much better promotion if IBM had given away a free license for DB2 or something. Think about it, all the companies that want a license for DB2 check out cloudscape and see what it is all about because they want a license for DB2.
I tried for 5 years to come up with a clever sig...only to realize that I am not clever.
I downloaded Cloudscape and started the install. I had to read the license before proceeding. I found it absolutely incomprehensible. Is this a license for personal use? Do I have to pay for distributing it with my app? What if I set it up as a server db via networking? More licenses? I could not figure out what I was obtaining. It CERTAINLY was not 'free' software.
Some settling may occur during posting.
Download and you will see that it is fast. Have not tried Derby, but I tried http://mckoi.com/database/ 2 years ago. It was very fast. Under win32 I compared it with a MS jet engine database (mdb file) with the jdbc odbc bridge driver, almost equal speed, plus the possibility to work with unicode strings.
Read this very carefully.
To send a network packet in C: construct it in your program; call write(), which is a system call.
To send a network packet in Java: construct it in your program; call YadaYada.write(), which copies it across the JNI to a C module; C module calls write() which is a system call.
No matter how fast the JNI is, CROSSING IT WILL ALWAYS BE SLOWER THAN NOT CROSSING IT.
This is not a difficult concept. The JNI tax applies whenever you need to do anything which must be accomplished with a native call. File I/O, drawing GUIs, Network I/O, accessing user input -- all these things and more require that the native way of doing things be converted to/from the Java way of doing things. Admittedly, the VM does some of these internally without the full-price JVM getting involved.
Java has a runtime cost, and the JNI is a large part of that (because a sufficiently good JIT helps with everything else). It's up to you to determine if the development-time benefits (if any) are large enough to warrant the run-time cost for your projects.
Phil
I guess today is a passable day to die.
Slashdot users being confused? You must be kidding...
Finally and embedable database for robocode robot. I will finally have and easy way all the data on all my oponents movements... !! !!
And still get wiped out..
For the nay-sayers out there...
An embedded database is quite useful. Imagine the following scenario.
You're writing an application; say something that you want to sell or distribute on the net. Now, let's say you're program uses a heft amount of data and needs to perform complex searches against it. I'm not talking about free-text, but for columns whose values are between certain ranges or that follow a formula. Also, image that said information is relatively static.
Now, you could force all of your customers to install PostgreSql or MySql, but why bother? It's an app that's used maybe for 10 minutes at a time. That's overkill. Sure, if you're within a corporation you could just point your app to the company's Oracle (or PostgreSql, MySql, etc) database, but that's not the target audience.
Likewise, a text or binary file would be nice, but that's a lot of code to do the complex queries.
Using an embedded database means grabbing waypoints or routes within a certain area is very simple. You just perform a query limiting the longitute and latitude and with little effort you get back sets of data that match you're searches.
The embeded database makes it easily distributable to customers across the net, while allowing for simple code to perform complex lookups.
I'm not saying Cloudscape is the best (though I've used it for like a week in the past), but it and it's kind are pretty useful.
As for Java, I find that it'f pretty quick with the exception of startup and GUI (though both are a little better). And SWT overcomes the whole sluggish GUI aspect.
I was having a hard time maintaining a distinction between unit testing and integration testing with some of my back-end code until Cloudscape came out.
Now, instead of needing to have a container up, or have a database running or similar, I can embed cloudscape (which is quite small, really), set up a group of in-memory tables with the state I need, execute a unit, then check the tables for correctness and destroy the database.
Shazam, database unit tests - no external dependencies.
A lot of people are mumbling and complaining about Java and databases and speed, but apparently they've missed the whole Moore's law thing. I'm betting they either haven't tried it or they have some over-inflated view of how fast their applications need to be (or how much it costs to get fast hardware vs. their time).
This stuff easily meets the "fast-enough" test for lots of uses, unit testing being just one of them.
Beeing in the incubator does not yet mean it is a full blown ASF project - but that the ASF is in the process of ensuring that there is a healthy community around it, that all the legal paperwork, trademakrs, grants, copyrights and other interlectual rights are sorted out, that commiter license agreements are on file for each developer, etc, etc..
Once that is all in place (and getting a healthy long term community is hardest - the rest is just endless grunt work and digging through code and legal paperwork dotting i's and crossing t's) it'll leave the incubator and be a full blown process.
Feel invited to join and make this happen ;-)
Dw.
From the article:
- IBM Cloudscape(TM) V10.0 is a pure, open source-based Java relational database management system that can be embedded in Java programs and used for online transaction processing (OLTP). A platform-independent, small-footprint (2MB) database, Cloudscape V10.0 integrates tightly with any Java-based solution.
- Read why IBM is open sourcing Cloudscape as Derby.
- Open source code is available on the Apache Incubator Project site.
- Runs on any standard Java Virtual Machine (JVM), allowing developers to "write once, deploy anywhere."
- Embeddable inside Java applications on the server, desktop or in pervasive devices.
Apparently the reason to use Java is that it's geared towards Java developers and applications, especially embedded ones.In a real emergency, we would have all fled in terror, and you would not have been notified.
I have been playing around with Nukes, a Java CMS/Portal framework (kind of from the JBoss group).
One nice thing is that you can download a version of Nukes that includes JBoss, Nukes, and even an embeded DB - Hsqldb. You can also use it with MySQL and Postgres if you like.
So does anyone know how Hsqldb compares with Cloudscape?
Downloading Nukes with an embedded DB is really nice to be able to play around with the system right away without any configuration work and is a good example of why an embedded DB can be useful.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
What is the purpose of embedding SQL?
Why would I handicap myself like that, when I don't need ad-hoc reporting and when no other system is going to share my data?
Why wouldn't I just use native Java objects?
See you, Klaus.
http://www.db4o.com/ - The Leading Open Source Object Database
http://www.prevayler.org/ - Do You Still Use a Database?
The runtime is a JAR that's about 300KB in size, with about a 1 meg memory footprint.
Companies like BMW and Bosch have chosen it to drive their automobiles and robots respectively.
The best way to get a feel for db4objects is to look at how simple the code is you get to write. For example:
To store a Pilot object:
To retrieve all pilots:To retrieve a pilot by name:To update a pilot:There's lots more including embedded or client/server operation, transactions, partial activation of large object graphs, and more.Oh, and db4objects works with plain old Java objects. You don't have to implement interfaces, inherit from a particular class, or anything like that.
If you're looking for the simplest, light-weight, zero-administration, embeddable database you could imagine, in my experience, db4objects is it.
(I liked it so much that as of 1.5 weeks ago I started working for the company.)
Best regards,
Dave Orme
--
db4objects senior engineer
Eclipse Visual Editor Project leader (http://www.eclipse.org/vep)
XSWT project leader (http://xswt.sourceforge.net/)
db4objects senior engineer
Eclipse Visual Editor Project leader (
The stuff I'm working on is GPLed, so I can't use Cloudscape -- it's got a restrictive IBM license. I don't care if I can read the source, I care about having a liberal license.
So I'm going with McKoi.
Farewell! It's been a fine buncha years!
I think it says - re-read the comment and engage your brain this time.
...which you decided it meant, because you seem to have your own language. I am not saying your read it wrong, but it wasn't written in first grade frontal-lobotomy language.
I will give you the meat of it:
[Java] doesn't use some fluffy brightly coloured play-doh type bits, it uses regular ones, like cpp binaries.
Not:
Unlike cpp binaries, which use bright fluffy ones and zeros, Java uses regular binary
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
Fondly I recall those halcyon days of tar, configure and make. Oh, what the heck, throw in a make check to see if all is well in the world, and to demonstrate just how to use the software (e.g. what environment variables to set).
But those days are gone. In this brave new java world [as IBM sees through its clouds] we're presented with a weird amalgum of GUI and CLI. Click this, type that. Then point your file manager at ... well, what, exactly? Where the heck is that single README or INSTALL file, to which my tired eyes are so accustomed? Nothing so simple as that. For a new language, you'd really think that Java would have been set up more simply. Heck, the installer knows where I installed the software; why doesn't it set up my environment variables, or give me a line I can cut/paste into my shell?
After I gave up, I looked on this thread to see if others found this lovely software easy to set it up. Well, at least some others had problems.
IBM should install the whole mess with either GUI or CLI, not both. The interface should set up requisite environment variables, and it should run a demo. If folks are meant to read instructions, provide just one single, aptly-named, file of instructions.
Surely this advice is worth at least an iPod Shuffle :-)