|
Home > Archive > Apache JDO Project > August 2007 > greetings and question about data stores
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
greetings and question about data stores
|
|
| Richard Schilling 2007-07-31, 1:11 pm |
| Greetings. This is my first post to the list.
I would like to know about the code base itself. There is not any
documentation that discusses the structure of the code itself and how
the software interacts with the data store.
Can any one tell me what source code files actually contain the code
that writes to the data store?
Thanks!
Richard Schilling
| |
| Matthew T. Adams 2007-07-31, 1:11 pm |
| Hi Richard,
Apache JDO is the home of the JDO API (the interface & class files of the
specification) & TCK (the code that tests whether a JDO implementation is
compliant with the specification); none of the code here actually writes to
a database*. The reference implementation for JDO 2.0 is JPOX
(www.jpox.org) -- it is an implementation of the JDO 2.0 API. There are
also many other implementations of JDO out there.
HTH,
Matthew
*: There is a legacy reference implementation called FOStore (pronounced
like "foster") that was used as the JDO 1.0, but I don't think that's used
much anymore. Others can comment on that.
-----Original Message-----
From: Richard Schilling [mailto:rschilling@cognitiongroup.biz]
Sent: Tuesday, July 31, 2007 10:22 AM
To: jdo-dev@db.apache.org
Subject: greetings and question about data stores
Greetings. This is my first post to the list.
I would like to know about the code base itself. There is not any
documentation that discusses the structure of the code itself and how
the software interacts with the data store.
Can any one tell me what source code files actually contain the code
that writes to the data store?
Thanks!
Richard Schilling
| |
| Richard Schilling 2007-07-31, 7:11 pm |
| I did realize that the JDO API and the model in the apache code was just
the implementation of the spec. What I'm after is to make sure I
understand what parts of the API (which interfaces) are used by a
specific implementation to cause classes to be committed to the data
store. It looks like the transactions defined in the spec serve this
purpose, but there's so much information I can't be sure.
Thanks ... still getting my head around the JDO spec - I've even read
the JDO book which I have.
Cheers.
Richard
Matthew T. Adams wrote:
> Hi Richard,
>
> Apache JDO is the home of the JDO API (the interface & class files of the
> specification) & TCK (the code that tests whether a JDO implementation is
> compliant with the specification); none of the code here actually writes to
> a database*. The reference implementation for JDO 2.0 is JPOX
> (www.jpox.org) -- it is an implementation of the JDO 2.0 API. There are
> also many other implementations of JDO out there.
>
> HTH,
> Matthew
>
> *: There is a legacy reference implementation called FOStore (pronounced
> like "foster") that was used as the JDO 1.0, but I don't think that's used
> much anymore. Others can comment on that.
>
> -----Original Message-----
> From: Richard Schilling [mailto:rschilling@cognitiongroup.biz]
> Sent: Tuesday, July 31, 2007 10:22 AM
> To: jdo-dev@db.apache.org
> Subject: greetings and question about data stores
>
> Greetings. This is my first post to the list.
>
> I would like to know about the code base itself. There is not any
> documentation that discusses the structure of the code itself and how
> the software interacts with the data store.
>
> Can any one tell me what source code files actually contain the code
> that writes to the data store?
>
> Thanks!
>
> Richard Schilling
>
>
| |
| Erik Bengtson 2007-07-31, 7:11 pm |
| Richard,
If you are searching for the internals of a JDO implementation, you can read the
JPOX internals at
http://jpox.cvs.sourceforge.net/*ch...r/jpox-core.odp
Regards,
Quoting Richard Schilling <rschilling@cognitiongroup.biz>:
> I did realize that the JDO API and the model in the apache code was just
> the implementation of the spec. What I'm after is to make sure I
> understand what parts of the API (which interfaces) are used by a
> specific implementation to cause classes to be committed to the data
> store. It looks like the transactions defined in the spec serve this
> purpose, but there's so much information I can't be sure.
>
> Thanks ... still getting my head around the JDO spec - I've even read
> the JDO book which I have.
>
> Cheers.
> Richard
>
>
> Matthew T. Adams wrote:
>
>
| |
| Craig L Russell 2007-07-31, 7:11 pm |
| | |
| Richard Schilling 2007-08-04, 1:11 am |
| Erick
This is perfect. Thanks - a must read. I may be called upon to develop
a new datastore adapter soon, and this gives me a great place to start.
Richard
Erik Bengtson wrote:
> Richard,
>
> If you are searching for the internals of a JDO implementation, you can read the
> JPOX internals at
> http://jpox.cvs.sourceforge.net/*ch...r/jpox-core.odp
>
> Regards,
>
> Quoting Richard Schilling <rschilling@cognitiongroup.biz>:
>
>
>
>
>
| |
| Richard Schilling 2007-08-04, 1:11 am |
| I was looking very carefully at fostore, and found myself going in
circles through the code without a good roadmap, like the one in the
presentation that Erik sent.
What I was really interested in doing, besides learning how a JDO
implementation uses a local store like fostore, was to learn how to use
fostore directly in my applications. Found *no* information on that at
all - still can't. So, I had hoped that by understanding the JDO
reference implementation use of fostore, I would be able to utilize
fostore directly. After weeks of sifting through code though I gave up.
The closest I got was that the Netbeans b-tree library is used somehow,
but there is no documentation on that which I can find.
Cheers.
Richard
Craig L Russell wrote:
> Hi Richard,
>
> The fostore project at Apache JDO is an implementation that you could
> study for insights as to how the various components interact. There's a
> separation of an abstract StoreManager responsible for storing data to a
> specific datastore, a StateManager responsible for managing the state of
> individual instances, and a PersistenceManager whose API is pretty much
> defined in the JDO specification.
>
> Regards,
>
> Craig
>
> On Jul 31, 2007, at 3:23 PM, Richard Schilling wrote:
>
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
| |
| Richard Schilling 2007-08-04, 1:11 am |
| Here is the posting I had way back in March of 2006, which didn't get
much response - if any at all:
http://www.webservertalk.com/archiv...-3-1437593.html
Never did find out the answers to these questions, but this explains
what I'm up to.
After just looking, I find this on the netbeans site:
http://mdr.netbeans.org/architecture.html#persistence
This explains MDR, the use of b-tree (which the JDO reference
implementation uses) in much more detail than I saw in the past.
FYI.
Cheers!
Richard Schilling
Craig L Russell wrote:
> Hi Richard,
>
> The fostore project at Apache JDO is an implementation that you could
> study for insights as to how the various components interact. There's a
> separation of an abstract StoreManager responsible for storing data to a
> specific datastore, a StateManager responsible for managing the state of
> individual instances, and a PersistenceManager whose API is pretty much
> defined in the JDO specification.
>
> Regards,
>
> Craig
>
> On Jul 31, 2007, at 3:23 PM, Richard Schilling wrote:
>
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
| |
| Craig L Russell 2007-08-04, 1:11 pm |
| | |
| Richard Schilling 2007-08-04, 1:11 pm |
| Looking some more this morning, I also found the source code repository
for netbeans b-tree implementation:
http://mdr.netbeans.org/source/brow...ag=release60_m4
And lo and behold, I also found an old CORBA module I didn't know
existed. This is going to get interesting.... :-)
Richard
Craig L Russell wrote:
> Hi Richard,
>
> Sorry about that. The FOStore implementation had just a bit of
> documentation which I've tried to locate for you but can't seem to find
> just now. When I find it I'll post it on the JDO site and put a link here.
>
> Craig
>
> On Aug 3, 2007, at 11:07 PM, Richard Schilling wrote:
>
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
| |
| Craig L Russell 2007-08-04, 7:11 pm |
| | |
| Richard Schilling 2007-08-05, 1:11 am |
| I think an upgrade for FOStore is definitely feasible, but it should be
redesigned. There's no reason I can think of why a robust b-tree type
implementation could not be managed. The Berkeley DB sets are O.K., but
they typically work well for small data sets. Where we have large data
sets, performance I think is pretty degraded.
Having said that, I think there's a lot to be learned from an old, but
very quick and very robust MUMPS data store. It's underlying structure
is essentially a b-tree, and works very well. We could take a similar
design approach.
Richard Schilling
Craig L Russell wrote:
> Hi Richard,
>
> If you're interested in the non-RDBMS side of JDO, I've had for a long
> time an interest in upgrading the FOStore piece to use a more modern
> key/value store like a modern version of Berkeley DB.
>
> The sticking point for many of the non-RDBMS stores in the public domain
> is the lack of query capability. And much of this is due to the lack of
> schema for the values. In MDR, the key is not-quite-opaque. You can see
> this in the special treatment of keys in the FOStore key-generation.
> We'd have liked to use a simple long as a key but MDR doesn't support
> them. And the value is truly opaque. In FOStore we simply "serialize"
> the objects for storage replacing objects with true FOStore object
> references.
>
> Anyway, if you're interested in upgrading FOStore to use a better store
> than MDR, perhaps we can start a wiki to discuss this.
>
> Best,
>
> Craig
>
> On Aug 4, 2007, at 10:46 AM, Richard Schilling wrote:
>
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
| |
| Craig L Russell 2007-08-05, 1:11 am |
| | |
| Richard Schilling 2007-08-07, 1:11 pm |
| Look forward to writing for the Wiki. I'll go ahead and pull out my
reference material so we can have some time-proven data store texts to
work off of. That will get us started.
Cheers!
Richard Schilling
Craig L Russell wrote:
> Sounds like there's room here for a good discussion, since JDO is the
> only standard datastore-agnostic API that might exploit something like
> MUMPS.
>
> I'll set up a wiki where we can continue the dialog.
>
> Craig
>
> On Aug 4, 2007, at 6:33 PM, Richard Schilling wrote:
>
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
| |
| Craig L Russell 2007-08-09, 1:11 am |
| |
|
|
|
|