PDB

View: New views
15 Messages — Rating Filter:   Alert me  

Re: PDB

by Roman Semenenko-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

addon and it's examples code seems to be cool, but addon doesn't build
for me. Says it misses `QDBM`

Steve Dekorte wrote:

>
>
> I'd welcome feedback on Io's new persistent store database:
>
> http://www.iolanguage.com/scm/git/checkout/Io/docs/IoReference.html#PDB 
> <http://www.iolanguage.com/scm/git/checkout/Io/docs/IoReference.html#PDB>
>
> It's working but is still a work in progress and your input could help
> shape it's direction.
>
> - Steve
>
>  


PDB

by Steve Dekorte :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


I'd welcome feedback on Io's new persistent store database:

http://www.iolanguage.com/scm/git/checkout/Io/docs/IoReference.html#PDB

It's working but is still a work in progress and your input could help  
shape it's direction.

- Steve

Re: PDB

by Jesse Ross-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> I'd welcome feedback on Io's new persistent store database:
>
> http://www.iolanguage.com/scm/git/checkout/Io/docs/ 
> IoReference.html#PDB
>
> It's working but is still a work in progress and your input could help
> shape it's direction.

Very nice, Steve.

Everything seems to work really well, but I'm having problems with  
the removeAt method. I tried the example in the documentation, and  
when I hit this line:

PDB root users removeAt("steve")

The entry isn't actually removed (I get 'nil' as a return value,  
whether the entry exists or not -- that may or may not be correct  
functionality, but that's a different issue). Even after synching the  
database (by calling 'PDB sync'), the object continues to persist.  
Let me know if there is anything you'd like me to try or if you need  
any particular output.


J.



Re: PDB

by Jesse Ross-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> addon and it's examples code seems to be cool, but addon doesn't  
> build for me. Says it misses `QDBM`

Yep -- you need the QDBM and TokyoCabinet addons (which means you  
need to install the QDBM and TokyoCabinet libraries first).

J.




Re: PDB

by Roman Semenenko-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yeah I see that. But:

"TokyoCabinet is missing tokyocabinet library"
umm...

"
volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >> io
build.io

  Exception: Object does not respond to 'AddonBuilder'
  ---------
  Object AddonBuilder                  build.io 1
"

What should I do next? Sorry for the lame question, but it's not so
'least surprise' as it supposed to be.


Jesse Ross wrote:

>
> > addon and it's examples code seems to be cool, but addon doesn't
> > build for me. Says it misses `QDBM`
>
> Yep -- you need the QDBM and TokyoCabinet addons (which means you
> need to install the QDBM and TokyoCabinet libraries first).
>
> J.
>
>  


Re: PDB

by Jesse Ross-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> Yeah I see that. But:
>
> "TokyoCabinet is missing tokyocabinet library"
> umm...
>
> "
> volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >>  
> io build.io
>
>   Exception: Object does not respond to 'AddonBuilder'
>   ---------
>   Object AddonBuilder                  build.io 1
> "
>
> What should I do next? Sorry for the lame question, but it's not so  
> 'least surprise' as it supposed to be.

Not a lame question :)

It depends on what platform you're on. I'm on OS X, and have MacPorts  
installed, so I just did:

[sudo] port install QDBM
[sudo] port install tokyocabinet

I would guess that FreeBSD/NetBSD/OpenBSD would be similar (using  
ports... there are probably packages too).

If you're on Ubuntu or Debian, use apt-get, and I would assume Fedora  
would use yum.


Once you've gotten those libraries installed, then, in the root of  
your Io directory, just to 'make TokyoCabinet', then 'make install'.


Does that help at all?


J.



Re: PDB

by Rich Collins :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hrm I don't think it actually uses QDBM anymore.  Probably should
remove the dependency.

On Fri, Jun 6, 2008 at 6:20 AM, Jesse Ross <io@...> wrote:

