jinganix / enif_protobuf

A Google Protobuf implementation with enif (Erlang nif)
38 stars 21 forks source link

What does tid_not_found mean and how to avoid it? #4

Closed kpy3 closed 6 years ago

kpy3 commented 6 years ago

Hi,

sometimes I get tid_not_found during data encoding, what does this error mean?

jinganix commented 6 years ago

I am not able to reproduce the tid_not_found error, but I modified something about it. Can you update and have a try?

kpy3 commented 6 years ago

Thank you, will try next week.

More info on issue: 16 cores on server, about 100000 messages per second for encode, about the same value for decode

kpy3 commented 6 years ago

Seems it does not help much for messages bigger than two kilobytes, still have this issue. :(

jinganix commented 6 years ago

Only messages bigger than two kilobytes will cause the error? Will make && make test produce any errors?

kpy3 commented 6 years ago

Yes, No error reported with make test

jinganix commented 6 years ago

Ok, I will try more to reproduce it.

kpy3 commented 6 years ago

Tried to add one more field to Person with up to 4096 bytes data and encode it with up to 8 * Processors (= 32) threads, but without any luck. It seems it somehow linked with our application's architecture or load profile, or something else. Going to close the issue for now. Thanks for you help.

jinganix commented 6 years ago

I have reproduced the error, and committed a fix. Please update and have a try. Hope it's helpful.

kpy3 commented 6 years ago

Thank you a lot, will try it and ping you back with results.

kpy3 commented 6 years ago

After 12+ hours on our load env, no new tid_not_found errors occurred, thank you very much for the fix.

jinganix commented 6 years ago

Great, thanks for your feedback.