Looks there is prepare() method in BaseFunction, let me try to create there
and see what's going on. Will keep you updated.

On Wed, May 6, 2015 at 8:07 AM, Leo <[email protected]> wrote:

> It's dorable in Storm, but Trident Functions require everything to be
> serializable, or it throws errors. I tried to make CouchbaseClient
> transient, but this won't work either. I'm just curious this should be
> pretty common, or there is another way to get around this?
>
> Thanks,
> Leo
>
> On Wed, May 6, 2015 at 6:18 AM, Nathan Leung <[email protected]> wrote:
>
>> Why does couchbase client need to be serializable? In core storm you
>> would initialize the client in prepare(), not when the bolt object is
>> constructed. I'm not familiar with trident but I'm guessing there is
>> something similar.
>> On May 6, 2015 1:22 AM, "Leo" <[email protected]> wrote:
>>
>>> Hi All,
>>>
>>> Basically, I want to read some additional attributes from Couchbase with
>>> attributes from the tuple, for example, the tuple has input fields "{a, b,
>>> c}", I want to emit a tuple "{a, b, c, d, e}" where "d" and "e" are read
>>> from Couchbase with "a" as the key.
>>>
>>> However, Trident BaseFunction is serializable while CouchbaseClient is
>>> not, which leads to "NotSerializable" exception, is there anyway to get
>>> around this? There are two possible solutions I can think of:
>>>
>>> 1) read the additional attributes outside Trident and send them together
>>> to Trident (I don't want to do this cause I want to put this kind of
>>> processing in Storm)
>>>
>>> 2) Use state, which is read-only (only implement multi-get, leaving
>>> multi-put blank, not sure whether this will do the trick)
>>>
>>> Is there any easy way to do this? This should be dorable in Storm itself
>>> and is pretty common in real world. It also applies to other NoSQL db like
>>> Cassandra.
>>>
>>> Thanks,
>>>
>>> Leo
>>>
>>
>

Reply via email to