*** vinsh has joined #openstack-swift | 00:06 | |
*** vinsh has quit IRC | 00:12 | |
*** zhill has quit IRC | 00:25 | |
notmyname | thansk everyone for all your work on ec this week | 00:26 |
---|---|---|
*** pots has joined #openstack-swift | 00:37 | |
*** pots has left #openstack-swift | 00:38 | |
*** annegentle has joined #openstack-swift | 00:45 | |
*** annegentle has quit IRC | 00:49 | |
clayg | hrmm.... so I don't guess that probetests pass with a default policy of ec - I think we had a similar limitation when we rolled storage policies, that if your default was a two replica not all of the tests would pass. I'm going to keep looking at the failures tho. | 00:55 |
notmyname | isn't that new, though? probetests for an ec default policy were passing pretty recently | 01:22 |
*** annegentle has joined #openstack-swift | 01:45 | |
*** annegentle has quit IRC | 01:51 | |
*** annegentle has joined #openstack-swift | 02:12 | |
*** annegentle has quit IRC | 02:12 | |
clayg | notmyname: well... | 02:27 |
openstackgerrit | Takashi Kajinami proposed openstack/swift: Add process name checking into swift-init https://review.openstack.org/116203 | 02:28 |
clayg | notmyname: I'm kinda seeing that there was this thing I did while selecting diffs from feature/ec that has made ec_review slightly different that what we were had last week on feature/ec | 02:41 |
clayg | notmyname: the short and skinny is that I "broke" ECObjectControllers ability to PUT into a replicated storage policy | 02:41 |
clayg | notmyname: you probably remember before the GET path was in a seperate controller torgomatic had originally just mushed everything in the PUT path through the one and only ObjectController - and there was all this (crazy?) logic where you'd call into methods on the storage policy class to decide is_multiphase_put or transform_chunks (which was a noop on replicated objects) | 02:43 |
clayg | notmyname: when we realized that wasn't going to scale for the GET path (where the differences in data flow was so drastically different) - we spun out ECObjectController and realized that this isolation is very sexy! | 02:44 |
clayg | notmyname: so then we refactored the proxy's PUT and eventually moved the PUT path to the ECObjectController leaving the replicated object controller back in it's normal happy and safe path - but we didn't rip out all of the "calling back into the policy" stuff that was already in the ECObjectController's PUT path | 02:45 |
clayg | so although the idea was "no replicated object PUTS would *ever* flow through the ECObjectController" - it still *worked* (surprise!) | 02:45 |
clayg | well - I thought that segregating by controller was a really good idea for simplifying maintainability, and having it call into the ECStoragePolicy wasn't as good as having it *just do it* - you want to know how EC Proxy put works - look no further than the ECObjectController | 02:46 |
clayg | so I actively started removing things that had "leaked" in storage policy and put them on the ECObjectController - don't go and ask the policy if you should use MIME docuemtns and trailing metadata - just do it! | 02:47 |
clayg | I think this all sounds pretty good so far - but it turns out down in probetest land things are no so cut and dry - and places where we're explictly picking a policy - but expecting to be a replicated policy - were surprising NOT breaking because of the bi-modal nature of the ECObjectController un-natural ability to do the right thing for replicated objects on HEAD/DELETE/PUT | 02:48 |
clayg | removing that ability exposed some test bugs - places where we made assumptions like - choose policy-0 and assume it's replicated | 02:49 |
clayg | anyway - it's all quite fixable - and I'm working on it - and I'm sorry I didn't notice earlier I was doing this | 02:49 |
clayg | I *hope* it was the right call to make the ECObjectController do EC objects and then make sure we have good tests that don't do stupid things that we are not expecting to happen in the real world | 02:50 |
clayg | I *hope* that it will be easier to iterate on the ECObjectController (and other EC classes) knowning that the work on EC objects and not have to *also* consider the effects of a given change when "what happens if a replicated object flows through this code path" - specifically by making sure that never happens | 02:51 |
clayg | if not... well np, I haven't changed anything on feature/ec - we can always add back the ECObjectController's ability to PUT replicated objects and worry about tests doing insane things... later? | 02:52 |
clayg | ^ maybe a paste would have been better :P | 02:52 |
notmyname | heh | 02:55 |
clayg | notmyname: anyway - i only get *one* probe test failure (it's random) when ec is *not* storage policy 0 | 03:02 |
clayg | notmyname: I get a few more when it *is* sp0 - and a few more when it's sp0 and the default - I'm going to see how many of these configurations I can get working reliably with tonights push - and not work on the reconstructor review beyond the awesome fixes already submitted by acoles. | 03:03 |
clayg | notmyname: note I'm running latest code that includes some fixes not published (e.g. the account-reaper fix) - so I'm not sure how reproducable these results will be outside of my laptop until I get some code up later | 03:04 |
clayg | notmyname: I am curious if you'd be able to verify on your machine where you saw like 6 failures - if you also had ec sp0 - or just ec default? | 03:05 |
notmyname | clayg: sp:0 was repl (non default). sp:2 was default and ec | 03:06 |
clayg | notmyname: ok, interesting - i hadn't acctually tested that because I had some interesting failures of my own - but I had assumed it would be slightly better | 03:08 |
clayg | I'm not sure I fully understand why the *most* probetests were not able to cope with that setup even given my new understanding of what I've done to ECObjectController | 03:09 |
clayg | anyway - i'm sure I'll have some more interesting things to say about it after a few hours | 03:09 |
* clayg marks one more fixed dumb test off the list | 03:09 | |
clayg | notmyname: it's probably worth noting - all the tests that were failing are ones that acoles_away and I have written since we started getting into probetests and the brain splitter and policy = random.choice(ENABLED_POLICIES) | 03:10 |
clayg | but hey - failing tests are working as intended! | 03:11 |
*** vinsh has joined #openstack-swift | 03:13 | |
*** vinsh has quit IRC | 03:17 | |
clayg | notmyname: you know I'm not even sure how much my proxy explination had to with anything - I *know* functests passed with ec default storage policy - but I'm not *sure* probetests ever did | 04:15 |
clayg | notmyname: none of the bugs I've fixed had anything to do with the crazy PUT behavior thing - one was always selecting policy[0] instead of self.policy - one was policy.default instead of self.policy - another had to do with assuming random.choice(policies) was replicated and talking to object nodes like replicated servers | 04:16 |
clayg | oh, one was create_container without X-Storage-Policy: self.policy.name | 04:16 |
clayg | ^ make that two | 04:19 |
*** vinsh has joined #openstack-swift | 04:21 | |
*** vinsh has quit IRC | 04:23 | |
clayg | hrmmm... ok - so this is acctually highlighting to me there's a number of failure modes with EC besides the reconstructor that it would be nice to independently verify... in truth many of theese ReplProbeTest could be made generic enough to run again any policy | 04:25 |
clayg | (e.g. async update tests, handoff tests) | 04:26 |
clayg | anyway that should be it for sp0:ec=default - i would like to try sp1:ec=default, sp0:ec=not_default, sp0:repl=deprecated - there's lots of rich stuff here | 04:27 |
clayg | ... but it's late - if this works I may just finish up my last rebase and throw it out there | 04:27 |
*** Viswanath has joined #openstack-swift | 04:43 | |
*** Viswanath has quit IRC | 04:45 | |
*** Viswanath has joined #openstack-swift | 05:04 | |
*** Viswanath has quit IRC | 05:08 | |
*** vinsh has joined #openstack-swift | 07:23 | |
*** vinsh has quit IRC | 07:28 | |
*** Bsony has joined #openstack-swift | 08:46 | |
*** silor has joined #openstack-swift | 08:52 | |
*** silor has quit IRC | 09:18 | |
*** theanalyst has quit IRC | 10:18 | |
*** theanalyst has joined #openstack-swift | 10:22 | |
*** early has quit IRC | 10:37 | |
*** early has joined #openstack-swift | 10:40 | |
*** acoles_away is now known as acoles | 11:18 | |
*** kutija has joined #openstack-swift | 11:39 | |
*** ornot has joined #openstack-swift | 11:43 | |
ornot | hi there! i'm new with swift and i have a problem with CFSocketCreate, http://pastie.org/private/eisewjqztot9icltbtf9cg | 11:46 |
ornot | i'm trying to init socket with self.myMethodName as callback function but getting an error that i can't understand or google | 11:47 |
ornot | (... my func params ...) -> ()' is not convertible to 'CFSocketCallBack' | 11:48 |
ornot | how i need to define my callback or how i need to pass it into that param | 11:49 |
acoles | ornot: you are asking in the wrong place, this channel is for *openstack* swift object store project | 11:50 |
*** ornot has left #openstack-swift | 11:54 | |
*** panbalag has joined #openstack-swift | 12:37 | |
*** SkyRocknRoll has joined #openstack-swift | 13:21 | |
*** silor has joined #openstack-swift | 16:18 | |
*** SkyRocknRoll has quit IRC | 16:34 | |
clayg | acoles: awww man I think he was asking about the "CF" = cloud files - like java bindings or something! | 16:58 |
acoles | clayg: oh. i thought they'd mistaken us for that funky new swift language :D | 17:00 |
acoles | nm | 17:01 |
*** Gu_______ has joined #openstack-swift | 18:20 | |
*** silor has quit IRC | 18:23 | |
*** Gu_______ has quit IRC | 18:24 | |
*** Gu_______ has joined #openstack-swift | 18:25 | |
acoles | clayg: dunno if you are around, i just left a comment and patch for ec recon, its kinda crazy timing-wise but felt i should at least pose the question | 18:40 |
acoles | clayg: i gotta go but will check in tomorrow | 18:41 |
*** acoles is now known as acoles_away | 18:41 | |
*** Gu_______ has quit IRC | 18:47 | |
*** haomaiwa_ has joined #openstack-swift | 18:51 | |
*** haomaiwang has quit IRC | 18:51 | |
*** theanalyst has quit IRC | 19:44 | |
*** theanalyst has joined #openstack-swift | 19:47 | |
*** vinsh has joined #openstack-swift | 20:51 | |
*** vinsh has quit IRC | 20:53 | |
*** Bsony has quit IRC | 20:55 | |
clayg | acoles_away: i'll have to think about it - the race on a handoff is super wide (sync part, rmtree part) and at least for replicated it's been much less of an issue - the race between a listdir and an unlink is much smaller especially since the next thing that #new.data is going to do is create a .durable for itself... | 22:01 |
*** BAKfr has quit IRC | 22:24 | |
*** pberis has joined #openstack-swift | 22:28 | |
*** BAKfr has joined #openstack-swift | 22:30 | |
*** Gue______ has joined #openstack-swift | 23:30 | |
*** pberis has quit IRC | 23:34 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!