Hi, I've double checked code regarding question 1: PageMemoryImpl#segments segments count (len) comes from sizes array len. Sizes array come to page memory from GridCacheDatabaseSharedManager.calculateFragmentSizes(). This method which gets availableProcessors from runtime (CPU count). I didn't find any shift to SEG_BITS.
It can be chaged by DataStorageConfiguration.setConcurrencyLevel() but by default is the same with #CPU. Which is why I mentioned segments count = CPU count by default in wiki. Recenly some member of community proposed update to offical doc about segments count. So now it states #segments=#CPU. So I guess for 8 CPU we will have 8 segments. Please correct me if I missing something. Sincerely, Dmitriy Pavlov ср, 27 июн. 2018 г. в 15:30, Eduard Shangareev <eduard.shangar...@gmail.com >: > Dmitry, > > I mean Chugunov, but I have questioned him. His answer was the A. Goncharuk > should now the answer. > > On Wed, Jun 27, 2018 at 2:58 PM, Dmitry Pavlov <dpavlov....@gmail.com> > wrote: > > > John, is this question still actual? > > > > пт, 22 июн. 2018 г. в 15:18, Dmitry Pavlov <dpavlov....@gmail.com>: > > > > > Hi Ed, > > > > > > Which Sergey do you mean? I know a number of contributors. > > > > > > Sincerely, > > > > > > > > > вт, 19 июн. 2018 г. в 22:15, Eduard Shangareev < > > > eduard.shangar...@gmail.com>: > > > > > >> Hi, > > >> > > >> 1. It looks weird, yeah. Need to ask Sergey, who has changed it last > > time. > > >> > > >> 2. Because we could reuse memory. For example, after cache destroy or > > >> something like that. > > >> > > >> On Tue, Jun 19, 2018 at 9:58 PM, John Wilson <sami.hailu...@gmail.com > > > > >> wrote: > > >> > > >> > Hi, > > >> > > > >> > Two quick questions: > > >> > > > >> > > > >> > 1. The design documentation here, > > >> > https://cwiki.apache.org/confluence/display/IGNITE/ > > >> > Ignite+Durable+Memory+-+under+the+hood, > > >> > states that the default segment count is equal to the number of > > >> logical > > >> > cores available in the underlying machine. However, the segments > > >> array > > >> > in > > >> > PageMemory indicates that the maximum number of segments is: 1 << > > >> > SEG_BITS. > > >> > Since SEG_BITS = 4, the max # segments is 16. Did I miss > something > > >> here? > > >> > 2. Reading the code in PageMemoryNoStoreImp, it looks like pages > > are > > >> > allocated segment sequentially in a bump-the-pointer strategy > where > > >> the > > >> > first 8 bytes of a segment hold a pointer to the index of the > last > > >> > allocated page. If this is true, then I don't understand the > point > > of > > >> > having a page map buckets. Why not use a simple arithmetic index > * > > >> > pageSize > > >> > to get the offset of a page? > > >> > > > >> > Thanks. > > >> > John > > >> > > > >> > > > > > >