allow_mult=true is the recommended approach for addressing conflict resolution; when multiple writes to the same object are received and vector clocks cannot determine a causal history, all copies of the writes are retained for future merging/selection by the application. We are planning to make this the default setting for Riak 2.0.
A couple of blog posts (pardon me for referencing my own content): https://basho.com/understanding-riaks-configurable-behaviors-part-1/ https://basho.com/clocks-are-bad-or-welcome-to-distributed-systems/ I imagine that the presence of these multiple copies (aka “siblings”) is what is breaking legacy search, but that’s purely guesswork on my part. -John On Nov 23, 2013, at 12:00 PM, Kartik Thakore <[email protected]> wrote: > what does allow_mult do and why is it breaking the search? > > just curious > > > On Sat, Nov 23, 2013 at 11:00 AM, Mark Phillips <[email protected]> wrote: > > Please send all rock star praise payments to [email protected]. I'll make sure > Ryan gets it. ;) > > On Friday, November 22, 2013, Gabriel Littman wrote: > > PS: The searching that should include this element that failed before now > succeeds as well. > > >>> r.fulltext_search('ctv_tvdata', "searchable_key:monstersvsaliens") > {'max_score': 0.353553, 'num_found': 1, 'docs': [{'date': '2013-11-23', > 'expires': '9999999999', 'subject_name': 'Monsters vs. Aliens', 'sub_type': > 'Series', 'topic': > '__ref--/data/v2/topic/TMS.Show.9838380:r1384276501.854346', 'person': > '__None__', 'searchable_key': 'aliens vs monstersvsaliens monsters', 'genre': > 'Children', 'sport': '__None__', 'type': 'show', u'id': > '/data/v2/search_show/TMS.Show.9838380'}]} > > > On Fri, Nov 22, 2013 at 8:07 PM, Gabriel Littman <[email protected]> wrote: > Hi Ryan, > > You are a rock star. I owe you $5. > > The bucket had allow_mult set to true: > $ curl 'http://10.1.2.95:8098/buckets/_rsid_ctv_tvdata/props' > {"props":{"name":"_rsid_ctv_tvdata","allow_mult":true,"basic_quorum":false,"big_vclock":50,"chash_keyfun":{"mod":"riak_core_util","fun":"chash_std_keyfun"},"dw":0,"last_write_wins":false,"linkfun":{"mod":"riak_kv_wm_link_walker","fun":"mapreduce_linkfun"},"n_val":3,"notfound_ok":false,"old_vclock":86400,"postcommit":[],"pr":0,"precommit":[],"pw":0,"r":1,"rw":1,"small_vclock":50,"w":1,"young_vclock":20}} > > I fixed it in the python console since that is where I'm more comfortable. > And just to be sure I attempted the same riak PUT both before and after. > > >>> import riak > >>> r = riak.RiakClient() > >>> b = r.bucket('ctv_tvdata') > >>> o = b.get('/data/v2/search_show/TMS.Show.9838380') > >>> o.store() > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/usr/local/lib/python2.7/dist-packages/riak/riak_object.py", line > 281, in store > timeout=timeout) > File "/usr/local/lib/python2.7/dist-packages/riak/client/transport.py", > line 127, in wrapper > return self._with_retries(pool, thunk) > File "/usr/local/lib/python2.7/dist-packages/riak/client/transport.py", > line 69, in _with_retries > return fn(transport) > File "/usr/local/lib/python2.7/dist-packages/riak/client/transport.py", > line 125, in thunk > return fn(self, transport, *args, **kwargs) > File "/usr/local/lib/python2.7/dist-packages/riak/client/operations.py", > line 289, in put > timeout=timeout) > File > "/usr/local/lib/python2.7/dist-packages/riak/transports/http/transport.py", > line 144, in put > return self._parse_body(robj, response, [200, 201, 204, 300]) > File > "/usr/local/lib/python2.7/dist-packages/riak/transports/http/codec.py", line > 64, in _parse_body > self.check_http_code(status, expected_statuses) > File > "/usr/local/lib/python2.7/dist-packages/riak/transports/http/transport.py", > line 446, in check_http_code > (expected_statuses, status)) > Exception: Expected status [200, 201, 204, 300], received 500 > >>> b2 = r.bucket('_rsid_ctv_tvdata') > >>> b2.get_properties() > {'old_vclock': 86400, 'pr': 0, 'allow_mult': True, 'big_vclock': 50, 'name': > '_rsid_ctv_tvdata', 'chash_keyfun': {'fun': 'chash_std_keyfun', 'mod': > 'riak_core_util'}, 'n_val': 3, 'notfound_ok': False, 'linkfun': {'fun': > 'mapreduce_linkfun', 'mod': 'riak_kv_wm_link_walker'}, 'pw': 0, > 'last_write_wins': False, 'r': 1, 'small_vclock': 50, 'rw': 1, > 'basic_quorum': False, 'postcommit': [], 'dw': 0, 'w': 1, 'youn > > _______________________________________________ > riak-users mailing list > [email protected] > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
_______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
