Wednesday, 2016-12-14

*** XueFeng has quit IRC00:24
*** elynn has joined #senlin00:35
*** XueFengLiu has quit IRC00:36
*** guoshan has joined #senlin00:43
*** yuanying has joined #senlin00:44
*** elynn_ has joined #senlin00:48
*** elynn has quit IRC00:48
*** yuanying has quit IRC00:52
*** yuanying has joined #senlin00:52
*** yanyanhu has joined #senlin00:57
*** yanyanhu has quit IRC01:02
*** yanyanhu has joined #senlin01:04
*** guoshan has quit IRC01:16
*** yanyanhu has quit IRC01:16
*** yanyanhu has joined #senlin01:16
*** shu-mutou-AWAY is now known as shu-mutou01:19
*** elynn__ has joined #senlin01:30
*** elynn_ has quit IRC01:32
*** guoshan has joined #senlin01:33
yanyanhujust for reminding, here is the agenda of today's Tacker IRC meeting. Senlin integration with Tacker is the last topic.02:03
yanyanhuhttps://wiki.openstack.org/wiki/Meetings/Tacker#Meeting_Dec_14th.2C_201602:03
yanyanhuhi, xuhaiwei, around?02:03
*** XueFeng has joined #senlin02:06
*** XueFeng has quit IRC02:08
xuhaiweihi yanyanhu02:13
xuhaiweiyanyanhu, I can join Tacker's meeting today02:16
yanyanhuxuhaiwei, great, thanks a lot, we will be there as well :)02:27
xuhaiweiit's 13:30 beijing time, right? yanyanhu02:27
yanyanhuyes02:28
yanyanhuso will be 14:30 for you02:28
*** XueFeng has joined #senlin02:28
xuhaiweiok02:28
*** chohoor has joined #senlin02:37
*** yuanying has quit IRC02:53
*** yuanying has joined #senlin02:54
*** yuanying has quit IRC02:58
openstackgerritMerged openstack/senlin: Use util function in cluster API (2)  https://review.openstack.org/41006202:59
openstackgerritMerged openstack/senlin: Use util function in cluster API (3)  https://review.openstack.org/41008603:00
openstackgerritRUIJIE YUAN proposed openstack/senlin: rally jobs for cluster-scale-in  https://review.openstack.org/40743303:22
openstackgerritQiming Teng proposed openstack/senlin: Improve DB API for node dependency  https://review.openstack.org/41052703:48
*** yuanying has joined #senlin03:52
openstackgerritAaron Ding proposed openstack/senlin: Set max_size to cfg.CONF.max_nodes_per_cluster if -1.  https://review.openstack.org/41008303:52
*** guoshan has quit IRC04:05
*** shu-mutou has quit IRC04:09
*** shu-mutou has joined #senlin04:15
*** chohoor has quit IRC04:19
*** elynn__ has quit IRC04:37
*** chohoor has joined #senlin05:00
*** elynn__ has joined #senlin05:00
*** xuhaiwei has quit IRC05:02
*** elynn_ has joined #senlin05:04
*** elynn__ has quit IRC05:05
*** guoshan has joined #senlin05:06
*** elynn__ has joined #senlin05:08
*** elynn_ has quit IRC05:10
*** guoshan has quit IRC05:11
*** xuhaiwei has joined #senlin05:18
openstackgerritQiming Teng proposed openstack/senlin: Fix node dependency handling in docker profile  https://review.openstack.org/41054005:47
openstackgerritRUIJIE YUAN proposed openstack/senlin: 'project_safe' is a required parameter  https://review.openstack.org/41054306:04
*** guoshan has joined #senlin06:08
*** guoshan has quit IRC06:12
*** guoshan has joined #senlin06:14
openstackgerritMerged openstack/senlin: Lookup a random action to execute  https://review.openstack.org/40980506:26
*** edisonxiang has quit IRC06:51
*** edisonxiang has joined #senlin06:51
*** AlexeyAbashkin has joined #senlin07:09
*** edisonxiang has quit IRC07:26
openstackgerritAaron Ding proposed openstack/senlin: Set max_size to cfg.CONF.max_nodes_per_cluster if -1.  https://review.openstack.org/41008308:04
*** dinghh1 has joined #senlin08:09
*** openstackgerrit has quit IRC08:48
*** shu-mutou is now known as shu-mutou-AWAY08:59
*** openstackgerrit has joined #senlin09:00
*** ChanServ sets mode: +v openstackgerrit09:00
openstackgerritRUIJIE YUAN proposed openstack/senlin: rally jobs for cluster-scale-in  https://review.openstack.org/40743309:00
openstackgerritRUIJIE YUAN proposed openstack/senlin: rally-job support cluster_scale_out  https://review.openstack.org/41061309:00
openstackgerritmiaohb proposed openstack/senlin: Remove useless decorator for _validate_policy  https://review.openstack.org/41061409:00
openstackgerritEthan Lynn proposed openstack/senlin: [WIP] Refactor senlin lock  https://review.openstack.org/41061709:07
*** xiangxinyong has joined #senlin09:10
Qimingelynn__, there?09:13
elynn__Hi Qiming09:14
Qimingabove the patch above ^09:15
QimingI think I understand what you are doing09:15
elynn__yes?09:15
Qimingor intending09:15
Qimingbut as I just commented, please try move this logic down to db layer09:15
Qimingwe were almost killed once by the DB problem09:16
elynn__I see...09:16
elynn__So put check action and lock in one db session?09:16
Qimingproblem is, when you get an object out of database and doing analysis on that object09:16
Qimingthe db layer entity might have changed09:17
elynn__yes, that's the problem xuefeng met before.09:17
Qimingwe have tried to do flushing, auto_commit, auto_expire ... all those kinds of things09:17
Qimingfor example, an action_get may never give you an updated view of the action object in database09:18
Qimingeven if that action has been modified by another operation09:18
Qimingthis is really painful09:18
elynn__yes...it's not an easy job to deal with db09:19
Qimingpreviously we tried to trigger python code execution when DB state changed, ... it turned out to be impossible09:19
Qimingthere have been some proposals across the community to do DB triggers09:19
Qimingthose efforts died also09:20
Qimingsqlalchemy abstraction layer is hard to debug09:20
Qimingonce I even considered writing SQL directly ...09:20
elynn__You've gone too far...09:20
Qimingyou know09:21
Qimingwe have "fork_join" emulation in DB09:21
Qimingwhen all depended actions complete, the action that depends on them should become READY09:21
Qimingthis is very very straightforward, it cost me a month to get it done09:22
QimingDB record has been updated09:22
Qimingjust the in-memory python object cannot be updated09:22
Qimingsigh ...09:22
elynn__....09:22
Qimingso ... if possible, write your logic into DB layer logics09:22
elynn__Did you mean when I try to steal the lock, it might changed?09:23
elynn__It's better to put the check and steal logic into a DB call?09:23
Qimingwhen you are checking the lock status by reading it out of DB and then examining the python object09:24
Qimingthe link between the DB record and the python object is lost09:24
elynn__I see, I got what you mean, let me see if I can find some SQL commands or sqlalchemy commands to do so.09:25
Qimingyes, they are all about DB record manipulation, so we'd better keep it that way in case we get ourselves trapped into new troubles09:25
Qimingit is possible09:25
Qimingbasically, sqlalchemy is a wrapper for SQL statements09:26
elynn__It means we do engine health check in db call?09:26
Qimingif the logic is at DB layer, you are not supposed to do up-calls then09:27
Qimingthe only thing for you to make decisions are all from DB tables09:27
Qimingand ... they are meant to be reliable09:27
elynn__okay, let me try...09:27
Qimingthere were possibilities for service to use other backends to store data, e.g. distributed KV store09:28
Qimingso far, most of them are sticking to mysql db09:28
Qimingso I don't see a big problem here if we put some core logics into db layer09:28
elynn__It make sense.09:29
elynn__I will do some tests and see how far I can go, might need your experience ;)09:30
Qimingthanks09:30
Qiminga good reference is the way heat dealing with tags09:30
Qimingmany cross table logics done at db layer09:31
elynn__will check heat's codes.09:31
Qimingcode09:32
Qimingnot codes09:32
Qiming:)09:32
elynn__this one ? https://github.com/openstack/heat/blob/master/heat/db/sqlalchemy/api.py#L538-L58609:33
elynn__code? Why... Because it's countless?09:34
Qimingin the context of programming09:35
*** dinghh1 has quit IRC09:35
Qimingthe word code is already a mass09:35
elynn__a mass...okay09:36
Qimingsometimes you will use 'codes', but it will mean the coding of some symbols09:36
Qimingright, that one is about query09:37
elynn__Will go through it.09:37
Qiminga more interesting one is this: https://github.com/openstack/heat/blob/master/heat/db/sqlalchemy/api.py#L125009:37
Qimingabout deleting things (updating things) across many tables09:38
Qimingwhen we detected a service is down, we need to do something like this09:38
elynn__T_T That is a mass..09:38
Qiminghaha09:38
openstackgerritMerged openstack/senlin: Remove retry logic from lock_acquire  https://review.openstack.org/41009509:39
Qimingwhen a service is down, we collect the actions locked by that service, and the nodes/clusters locked by those actions, then we remove all the locks on nodes/clusters, then we remove locks on actions09:39
Qimingthis is something like garbage collection09:39
elynn__That is what I will do09:40
elynn__but later..09:40
Qimingexactly, I know you love mass09:40
elynn__Speechless... you know me well...09:41
openstackgerritRUIJIE YUAN proposed openstack/senlin: handle exception when creating nova server.  https://review.openstack.org/41064409:43
*** elynn__ has quit IRC09:48
*** yanyanhu has quit IRC10:33
*** guoshan has quit IRC10:40
*** chohoor has quit IRC11:12
*** guoshan has joined #senlin11:41
*** guoshan has quit IRC11:46
*** Drago1 has quit IRC12:02
*** guoshan has joined #senlin12:43
*** guoshan has quit IRC12:58
*** guoshan has joined #senlin13:55
*** guoshan has quit IRC13:59
openstackgerritRUIJIE YUAN proposed openstack/senlin: handle exception when creating nova server.  https://review.openstack.org/41064414:37
*** guoshan has joined #senlin14:56
*** guoshan has quit IRC15:00
openstackgerritMerged openstack/senlin: 'project_safe' is a required parameter  https://review.openstack.org/41054315:15
*** Drago1 has joined #senlin16:32
*** guoshan has joined #senlin16:56
*** guoshan has quit IRC17:01
*** AlexeyAbashkin has quit IRC17:41
*** guoshan has joined #senlin17:57
*** guoshan has quit IRC18:02
*** Drago1 has quit IRC19:23
*** guoshan has joined #senlin19:58
*** guoshan has quit IRC20:02
*** guoshan has joined #senlin21:20
*** guoshan has quit IRC21:24
*** catintheroof has joined #senlin21:24
*** catintheroof has quit IRC22:19
*** guoshan has joined #senlin23:21
*** guoshan has quit IRC23:25

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!