I don't know that people love it so much as that there is no exact 
replacement for the functionality.

I'm a big proponent of compatibility but shared sets as they previously 
existed are problematic.  I wouldn't be at all surprised if they are 
thread-unsafe to the point of being able to crash the server.

An alternative might be to provide equivalent functionality 
(order-preserving, multiple entries for keys, access by index or key or 
case-insensitive key) as a new nsv subcommand, perhaps 'nsv_multiset'.

Separately, I was experimenting with a performance enhancement to 
ns_sets, creating a hashtable mapping the keys to indexes.  There is a 
slight cost in memory and on the first lookup, but it should get to 
breakeven after only around 3 lookups on average, with decreasing 
amortized cost after that.  The difference is measurable and can be 
significant, as much as 4x faster on a large set.  However, that's 
measured on a very large set, 1000 keys;  and the real savings is pretty 
small, around 15 microseconds per lookup on average hardware.  Is that 
kind of micro-optimization worth the additional complexity?

-J

Gustaf Neumann wrote:
> Stephen,
>
> do you remember why you took out the -shared flag from ns_set?
>
> https://bitbucket.org/naviserver/naviserver/changeset/1cbaf1acc09436f2a1c56102269a8b7fab0be168
>
>
> it seems that some people love it. We have either to take it
> out of
> the documentation (and give sensible explanation) or
> reintroduce it in the code...
>
> -gustaf


------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to