>> Yeah I see that. But:
>>
>> "TokyoCabinet is missing tokyocabinet library"
>> umm...
>>
>> "
>> volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >>
>> io build.io
>>
>> Exception: Object does not respond to 'AddonBuilder'
>> ---------
>> Object AddonBuilder build.io 1
>> "
>>
>> What should I do next? Sorry for the lame question, but it's not so
>> 'least surprise' as it supposed to be.
>
> Not a lame question :)
>
> It depends on what platform you're on. I'm on OS X, and have MacPorts
> installed, so I just did:
>
> [sudo] port install QDBM
> [sudo] port install tokyocabinet
>
> I would guess that FreeBSD/NetBSD/OpenBSD would be similar (using
> ports... there are probably packages too).
>
> If you're on Ubuntu or Debian, use apt-get, and I would assume Fedora
> would use yum.
>
> Once you've gotten those libraries installed, then, in the root of
> your Io directory, just to 'make TokyoCabinet', then 'make install'.
>
> Does that help at all?
>
> J.
>
>

Re: PDB

by Scott Solmonson :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I was going to mention that- with TokyoCabinet there should be no QDBM  
dependencies whatsoever-

On Jun 6, 2008, at 7:57 AM, Rich Collins wrote:

> Hrm I don't think it actually uses QDBM anymore.  Probably should
> remove the dependency.
>
> On Fri, Jun 6, 2008 at 6:20 AM, Jesse Ross <io@...> wrote:
>>> Yeah I see that. But:
>>>
>>> "TokyoCabinet is missing tokyocabinet library"
>>> umm...
>>>
>>> "
>>> volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >>
>>> io build.io
>>>
>>> Exception: Object does not respond to 'AddonBuilder'
>>> ---------
>>> Object AddonBuilder build.io 1
>>> "
>>>
>>> What should I do next? Sorry for the lame question, but it's not so
>>> 'least surprise' as it supposed to be.
>>
>> Not a lame question :)
>>
>> It depends on what platform you're on. I'm on OS X, and have MacPorts
>> installed, so I just did:
>>
>> [sudo] port install QDBM
>> [sudo] port install tokyocabinet
>>
>> I would guess that FreeBSD/NetBSD/OpenBSD would be similar (using
>> ports... there are probably packages too).
>>
>> If you're on Ubuntu or Debian, use apt-get, and I would assume Fedora
>> would use yum.
>>
>> Once you've gotten those libraries installed, then, in the root of
>> your Io directory, just to 'make TokyoCabinet', then 'make install'.
>>
>> Does that help at all?
>>
>> J.
>>
>>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>

Re: PDB

by Roman Semenenko-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Thanks, that helped) I use ArchLinux, so built packages, because there
are no in repos.

Jesse Ross wrote:

>
> > Yeah I see that. But:
> >
> > "TokyoCabinet is missing tokyocabinet library"
> > umm...
> >
> > "
> > volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >>
> > io build.io
> >
> > Exception: Object does not respond to 'AddonBuilder'
> > ---------
> > Object AddonBuilder build.io 1
> > "
> >
> > What should I do next? Sorry for the lame question, but it's not so
> > 'least surprise' as it supposed to be.
>
> Not a lame question :)
>
> It depends on what platform you're on. I'm on OS X, and have MacPorts
> installed, so I just did:
>
> [sudo] port install QDBM
> [sudo] port install tokyocabinet
>
> I would guess that FreeBSD/NetBSD/OpenBSD would be similar (using
> ports... there are probably packages too).
>
> If you're on Ubuntu or Debian, use apt-get, and I would assume Fedora
> would use yum.
>
> Once you've gotten those libraries installed, then, in the root of
> your Io directory, just to 'make TokyoCabinet', then 'make install'.
>
> Does that help at all?
>
> J.
>
>  


Re: PDB

by Steve Dekorte :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 2008-06-06, at 8:57 AM, Scott Solmonson wrote:
> I was going to mention that- with TokyoCabinet there should be no QDBM
> dependencies whatsoever-


There aren't AFAICS. I suspect the QDBM warning came from trying to  
compile the QDBM addon.

- Steve

Re: PDB

by audrencezar :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Roman,

