Hi Sean, The goal is to produce anonymous "cold start" user-based recommendations in an environment of 100-200 concurrent users.
It may work in a synchronized way as is with only one fixed TEMP_USER_ID. However while one anonymous user insert its temp data into the model, other threads have to wait until the TEMP_USER_ID is released. With high volume of concurrent users, it may become a serious bottleneck. So I would like to improve the throughout. If you find it is not a useful feature for core, I can implement it in my custom recommender. Thanks! On Thu, Feb 2, 2012 at 11:21 AM, Sean Owen <[email protected]> wrote: > Why does this make it useful in a multi-user environment? you can already > use it just fine, with synchronization. > I am wary of making this hacky wrapper more complex. > > 2012/2/2 Aleksei Udatšnõi <[email protected]> > >> Hello, >> >> I would like to make a change to PlusAnonymousUserDataModel. Currently >> the ID of the anonymous user is fixed to Long.MIN_VALUE. Only one set >> of temp data can be inserted into the model and used at one time. >> >> I propose the change to enable multiple users to insert into this >> model concurrently in a thread-safe manner. >> >> The idea is to define a pool of available anonymous user IDs. Every >> time a new anonymous user makes a request, the next available >> TEMP_USER_ID is pulled from the queue. After recommendations are >> retrieved, the TEMP_USER_ID can be returned to the pool. >> >> As the result this model will become usable in a production multi-user >> environment. >> >> Waiting for your feedback, >> Aleksei >>
