15:00:32 #startmeeting manila 15:00:33 Meeting started Thu Apr 27 15:00:32 2017 UTC and is due to finish in 60 minutes. The chair is bswartz. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:00:35 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 15:00:37 The meeting name has been set to 'manila' 15:00:38 hello all 15:00:41 \o 15:00:41 hello o/ 15:00:44 hi 15:00:44 hello o/ 15:00:47 hello 15:00:50 hi 15:00:50 hi 15:00:55 hi 15:01:21 hi o/ 15:01:25 hi 15:01:32 hi 15:02:07 markstur cknight: courtesy ping 15:02:41 #topic announcements 15:03:00 not much from me today 15:03:16 today is the extended deadline for 2 more specs that we gave extensions to last week 15:03:34 we can discuss those more in this meeting (usage monitoring in particular) 15:03:49 vponomaryov had something to share though 15:04:03 yeah 15:04:33 just to notify that I am going to ganso's club of retired people from manila 15:04:44 * tbarron slams his head on the wall 15:04:45 !!! 15:04:46 tommylikehu: Error: "!!" is not a valid command. 15:04:47 O_O 15:04:48 oh 15:04:49 O_O 15:04:58 oh!!! 15:04:59 :((((((((((((((((((((( 15:05:08 since middle of June 15:05:11 :(( 15:05:31 yeah I was very sad to hear this 15:05:33 :( 15:05:49 vponomaryov has been an essential developer for most of the live of the project 15:06:15 vponomaryov, do you stop working for mirantis ? or are you going todo something different there? 15:06:28 toabctl: different 15:06:28 sorry to hear (actually read) that :( 15:07:18 vponomaryov: oh no! 15:07:23 vponomaryov: Best of luck in your future endeavors, man, sorry to hear that 15:07:24 vponomaryov: I can't see how it could possibly be as much fun as manila. 15:07:43 thank you for nice words ) 15:07:47 I hope it has broken gates for you to fix. 15:07:50 vponomaryov: anyone else from Mirantis still work on Manila? 15:08:04 xyang2: don't think so 15:08:05 Would you like to keep working on manila? 15:08:16 zhongjun: yes, would like 15:09:06 for those that don't know, Mirantis's involvement in Manila was part of a partnership between NetApp and mirantis back when we were trying to jumpstart the project with talented developers in 2013 15:09:42 bswartz: so is that partnership over? 15:09:47 bswartz: are you trying to say this is NetApp's fault?:) 15:09:52 mirantis's business has changed over time though 15:10:36 intel and rackspace 15:10:41 I don't know about the partnership, but this particular part of it was ended despite my attempts to continue it 15:10:54 and NetApp probably feels that Manila has been jump started (opinions not endorsed by employer) 15:12:07 and, compared to ganso, I cannot say I will be able to spend time for manila activities 15:12:32 bswartz, gouthamr: will you two continue to work on Manila 15:12:33 because amount of free time is unknown yet 15:12:52 gouthamr: yeah back when we started the project we never really imagined that mirantis would be involved for this long, but it was a terrific partnership 15:13:14 vponomaryov: so, unless something turns up for you to continue to work on manila, we will be 100% short of a core 15:13:15 and whatever happens in the future, we all owe a huge thanks to vponomaryov for what he's done so far 15:13:29 bswartz: +100! 15:13:35 xyang2: would love to :) 15:13:36 +100! 15:13:55 bswartz: +1000 15:13:56 +++++ 15:14:02 vponomaryov: you'll be a tough act to follow... but thanks for teaching us along the way 15:14:15 =) 15:14:33 regarding vponomaryov's status, he'll remain on the core reviewer team and he'll be welcome to participate however he is able to going forward 15:14:54 he's kinda young looking for an emeritus professor 15:15:13 if vponomaryov ends up going a completely different direction and doesn't return, we'll eventually remove him like we did with u_glide 15:15:15 tbarron: +1:) 15:15:15 tbarron: hard childhood )0 15:15:22 thanks vponomaryov for your goooood ideas 15:15:36 bswartz: not only u_glide 15:15:52 =) 15:16:41 anyways vponomaryov is the owner of a number of things, and while we have him for another ~6 weeks, he won't be able to finish everything he owns so many things will need new owners 15:16:57 vponomaryov: well, I will need to find somebody else to argue on the IRC channel now :P 15:17:10 oh, yeah, one additional note, I will be on vacation since 1st of May and till 9th 15:17:28 slacker 15:17:29 so, it is about 5 weeks 15:17:36 vponomaryov: where is your destination 15:18:22 vponomaryov is too smart to answer 15:18:23 tommylikehu: not sure I understand your question 15:18:25 there are some essential items, like the generic driver and zfs drivers which definitely need new owners, and vponomaryov has told me he thinks he can shepherd all the share-group patches until they merge 15:18:37 * vkmc joins the convo late 15:18:40 vponomaryov: your next adventure? 15:18:43 vponomaryov: he's asking if you're traveling anywhere on your vacation 15:18:49 vponomaryov, so sorry to hear that you are moving to some other project :( 15:18:53 bswartz: ) 15:19:43 xyang2, bswartz: vacation is not a journey to somewhere 15:19:49 have lots of local deeds 15:20:04 vponomaryov: in the USA we call that a "staycation" 15:20:15 a vacation where you stay home 15:20:16 vponomaryov: I meant do you know what you will be working on after Manila? 15:20:25 xyang2: not yet 15:20:59 bswartz: then yes, it is staycation ) 15:21:05 okay well that's enough of the sad news, let's move on to the meeting agenda 15:21:13 #agenda https://wiki.openstack.org/wiki/Manila/Meetings 15:21:23 #topic Share usage monitoring 15:21:31 #link https://review.openstack.org/#/c/459150/ 15:22:12 so, I'm embarrassed to say that last week when we discussed usage monitoring, I didn't consider the fact that polling would be involved until I read the updated spec 15:22:29 and I've been thinking all week about any way possible to avoid polling 15:22:46 unfortunately I haven't come up with anything 15:23:09 so we need to recognize that if we want this feature, it has a built in scalability problem 15:23:54 in retrospect, this is why we avoided implementing it in the beginning, because share usage was definitely something we considered at the start of the project in 2013 15:24:36 given where the project is now, I think it's worth doing the feature with monitoring if necessary 15:24:50 but we need to be mindful of the impact of periodic polling 15:25:14 I like the fact that the interval will be admin controlled, so the admin can decide if we wants fast or slow polling 15:25:39 a small deployment might want to gather usage statistics every few minutes, while a large deployment might only do it once a day 15:25:46 or none and just trigger the poll without periodic control in manila 15:26:00 tbarron: what would be the point of that? 15:26:05 tbarron: how 15:26:28 how is on-demand monitoring any better than slow automatic monitoring? 15:26:30 I might want to query in smaller batches spaced out over the day rather than doing all shares on the backend at once\ 15:26:47 tbarron: I thought about that but there's reasons not to 15:26:53 ? 15:27:03 depends on my business I think 15:27:10 consider that for many backends, it may be vastly more efficient to query all the usage information at once 15:27:21 ack, and for some it may not 15:27:22 rather than to ask one at a time 15:27:41 for some I may be running 'du -s' on each share in the batch. 15:27:54 tbarron: I can see it being the same, but how could all at once be worse than one at a time? 15:28:14 the manager will wait less time on each call 15:28:25 bswartz: Why we don't want add periodic task when we need monitor? 15:28:30 the call manager to driver is synchronous 15:28:44 zhongjun: I'm in favor of the periodic task 15:28:57 you could perform the query manually, when needed... 15:29:06 tbarron: as the spec is written, the manager asks the driver for all the shares in a single call 15:29:11 I'm not against it, and she has a way to turn it off. 15:29:30 and I like the current proposal, but I see your objection 15:29:30 it asks for usage for a list of shares, which it supplies, as the spec is written 15:29:51 the problem is that we'd need an entirely different mechanism to do what you propose and space the shares out over the whole dat 15:30:02 tbarron: i presume the list of shares will be gathered for that host.. 15:30:09 the spacing out can be done outside of manila 15:30:30 tbarron: in the multi-share server case, that's kinda helpful 15:30:36 tbarron: okay you're thinking the driver will have it's own magic inside to gather the data incrementally? 15:30:50 If I'm a cloud op, I can query manila for the shares on each backend, then run through that list at whatever granularity I want. 15:31:13 bswartz: I thought of incremental logic in the driver but I think that's overkill. 15:31:13 tbarron: so, you want to have API for it? 15:31:19 vponomaryov: ack 15:31:25 okay so this brings us to the other important point -- storing the data 15:31:44 the spec as written proposes storing the data in memcached 15:31:55 but memcached is a lossy storage system 15:31:58 manila gather-usage-stats --filters user_id=xyzzy,name~=test 15:31:59 :) 15:32:30 gouthamr: +1 15:32:45 gouthamr: haha 15:32:57 memcached can choose to evict data if it fills up, making it a poor choice for storing data that the manila API will depend on 15:33:19 Do we need automatic in cloud? or just new api? 15:33:33 A more obvious choice IMO would be to store the usage data in the shares table itself 15:33:55 on the query side, that adds almost no cost when invoking a share details API 15:34:02 +1 bswartz , memcached solves only load issues 15:34:19 it should not be the only place where we store data 15:34:38 DB should have it and we should cache it in memcache, only that way 15:34:40 the only downside I can see (to storing in the DB) is the constant write traffic from the share manager as it periodically collects and updates usage 15:34:41 zhongjun went to memcached b/c I argued that that has performance impact scaling issue. 15:34:58 that ^^ storing usage in db 15:35:16 tbarron +1 15:35:29 however the cost of that write traffic is arguably less than the cost of collecting the information from the backends (at least in cases where a du -s is involved) 15:35:29 bswartz: if we have cache we could write to DB in bursts 15:35:42 if interval is configurable the usage numbers might be stale and inappropriate for user consumption 15:35:42 she started with storing in DB tables 15:35:53 ganso: better yet we could simply not update the ones that haven't changed 15:36:04 bswartz: +1000 15:36:20 bswartz: and she has proposed the compare and only update if changed 15:36:55 tbarron: current proposal considers memcache as the only source of that data 15:37:07 tbarron" s/current/current patch set/ 15:37:10 so I'm pretty happy with the existing driver interface design, but my current thinking is that we should ignore memcached entirely in this spec, because it's an optimization to solve a problem which may not exist 15:37:25 vponomaryov: I understand, I'm just pointing out that some of these ideas have been proposed along the way. 15:37:26 classic premature optimization 15:38:01 and if optimization is needed, we will still need stable storage behind memcached, so it's better to figure that out now 15:38:19 I'm not sure that the issue of performance issues that may scale with the number of shares on the backend is a premature optimization issue. 15:38:22 bswartz: +1 yes, we could use other way to store info, even if we don't install memcached 15:38:27 It is a design issue. 15:38:52 tbarron: the scaling issue cuts across all parts of the design 15:39:03 +1000 15:39:14 ideally we want to avoid doing work on behalf of shares that haven't been touched by anybody 15:39:48 unfortunatey manila isn't in a position to know which shares are "in-use" vs unused, so polling seems to be unavoidable 15:40:07 * tbarron isn't meaning to argue that we should use memcached though 15:40:19 perhaps backends can know which shares are untouched and use that as part of an optimization when collecting usage information 15:40:29 tbarron: actually, it is good to use it even out of scope of this feature 15:40:38 but that's below the driver interface and not our concern 15:41:07 we might want to prototype it in one of our drivers though 15:41:31 best practice if you have to check each share separately 15:41:35 tbarron: I'm pretty sure the prototype will involve a system("df") call 15:42:28 I was thinking stat will be cheaper than du -s 15:43:31 tbarron: you mean statfs? 15:43:37 tbarron: stat? 15:43:42 stat is for individual inodes 15:44:11 yeah, I was thinking stat on the root of the share but that may not get what is needed 15:44:37 zhongjun: 'stat' system call or equivalent, but nm, I am taking us off track 15:44:41 statfs() is the venerable linux system call intended for this purpose 15:44:58 bswartz: ack 15:45:06 it has many bugs, so beware ;-) 15:45:24 s/bugs/errata/ 15:45:30 :D 15:46:15 okay so in the interest of moving on, can we agree that we should replace memcached with a simple new database column in the spec? and we can assess DB performance issues at another time? 15:46:31 I suspect that DB performance issues will be the least of our scaling issues regarding this feature 15:46:54 DB support is a must 15:47:11 okay.. as long as we're controlling who sees that column by policy. 15:47:13 memcache support should be separate effort 15:47:31 when the GET /shares API is invoked.. 15:47:36 gouthamr: what security concern do you have? 15:47:43 this isn't exactly secret information 15:47:55 it's not a security concern as much as it's unpredictable, unlike size. 15:47:58 storing volatile info in this kind of DB seems weird to me, gotta say 15:48:42 I think ceilometer does specialized stuff for these kinds of data 15:48:50 so as a user, i'd much rather rely on looking at a mounted share for the size.. administrators controlling the polling information may know that the information is as stale as they let it be 15:49:05 tbarron: it is not something like user sessions that can be lost without any problems 15:49:44 as an admin I want a timestamp with the data and I want to refresh it if it's too stale and use it if it's good enough 15:49:52 as a user I want the truth 15:49:54 now 15:50:11 tbarron: you raise a good point 15:50:26 vponomaryov: only if I care what the usage was "then". I can always get it now at more cost by doing a direct driver query. 15:50:47 the information is volatile, and users who want the true value can always obtain it themselves by mounting the share 15:50:49 gouthamr: maybe we should name the field "last_usage_reading" or something along these lines... else I believe it will sparkle confusion about the inaccuracy of the usage value 15:51:02 gouthamr: but if you have many shares, you could looking at share usage size quickly in the list 15:51:39 however if manila will ever use these numbers for any decision making, then we need them stored somewhere so the admin/user can see what manila things that value is, however incorrect the value may be 15:51:46 tbarron: so, you propose to have also timestamp when usage record was updated? 15:51:48 s/things/thinks/ 15:52:06 vponomaryov: i think so, any downside? 15:52:14 tbarron: no, I like it 15:52:18 )) 15:52:31 downside is that the timestamp will *always* change ensuring writes to that DB column all the time 15:52:48 right 15:52:49 bswartz: not if you define another timestamp for this purpose 15:52:53 again it's probably not a huge issue, but it's more expensive than just storing the GB value 15:53:15 so i think ceilometer was made for this kind of thing :D 15:53:52 tbarron: so your proposal is, make the share manager collect this data, and emit it into the ether but don't store it at all? 15:53:56 ganso: +1 size_used sounds like it's always accurate 15:54:10 bswartz: I think it's worth considering. 15:54:16 yeah I agree 15:54:19 +1 i like the idea 15:54:55 zhongjun: what is the use case for making the data available through the share API? why not just send it to ceilometer or some other metrics collection engine? 15:54:58 tbarron: We could store a inexact timestamp 15:54:59 we have to get the info, that's one problem. We have to transmit it to ceilometer anyways, that's another. 15:55:05 tbarron: it means, any admin that wants to bill for usage will require ceilometer onboard? 15:55:28 Then whether we also build our own persistence so we can run without ceilometer and get usage, that's another. 15:55:32 if there is nobody to consume the data, then the data has no value... a polling mechanism that stores in the DB will always discard the value at the polling rate 15:55:52 vponomaryov: that's the downside unless we build something like ceilometer in manila. 15:56:01 ganso: if nobody will consume it, we'll have a way to turn it off 15:56:01 tbarron: let's not to dothat 15:56:08 gouthamr: +1 15:56:27 the collection itself is disabled by default, it will only run if the admin specifically configures it 15:56:30 bswartz: I wrote it in the spec, admin could want to know it for charge 15:56:43 and presumably the admin would configure a consume for the data 15:56:52 gouthamr: I meant that for this the ceilometer approach makes more sense, if someone will consume it, should be through ceilometer, it is less expensive and storing it in our DB a value that nobody might read 15:56:56 ganso: also, i think the option will be "turn it on if necessary", it's off by default. 15:57:02 zhongjun: but the admin could go to ceilometer's API for that, right? 15:57:19 ganso: +1 15:57:31 ganso: +1 15:58:12 I really don't like storing volatile data which might be read by nobody and will usually be inaccurate 15:58:38 ceilometer is designed exactly for this kind of thing 15:58:44 bswartz: but if the admin don't install the ceilometer 15:58:59 zhongjun: then they leave the collection turned off 15:59:04 zhongjun: then I'd say the feature cannot be enabled 15:59:09 or use gnochi (sp?) instead 15:59:21 agree 15:59:31 zhongjun: it needn't be ceilometer, any consumer to our telemetry notifications.. 15:59:37 okay I sense we're in agreement here about the data storage 15:59:49 it will probably take more than a few hours to update the spec 16:00:03 so let's give this one a few more days and keep providing gerrit feedback 16:00:06 I think we're close 16:00:12 * gouthamr #TIL gnocchi = soft dough dumplings 16:00:16 we have to end this meeting though 16:00:24 thanks all 16:00:31 #endmeeting