Dmitry, On 11.02.2012 20:15, Dmitry Yemanov wrote: > 11.02.2012 20:03, marius adrian popa wrote: > >> I will respond for 2) at first changing the offsets to 64bit doesn't >> look too hard replace SLONG with SINT64 >> in the lock.cpp functions >> but i might be wrong so i leave the core dev if is easy > First of all, this must be conditional depending on the target > architecture. It makes zero sense to have 64-bit offsets on 32-bit builds. > > Also, many lock table internals are stored as offsets. Making them int64 > will make the every lock table being almost twice bigger in size. It's > likely to crash on heavily loaded 32-bit hosts (unless compiled > conditionally, see above) but it also may have performance implications > on 64-bit hosts (unless you have plenty of the unused RAM). > >
What shall we do? Going to 64-bit offsets will grow lock manager table 2X and slow performance slightly for nearly everybody. There might be an acceptable temporary solution. Engine does 4-byte alignment for all variables inside the lock manager. It might be possible to raise the limit by the factor of 4 without growing memory requirements, via adding an offset to pointer conversion macro (for both SRQ and all lock manager "pointers"). Chipsets that can handle 2 TB of RAM and 8 CPU sockets (<=80 cores, <=160 threads) are the largest "commodity" type hardware available now. These are the largest systems we worked on. 8 GB of lock manager space per database should be just enough for them. With the allocation error check in place we'll have this problem solved for the next year or two until larger systems become common. Is this a better solution than going to 64 bit straight on a 64-bit host? Nikolay Samofatov ------------------------------------------------------------------------------ Try before you buy = See our experts in action! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-dev2 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel
