IRC logs of #tryton for Monday, 2011-04-11 #tryton log beginning Mon Apr 11 00:00:01 CEST 2011
-!- curlynostrill(~curlynost@ has joined #tryton00:35
-!- sharoon( has left #tryton01:25
-!- FWiesing( has left #tryton02:01
-!- rhubner(~rhubner@ has joined #tryton02:03
-!- gremly(~gremly@ has joined #tryton03:35
-!- elbenfreund(~elbenfreu@ has joined #tryton04:34
-!- yangoon( has joined #tryton05:18
-!- alimon(~alimon@ has joined #tryton06:12
-!- rhubner(~rhubner@ has left #tryton06:21
-!- enlightx( has joined #tryton06:45
-!- predatell(~predatell@ has joined #tryton07:04
-!- trifon( has joined #tryton08:17
-!- okko(~okko@ has joined #tryton08:22
-!- gavinf( has joined #tryton08:39
-!- gavinf( has left #tryton08:41
-!- Vladimirek( has joined #tryton08:49
-!- hoRn( has joined #tryton08:57
hoRngood morning @all08:57
hoRncan anybody check if my installation is broken: if i go to > Form > View Logs - i get a Exception, that list has no attribute get (Context is a list). So i checked the given context in It's a list ...09:01
-!- bechamel( has joined #tryton09:43
-!- gavinf( has joined #tryton10:06
-!- silverfox1971( has joined #tryton10:23
-!- gavinf( has joined #tryton10:34
-!- gavinf( has left #tryton10:38
-!- cedk(~ced@gentoo/developer/cedk) has joined #tryton10:43
-!- nicoe(~nicoe@ has joined #tryton10:50
-!- pjstevns( has joined #tryton12:13
-!- pjstevns( has left #tryton13:05
-!- trifon_( has joined #tryton13:17
udonoanyone able to create a new database for tip? I get a deadlock:
udonomaybe a local issue...13:26
cedkACTION creating new database13:27
udonocedk: thanks13:29
cedkudono: I can create a database13:29
cedkudono: you have perhaps other process accessing the database during the installation13:29
udonocedk: strange... I clone all again.13:29
udonocedk: ups, I had multiprocessing twice in python-path ... database creation works again. Thanks for testing!13:45
-!- elbenfreund( has joined #tryton13:52
-!- trifon__( has joined #tryton14:13
-!- gavinf(~gavinf@ has joined #tryton15:00
-!- gavinf(~gavinf@ has left #tryton15:01
udonocedk: issue1826: When I try to start a new transaction (this way: ) I always get this error: do you have an idea?15:16
cedkudono: yes you must use new_cursor15:19
-!- sharoon( has joined #tryton15:20
udonocedk: thanks, easy :-)15:39
-!- pjstevns( has joined #tryton15:40
-!- pjstevns( has left #tryton15:40
-!- trifon_( has joined #tryton15:41
-!- silverfox1971( has left #tryton16:04
sharooncedk: ping16:43
cedksharoon: pong16:44
-!- okko( has joined #tryton16:44
sharooncedk: about GSOC - is it not one student per mentor ?16:45
sharooncedk: ie. for the google terms. though the mentorship is more of a community process16:46
cedksharoon: for PSF it is one mentor per student16:46
sharooncedk: so do we have more mentors ? are we not completely allocated for now ?16:48
cedksharoon: we are but we don't know yet how much slots we will have nor which students will be choosent16:49
sharooncedk: ok, I understand16:50
sharooncedk: so should we ask the students to improve on their applications ?16:50
cedksharoon: why not16:50
sharooncedk: alright. and what about the rating of applications ? it seems to me from the GSOC mailing list that some projects have already started rating their applciations16:51
cedksharoon: I must email to Arc April 18 the list of students we want16:55
sharooncedk: ok16:55
sharooncedk: do you have a few mins to discuss about caching ?17:15
cedksharoon: ok17:18
sharooncedk from the short description that you have written, are we thinking of memoize at read method of ModelSQL ?17:19
sharoonis it the same api you are thinking of for tools.cache ?17:19
cedksharoon: indeed I don't know if it is doable17:20
cedksharoon: and also I'm not sure it will improve something17:22
sharooncedk: a quick thought from my side is like this17:22
sharooncedk: the most common operation from client side i fetching (read) the first set of records for the client to display. I believe thats the place where there will be multiple queries of the same kind and i believe the result will not be more than 1 MB17:24
sharooncedk: so we could cache that based on Transaction().cursor.dbname, model._name, given ids and context17:25
sharooncedk: this combination could easily go above 250 chars and i think we will need hashing to make the key17:26
cedksharoon: but why will it be faster then postgresql?17:26
bechamelsharoon: cedk: another problem is that different user see different record (because of rules & access)17:28
sharooncedk: it will be fast ONLY if there are multiple connections on postgres17:28
sharoonbechamel: then we will need to add user also to the hash17:28
cedksharoon: don't understand17:29
bechamelwhat about cache invalidation, it seems tricky17:30
sharooncedk: for a small userbase i dont see benefits with memcached specially in caching read etc.... for expensive queries, caching the result is useful..... it becomes useful for read only when the server has exceptionally high load/frequent queries where the database will become bottle neck17:30
sharoonbechamel: agree, especially when the result of the query changes with an indirect change to some other data (eg. change in rules result in change of sale orders the user can see)17:31
cedksharoon: in fact, I don't see how this could be achieve with the respect of the transaction and the modularity17:33
sharooncedk: can you explain the case17:33
bechamelsharoon: cedk: what about overloading the current cache mechanism (memoize) and use a central memcache  instead of using the DB to invaliddate cache of other trytond instance ?17:34
cedksharoon: you need to invalidate you cache but how can you do it?17:34
sharooncedk: i dont see a way to find out which are the cache entries that need to be invalidated on a change17:36
sharoonbechamel: how does invalidation in memoize work now ?17:37
bechamelsharoon: actualy i was talking about the @Cache decorator17:39
bechamelsharoon: and is invalidated explicitly in the code using it17:40
cedksharoon: cache is not very good and should be used in very specific cases17:44
sharooncedk: agree, i dont think it can be generalised as we thought it could be. It might be better to have Cache as a contrib in tryton so that it can be used when you know where it has to be used.17:45
cedksharoon: have you an example for why you want to have cache?17:45
cedksharoon: there is a bug with @Cache17:46
sharooncedk: for example, results of search_read for the same set of ids, fields17:47
cedksharoon: no I mean an example where you really need to have cache17:48
sharooncedk: i want to cache product information when the e-commerce system reads it17:49
cedksharoon: why don't you cache it in your e-commerce?17:49
sharooncedk: i have a caching emcahnism already but thought it might be better to implement a level below in tryton itself17:50
sharooncedk: it looks like that wont be as easy as i "imagined" - we have the big reset case17:51
cedksharoon: I think cache should be the last answer to a problem17:52
cedksharoon: we should first try to fix what is slow17:52
sharooncedk: i agree, there is nothing slow.... the only slow part is the search which ideally must not be fixed by a cache but by the search itself.... this is just to reduce the database hits17:53
cedksharoon: database like postgresql are design to be hitted :-)17:54
bechamelcedk: except for the bug, what do you think about creating a "memcache-enabled" version of  @Cache ?17:56
cedkbechamel: why not17:57
sharooncedk: bechamel: i think we should just generalise the Cache interface and allow the user to chose the cache backend. a config setting like17:58
sharoonenable_cache = True17:58
sharooncache_backend = database # database, memcached,  filesystem, memcached_appengine17:58
sharoonthe last one is for future ;)17:58
cedksharoon: sounds good18:04
sharoonced, nicoe: i see that you are working on pysql, is the aim something like
cedksharoon: yes except that it does (I think) introspection18:07
sharooncedk: are we avoiding sqlalchemy to avoid dependency, or why not use sqlalchemy.core itself (Not ORM)18:08
cedksharoon: also we want to be able to manipulate incomplete queries18:08
sharooncedk: incomplete? sorry dint get you18:09
cedksharoon: we are avoiding sqlalchemy because it doesn't fit our needs18:09
sharooncedk: ok18:09
cedksharoon: queries that are not complete18:09
cedksharoon: like some part of a where clause18:10
sharooncedk: can you mention an example ?18:10
cedksharoon: of pysql?18:10
sharooncedk: no queries that are not complete18:11
cedksharoon: like the query_get of account.move.line18:12
sharooncedk: this is interesting18:13
sharooncedk: if designed with good modularity it will be a great addition to python - Database agnostic SQL generator with python constructs18:14
sharoonACTION brb18:18
-!- chrue( has joined #tryton18:23
-!- FWiesing( has joined #tryton18:41
-!- caravel( has joined #tryton18:55
-!- elbenfreund( has joined #tryton19:04
-!- elbenfreund( has joined #tryton19:43
-!- Vladimirek( has joined #tryton20:17
-!- chrue( has joined #tryton20:22
-!- okko( has joined #tryton20:29
-!- enlightx( has joined #tryton21:14
-!- pjstevns( has joined #tryton21:20
-!- rhubner(~rhubner@ has joined #tryton21:28
-!- pjstevns( has left #tryton21:50
rhubnerHi sharoon!22:23
rhubnersharoon: Do you know how many slots Tryton has in gsoc?22:25
rhubnersharoon: The quantity of slots was give to PSF or to each umbrella team?22:29
sharoonrhubner: i dont know, cedk is the admin. you must ask him22:30
rhubnersharoon: ok... Thanks :)22:31
-!- bechamel( has joined #tryton22:33
-!- zodman(~zodman@foresight/developer/zodman) has joined #tryton22:39
sharoonbechamel: is there any example on how a PostgreSQL view can be used as a Model ?22:42
bechamelsharoon: let me check22:45
bechamelsharoon: and grepping for "table_query" will give you the others22:47
sharoonbechamel: thanks22:54
-!- Vladimirek( has joined #tryton23:50

Generated by 2.11.0 by Marius Gedminas - find it at!