I'm Archlinux user too! :D
I found QDBM in AUR(http://aur.archlinux.org/packages.php):
http://aur.archlinux.org/packages.php?ID=7272

And the tokyocabinet I create a PKGBUILD and put in aur:
http://aur.archlinux.org/packages.php?ID=17367

To build and install qdbm:
---------------------------------------------------------
cd ~
mkdir ~/qdbm
cd ~/qdbm
wget http://aur.archlinux.org/packages/qdbm/qdbm/PKGBUILD
makepkg -c
sudo pacman -U qdbm-1.8.77-2-i686.pkg.tar.gz
---------------------------------------------------------

To build and install tokyocabinet:
---------------------------------------------------------
cd ~
mkdir ~/tokyocabinet
cd ~/tokyocabinet
wget http://aur.archlinux.org/packages/tokyocabinet/tokyocabinet/PKGBUILD
makepkg -c
sudo pacman -U tokyocabinet-1.2.7-1-i686.pkg.tar.gz
---------------------------------------------------------

Install libevent for Socket:
---------------------------------------------------------
pacman -S libevent
---------------------------------------------------------

And compile io again


  Audren Cezar.




--- In iolanguage@..., Roman Semenenko <volh@...> wrote:

>
> Thanks, that helped) I use ArchLinux, so built packages, because there
> are no in repos.
>
> Jesse Ross wrote:
> >
> > > Yeah I see that. But:
> > >
> > > "TokyoCabinet is missing tokyocabinet library"
> > > umm...
> > >
> > > "
> > > volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >>
> > > io build.io
> > >
> > > Exception: Object does not respond to 'AddonBuilder'
> > > ---------
> > > Object AddonBuilder build.io 1
> > > "
> > >
> > > What should I do next? Sorry for the lame question, but it's not so
> > > 'least surprise' as it supposed to be.
> >
> > Not a lame question :)
> >
> > It depends on what platform you're on. I'm on OS X, and have MacPorts
> > installed, so I just did:
> >
> > [sudo] port install QDBM
> > [sudo] port install tokyocabinet
> >
> > I would guess that FreeBSD/NetBSD/OpenBSD would be similar (using
> > ports... there are probably packages too).
> >
> > If you're on Ubuntu or Debian, use apt-get, and I would assume Fedora
> > would use yum.
> >
> > Once you've gotten those libraries installed, then, in the root of
> > your Io directory, just to 'make TokyoCabinet', then 'make install'.
> >
> > Does that help at all?
> >
> > J.
> >
> >
>



Re: PDB

by Roman Semenenko-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hey Audren, thanks for the tips. Strange, but yaourt returns nothing
about both packages. Will use web interface from now.

audrencezar wrote:

