Friday, 2014-07-11

*** malini has joined #openstack-marconi00:18
*** rossk has quit IRC00:33
*** prashanthr_ has quit IRC00:39
*** prashanthr_ has joined #openstack-marconi00:42
*** prashanthr_ has quit IRC00:50
*** prashanthr_ has joined #openstack-marconi00:52
*** keith_newstadt has quit IRC01:01
*** keith_newstadt has joined #openstack-marconi01:01
*** malini has left #openstack-marconi01:06
*** flwang_ has joined #openstack-marconi01:19
*** flwang_ has quit IRC01:23
*** ametts has quit IRC01:27
*** vkmc has quit IRC01:27
*** rwsu has quit IRC01:27
*** rektide has quit IRC01:27
*** pquerna has quit IRC01:27
*** haomaiw__ has quit IRC01:27
*** keith_newstadt has quit IRC01:27
*** jraim has quit IRC01:27
*** ciypro|afk has quit IRC01:27
*** jay-atl has quit IRC01:27
*** openstackgerrit has quit IRC01:27
*** ekarlso has quit IRC01:27
*** boris-42 has quit IRC01:27
*** reed has quit IRC01:27
*** dmitryme has quit IRC01:27
*** whenry has quit IRC01:27
*** malini|afk has quit IRC01:27
*** peoplemerge has quit IRC01:27
*** AAzza_afk has quit IRC01:27
*** tmu_ has quit IRC01:27
*** sebasmagri has quit IRC01:27
*** fifieldt has quit IRC01:27
*** prashanthr_ has quit IRC01:27
*** Ephur has quit IRC01:27
*** megan_w has quit IRC01:27
*** wpf has quit IRC01:27
*** kgriffs|afk has quit IRC01:27
*** VeggieMeat has quit IRC01:27
*** lvh has quit IRC01:27
*** alcabrera|afk has quit IRC01:27
*** flaper87|afk has quit IRC01:27
*** ChanServ has quit IRC01:27
*** rektide has joined #openstack-marconi01:30
*** pquerna has joined #openstack-marconi01:30
*** rektide has quit IRC01:33
*** nosnos has joined #openstack-marconi01:45
*** fifieldt has joined #openstack-marconi01:58
*** kgriffs|afk has joined #openstack-marconi01:58
*** wpf has joined #openstack-marconi01:58
*** megan_w has joined #openstack-marconi01:58
*** Ephur has joined #openstack-marconi01:58
*** prashanthr_ has joined #openstack-marconi01:58
*** flaper87|afk has joined #openstack-marconi01:58
*** alcabrera|afk has joined #openstack-marconi01:58
*** lvh has joined #openstack-marconi01:58
*** VeggieMeat has joined #openstack-marconi01:58
*** ciypro|afk has joined #openstack-marconi01:58
*** jraim has joined #openstack-marconi01:58
*** ekarlso has joined #openstack-marconi01:58
*** openstackgerrit has joined #openstack-marconi01:58
*** jay-atl has joined #openstack-marconi01:58
*** rektide has joined #openstack-marconi01:58
*** haomaiw__ has joined #openstack-marconi01:58
*** dickson.freenode.net sets mode: +oo kgriffs|afk flaper87|afk01:58
*** haomaiw__ has quit IRC01:58
*** haomaiwa_ has joined #openstack-marconi01:59
*** ametts has joined #openstack-marconi02:04
*** reed has joined #openstack-marconi02:05
*** dmitryme has joined #openstack-marconi02:05
*** whenry has joined #openstack-marconi02:05
*** malini|afk has joined #openstack-marconi02:05
*** peoplemerge has joined #openstack-marconi02:05
*** AAzza_afk has joined #openstack-marconi02:05
*** tmu_ has joined #openstack-marconi02:05
*** sebasmagri has joined #openstack-marconi02:05
*** vkmc has joined #openstack-marconi02:06
*** rwsu has joined #openstack-marconi02:08
*** ChanServ has joined #openstack-marconi02:20
*** dickson.freenode.net sets mode: +o ChanServ02:20
*** oz_akan has joined #openstack-marconi02:20
*** haomaiw__ has joined #openstack-marconi02:35
openstackgerritMalini Kamalambal proposed a change to openstack/marconi: Implement POP in v1.1 API  https://review.openstack.org/9020202:37
*** haomaiwa_ has quit IRC02:38
*** alcabrera|afk is now known as alcabrera02:48
*** boris-42 has joined #openstack-marconi02:49
*** flwang_ has joined #openstack-marconi03:20
*** flwang_ has quit IRC03:24
*** boris-42 has quit IRC03:38
*** keith_newstadt has joined #openstack-marconi03:42
*** boris-42 has joined #openstack-marconi03:42
*** nosnos has quit IRC03:43
*** haomaiw__ has quit IRC03:47
*** keith_newstadt has quit IRC03:47
*** haomaiwang has joined #openstack-marconi03:47
*** keith_newstadt has joined #openstack-marconi03:48
*** chandankumar has joined #openstack-marconi03:50
*** whenry has quit IRC03:59
*** nosnos has joined #openstack-marconi04:09
*** whenry has joined #openstack-marconi04:11
*** haomai___ has joined #openstack-marconi04:12
*** alcabrera is now known as alcabrera|afk04:14
*** haomaiwang has quit IRC04:14
*** chandankumar has quit IRC04:48
*** keith_newstadt has quit IRC04:54
vkmcflwang, hey!04:56
*** mkoderer has joined #openstack-marconi04:58
*** chandankumar has joined #openstack-marconi05:01
vkmcnext meeting is at 21UTC, just in case you didn't see it :)05:01
*** whenry has quit IRC05:17
*** k4n0 has joined #openstack-marconi05:17
*** oz_akan has quit IRC05:26
openstackgerritVictoria Martínez de la Cruz proposed a change to openstack/marconi: Drop pylint due to the huge amount of false positives  https://review.openstack.org/10627205:30
flwangvkmc: got it, thanks05:30
flwangvkmc: btw, IIRC, you asked some questions to me, but I was busy. can I help you now?05:31
vkmcflwang, fortunately I could figure it out05:32
flwangvkmc: awesome05:32
vkmcflwang, thanks!05:32
flwangsorry I wish I can help you05:32
vkmcflwang, oh it's ok! you always help me when you have some time :)05:34
flwanghehe, glad to know that, let's rock on :)05:35
flwangrecently, I was busy to work on an internal billing system05:35
flwangand the code is not very good, sigh05:36
openstackgerritVictoria Martínez de la Cruz proposed a change to openstack/marconi: Drop pylint due to the huge amount of false positives  https://review.openstack.org/10627205:36
vkmcboo05:36
vkmclegacy code?05:36
flwangnot really, you know, there is no official billing system for openstack, so we have to do home-cooking05:37
vkmcyeah.. it's not a trivial system05:37
flwangbut the original author is not really a python guy and not familiar with OpenStack, so...05:38
vkmcdo you know what happened with billingstack?05:38
flwangvkmc: AFAIK, there is no progress05:38
flwanghttps://github.com/billingstack05:39
vkmcah well, that's a bummer05:39
flwanghttps://github.com/stacksherpa/billingstack05:39
flwangthe last commit was 2 years ago05:39
vkmcyeah it looks quiet05:39
flwangso maybe I need to create a new wheel :)05:40
vkmcit looks like it... hope you have some other devs with you05:41
*** prashanthr_ has quit IRC05:41
flwangmaybe, but seems community are not really interested in billing05:41
flwangthough there is a real strong requirement from a customer perspective05:42
*** prashanthr_ has joined #openstack-marconi05:42
vkmcflwang, yeah it's understandable... billing is not that opensource05:47
vkmcbut if it's a need, then we should cover it05:47
vkmcsomehow05:47
flwangoperating system can be opensourced, why not a billing system? :D05:48
flwangi'm kidding05:48
vkmchaha05:48
vkmcfree doesn't mean it doesn't cost money!05:49
flwangobviously, a billing system should be a plugable, consumer can define their own billing strategy05:49
flwangjust think alound :)05:49
flwang/alound/aloud05:49
vkmcyeah, most of the cloud services I tested charge you by data transfer, compute hours and standard io05:54
vkmcan equation that kills your pocket :')05:54
vkmcbut you have a shiny vm somewhere over the cloud05:55
vkmcI recently get a free subscription to Azure to test some AMQP related stuff... it costs $900 per month05:56
vkmcits crazy05:57
vkmcflaper87|afk, test it before they charge me ^^ lol05:57
vkmcwell, I'm heading off for the day o/05:59
vkmcttfn!05:59
*** vkmc has quit IRC05:59
*** nosnos has quit IRC06:08
*** reed has quit IRC06:24
*** flaper87|afk is now known as flaper8707:13
flaper87flwang: yo!07:14
flaper87flwang: I really hope you're having a great time there because I miss talking to you and it's all your fault >.>07:15
*** flwang_ has joined #openstack-marconi07:21
*** flwang_ has quit IRC07:26
*** oz_akan_ has joined #openstack-marconi07:28
*** oz_akan_ has quit IRC07:33
*** openstack has joined #openstack-marconi07:42
*** mkoderer has quit IRC07:52
*** mkoderer has joined #openstack-marconi08:19
*** oz_akan_ has joined #openstack-marconi08:29
*** oz_akan_ has quit IRC08:33
*** oz_akan_ has joined #openstack-marconi09:00
*** oz_akan_ has quit IRC09:05
*** haomai___ has quit IRC09:24
*** haomaiwang has joined #openstack-marconi09:24
*** flwang_ has joined #openstack-marconi09:39
*** AAzza_afk is now known as AAzza09:43
*** prashanthr_ has quit IRC09:57
*** denis_makogon has joined #openstack-marconi09:57
*** oz_akan_ has joined #openstack-marconi10:01
*** oz_akan_ has quit IRC10:05
*** AAzza is now known as AAzza_afk10:25
*** ajayaa has joined #openstack-marconi10:27
*** oz_akan_ has joined #openstack-marconi11:02
*** oz_akan_ has quit IRC11:06
*** openstackgerrit has quit IRC11:16
*** openstackgerrit has joined #openstack-marconi11:18
*** tedross has joined #openstack-marconi11:21
*** keith_newstadt has joined #openstack-marconi11:45
*** keith_newstadt has quit IRC11:49
*** keith_newstadt has joined #openstack-marconi11:50
*** flwang_ has quit IRC11:54
*** keith_newstadt has quit IRC11:57
openstackgerritFlavio Percoco proposed a change to openstack/marconi: Add flavors support to mongodb  https://review.openstack.org/9879311:59
openstackgerritFlavio Percoco proposed a change to openstack/marconi: Add API support for flavors  https://review.openstack.org/10634611:59
*** k4n0 has quit IRC12:00
*** vkmc has joined #openstack-marconi12:12
vkmchi all!12:16
flaper87GO GO GO Germany12:18
flaper87ops12:18
flaper87:P12:18
flaper87vkmc: gooood morning :)12:18
* vkmc pulls flaper87's chair12:19
* flaper87 falls and hears vkmc's evil laugh12:20
vkmcmueehehehe12:20
vkmcmorning flaper87 :)12:20
*** haomaiw__ has joined #openstack-marconi12:35
*** haomaiwang has quit IRC12:37
*** sriram has joined #openstack-marconi12:45
*** mpanetta has joined #openstack-marconi12:59
*** AAzza_afk is now known as AAzza13:00
*** oz_akan_ has joined #openstack-marconi13:02
*** ajayaa has quit IRC13:15
*** oz_akan_ has quit IRC13:18
*** mwagner_lap has joined #openstack-marconi13:18
*** mwagner_lap is now known as mwagner_rdu13:19
*** whenry has joined #openstack-marconi13:19
*** ajayaa has joined #openstack-marconi13:28
*** Obulpathi has joined #openstack-marconi13:35
*** Obulpathi has quit IRC13:46
*** Obulpathi has joined #openstack-marconi13:47
*** oz_akan_ has joined #openstack-marconi13:50
*** AAzza is now known as AAzza_afk13:57
*** amitgandhi has joined #openstack-marconi14:00
*** malini has joined #openstack-marconi14:01
*** ametts has quit IRC14:02
*** ametts has joined #openstack-marconi14:15
*** kgriffs|afk is now known as kgriffs14:26
*** Hao has joined #openstack-marconi14:26
*** mwagner_rdu has quit IRC14:26
flaper87kgriffs: good morning14:31
flaper87kgriffs: lemme know when you've a min to discuss flavors14:31
flaper87got a couple of things I'd like to share and brainstorm on14:32
flaper87vkmc: malini ^14:32
*** alcabrera|afk is now known as alcabrera14:32
malinio/14:32
maliniI was just reading through https://wiki.openstack.org/wiki/Marconi/specs/api/v1.1#List_Messages14:33
malini"limit specifies up to 20 messages (configurable) to return. If not specified, limit defaults to 10."14:33
maliniThis sounds wrong..14:33
maliniShouldn't we default to max_messages_per_page?14:33
*** ajayaa has quit IRC14:34
malini(which happens to be 20)14:34
flaper87malini: yup, that's wrong14:34
vkmco/14:34
maliniflaper87: I am going to update tht, ok?14:34
flaper87malini: perfect, thanks14:34
kgriffsmalini: better check the code and submit a patch too. :D14:35
malinikgriffs: tht's what I was going to do14:35
kgriffsexcellent14:35
malinimy POP test is failing because of this14:35
maliniSo I'll need this fixed to get through14:35
*** alcabrera is now known as alcabrera|afk14:37
kgriffsflaper87: re flavors, what's up?14:37
flaper87Next step is to make the storage data API aware of flavors. That means, when creating a queue allow people to select a flavor and more importantly make the storage API use that flavor.14:38
flaper87the thing is we don't know what flavor the data should be stored in until we get to the storage layer14:39
flaper87(as it's planned right now)14:39
flaper87This is wrong in many ways. The worst part is that in order to post a message to the right store, we need to get the flavor for the queue14:40
flaper87but without knowing where the queue was created - having the flavor, that is - we can't get the queue14:40
flaper87this had me thinking that maybe queues are more part of the control API than they are of the data API14:41
flaper87If we think about queues, when are they actually used?14:41
flaper87As it is now (after the lazy queue's patch landed) they're basically never used14:41
flaper87The, perhaps crazy, proposal is to move queues away from the data API to the control API. This means that whatever store being used to keep pools will be used for queues as well14:42
flaper87another approach would be to not store flavors in the queues14:42
*** Hao has quit IRC14:42
flaper87I probably like the second better, although both proposals bring me back to the "Why are we keeping queues around?" question14:43
flaper87kgriffs: malini vkmc ^14:43
kgriffsgreat thoughts14:43
kgriffsif only we had a whiteboard handy at the moment. :p14:44
flaper87LOL14:44
flaper87indeed, I drew crazy things on mine that I don't understand anymore14:44
* malini reading..I am little slow today14:44
* flaper87 gives malini a redbull14:45
kgriffslet me think out loud for a bit14:45
flaper87kgriffs: sure thing14:45
vkmcI assume that it's possible to have more than one queue with the same flavor14:45
flaper87but just you, I want malini's answer NOW!14:45
kgriffsrhetorical question: what *is* a queue?14:45
flaper87vkmc: correct14:45
vkmcso, apart from the flavor, a queue has other important attributes (or should have)14:45
kgriffsfirst, it is an orginizational concept. A way to group related messages together14:46
flaper87My favorite way to describe queue's so far is: "A way to group messages under the same box"14:46
flaper87>.>14:46
vkmcso we are keeping queues in order to classify messages and make it easy for clients to find what they are looking for14:46
kgriffssecond, it is a way to associate common attributes with those messages14:46
kgriffsbasically, a way to group them for querying, and also for DRYing up common attributes14:47
flaper87vkmc: re queue having other important attributes: It could, yes. We just don't have that use case yet.14:47
vkmccool14:47
flaper87flavors seemed to be the first one14:47
vkmcwhat about specifying a queue as a message attribute?14:48
vkmc(this is the topics idea once again)14:48
flaper87right14:48
kgriffsfor example, a Barbican key ID to use to sign the messages14:48
kgriffsor whatever14:48
flaper87kgriffs: +114:48
kgriffsdefault TTL, things like that14:48
kgriffsnow, does it make sense to also have a flavor there?14:48
kgriffsotherwise, you have to specify the flavor for each message14:49
flaper87I pretty much see queues for messages as I see heat templates for infrastructure14:49
flaper87the described how the distribution of message should look like14:49
kgriffsand now I have a problem if I want to query a set of related messages, because I have to check all the flavors unless there is something grouping them together14:49
kgriffslike...14:49
kgriffsa "queue14:49
*** tedross has quit IRC14:49
flaper87but per-message flavors imply that you can use more flavors for 1 queue14:50
flaper87which is not what we want14:50
maliniwe also had someone mention using queues to RBAC etc. in the summit14:50
flaper87and we loose FIFO14:50
flaper87malini: right, I had forgotten14:50
flaper87s/the described/they describe/14:50
kgriffsyeah. I think it is unnecessary complexity. When people ask for sliders on durability vs. performance, for example, they are thinking in coarse-grained terms afaict14:51
kgriffsQ.E.D. It makes sense to use queues to group messages, and that is a natural place to store the flavor ID14:52
kgriffsnext point14:52
kgriffsshould a queue be in the control plane or data plane?14:52
kgriffsI posit that it should be in the control plane14:53
vkmcI think that the control plane fits better our queue concept14:53
kgriffswith the caveat that you will also need to have the queue name as part of each message record in the data plane, so you can associate the two record types14:53
* flaper87 can't stop thinking about this title for the current kgriffs messages: "Come and join us on a trip into how kgriffs brain works"14:53
kgriffs:D14:54
* kgriffs could do even better if he had a whiteboard to draw on14:54
kgriffslet's see how this might work14:54
kgriffs1. message is posted to the server14:54
malinithe whiteboard thing shud be our next project14:55
flaper87So, I put some thoughts on what would happen if queues were in the control plane14:55
flaper87but lets go through kgriffs thoughts first14:55
kgriffs2. server looks up queue record in cache, if not in cache gets from control driver and caches for next time14:55
kgriffs3. server looks up flavor from queue record which tells it which data driver instance to use to store the message14:56
kgriffs4. server may also look up default TTL or whatever (TBD, maybe in a future API version)14:57
kgriffs5. server uses info to store message14:57
kgriffs(meanwhile, in the lower-east side of Manhattan)14:57
flaper87ROFL14:57
kgriffs1. client lists messages, sending a specific queue name to the server14:58
kgriffs2. server looks up queue record as before14:58
kgriffs3. server uses flavor ID in queue record to figure out which storage driver to use. Also takes into consideration which pool to query.14:59
kgriffshmmm15:00
flaper87exactly, 1 thing there15:00
kgriffsactually, I guess the server just needs to know which pool the queue belongs to15:00
flaper87flavors imply that pools are enabled15:00
kgriffsyeah.15:00
flaper87if pools are not enabled then flavors can't be used15:00
kgriffslet me try again15:01
* kgriffs scratches out previous #315:01
flaper87but we'll still need to go through the control API to get the queue's info for other things, say barbican15:01
* flaper87 invents a new command: #undo #315:01
flaper87:P15:01
kgriffs#undo #215:01
kgriffshmmm15:02
kgriffs2. server looks up queue record as before, but only if it needs queue metadata (the pool can be looked up simply by queue name, not needing the full queue record)15:02
kgriffs3. server uses pool info to figure out which storage driver to query for messages15:03
kgriffs4. server queries appropriate storage driver and returns the results to the client15:03
kgriffsfin.15:03
kgriffssomething like that, anyway.15:03
flaper87yeah, that sounds about right to me15:03
kgriffswait a minute15:05
*** cpallares has joined #openstack-marconi15:05
* flaper87 waits a min15:05
kgriffswhen a queue is created, I think the server would assign it's pool at that moment15:05
kgriffsso for an incoming message15:06
kgriffsthings would happen as they do now15:06
kgriffsthe server looks up the assigned pool for the queue name specified in the POST15:06
flaper87it also depends on the flavor, though.15:06
flaper87oh shit15:06
kgriffsyes15:06
flaper87what happens if there's a pool assigned to a queue and then the queue gets created with a flavor that points to another pool ?15:07
kgriffsso, when a queue is created, the server would say "what flavor is this?" and then pick from a subset of the pools one that supports that flavor15:07
flaper87and here comes another crazy thought, sit tight15:07
kgriffswait, how would a queue get reassigned a different flavor?15:08
flaper87you mean pool ?15:08
kgriffsI was thinking that the flavor and pool is determined when the queue is first created, but does not change after that... except when the operator wants to rebalance queues behind the scenes.15:08
flaper87yeah but what happens if:15:09
flaper871. create flavor A that points to store A15:09
kgriffsI guess I view flavor as just being a filter on the set of pool15:09
flaper872. assign pool B to queue Q15:09
flaper873. Create queue Q w/ flavor A15:10
flaper87which pool should we pick ?15:10
flaper87another way to do this is to re-think pool catalogs15:10
flaper87can we make those catalogs flavors ?15:10
kgriffswait, help me understand15:10
kgriffshow do you assign pool B to queue Q before it is created?15:10
* flaper87 is giving kgriffs things to think over the weekend so he doesn't get bored15:11
* kgriffs chuckles15:11
flaper87to assign a pool you don't need to create the queue15:11
flaper87AFAIK15:11
*** whenry has quit IRC15:11
* flaper87 checks the code15:11
kgriffsWAH?15:12
flaper87kgriffs: https://github.com/openstack/marconi/blob/master/marconi/queues/storage/base.py#L50315:12
flaper87mmh, wait, so, basically the catalog is what I want to do w/ flavors15:13
flaper87something's fishy here15:13
kgriffsihttps://github.com/openstack/marconi/blob/master/marconi/queues/storage/pooling.py#L16815:14
kgriffshttps://github.com/openstack/marconi/blob/master/marconi/queues/storage/pooling.py#L16815:14
*** chandankumar has quit IRC15:15
*** reed has joined #openstack-marconi15:16
flaper87kgriffs: oh mmh15:17
flaper87you're right15:17
kgriffs<phew>15:18
flaper87would it be fair to say that whenever a queue is created with a flavor, it'd be enough to create a new catalog pointing to that pool15:18
flaper87?15:18
flaper87I think there's an overlap between catalog and flavors15:18
flaper87kgriffs: ^15:21
kgriffsI think the flavor determines a subset of  the pools in the catalog to choose. So, the catalog needs to be updated to store a flavor ID with each pool record. Then when registering a queue, only those pools supporting the requested flavor would be listed.15:22
kgriffshttps://github.com/openstack/marconi/blob/master/marconi/queues/storage/pooling.py#L39715:22
kgriffse.g.15:22
kgriffsself._pools_ctrl.list(limit=0, flavor=X)15:22
kgriffsanyway, that's they way I was thinking of it15:23
* kgriffs goes off to draw some pictures15:23
*** whenry has joined #openstack-marconi15:25
flaper87ah damn, right. I had forgotten the flavor has a pool not a URI15:25
flaper87ok, nvm. all clear now15:26
flaper87create queue->get flavor->select store from pool->register catalog15:26
flaper87does that sound right?15:26
flaper87we still need to move queues to the control API, though15:26
kgriffsyeah, sounds about right15:27
kgriffs1. create queue15:28
kgriffs2. use flavor from create queue call to filter list of pools15:28
kgriffs3. pick from resulting list using weighted algorithm15:28
kgriffs4. register mapping between queue and pool in the catalog15:29
kgriffstwo things15:29
kgriffsfirst is the question of moving queues to the control API15:29
kgriffssecond is how to handle lazy queue creation15:29
kgriffslatter one first15:29
kgriffsseems like we need to have a way to define a "default" flavor per project15:30
kgriffswhat do you think about that?15:30
malinikgriffs: '"default" flavor per project —> does tht imply projects cannot have more than one flavor?15:30
kgriffsno, just that this is the flavor to use when automatically creating a queue if it doesn't already exist (when a message is first posted with that queue name)15:31
flaper87mmh, I thought about using the store defined in the config as the default one15:32
kgriffsor, when the client does not specify a flavor when it explicitly creates the queue (we can allow that to be optional)15:32
kgriffsflaper87: I think that is the first step15:32
flaper87actually, that's probably a bad idea15:32
kgriffsthen we can decide whether to allow the user to override it15:32
kgriffsI mean, we don't have a "create project" call15:32
kgriffsso we have to have a default for the default if you know what I mean.15:33
flaper87because then we need to have 2 options: 1 to have the default store for the control API and one for the data api15:33
flaper87here's a thing, for the sake of making things more complex but consistent:15:33
flaper87What if we move to just use pools15:33
flaper87this means, the store defined in the config is the one used for the control API. Then admins are required to create a default pool to use15:34
flaper87if no flavor is passed along with the queue, then the default pool will be used15:35
flaper87no need to create a default flavor15:35
*** AAzza_afk is now known as AAzza15:36
* flaper87 is full of crazy and radical thoughts today15:36
kgriffsjust to clarify, are you saying to do away with the separate concept of a flavor?15:36
flaper87Nope, I'm proposing this:15:36
flaper871. Get rid of the non-pooled way to deploy marconi15:36
flaper872. Have a default pool15:37
flaper873. Use the default pool when a queue is created w/o flavor15:37
flaper87this probably makes deploying marconi a bit more complex but consistent15:37
kgriffshmmm15:38
kgriffsso, first off, I like the idea of saying "there are always pools" and for small deployments you just have a single pool in your catalog15:39
flaper87right15:39
kgriffscons are perhaps a little performance degradation because I have to look up the pool for the queue for each operation15:40
kgriffswe can mitigate that with caching and do some profiling to tune the code15:40
kgriffsother con is that, as you say, setup is now a little more complicated.15:40
flaper87the first point concerns me more than the second one15:41
kgriffsI think we will need to get pretty sophisticated with our caching15:41
kgriffsto minimize the cost of the extra lookup, we need a tiered caching system15:42
kgriffsso that most lookups happen from local RAM15:42
kgriffsanyway, something to think more on another time15:42
flaper87agreed15:43
kgriffsIdeally, we could find a way to have shared RAM between processes. uwsgi supports this but we can't be tightly coupled to uwsgi15:43
flaper87now, regardless on whether we go "always pooled" or not, the things to do on the queues and flavors side won't change15:43
flaper87I'd like to reach a consensus here and decide what to do with flavors, queues and where queues should live15:44
kgriffslet me just touch on one more thing regarding defaults, then we can talk about where queues live15:44
kgriffsI think the first, simplest thing to do is have a way for the administrator to designate a default flavor for all projects that will be used when a queue is created lazily15:45
kgriffswe can decide later whether to allow the user to customize that default per-project15:46
kgriffsdoes that make sense?15:46
flaper87yup, it does15:46
kgriffsok15:46
* kgriffs is starting to wonder if we will need a v1.2 API to add in per-project and per-queue defaults15:47
kgriffsok, so let's move on to the control plane thing15:47
kgriffsfirst, I want to ask something15:47
kgriffss/ask/clarify15:48
kgriffshttps://blueprints.launchpad.net/marconi/+spec/split-storage-drivers15:48
kgriffsif we split the drivers, then is pooling only applicable to message store, not control plane?15:48
flaper87correct15:49
kgriffsok15:49
kgriffsthe fact that we can use caching in the control plane means that I don't think we need to scale out nearly as much as the message store15:50
kgriffsok, next thought15:50
kgriffsI think it makes sense to store the queue records in the data plane storage15:50
kgriffsbut...15:51
kgriffs(and this is a bit of a paradox)15:51
kgriffsfrom the user's perspective, they control the queue creation, not the administrator15:51
kgriffsso, it seems like we have three parts of our API now15:51
kgriffs1. data plane, controlled by the user15:51
kgriffs2. control plane subset A, controlled by the user (queue management)15:52
kgriffs3. control plane subset B, controlled by the cloud operator (pools, health, flavor catalog, etc.)15:52
flaper87But the API should remain the same, IMHO. What should change is the way we do things under-the-hood15:53
kgriffsthat was sort of what I was thinking too15:53
kgriffswe have a "user" portion of the API which contains data plane and control pane endpoints (but the user doesn't really care which is which)15:54
kgriffs(and each element is implemented by a corresponding driver)15:54
kgriffsand we have an "admin" portion of the API that the user doesn't see/care about15:54
kgriffs(and that is also protected through access controls)15:55
flaper87right15:55
kgriffsthen, we move queue records to be stored in the control plane driver15:55
flaper87one thing that worries me (even with a fancy caching system) is that we'll be storing lots of queues in the control database15:55
*** flwang_ has joined #openstack-marconi15:56
flaper87I'm not sure how many folks will use non-default flavors for queues but we have to cover the case where there are millions of those records15:56
kgriffssuppose an operator used maria for control and mongo for data15:56
flaper87that's exactly my concern15:56
kgriffshmm15:58
flaper87supossely, the store used for the data plane, it's the fastest and most scalable one15:59
flaper87the control plan store is suppose to keep things controlled by the admin15:59
flaper87which means the growth can be monitored15:59
flaper87and controlled15:59
kgriffsgood point16:00
kgriffslet's see16:01
flaper87supposedly*16:01
*** flwang_ has quit IRC16:01
kgriffswhat constitutes the control plane16:01
kgriffs1. list of pools16:01
kgriffs2. list of flavors16:01
kgriffs3. mapping between pools and queues16:01
kgriffs4. list of queues16:01
*** chandankumar has joined #openstack-marconi16:03
* flaper87 thinking16:04
flaper87sounds right16:04
* flaper87 guesses kgriffs is drawing rainbows on the whiteboard16:10
malini:D16:10
flaper87my concern is that I don't think we should go out there and say: "You need 2 super scalable databases to deploy marconi"16:10
flaper87I think it'd be very common to use the same db for both control and data plans16:11
flaper87planes16:11
kgriffssorry about that. stupid wifi16:12
kgriffsflaper87: so, it seems we already have this issue - see #316:13
kgriffs#3 and #4 could get really big16:13
flaper87yeah16:15
* flaper87 is thinking16:20
kgriffsmysql can scale reads pretty easily by having read-only slaves16:24
kgriffsto scale writes, we would have to recommend people either scale up their boxes or use something like mongo that has sharding16:25
flaper87I was more worried about scaling space and replications and stuff16:25
kgriffsquestion is, what is the % reads vs. writes?16:25
flaper87I don't expect queues to be created/destroyed that frequent (at least for those using flavors)16:25
flaper87but I should stop assuming shuch things16:26
flaper87we need real data16:26
flaper87Although, I think it'd be very common to use the same db for both control and data planes16:26
kgriffsyeah, probably.16:26
kgriffsI think what we support for the control plane would be a superset of the data plane16:27
kgriffswell, actually, maybe not... depends on if we end up doing brokers and backends at some point16:27
flaper87right16:27
kgriffsanyway, I agree that for the most part it will be easier for the operator to run the same thing, so they will tend to do that16:28
kgriffs(if we give them that option)16:28
flaper87ok16:28
flaper87soooo16:28
flaper87man, lots of things we've agreed on today16:29
* flaper87 needs to write all this down16:29
flaper87anyway, one more time, should we move queues to the control plane ?16:29
kgriffsyes16:29
flaper87ok, lets do that first and then figure out the "always pooled" thing16:30
kgriffswould it be easier to do that before or after splitting the storage drivers16:30
kgriffshttps://blueprints.launchpad.net/marconi/+spec/split-storage-drivers16:30
kgriffssecond question16:31
kgriffsactually, a thought16:31
flaper87oh mmh, probably first since after we'll have to fix imports16:31
flaper87I think16:31
flaper87not sure16:31
flaper87it's probably the same16:31
kgriffsok, feel free to move to j-2 if needed16:31
kgriffsalthough, we only have a couple weeks left. :p16:31
kgriffsalso, do we need a blueprint for having "always-on" pooling ?16:32
flaper87kgriffs: yup, I was going to work on that before I forget16:32
flaper87actually, a spec16:32
flaper87:P16:32
kgriffsbtw, I think we could get away with not adding a queue record unless it does not use the default flavor16:32
kgriffsand we could get away with not mapping queues to pools if there is only one pool defined16:33
flaper87yup, pretty much as it works today16:33
flaper87mmh, well16:33
flaper87what happens if then I add another pool ?16:33
kgriffsoh, good point16:33
kgriffs:p16:33
flaper87:P16:33
kgriffspremature optimization16:34
kgriffslet's just get it working, we can worry about employing some tricks after that16:34
flaper87+!16:34
flaper87+116:34
flaper87can I haz a pop-tart?16:34
openstackgerritNataliia Uvarova proposed a change to openstack/marconi: Make storage/pooling reflect storage/base  https://review.openstack.org/10245716:34
openstackgerritNataliia Uvarova proposed a change to openstack/marconi: Run storage unit tests in pooled context  https://review.openstack.org/10584816:34
flaper87AFAIK, you're the one that just got back from vacations16:35
* kgriffs gives flaper87 a delicious Pop-Tart™16:35
*** AAzza is now known as AAzza_afk16:46
*** amitgandhi has quit IRC16:57
*** amitgandhi has joined #openstack-marconi17:01
openstackgerritMalini Kamalambal proposed a change to openstack/marconi: Implement POP in v1.1 API  https://review.openstack.org/9020217:05
*** kgriffs is now known as kgriffs|afk17:12
*** rossk has joined #openstack-marconi17:21
*** alcabrera|afk is now known as alcabrera17:21
peoplemergevkmc: flwang: you guys were talking about billing, I remember from Atlanta that Redhat released theirs.17:27
*** Obulpathi has quit IRC17:32
*** oz_akan__ has joined #openstack-marconi17:33
peoplemergeg'morning all17:34
* peoplemerge is looking at review 10438517:35
*** malini1 has joined #openstack-marconi17:37
flaper87peoplemerge: goood morning to you too17:38
peoplemergeflaper87: :)17:38
*** malini has quit IRC17:41
*** oz_akan_ has quit IRC17:41
*** mpanetta has quit IRC17:41
*** rektide has quit IRC17:41
*** jay-atl has quit IRC17:41
*** ekarlso has quit IRC17:41
*** jay-atl has joined #openstack-marconi17:42
*** rektide has joined #openstack-marconi17:46
*** ekarlso has joined #openstack-marconi17:48
*** mpanetta has joined #openstack-marconi17:49
openstackgerritDave Thomas proposed a change to openstack/marconi: Updated from global requirements  https://review.openstack.org/10438517:49
*** reed has quit IRC17:52
*** randallburt has joined #openstack-marconi17:52
randallburtexit17:53
randallburtlol17:53
*** randallburt has left #openstack-marconi17:53
peoplemergethat's a simple rebase, could use a extra set of eyes, tho.  We don't have a policy to always merge and not rebase right?17:53
peoplemergehm shoot, another patch landed17:56
flaper87peoplemerge: if the patch is not going to conflict with yours, then that's fine17:56
flaper87gerrit will take care of the rest17:56
flaper87it normally lets you know as soon as one hits +A17:56
peoplemergeI didn't see patchset 3 when I rebased17:57
*** AAzza_afk is now known as AAzza17:58
peoplemergeflaper87: patch 2 couldn't automerge, complaining: 'Please rebase your change and upload...'18:00
* peoplemerge is also slow this morning18:00
flaper87peoplemerge: ah ok18:00
flaper87peoplemerge: btw, we normally leave the requirements thing to the infra bot18:00
flaper87:P18:00
flaper87It's an outsourcing era18:00
peoplemergeflaper87: fancy !18:00
peoplemergeflaper87: so does that mean that this review can be left open indefinitely?18:01
peoplemerge... or at least until j2?18:01
flaper87yup18:01
flaper87and it'll be updated by the bot itself18:02
flaper87once it's updated and tests pass we'll approve it18:02
flaper87if tests keep failing then we dig into why they're failing and fix things18:02
malini1flaper87: https://review.openstack.org/#/c/90202/ review plzzzzz!18:05
* flaper87 clicks18:05
*** Obulpathi has joined #openstack-marconi18:15
*** AAzza is now known as AAzza_afk18:42
*** kgriffs|afk is now known as kgriffs18:45
*** AAzza_afk is now known as AAzza18:54
*** reed has joined #openstack-marconi18:54
*** mwagner_lap has joined #openstack-marconi19:14
*** alcabrera is now known as alcabrera|afk19:18
kgriffsAAzza, malini1, flaper87: seems like pools aren't getting tested, or we would have caught this a long time ago?19:23
kgriffshttps://review.openstack.org/#/c/102457/4/marconi/queues/storage/pooling.py19:23
malini1kgriffs: yes19:24
malini1The tempest failure for tht patch has probably nothing to do with marconi19:25
kgriffsyeah, I was ignoring that tempest failure for the moment19:25
kgriffsi mean, take a look at this19:26
kgriffshttps://github.com/openstack/marconi/blob/master/marconi/tests/queues/storage/base.py#L26319:26
kgriffsseems like if that were calling the pooling message controller python would complain about a TypeError19:27
kgriffshere is MessageController.post (before that patch above)19:27
kgriffsdef post(self, queue, project, messages, client_uuid)19:27
*** malini1 has left #openstack-marconi19:28
kgriffshttps://gist.github.com/anonymous/351ac5ec3c5fa60469e819:30
*** chandankumar has quit IRC19:30
openstackgerritVictoria Martínez de la Cruz proposed a change to openstack/marconi: Drop pylint due to the huge amount of false positives  https://review.openstack.org/10627219:38
kgriffsflaper87: doesn't look like we are testing pooling. I run this19:43
kgriffsMARCONI_TEST_MONGODB=1 tox -e py27 -- test_message_lifecycle19:43
kgriffsand it passes, which it shouldn't based on what I saw above.19:44
kgriffsLooking at https://github.com/openstack/marconi/tree/master/tests/unit/queues/storage19:45
kgriffsdoesn't seem there is a test for a pooled config?19:45
AAzzakgriffs: the some tests were run for pooling, all on transport layer, no for storage itself19:45
kgriffshmmm19:45
AAzzai tried to run them https://review.openstack.org/#/c/105848/19:46
AAzzaand that's how find all this incompatibilites19:46
kgriffsah, that makes sense19:47
kgriffshmmm19:47
kgriffsbut I don't understand how the transport/functional tests were succeeding?19:48
AAzzai gues cause they call controllers with all keyword arguments, not relying on defaults or positions, but better to look in code19:48
kgriffs            message_ids = self.message_controller.post(19:50
kgriffs                queue_name,19:50
kgriffs                messages=messages,19:50
kgriffs                project=project_id,19:50
kgriffs                client_uuid=client_uuid)19:50
kgriffsbingo, you are right19:50
kgriffsAAzza: nice catch!19:51
AAzzakgriffs: thanks)19:55
AAzzait's late, i'm going away to sleep19:56
AAzzagood weekend to all)19:57
kgriffstake care!19:57
*** mkoderer has quit IRC20:02
*** AAzza is now known as AAzza_afk20:05
*** cpallares has quit IRC20:14
*** fifieldt has quit IRC20:15
kgriffsflwang: if you are around, this needs another +2 here: https://review.openstack.org/#/c/102457/20:18
kgriffsflaper87: ^^^20:18
*** jay-atl has quit IRC20:20
openstackgerritA change was merged to openstack/marconi: Updated from global requirements  https://review.openstack.org/10438520:24
openstackgerritA change was merged to openstack/marconi: Primary key for pool in catalogue table is unreasonable  https://review.openstack.org/10564520:24
*** fifieldt has joined #openstack-marconi20:28
*** sriram has quit IRC20:35
peoplemergekgriffs: can you take a quick look at https://review.openstack.org/#/c/105830/21:05
peoplemergereally just https://review.openstack.org/#/c/105830/1/marconi/tests/queues/transport/wsgi/v1_1/test_messages.py,unified21:06
kgriffsyeah, just a sec21:07
peoplemergeIf it's on the right track I'll do the implementation21:07
peoplemergekgriffs: thx21:07
kgriffslooking now...21:12
*** Obulpathi has quit IRC21:15
* peoplemerge 's patch got spanked by pep821:15
kgriffsheh, pep8 tends to do that.21:16
kgriffstakes a little getting used to21:17
*** mpanetta has quit IRC21:17
peoplemergeI also realize my commit message was suboptimal21:18
*** malini has joined #openstack-marconi21:20
*** keith_newstadt has joined #openstack-marconi21:21
*** keith_newstadt has quit IRC21:25
*** amitgand_ has joined #openstack-marconi21:32
*** amitgandhi has quit IRC21:34
peoplemergeI tossed around the idea of putting the packed message in code before deciding not to.21:37
kgriffspeoplemerge: ok, I submitted some inline comments21:45
peoplemergethx, reading...21:45
kgriffsone thing I didn't comment on in gerrit was the overall testing strategy21:45
kgriffsI think there is a more elegant way we could do it21:46
kgriffsbasically, have a base class and define a class variable to toggle whether to use json or msgpack21:46
peoplemergeyou mean the if21:46
peoplemergeah21:46
peoplemergeI was thinking the same thing21:46
kgriffsthen, make the base class setup method call create_marconi_headers with that flag21:47
kgriffsand also helper methods could just use that class variable to switch21:48
peoplemergeor strategy21:48
kgriffsfor example, _test_post could do that instead of making all the callers pass it in21:48
peoplemergeyes21:48
kgriffsthat way, you mostly get msgpack testing for free - just inherit from the base class twice and override the class variable21:49
kgriffsanyway, I just suggest that because it's been used in other marconi tests21:49
kgriffsif you have an even better approach, that's cool too.21:49
peoplemergeI'll do that, I just wanted to get the simplest thing that illustrated the code paths.  Thanks for your comments21:49
kgriffssure thing21:50
openstackgerritOpenStack Proposal Bot proposed a change to openstack/marconi: Updated from global requirements  https://review.openstack.org/10650621:50
*** amitgand_ has quit IRC21:51
kgriffspeoplemerge: btw, little thing I tested21:52
kgriffsmsgpack.packb() is slower than creating Packer once21:53
kgriffsas in, if you call msgpack.packb() N times21:53
kgriffsvs.21:53
kgriffspacker = msgpack.Packer()21:53
kgriffsthen21:53
kgriffspacker.pack() N times21:53
kgriffsthe later is faster21:53
kgriffsmy guess is, msgpack.packb instantiates packer behind the scenes each time, so by factoring that out you get a performance boost21:54
peoplemergeYeah there's probably a lot mor object creation / GC21:54
peoplemergeagreed21:54
kgriffsbtw, let me know what you figure out about needing to set encoding for Unpacker21:55
peoplemergewill do :)21:56
kgriffsseems like I had to do that to get unicode strings that were packed as such to decode back to the unicode type correctly or something21:56
kgriffsbut i may be wrong, so it would be cool if you could look into that21:56
peoplemergekgriffs: I'll check it out21:56
kgriffsmsgpack didn't used to have unicode strings as a first-class type, so when that changed things got sort of ugly21:57
kgriffsadd into that the way python 2 deals with strings vs python 3 and things get rather...interesting. :D21:58
peoplemergeI'll have fun with it :)21:58
kgriffsthanks man21:58
kgriffsI catch you monday21:58
kgriffshave a good weekend!21:58
peoplemergeyou too21:58
kgriffso/21:58
*** flwang_ has joined #openstack-marconi21:59
*** kgriffs is now known as kgriffs|afk21:59
*** malini has quit IRC22:00
*** whenry has quit IRC22:02
*** flwang_ has quit IRC22:04
*** oz_akan__ has quit IRC22:10
*** flwang_ has joined #openstack-marconi22:11
*** whenry has joined #openstack-marconi22:31
*** ametts has quit IRC22:45
*** reed has quit IRC23:02
*** flwang_ has quit IRC23:14
*** whenry has quit IRC23:22

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