dbTalk Databases Forums  

[ann] hamsterdb Transactional Storage (thanks to all of you)

comp.databases.theory comp.databases.theory


Discuss [ann] hamsterdb Transactional Storage (thanks to all of you) in the comp.databases.theory forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Christoph Rupp
 
Posts: n/a

Default [ann] hamsterdb Transactional Storage (thanks to all of you) - 07-20-2009 , 04:26 AM






Dear comp.databases.theory Group,

over the last one or two years you helped me a couple of times when i
asked silly questions, mainly about transactions, isolation levels
etc.

Now i'm really happy to tell you that i finally released the first
beta version of hamsterdb Transactional Storage. if you're curious
about implementation details, feel free to ask, look at the source or
read the whitepaper (link is below).

In a nutshell:
* ACID compliant transactions in a lock-free architecture;
Transactions do not hold locks during their life-time. Conflicts are
resolved in memory, without accessing the disk
* Fast; performance-relevant functions are moved to the background
* Logical, idempotent logging and Recovery
* Multithreaded; every handle can be used from arbitrary threads
* portable ANSI-C code (Linux/Unix/Win32)
* Easy to use

Source:
http://hamsterdb.com/public/dl/hamsterdb2-0.0.1.tar.gz

The linux/unix version is stable - but win32 still has some issues
(although it works most of the time). This release is not intended for
production use.

The next releases will improve performance, improve win32 and add more
features (Cursors, duplicate keys, more transaction isolation
levels...)

Whitepaper:
http://hamsterdb.com/public/dl/hamst...l_overview.pdf

Best regards
Christoph

Reply With Quote
  #2  
Old   
Roy Hann
 
Posts: n/a

Default Re: [ann] hamsterdb Transactional Storage (thanks to all of you) - 07-20-2009 , 07:13 AM






Christoph Rupp wrote:

Quote:
Dear comp.databases.theory Group,

over the last one or two years you helped me a couple of times when i
asked silly questions, mainly about transactions, isolation levels
etc.
You are welcome.

Quote:
The next releases will improve performance, improve win32 and add more
features (Cursors, duplicate keys, more transaction isolation
levels...)
Not supporting cursors would actually be a good *feature* IMO.

"Duplicate keys" sounds like it could be a contradiction in terms,
unless you are talking about duplicate (non-unique) *physical* keys.

--
Roy

Reply With Quote
  #3  
Old   
compdb@hotmail.com
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 07-22-2009 , 06:21 AM



On Jul 20, 2:26*am, Christoph Rupp <cruppst... (AT) gmail (DOT) com> wrote:
Quote:
Whitepaper:http://hamsterdb.com/public/dl/hamst...l_overview.pdf
quoting now from the white paper:

