forgot to cc the list
Begin forwarded message:
Date: Tue, 16 Jan 2007 12:21:53 +0100
From: lekma <***@chello.nl>
To: "Patrick K. O'Brien" <***@orbtech.com>
Subject: Re: [Schevo-devel] some questions
On Sat, 13 Jan 2007 09:34:54 -0600
Post by Patrick K. O'BrienPost by lekmaHi all,
code = f.unicode()
_key(code)
_index(code)
how come i can create two instance of the Lang entity with the same
code value?
fwiw, if i remove the index specification, then the key
specification is enforced.
That looks like a bug in Schevo. I'll look into that.
ok
Post by Patrick K. O'BrienPost by lekma2. if i specify a key does automatically imply an index
specification?
Yes, keys are enforced through the creation of a unique index, which
is also used to speed up certain operations.
ok
Post by Patrick K. O'BrienPost by lekma3. what about concurrent access/transactions, how are they handled?
Schevo originally came out of Pypersyst, which was a Python port of
Prevayler, which required all transactions to be serial (first logged
to disk, then executed). Since then we have moved to Durus as the
persistence engine, which isn't limited by RAM (Pypersyt and Prevayler
require the entire database to reside in RAM).
One of the ideas that began in Pypersyst, and that we have expanded on
quite a bit in Schevo, is the idea that transactions are objects.
That makes Schevo quite a bit different than traditional databases
(although the evaluation of these transaction objects in Durus does
take place within traditional transaction boundaries).
So far we have focused our efforts on using Schevo as an embedded
database within single-user applications, and to support web
applications. For both of these our transaction model works quite
well. Before moving to Durus we had an experimental multi-user
arrangement that also worked well.
that raises the question as to why did you embed durus? why not rely on
an external module? do you keep in sync with durus changes?
Post by Patrick K. O'BrienSo as of now concurrent access is something that is still on the to-do
list. I do have the book "Transactional Information Systems" by
Weikum and Vossen that should help (if I could ever find the time to
actually read it).
that would be a huge plus
Post by Patrick K. O'BrienPost by lekma4. is there any plan to "wrap" a server around shevo?
Durus can be run in a client/server fashion. We would probably use
that as a starting point.
the fact that durus can be accessed in client/server way is nice for
schevo, because you can probably run more than one schevo "server"
against one durus db (think load balancing, n-tier app, etc), but i was
thinking more of the other side of the story. i.e. client/server access
to shevo, which would allow the clien _not_ to require embedding schevo.
anyway, i've discovered the asyn branch in svn, and it seems to be what
i was looking for. the question is: is it in sync with the trunk? are
there any plans to integrate it in trunk? is there a todo list of
what's left to be done (maybe i can pickup some items and help)?
Post by Patrick K. O'BrienPost by lekma5. is there an irc channel where schevo dev hang out?
#schevo on freenode
well, there doesn't seem to be much hanging there :) (or i'm in the
wrong channel, or the wrong time window, or...)
Post by Patrick K. O'BrienPost by lekmathanks for any help/pointer
Thank you for pointing out bugs and asking good questions. :-)
Post by lekmalekma
ps: i am a newbie to schevo, and still trying to dig info from the
website, so , please, pardon me if my questions seem stupid.
No problem. Our documentation is not very good, so please feel free
to ask questions.