[Sputnik-list] versium (was blueprint)

pierre pracht pierre.pracht at gmail.com
Tue Feb 12 17:43:28 GMT+2 2008


Le 12 févr. 08 à 11:35, Yuri Takhteyev a écrit :

>> Functionality of CouchDB table/view storage is orthogonal to versium
>> document storage.
>
> Well, it's a similar idea.  The main differences are:
>
> 1. Versium is an API while CouchDB and Amazon SimpleDB are
> implementations.

Yes, I always intended to speak of Versium as an API.

> Versium's "simple" storage is like a baby version
> of CouchDB.

No No No
CouchDB make much more than get and set by key, it's just resource  
handling in a REST fashion.
http://www.couchdbwiki.com/index.php?title=CouchDb_Quick_Overview

What offer CouchDB is the view feature :
>> Query-able and index-able, featuring a table oriented reporting  
>> engine that uses Javascript as a query language.


Versium is for me a document (plain resource) storage.
You make a confusion  :
  - On search (full-text search vs column indexing)
	More on this later
  - On versioning (document versioning vs eventual consistency)
	http://en.wikipedia.org/wiki/Eventual_consistency
	CouchDB use versioning but isn't intended to offer versioning

> There is no reason why one can't make a Versium plugin
> for CouchDB / S3, since they align quite well conceptually.

If CouchDB implement document attachment (plain resource).
You will be able to build a plugin for it :
   - put meta-data in object (record / structured resource)
     - author
     - comment
     - version of document (document as file / plain resource)
	** not the same as record version of CouchDB **
   - let CouchDB put file in an additional storage
    	In fact this additional storage would be a Versium !!

> Whether this is worth the effort is a different question.

S3 is a perfect fit for an extension of storage.simple
Swap _open_file, _write_file by conn.put, conn.get and your done.

Worth the effort ?
You put have a screen-cast on your blog to promote your shiny new  
framework :)

Joke aside, I mean : Versium = S3 + versionning (in usage not api)

> 2. Versium doesn't support search - yet.

Here come the turning point :
Does Versium need to implement search ?

If you have an other storage API, let's call it Metasium.
You would write a Versium.decorator build on a Versium.storage and a  
Metasium.storage.
(rq: Versium.decorator Versium.storage having same interfaces)

When you store a document in Versium.decorator it scan document for  
word and store (word,document_id) tuple

To make a search you query Metasium.storage.

> 3. Versium has the concept of versioning built in.  I don't think
> S3/SimpleDB/CouchDB do that, but it wouldn't be hard to simulate.

See above.

>> So if you add an indexed meta-data storage (table/view) ?
>>  - not tied to SQL schema
>>  - With swappable back-end : SimpleDB, CouchDB, SQL, lua table + file
>
> We'll it's a matter of writing them.

Not exactly, I try to sell :
  - Freeze Versium
  - Take a look at a tuple storage for meta-data

Rq: For architecture consideration, Versium would lost author comment  
extra
And in mean time, Some Versium.storage whould implement a  
Metasium.storage

Disclaimer : Metasium google on nothing, juste a joke on Versium.

> At this point I don't have the
> time to do that myself, so my plan is to focus on maintaining the
> "simple" backend.

I didn't ask for some code, what I try, is to split your view (and  
future code) of versium in tow part :
   - document as file / plain resource with versioning
   - meta-data of document / structured resource with indexing

Le 12 févr. 08 à 15:22, Andre Carregal a écrit :
> The way I see it, Sputnik is a curious case of "paradigm  
> overload"... :o)

IMHO, in this case, the split of requirement is a no-brainer, it would  
help to keep architecture clean and polyvalent.

Your advice ?

pierre
(who isn't very fluent in English and would better write  
blueprintcss.lua :) )
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.luaforge.net/pipermail/sputnik-list/attachments/20080212/ecb948ad/attachment.html


More information about the Sputnik-list mailing list