Quote:
(a conflict occurs if another active Transaction is modifying the same Database key.
If a conflict is discovered, the operation returns with an error.
in other words, a transaction locks a key.

Quote:
only one Transaction isolation level is supported: "read committed"
no, it is not.
yes you prevent dirty reads, but concurrent transactions must all
finish
(unless one rolls itself back on a constraint violation).
you have to support concurrency before "isolation level" makes any
sense.

you still don't understand the basic concepts.

philip

Reply With Quote
  #4  
Old   
Christoph Rupp
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 07-31-2009 , 09:10 AM



On Jul 22, 1:21*pm, com... (AT) hotmail (DOT) com wrote:
Quote:
On Jul 20, 2:26*am, Christoph Rupp <cruppst... (AT) gmail (DOT) com> wrote:

Whitepaper:http://hamsterdb.com/public/dl/hamst..._overview..pdf

quoting now from the white paper:

(a conflict occurs if another active Transaction is modifying the sameDatabase key.
If a conflict is discovered, the operation returns with an error.

in other words, a transaction locks a key.

only one Transaction isolation level is supported: "read committed"

no, it is not.
yes you prevent dirty reads, but concurrent transactions must all
finish
(unless one rolls itself back on a constraint violation).
you have to support concurrency before "isolation level" makes any
sense.

you still don't understand the basic concepts.

philip
feel free to explain them to me.

Christoph

Reply With Quote
  #5  
Old   
compdb@hotmail.com
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 08-02-2009 , 02:41 AM



On Jul 31, 7:10*am, Christoph Rupp <cruppst... (AT) gmail (DOT) com> wrote:
Quote:
On Jul 22, 1:21*pm, com... (AT) hotmail (DOT) com wrote:
you still don't understand the basic concepts.
feel free to explain them to me.
In my previous message I meant to bear bad tidings,
but I didn't mean to have an attitude.

To expand on my previous message:
1. You have locks.
"Locking" just means others' access is constrained.
Latches and mutexes are locks.
2. A system only has concurrency if each user's sequence
of transactions proceeds despite other transactions.
Isolation level is one way to define the kind of atomic
changes that a transaction is a sequence of from
the user's point of view.
(You don't seem to understand that isolation levels other
than serializable violate ACID, unless you interpret the
atomic changes as nested transactions.)
The system must produce some interleaving of these
atomic changes.
Rollback and commitment are implementation
concepts dealing with (user-invisible) attempted executions
of individual transactions or atomic changes.
Each user must see their transactions advance
(observing also non-deterministic atomic changes from
other transactions between their own atomic changes).

I said these are basic concepts. If I haven't motivated
you to re-examine some basic expositions, so be it.

philip

Reply With Quote
  #6  
Old   
Christoph Rupp
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 08-02-2009 , 05:41 AM



Philip,

On Aug 2, 9:41*am, com... (AT) hotmail (DOT) com wrote:

Quote:
1. You have locks.
"Locking" just means others' access is constrained.
Latches and mutexes are locks.
My "lock-free" described the implementation and the fact that i do not
lock pages. I'll make sure that next time i'm understood better

Quote:
2. A system only has concurrency if each user's sequence
of transactions proceeds despite other transactions.
Isolation level is one way to define the kind of atomic
changes that a transaction is a sequence of from
the user's point of view.
(You don't seem to understand that isolation levels other
than serializable violate ACID, unless you interpret the
atomic changes as nested transactions.)
The system must produce some interleaving of these
atomic changes.
Rollback and commitment are implementation
concepts dealing with (user-invisible) attempted executions
of individual transactions or atomic changes.
Each user must see their transactions advance
(observing also non-deterministic atomic changes from
other transactions between their own atomic changes).
i think i understand your points. I also understand that the 'i' in
ACID is violated if the isolation level is not SERIALIZABLE. on the
other hand even ANSI suggests different/weaker isolation levels. I
guess i follow a more pragmatic approach - also in case of
concurrency, .

Quote:
I said these are basic concepts. If I haven't motivated
you to re-examine some basic expositions, so be it.

philip
Actually i'm grateful for your comments. my database is a hobby
project and i'm happy to learn and improve my knowledge. I'd
appreciate book recommendations.

Christoph

Reply With Quote
  #7  
Old   
compdb@hotmail.com
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 08-02-2009 , 10:49 PM



Quote:
on the
other hand even ANSI suggests different/weaker isolation levels.
ANSI is just committees of interested parties.
In the case of databases that's SQL companies.
Standard doesn't mean good.

Quote:
guess i follow a more pragmatic approach
I find your use of this word interesting.
Perhaps as if theoretical or abstract meant impractical,
instead of "sound", "clear" and "fundamental".

A classic & good beginning is Date's Intro to DB Systems.
The classic reference is Gray and Reuter
Transaction Processing: Concepts and Techniques.
On the other hand Gray never understood the relational model.
Berstein has a 2009 edition of Principles of Transaction Processing.

philip

Reply With Quote
  #8  
Old   
Christoph Rupp
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 08-03-2009 , 02:10 AM



On Aug 3, 5:49*am, com... (AT) hotmail (DOT) com wrote:
Quote:
guess i follow a more pragmatic approach

I find your use of this word interesting.
Perhaps as if theoretical or abstract meant impractical,
instead of "sound", "clear" and "fundamental".
No, not at all. Read it as "Accept something imperfect if it's good
enough to solve most problems effectively (and then improve the
solution step by step)". I think this comes from my development style
which is based on iterations.

Thanks for the book recommendations and your other comments.

Christoph

Reply With Quote
  #9  
Old   
noyb
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 09-25-2009 , 10:46 PM



compdb (AT) hotmail (DOT) com wrote:
Quote:
On the other hand Gray never understood the relational model.
That's interesting. Can you point me to some evidence of that?
Just out of curiosity, mind, I'm not saying I disbelieve you.
But it seems rather surprising...

Clifford Heath, Data Constellation, http://dataconstellation.com
Agile Information Management and Design

Reply With Quote
  #10  
Old   
compdb@hotmail.com
 
Posts: n/a

Default Re: hamsterdb Transactional Storage (thanks to all of you) - 09-29-2009 , 07:59 PM



On Sep 25, 8:46*pm, noyb <no.s... (AT) please (DOT) net> wrote:
Quote:
com... (AT) hotmail (DOT) com wrote:
On the other hand Gray never understood the relational model.

That's interesting. Can you point me to some evidence of that?
I might have come to this conclusion because of "A Call to Arms".

philip

Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.