16:04:07 #startmeeting marconi 16:04:08 Meeting started Mon Oct 28 16:04:07 2013 UTC and is due to finish in 60 minutes. The chair is kgriffs. Information about MeetBot at http://wiki.debian.org/MeetBot. 16:04:09 o/ 16:04:10 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:04:12 The meeting name has been set to 'marconi' 16:04:17 \o/ 16:04:22 16:04:28 /o/ 16:04:29 * flaper87 bitboxes 16:04:34 \o\ 16:04:38 \o/ 16:04:56 #link https://wiki.openstack.org/wiki/Meetings/Marconi#Agenda 16:05:02 o/ 16:05:28 cp16net: welcome :) 16:05:42 #topic revi3w @CtioN$ fr0m l@57 7IM3 16:05:54 (plop) 16:05:57 flaper87: you have *all* the actions. 16:05:59 :D 16:06:02 damnit! 16:06:03 #link http://eavesdrop.openstack.org/meetings/marconi/2013/marconi.2013-10-21-16.03.html 16:06:17 looks like flaper87 is the only one doing any work these days 16:06:19 ;) 16:06:27 so, I didn't do much on the Heat area because I had to focus more on the summit and API things. 16:06:32 #link https://etherpad.openstack.org/p/cross-transport-api-spec 16:06:36 that's re API spec 16:07:03 * kgriffs reads 16:07:08 If you want to take a look to the design, just open the PDF 16:07:27 which contains some diagrams and very high-colored definition 16:07:30 :P 16:07:50 anyway, It still needs some writing but the bases are already written there 16:08:35 flaper87: hello :-P 16:08:57 cp16net: hey :) 16:09:03 Herein, an API sounds like a mapping of routes to resources. 16:09:19 so each transport can serve up a series of resources according to a particular map. 16:09:25 That's how I understand it. :) 16:10:41 alcabrera: yeah, that's basically it 16:10:58 there are some thing I want it to guarantee, though: 16:11:12 I want that API to be easy to extend, version and validate 16:11:20 and it obviously has to be cross-transport 16:11:42 re extensions 16:11:51 the extend part is going to be interesting. 16:11:52 will those receive the stevedore treatment? 16:13:09 I was thinking, yes! 16:13:32 That way users may choose to enable them or not 16:13:42 ok, good. It sure beats having to maintain a marconi fork with custom patches 16:14:01 +1 16:14:25 sharding is a sort of first API extension./ 16:14:29 people can then load whatever cute, stevedorable extensions they like without hacking the code 16:14:38 cool! I think I'll be able to work something out for our next meeting, which will be after the summit 16:15:14 and you are planning to have the endpoints serve up the schema itself so clients can use it? 16:15:15 a cool demo of getting that machination together would a /stats all the things API extension loaded hrough stevedore and implemented in a separate repop. 16:15:18 *repo 16:15:22 s/endpoints/transports 16:15:28 **would be a... 16:15:35 alcabrera: yeah 16:15:48 or, like, a statsd-a-nator 16:15:48 kgriffs: yeah, that too! 16:15:56 ok, rock on 16:16:02 anything else on this topic? 16:16:06 not from mee! 16:16:23 #action flaper87 to firm up cross-transport-api-spec 16:16:42 alcabrera: want to investigate heat? 16:17:01 lemme see... 16:17:06 not this go around. 16:17:08 sometime in the next 2 weeks 16:17:11 My eyes are still deep into sharding. 16:17:17 hmmm 16:17:22 next week, I'll do it. :D 16:17:25 ok 16:17:25 Yeah, sign me up. 16:17:27 alcabrera: THANKS! 16:17:32 that would be really cool 16:17:36 I've been curious about Heat for some time. 16:17:47 I'm sorry for not working on that 16:17:52 #action alcabrera to research ways we can use heat to deploy marconi itself, as well as provision queues, whatever 16:18:00 flaper87: no worries. :) 16:18:09 no worries, we need to spread the love 16:18:11 * alcabrera got an action this time 16:18:16 can't have flaper87 doing *all* the work 16:18:20 (just most of it) 16:18:20 hehe 16:18:22 ;) 16:18:25 :D 16:18:34 i'd like to work on msgpack media type support 16:18:55 #topic Upd@73$ on 5H@rDinG 16:19:01 LOOL 16:19:08 alcabrera: go go go go go go go! 16:19:11 kkk 16:19:13 soooo 16:19:15 zyuan: that would be cool, let's discuss in a bit 16:19:28 It's been some fierce rebasing last week. 16:19:36 I think most of the core ideas have settled into place. 16:20:01 Some of the biggest updates include a distinction between control storage drivers and data storage drivers being made, which cleaned up a lot of the abstarction. 16:20:16 The other side of the fence was in the transport layer, where we have an admin API and a public API. 16:20:34 The admin is truly a *super* API, meaning, an admin instance can do all a public instance can do (and more). 16:20:57 That more, in the case of the sharding API, is being able to register shards and investigate the state of the project/queue mapping catalogue. 16:21:12 Other news - patches on that admin API are starting to get merged in. 16:21:33 The remaining patches are mostly reviewed, and quite nearly ready for merging. 16:21:36 After that... 16:21:56 It's a matter of hooking the control layer of storage up to queues. 16:21:59 Maybe add some caching. 16:22:01 Test it. 16:22:03 Play with it. 16:22:05 And watch it zoom. 16:22:08 It's going to be fun. 16:22:12 w00t 16:22:20 thanks for all the hard work 16:22:22 awesome, awesome, awesome WORK! 16:22:25 it's been quite a dance 16:22:27 http://ln-s.net/:MsM 16:22:34 quite the dance. indeed. :D 16:22:40 We even have a thoughtstream tpo show for it. 16:22:45 seriously, i know it's been kinda painful this whole proxy / sharding thing 16:22:49 #link https://thoughtstreams.io/combined/marconi-progress-and-updates/ 16:23:02 yeah 16:23:26 sometimes finding what works can be a little painful. I think we're on the right path. 16:23:28 Experiments. 16:23:30 For science! 16:23:31 lesson learned: draw more pretty pictures, do more prototypes 16:23:50 science indeed. :) 16:24:07 ok, so lets rally around this feature and get it merged 16:24:11 and tested 16:24:16 and awesome-i-fied 16:24:27 +1 16:24:30 +2 16:24:34 anything else before we move on? 16:24:49 I think the rest we can figure out as we go over at #marconi 16:25:01 I vote: next topic 16:25:16 #topic UPD@73s oN 8Ug$ 16:25:33 malini: ? 16:25:47 We need to discuss a couple 16:25:57 #link http://goo.gl/OlfzxC 16:26:08 https://bugs.launchpad.net/marconi/+bug/1243752 16:26:39 zyuan: You had some thoughts on this , rt? 16:26:48 #link https://bugs.launchpad.net/marconi/+bug/1243752 16:27:24 zyuan here? 16:27:30 yes 16:27:40 i agree that 204 is not intuiitive 16:27:53 but 404 requires more work 16:28:17 as shown by one of kurt's commit 16:28:20 To make that 404 efficient, it would take a little bit of caching, IMO. 16:28:35 yes 16:28:43 i don't want to do it without oslo.cache 16:28:47 i don't think that's nessarsary; user can try head a queue too 16:29:03 btw, using oslow.cache for checking whether queue exists will speed up the other place(s) we do it already 16:30:02 for the places we place the checking 16:30:04 kgriffs: +1 that's something we have in the queue of: 'to cache' things 16:30:37 cache may result in more race conditions 16:30:37 like, put messages into another queue... 16:30:53 temp file problem 16:31:36 also, once I get around to doing the LRU driver that acts like a CPU's L1+L2 hierarchy, it will be insanely fast. 16:32:07 it's the eventual consistency problem. We'd have to decide what consistency guarantees we want to uphold, and where it matters. 16:32:10 zyuan: ^^ 16:32:11 so, the race condition results in a 204 - like, a queue was deleted right after we checked for existence 16:32:23 cache is fast, i'm saying it may not be c correct 16:32:30 and in that case, we move forward, assuming the cache is there 16:32:43 thing is, that doesn't seem to be any worse that what happens now 16:33:10 hard to say... 16:33:48 and, 16:33:50 except, i guess we might set the expectation for clients that if they get 204 the queue must exist 16:34:10 we would have to say "if you get a 204, the queue is empty, or may have just been deleted" 16:34:10 i think db brings eventual consistency not for nothing 16:34:12 or something 16:34:26 i don't think it's something *we* can try to workaround 16:34:47 if we can, why db does not? 16:34:59 zyuan: true, if the data store is eventually consistent, the "exists" check isn't guaranteed anyway 16:35:28 so the bug is more like, should we make a best effort to check? 16:35:40 flaper87: what do u think? 16:35:59 sorry, stupid thing got stucked! 16:36:03 this "problen" is rare 16:36:23 zyuan: agrre with the rare part 16:36:32 we assume queues are not deleted very often 16:36:44 if so, then what we "best effect" do is just 16:36:55 transfer to one genrentee to another 16:37:01 clarification: the race condition is rare, or the use case of querying a non-existing queue? 16:37:14 i don't see the benefit 16:37:25 use case is rare as well as the race condition 16:37:27 kgriffs: the use- case 16:37:42 TBH, I'd like us, at some point, to treat queues as lazy resources. Meaning, create them when a message is post (for example) 16:37:54 that doesn't fix the issue we're discussing, though. 16:37:57 would we create them on a GET as well? 16:37:58 race condition... actually i don't know. but i hope cache don't make the situation worse 16:37:59 hmmm 16:38:09 kgriffs: :D 16:38:17 .. you know, it's like we are fixing something db can not fix 16:38:19 kgriffs: nope 16:38:47 ok, here is what I suggest 16:39:00 wait until we get another complaint or two 16:39:03 I'm not sure about create on write, but that's one to discuss for another time, flaper87. Interesting thought, though. :) 16:39:09 if we don't hear anything, then we can assume nobody cares 16:39:20 kgriffs: +1 16:39:22 kgriffs: sounds fair enough to me. 16:39:39 It's trippy for new users, but may not be a dire issue. 16:39:41 alcabrera: yeah, TBH, taken from mongodb and how it treats collections 16:39:44 how do we keep track -so move the bug to a lower priority ? 16:39:49 since users just started to try (to break) marconi, i expect such complain will come to us soon 16:39:57 they don't exist until something is written into it 16:40:12 zyuan: agreed 16:40:42 malini: I think we could close the bug as wontfix and re-open it later if necessary 16:40:43 anyway 16:40:50 or invalid 16:40:54 or something like that 16:40:57 flaper87: FWIW, the lazy create is how RSE worked (marconi's predecessor) 16:41:14 flaper87: problem is we are not going to remember this discussion when somebody else complains :( 16:41:17 you never created or deleted queues 16:41:40 I'll put a note on the bug 16:41:43 TBH, I think that's how it should be 16:41:47 kgriffs: ^ 16:41:48 malini: it would have to be closed with rationale - good point. 16:41:57 haha 16:41:59 it may not be relevant for some storage but it is for others 16:42:32 kgriffs: well, I'd say delete yes 16:42:43 but we could definitely make creation easier 16:42:51 in RSE, queues didn't exist as a standalone resource 16:42:56 so there was nothing to delete 16:43:01 a "queue" was just a namespace 16:43:04 aaaanyway 16:43:09 itis related to both mongo and sql 16:43:13 kgriffs: yeah, by delete a queue I mean: A way to remove all those messages 16:43:26 malini: any other bugs to bring up? 16:43:31 sql cares about relation between sets 16:43:37 flaper87: gotchya 16:43:42 if queue sets is empty, intersaction is also empty 16:43:46 silently 16:43:57 no more bugs to discuss..But we have a lot to set priority on 16:44:03 malini: agreed, but if we don't we'll keep a bug around that may create some confussion 16:44:14 I'm happy with either! 16:44:29 malini: let's triage bugs in a breakout after this 16:44:33 ok 16:44:56 +1 16:44:59 i would suggest if the compaint comes to us again, discuss whether we need to update the doc 16:45:15 next up - triaging BPs? 16:45:55 flaper87: we need a way to keep track of user feedback - this does not fit into marconi v2 suggestion wiki. 16:46:12 yea 16:46:18 malini: yeah, I wonder what other projects are doing here 16:46:31 issues? 16:46:35 malini: +1 16:46:36 will send an email later. 16:46:38 github ones? 16:47:12 We should have a general suggestion wiki then 16:47:14 ok, let's triage blueprints in a breakout as well 16:47:32 wow, i love this BP, encrypt user data 16:47:39 kk 16:47:40 alought it's very old 16:48:01 Review API v1 feedback? 16:48:16 #topic r3vi3w @PI v1 f33D8@ck 16:48:34 #link https://wiki.openstack.org/wiki/Marconi/specs/api/next 16:48:52 So, as you may know, I've been collecting feedback from users on this page 16:49:35 top to down? 16:49:39 yup - good work, kgriffs! This is a good start to tracking v1.1 ideas. 16:49:50 kgriffs: +2 16:50:11 sure, let me just give a quick background on these and we can start thinking about which ones we want to do and stuff 16:50:12 There's a session where we'll be reviewing them, isn't there? 16:50:16 or something like that 16:51:04 kind of 16:51:22 i think we want to pull in a few things for a v1.1 api bump in icehouse 16:51:27 # link http://icehousedesignsummit.sched.org/event/72e05db820e4e7ca8eebf19a1260de64 16:51:29 #link http://icehousedesignsummit.sched.org/event/72e05db820e4e7ca8eebf19a1260de64 16:51:57 but, we will need to do an unconference or something before then to get it down to a small list of proposed API changes 16:52:13 totally! 16:52:19 ok 16:52:25 We should review them all together and then go to the session 16:52:30 +1 16:52:33 so, real quick 16:52:38 shoot 16:52:45 auto-gen client UUID if not given 16:53:10 this was proposed by a user who said it would be nice to have in two cases 16:53:29 first, when doing simple job queueing with marconi, in which case client ID isn't really needed 16:53:47 oh 16:53:55 second, when client isn't using a queue as a duplex pipe 16:54:23 that being said, I think always having client-uuid could help surface interesting stats 16:54:29 what does 2 mean? 16:54:39 and also could be logged to facilitate ops/support for users 16:55:13 2 means, i could just have a "send" queue and a separate "receive" queue and then I wouldn't have the message echo problem 16:55:20 mmhh 16:55:34 I'd expect people to use library clients 16:55:38 IMO, however, having echo cancellation can really simplify system architecture 16:55:44 and the library could generate the uuid 16:55:50 yep 16:55:56 ok, not a lot of time... 16:55:58 moving on 16:56:01 actually 16:56:18 so, next item is related, so I will skip 16:56:18 what if we take 30mins everyday this week to discuss these itesm 16:56:23 or something like that? 16:56:36 next item someone said it was a pain for them to make a UUID but I think they were just using curl or something 16:56:53 and they couldn't give me a good example of an alternative ID a client might want to use 16:56:53 flaper87: +1 16:56:55 I think we would benefit of several really small meetings this week. 16:57:02 flaper87: sounds good 16:57:05 lots to do 16:57:05 haha, +1 16:57:08 I'm in favor of small meetings on this subject. 16:57:11 so, 11 each day? 16:57:19 11 EDT ? 16:57:20 Also, same goes for BPs triaging. 16:57:21 sorry 16:57:23 1600 UTC 16:57:31 sounds good! 16:57:35 woot 16:57:39 but in #openstack-marconi 16:57:43 yup 16:57:44 11EDT works wonderfully for me. 16:57:47 kk 16:58:00 alcabrera: I think it is actually 12 your time 16:58:00 Open discussion ? 16:58:01 ok 16:58:21 https://duckduckgo.com/?q=1600+utc+in+edt 16:58:34 kgriffs: still works. :D 16:58:35 #topic open discussion 16:58:39 o/ 16:58:51 zyuan: you wanted to bring up msgpack? 16:58:57 yes 16:59:04 zyuan: you go 16:59:11 mine is just a small comment 16:59:12 not sure how deep though 16:59:28 (i mean, not sure wehther need to change falcon) 17:01:10 zyuan: error message responses - I have been meaning to make those hookable, so apps can customize the response 17:01:21 kgriffs: exactly... 17:01:41 that's what i mean "how deep" 17:01:42 i'll think about this 17:01:50 but anyway, I guess we need to balance working on that with other stuff. I think msgpack support could be a potential for v1.1 API 17:02:15 perhaps once we add support for zmq as well 17:02:23 but, let's make sure we have sharding and high-priority bugs covered first 17:02:40 msgpack does not break 1.0 API, afaics 17:03:06 zyuan: agreed! 17:03:14 zyuan: we could decide to sneak it it but not document it until 1.1 17:03:26 client maintainers just want to feel like the API is stable 17:03:31 +0.8 17:03:42 +1 17:03:43 i think this could also be a good POC for extensions 17:03:53 yea 17:03:59 on bugs... 17:04:18 continue on openstack-marconi? 17:04:23 mmm 17:04:29 just one small comment before we wrap up 17:04:30 I just realized I need to run 17:04:46 flaper87: shoot 17:05:13 as you know next week is the Summit and we'll attend and present our very super cool and young API v1, perhaps with some parts of the client working 17:05:23 now, we need to impress people a bit 17:05:47 so, if you guys have ideas, thoughts or things we could bring up 17:05:59 for an un-conference, sprint or whatever and get more people interested 17:06:26 please, lets work on that 17:06:36 flaper87: +1 17:06:46 it's a great opportunity to make our team bigger 17:06:51 +! 17:06:54 +1 17:06:58 agreed. Let's make our summit efforts spetacular! 17:07:10 * flaper87 STFU now! 17:07:14 generally, kudos to flaper87 for his work in building the marconi community 17:07:37 * flaper87 blushes 17:07:51 i like the sprint idea 17:07:59 that will help too, and give us a chance to pass out poptarts 17:08:09 kgriffs: awesome, I was thinking some time on Wednesday or Thursday 17:08:16 we can also just invite people to come hang out and ask questions, give feedback 17:08:24 to make people curious and help them think on new ideas to bring up during the sessions 17:08:41 maybe we just grab an unconference slot for Q&A or something 17:08:49 ah, that 17:08:52 what you said. :D 17:09:00 hmmm. We need t-shirts 17:09:02 announce an o'reilly book: Marconi Up and Running. ;) 17:09:07 hehehe 17:09:08 LOL 17:09:08 kgriffs: LOL 17:09:20 hmmm. we need a logo 17:09:26 +1 t-shirts 17:09:32 +1 t-shirts - also, I want one. 17:09:42 #action kgriffs to see about t-shirts 17:09:46 yes 17:09:58 ok, any last words before we end the mtg? 17:10:03 #info Marconi needs a logo and t-shirts 17:10:05 bye-bye 17:10:11 o/ 17:10:18 Liv3 long, anD Pr0$P3R 17:10:22 #endmeeting