>
> Hello Roman,
>
> I'm Archlinux user too! :D
> I found QDBM in AUR(http://aur.archlinux.org/packages.php 
> <http://aur.archlinux.org/packages.php>):
> http://aur.archlinux.org/packages.php?ID=7272 
> <http://aur.archlinux.org/packages.php?ID=7272>
>
> And the tokyocabinet I create a PKGBUILD and put in aur:
> http://aur.archlinux.org/packages.php?ID=17367 
> <http://aur.archlinux.org/packages.php?ID=17367>
>
> To build and install qdbm:
> ---------------------------------------------------------
> cd ~
> mkdir ~/qdbm
> cd ~/qdbm
> wget http://aur.archlinux.org/packages/qdbm/qdbm/PKGBUILD 
> <http://aur.archlinux.org/packages/qdbm/qdbm/PKGBUILD>
> makepkg -c
> sudo pacman -U qdbm-1.8.77-2-i686.pkg.tar.gz
> ---------------------------------------------------------
>
> To build and install tokyocabinet:
> ---------------------------------------------------------
> cd ~
> mkdir ~/tokyocabinet
> cd ~/tokyocabinet
> wget
> http://aur.archlinux.org/packages/tokyocabinet/tokyocabinet/PKGBUILD 
> <http://aur.archlinux.org/packages/tokyocabinet/tokyocabinet/PKGBUILD>
> makepkg -c
> sudo pacman -U tokyocabinet-1.2.7-1-i686.pkg.tar.gz
> ---------------------------------------------------------
>
> Install libevent for Socket:
> ---------------------------------------------------------
> pacman -S libevent
> ---------------------------------------------------------
>
> And compile io again
>
> Audren Cezar.
>
> --- In iolanguage@...
> <mailto:iolanguage%40yahoogroups.com>, Roman Semenenko <volh@...> wrote:
> >
> > Thanks, that helped) I use ArchLinux, so built packages, because there
> > are no in repos.
> >
> > Jesse Ross wrote:
> > >
> > > > Yeah I see that. But:
> > > >
> > > > "TokyoCabinet is missing tokyocabinet library"
> > > > umm...
> > > >
> > > > "
> > > > volh@ehursagkurkurra ~/dev/sandbox/io/io.git/addons/TokyoCabinet >>
> > > > io build.io
> > > >
> > > > Exception: Object does not respond to 'AddonBuilder'
> > > > ---------
> > > > Object AddonBuilder build.io 1
> > > > "
> > > >
> > > > What should I do next? Sorry for the lame question, but it's not so
> > > > 'least surprise' as it supposed to be.
> > >
> > > Not a lame question :)
> > >
> > > It depends on what platform you're on. I'm on OS X, and have MacPorts
> > > installed, so I just did:
> > >
> > > [sudo] port install QDBM
> > > [sudo] port install tokyocabinet
> > >
> > > I would guess that FreeBSD/NetBSD/OpenBSD would be similar (using
> > > ports... there are probably packages too).
> > >
> > > If you're on Ubuntu or Debian, use apt-get, and I would assume Fedora
> > > would use yum.
> > >
> > > Once you've gotten those libraries installed, then, in the root of
> > > your Io directory, just to 'make TokyoCabinet', then 'make install'.
> > >
> > > Does that help at all?
> > >
> > > J.
> > >
> > >
> >
>
>  


Re: PDB

by Steve Dekorte :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 2008-06-05, at 6:01 PM, Jesse Ross wrote:
> Everything seems to work really well, but I'm having problems with  
> the removeAt method. I tried the example in the documentation, and  
> when I hit this line:
>
> PDB root users removeAt("steve")

Thanks for the bug report. I've added a test for it and it seems to be  
working now.

- Steve

Re: PDB

by Jos Elkink :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This sounds like a pretty cool addition to Io. I'm totally new to Io,
but very impressed with what I've read about it so far.

My most extensive programming experience is with running a fairly
large website using PHP and MySQL. After reading about your PDB
addition, I'm just wondering under what circumstances it is preferable
to use a persistent objects kind of approach like this and under what
conditions it is preferable to go for a relational database. Are there
any rules of thumb here? Does anyone know a good source on this -
either online or a book one can recommend? There seems to be plenty of
literature on different approaches - relational database; persistent
objects; objects - relational mapping libraries, etc. - but it is
harder to find information on their relative strengths / weaknesses.

If the site gets relatively big, how would the performance of PDB be,
you think, compared to, say, mySQL?

Jos

--- In iolanguage@..., Steve Dekorte <steve@...> wrote:

>
>
> I'd welcome feedback on Io's new persistent store database:
>
> http://www.iolanguage.com/scm/git/checkout/Io/docs/IoReference.html#PDB
>
> It's working but is still a work in progress and your input could help  
> shape it's direction.
>
> - Steve
>



Re: Re: PDB

by Steve Dekorte :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 2008-06-09, at 2:57 AM, Jos Elkink wrote:
>  I'm just wondering under what circumstances it is preferable
> to use a persistent objects kind of approach like this and under what
> conditions it is preferable to go for a relational database.

Hi Jos,

Good question. The main differences are simplicity and flexibility:

- PDB is an arbitrary graph database, so any data structure can be  
naturally mapped to it on the fly.
- No schema, so no schema hassles or locking up the DB while changing  
the schema
- PDB's garbage collection model greatly simplifies maintaining  
consistency (no need for consistency triggers)

So PDB is a good fit when you want or need to quickly and easily  
evolve a system.

> If the site gets relatively big, how would the performance of PDB be,
> you think, compared to, say, mySQL?

No sharding support yet, but the plan is to do something like Gemstone  
with in-memory transactions, which should be quite fast.

- Steve