рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ
рдПрдорд╡реАрдП (рдмрд╣реБ рдореВрд▓реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ) рдЕрдкрдбреЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢рд░реНрддреЗрдВ:
- рд╕реНрдлрд┐рдВрдХреНрд╕-1.10 рдмреАрдЯрд╛
- рд╕реНрдлрд┐рдВрдХреНрд╕ php рдЖрдкреА
рдХрд╛рд░реНрдп рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ mva рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдСрди-рдж-рдлреНрд▓рд╛рдИ рдЕрдкрдбреЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╢реБрд░реБрдЖрдд рд╕реЗ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рд╣рдо php рдПрдкреАрдЖрдИ рд╕реЗ
UpdateAttributes () рдлрд╝рдВрдХреНрд╢рди рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЕрдкрдбреЗрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд░рдг рд▓рд┐рдЦрд╛, рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ - рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рддрд░рд╣ рднреА рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рдЗрддрдиреА рдЬрд▓реНрджреА рдХреНрдпрд╛ рд╣реБрдЖ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рдкрдХрдбрд╝ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдХрдЯреНрдЯрд░рддрд╛ рдХреЗ рд╕рд╛рде рдмреЛрд▓рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ - рдФрд░ рдкрдХрдбрд╝ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдкрдХрдбрд╝реА рдЧрдИред
MVA рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ 1022 рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╕реНрдЯрдл рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп, рдХреНрд▓рд╛рдЗрдВрдЯ "
MVA рдЕрджреНрдпрддрди рдкрд░ рдкреВрд▓ рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ " рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рд╡рд╣ рдЧреВрдЧрд▓ рдХрд░рдиреЗ рд▓рдЧрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирдИ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗ
sphinx.conf рдореЗрдВ
mva_updates_pool рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред
рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд░реНрдереЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдореВрд▓реНрдп рд░рдЦрд╛ рд╣реИ, рдПрдХ рддреНрд░реБрдЯрд┐ рдмрд╛рд░-рдмрд╛рд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдЧрд╣рд░рд╛ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред
рдореИрдВрдиреЗ рдПрдХ рджреЛрд╕реНрдд рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ (рдореИрдВрдиреЗ рдЪрд░рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдЕрднреНрдпрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛), рдмреАрдпрд░ рд▓реА рдФрд░ рдбрд┐рдмрдЧ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдмреИрда рдЧрдпрд╛ред рдбрд┐рдмрдЧ рдХреЗ 2 рдШрдВрдЯреЗ рдФрд░ рдмреАрдпрд░ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдХреЗ рдмрд╛рдж, рд╕рдорд╕реНрдпрд╛ рдкрд╛рдИ рдЧрдИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ sphinx.cpp рдореЗрдВ рдПрдХ рдФрд░ рдЬрд╛рдБрдЪ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН:
int CSphArena::RawAlloc ( int iBytes ) { CheckFreelists (); if ( iBytes<=0 || iBytes>( ( 1 << MAX_BITS ) - (int)sizeof(int) ) ) { return -1; } тАж }
iBytes рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ MVA рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рддрд╣рдд рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдФрд░ рд╣рд╛рд▓рдд iBytes> ((1 << MAX_BITS) - (int) sizeof (int) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдКрдкрд░ рд╕реЗ рдкреНрд░рддрд┐рдмрдВрдз рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП
MAX_BITS рдЪрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред рдпрд╛рдиреА
IBytes рдХреА рддреБрд▓рдирд╛ 2 ^ MAX_BITS - 4 (32-рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП) рдФрд░ 2 ^ MAX_BITS - 2 рдХреЗ рд╕рд╛рде 16-рдмрд┐рдЯ рдХреЗ рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИред MAX_BITS рдХрд╛ рдорд╛рди рд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИ рдФрд░ 12. рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдВрддрд░-рд╡реЗрдВ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдорд╡реАрдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ crammed рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЗрдВрдЯ 4 рдмрд╛рдЗрдЯреНрд╕ рд▓реЗрддрд╛ рд╣реИред 4092/4 = 1023. рддреЛ рд╣рдореЗрдВ рдЕрдкрдиреА рд╕реАрдорд╛ рдорд┐рд▓ рдЧрдИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░,
MAX_BITS рдХрд╛ рдорд╛рди
рдмрдврд╝рд╛рддреЗ рд╣реБрдП, рд╣рдо рдПрдорд╡реАрдП рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рджрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рд╣реА рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдпрд╛рдиреА рдореБрдЭреЗ рдЗрд╕ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред