On Sat, Sep 15, 2012 at 8:52 AM, Vincent Massol <[email protected]> wrote:
> Hi devs,
>
> Just wanted to share my vision of how we should tackle migrating to the new 
> Model. I see the following steps:
>
> * Step 1: Define new model interfaces (status: in progress)
> * Step 2: Implement a "bridged" version which uses the oldcore (status: in 
> progress).
> * Step 3: Start moving code to use the new API as the new API and its 
> implementation progress. Note: we should start using the produce of step1 and 
> step2 ASAP to tune the details (status: not started)
> * Step 4: At the same time, start a new implementation based on a RDBMS 
> (probably hibernate-based, to be decided) (status: not started). I'd also 
> like that we start other implementations not based on a RDBMS just to prove 
> that it works with other storages. Ideally I'd like some NoSQL impl (Caleb 
> maybe?) and I'd also like to try a Git-based implementation (using jgit)
> * Step 5: Deprecate all our search apis located in XWikiHibernateStore and 
> make everyone use the new QueryManager module. This needs some tuning on the 
> QueryManager for missing stuff but that's doable (I need to send some 
> proposal on missing stuff). (status: in progress). The idea here is to 
> decouple search from storage. Note that we'll need to write some translator 
> from HQL to XWQL or the new search query language.
> * Step 6: As we progress in step 2, 3, 4, introduce a configuration parameter 
> to decide which implementation to use ("bridged", etc) so that users can 
> start playing with new implementations (status: not started)
> * Step 7: Rewrite a new Importer/Exporter that exports everything (all the 
> data in the current DB) + all configuration files/data. To see what we are 
> currently not exporting, see 
> http://platform.xwiki.org/xwiki/bin/view/AdminGuide/Backup#HUsingtheXWikiExportfeature
>  This new exporter should probably be based on the XWiki Streams module being 
> developed here: https://github.com/xwiki-contrib/wiki-stream (status: in 
> progress but not active)
> * Step 8: When users want to migrate from one implementation ("bridged" for 
> ex) to a new implementation they export their wiki, set the new 
> implementation in the configuration file and reimport. (status: not started)

Sounds good but just to be clear it's not steps that has to be fully
completed one after another, right ?

>
> For me Step3 can almost begin (I probably need one or 2 more weeks to be 
> ready to have some use cases implemented and I'll send a vote to merge my 
> work in feature-newmodel branch in master - Would be good if you guys start 
> looking at it and give comments to be ready for this).

Yes we need to start step3 ASAP (I insist on the fact that it does not
require steps 1 and 2 to be fully completed, we should keep the API
experimental as long as we don't are fully happy with it), that's the
only way to do a good API for us IMO.

>
> Then we need volunteer for Step 4 for:
> * new RDBMS implementation. Who?
> * noSQL impl. Cassandra? other? Who?
> * git implementation. Vincent
>
> WDYT about the plan?
>
> In term of time required it's probably going to take us about a year to have 
> a first working version for all the steps by working at a leisurely pace.

I would say probably more than that unless we really push on it.

>
> Thanks
> -Vincent
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to