|
|
-
Multi-user PlusAnonymousUserDataModel
Aleksei Udatšnõi 2012-02-02, 10:16
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
-
Re: Multi-user PlusAnonymousUserDataModel
Sean Owen 2012-02-02, 10:21
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 >
-
Re: Multi-user PlusAnonymousUserDataModel
Aleksei Udatšnõi 2012-02-02, 10:51
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 >>
-
Re: Multi-user PlusAnonymousUserDataModel
Sean Owen 2012-02-02, 11:15
OK, open up a JIRA. If it's not too complex it could indeed be a good change.
2012/2/2 Aleksei Udatšnõi <[EMAIL PROTECTED]>
> 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 > >> >
|
|