[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: IDL bit vectors

Is it worth the effort for 32 bit when most production servers are 64?
Or am I missing the point?


On 10/19/08, Howard Chu <hyc@symas.com> wrote:
> Seems like I keep poking at this idea again every couple years.
> If we use a <base,vector> we can cover a much wider range without losing any
> precision. For a 32 bit machine, 32 bits per word would cover 5 bits worth
> of
> entry IDs. So 27 bits would comprise the base, and the next 32 bits would
> represent up to 32 entry IDs.
> To avoid wasting those 5 unneeded bits in the base, we could use them as a
> run-length counter and use multiple vectors per base. But it might be better
> to slide things over and use just a 24 bit base, and use the bottom 8 bits
> of
> the word as a bitmask to represent which following vectors are present. E.g.
> ......01 means 1 vector follows, representing base+ 0-31.
> ......02 means 1 vector follows, representing base+32-63.
> ......05 means 2 vectors follow, base+0-31 then base+64-95.
> That allows us to represent up to 256 entryIDs in only 288 bits (instead of
> the 16384 bits we currently need). That would allow us to track about 1.86M
> entryIDs in the same space we currently use to track only 64K entryIDs.
> It seems we would still need some kind of range representation to handle
> IDLs
> with more than 1.86M entries.
> --
>    -- Howard Chu
>    CTO, Symas Corp.           http://www.symas.com
>    Director, Highland Sun     http://highlandsun.com/hyc/
>    Chief Architect, OpenLDAP  http://www.openldap.org/project/

Sent from my mobile device