Photon: ಶೂನ್ಯದಿಂದ ರಿಟ್ರೈವಲ್ ಮತ್ತು ಶ್ರೇಯಾಂಕ ಎಂಜಿನ್ ನಿರ್ಮಿಸುವುದು

ವಿಶೇಷ ಡೇಟಾ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು, ಬ್ಯಾಚ್ ಮಾಡಿದ ರೀಡ್‌ಗಳು ಮತ್ತು ಪ್ರಶ್ನೆ ಪರಿಚಾರಣೆಯಿಂದ ಇಂಡೆಕ್ಸ್ ಬಿಲ್ಡಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದು AI-ಸ್ಥಳೀಯ ಹುಡುಕಾಟವನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುತ್ತದೆ.

ಲೇಖಕರುPerplexity Engineering

ಪರಿಚಯ

Perplexity ಯ AI- ನೇಟಿವ್ ಹುಡುಕಾಟ ಸ್ಟ್ಯಾಕ್ ಕ್ಯಾಂಡಿಡೆಟ್ ಪುಟಗಳನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ ಮತ್ತು ಶ್ರೇಣೀಕರಿಸುತ್ತದೆ, ಮಾದರಿಯು ತನ್ನ ಉತ್ತರಗಳನ್ನು ಆಧರಿಸಲು ಅತ್ಯಂತ ಸಂಬಂಧಿತವಾದ ವಿಷಯವನ್ನು ಮೇಲ್ಮೈಗೆ ತರುತ್ತದೆ. ಮೂಲತಃ, ಈ ಹಂತವು ನಮ್ಮ ಸಿಸ್ಟಮ್‌ಗೆ ನಾವು ಹೊಂದಿಕೊಳ್ಳುವ ಓಪನ್ ಸೋರ್ಸ್ ಎಂಜಿನ್‌ನಲ್ಲಿ ರನ್ ಆಯಿತು. ಆದಾಗ್ಯೂ, ನಮ್ಮ ಇಂಡೆಕ್ಸ್ ಮತ್ತು ವರ್ಕ್‌ಲೋಡ್‌ಗಳು ಬೆಳೆದಂತೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮೂರನೇ পক্ষের ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ನಮಗೆ ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಗದ ವೆಚ್ಚಗಳು, ಟೇಲ್ ಲ್ಯಾಟೆನ್ಸಿ ಮತ್ತು ನೋಡ್ ಚೇತರಿಕೆ ಸಮಯದ ಮೇಲೆ ನಾವು ಕಠಿಣ ಮಿತಿಗಳನ್ನು ತಲುಪಿದ್ದೇವೆ.

ಈ ಸವಾಲುಗಳನ್ನು ಜಯಿಸಲು, ನಾವು ಹೊಸ ಇನ್-ಹೌಸ್ ರಿಟ್ರೈವಲ್ ಮತ್ತು ಶ್ರೇಯಾಂಕ ಎಂಜಿನ್ ಆದ Photon ಅನ್ನು ನಿರ್ಮಿಸಿದ್ದೇವೆ. ಪುಟ ರೆಕಾರ್ಡ್‌ಗಳಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸಲು ನಮ್ಮ ವಿತರಿಸಿದ ಕೀ-ವ್ಯಾಲ್ಯೂ ಸ್ಟೋರ್ ಆಗಿರುವ CobbleDB ಮತ್ತು ನಮ್ಮ Search API ನೊಂದಿಗೆ ನಾವು ಮಾಡಿದಂತೆ, ಇದು AI-ಮೊದಲ ಹುಡುಕಾಟ ಮೂಲಸೌಕರ್ಯವನ್ನು ಶೂನ್ಯದಿಂದ ನಿರ್ಮಿಸುವ ನಮ್ಮ ವಿಧಾನವನ್ನು ಮುಂದುವರೆಸಿದೆ.

ಪ್ರತಿ ಪ್ರಶ್ನೆಗೆ (ಕ್ವೆರಿ) ಅಗತ್ಯವಿರುವ ಅಂಶಗಳನ್ನು ಮಾತ್ರ ಓದಲು ಮತ್ತು ಡಿಕೋಡ್ ಮಾಡಲು Photon ಕಾಂಪ್ಯಾಕ್ಟ್ ಡೇಟಾ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಜೊತೆಗೆ ಡಿಸ್ಕ್ ಪ್ರವೇಶವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ವೇಟ್‌ಗಳನ್ನು ಅತಿವ್ಯಾಪಿಸಲು (overlap) ಬ್ಯಾಚ್-ಅವೇರ್ ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು ಅಸಿಂಕ್ರೊನಸ್ ರೀಡ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಇಂಡೆಕ್ಸ್ ಬಿಲ್ಡಿಂಗ್ ಎಂಬುದು ಪ್ರಶ್ನೆ ಪರಿಚಾರಣೆಯಿಂದ (query serving) ಪ್ರತ್ಯೇಕವಾಗಿ ರನ್ ಆಗುತ್ತದೆ, ಇದು ಏಕಕಾಲದಲ್ಲಿ ಒಂದು ಸರ್ವಿಂಗ್ ಗ್ರೂಪ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಲೈವ್ ಪ್ರಶ್ನೆಗಳನ್ನು ರೂಟ್ ಮಾಡುವ ಮೊದಲು ಅದರ ಕ್ಯಾಶ್‌ಗಳನ್ನು ವಾರ್ಮ್ ಮಾಡುತ್ತದೆ.

Photon ಈಗ ನಮ್ಮ ಸರ್ಚ್ ಪೈಪ್‌ಲೈನ್‌ಗೆ ಶಕ್ತಿ ನೀಡುತ್ತದೆ ಮತ್ತು ನಮ್ಮ Search APIಗೆ ಹೊಸ ಫಾಸ್ಟ್ ಪ್ರಿಸೆಟ್‌ನ ಅಡಿಪಾಯವೂ ಆಗಿದೆ, ಸಿಂಗಲ್-ಸರ್ಚ್-ಕಾಲ್ ಲೇಟೆನ್ಸಿ 160 ಮಿ.ಸೆ. p50 ನಲ್ಲಿ ಮತ್ತು 230 ಮಿ.ಸೆ. p95 ನಲ್ಲಿ. ಆರು ಸಾರ್ವಜನಿಕ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳಾದ್ಯಂತ, ಫಾಸ್ಟ್ ಪ್ರಿಸೆಟ್ ಡೀಫಾಲ್ಟ್ ಪ್ರಿಸೆಟ್‌ಗೆ ಸಮಾನವಾದ ಒಟ್ಟು ಕಾರ್ಯ ಗುಣಮಟ್ಟವನ್ನು ಕಾಪಾಡಿಕೊಂಡು ಪ್ರತಿ ಕಾರ್ಯಕ್ಕೆ ಅಂದಾಜಿತ ಮಾದರಿ+ಸರ್ಚ್ ವೆಚ್ಚವನ್ನು 68% ಕಡಿಮೆ ಮಾಡಿತು. ಡೆವಲಪರ್‌ಗಳು ಈ ಸುಧಾರಣೆಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ನಾವು ಇದನ್ನು ಇಂದು ಬಿಡುಗಡೆ ಮಾಡುತ್ತಿದ್ದೇವೆ.

ಸ್ವಯಂ-ವರದಿ ಮಾಡಿದ ಸಿಂಗಲ್-ಸರ್ಚ್-ಕಾಲ್ ಲೇಟೆನ್ಸಿ. PPLX Fast p50 ಲೇಟೆನ್ಸಿಯನ್ನು 160 ಮಿ.ಸೆ. ಮತ್ತು p95 ಅನ್ನು 230 ಮಿ.ಸೆ. ಎಂದು ವರದಿ ಮಾಡುತ್ತದೆ. Exa Instant ತನ್ನ high-tail ಮೌಲ್ಯಕ್ಕೆ p90 ಅನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ, p95 ಅನ್ನು ಅಲ್ಲ; Parallel‌ನ high-tail ಮೌಲ್ಯಗಳನ್ನು ಪ್ರಕಟಿಸಲಾಗಿಲ್ಲ. ವರದಿಯಾದ ಶತಕಾಂಶಗಳು ಮತ್ತು ಮಾಪನ ಸೆಟ್‌ಅಪ್‌ಗಳು ನಿಯಂತ್ರಿತ ಲೈಕ್-ಫಾರ್-ಲೈಕ್ ಹೋಲಿಕೆ ಅಲ್ಲ.
ಅದೇ 3,554 ಆಯ್ಕೆಮಾಡಿದ ಟಾಸ್ಕ್‌ಗಳಿಗಾಗಿ ಒಟ್ಟು ಟಾಸ್ಕ್ ಗುಣಮಟ್ಟ ವರ್ಸಸ್ ಅಂದಾಜು ಮಾಡಿದ ಒಟ್ಟು ಮಾಡೆಲ್-ಪ್ಲಸ್-ಸರ್ಚ್ ವೆಚ್ಚ. ಟಾಸ್ಕ್ ಎಣಿಕೆಯಿಂದ ಸ್ಕೋರ್‌ಗಳನ್ನು ತೂಕ ಮಾಡಲಾಗುತ್ತದೆ, ಮತ್ತು ವೆಚ್ಚಗಳು ಪೂರ್ಣ ಟಾಸ್ಕ್ ಸೆಟ್ ಅನ್ನು ಒಳಗೊಳ್ಳುತ್ತವೆ. PPLX Fast $59.73 ಕ್ಕೆ 64.3% ಸ್ಕೋರ್ ಮಾಡುತ್ತದೆ, ಡೀಫಾಲ್ಟ್ PPLX ಪ್ರಿಸೆಟ್‌ಗೆ $187.60 ಕ್ಕೆ 64.0% ಗೆ ಹೋಲಿಸಿದರೆ, ಅದೇ ಸಂಖ್ಯೆಯ ಟಾಸ್ಕ್‌ಗಳಿಗೆ ಸರಿಸುಮಾರು 68% ಕಡಿಮೆ ಅಂದಾಜು ವೆಚ್ಚ.

ಪುನರುದ್ಧರಣೆ ಮತ್ತು ಶ್ರೇಯಾಂಕ ಎಂಜಿನ್‌ಗೆ ಏನು ಬೇಕು

ಪ್ರತಿ ಪ್ರಶ್ನೆಗೆ, ರಿಟ್ರೈವಲ್ ಮತ್ತು ಶ್ರೇಯಾಂಕ ಎಂಜಿನ್ ಸರ್ಚ್ ಸ್ಟ್ಯಾಕ್‌ನ ಲ್ಯಾಟೆನ್ಸಿ ಬಜೆಟ್ ಒಳಗೆ ಸಣ್ಣ ಪ್ರಮಾಣದ ಸಂಬಂಧಿತ ಪುಟಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಮತ್ತು ಆದೇಶಿಸಲು ದೊಡ್ಡ, ವಿತರಿಸಿದ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಹುಡುಕುತ್ತದೆ. ಹೊಸ ಪುಟಗಳು ಬಂದಾಗ ಮತ್ತು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪುಟಗಳು ಬದಲಾದಾಗ ಸಿಸ್ಟಮ್ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ನವೀಕೃತವಾಗಿರಿಸಬೇಕು, ಆ ಕೆಲಸವು ಲೈವ್ ಪ್ರಶ್ನೆಗಳನ್ನು ನಿಧಾನಗೊಳಿಸಲು ಬಿಡಬಾರದು.

ನಾವು ಹಲವಾರು ಓಪನ್ ಸೋರ್ಸ್ ಆಯ್ಕೆಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದ್ದೇವೆ ಮತ್ತು ನಮ್ಮ ಆರಂಭಿಕ ಅಗತ್ಯಗಳನ್ನು ಪೂರೈಸುವ ಪರಿಪೂರ್ಣವಾದ, ಸಾಮಾನ್ಯ ಉದ್ದೇಶದ ಪುನರುದ್ಧರಣೆ ಮತ್ತು ಶ್ರೇಯಾಂಕ ಎಂಜಿನ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇವೆ. ನಂತರ ನಾವು ಅದನ್ನು ನಮ್ಮ ಆರ್ಕಿಟೆಕ್ಚರ್ ಮತ್ತು ವರ್ಕ್‌ಲೋಡ್‌ಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವಂತೆ ಮಾಡಿದ್ದೇವೆ, ಪ್ರೊಡಕ್ಷನ್ ಸ್ಕೇಲ್‌ನಲ್ಲಿ ಸ್ಥಿರವಾದ ಲ್ಯಾಟೆನ್ಸಿ ಮತ್ತು ಥ್ರೋಪುಟ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತೇವೆ.

ನಮ್ಮ ಹಿಂದಿನ ಸಿಸ್ಟಮ್ ಎಲ್ಲಿ ವಿಫಲವಾಯಿತು

ನಮ್ಮ ಬೆಳೆಯುತ್ತಿರುವ ಇಂಡೆಕ್ಸ್‌ಗೆ ಎಂಜಿನ್ ಅನ್ನು ಹೊಂದಿಸಲು ನಾವು ನಮ್ಮದೇ ಆದ ಫೋರ್ಕ್ ಅನ್ನು ನಿರ್ವಹಿಸಿದ್ದೇವೆ, ಆದರೆ ಪ್ರಮುಖ ಮಿತಿಗಳನ್ನು ಪರಿಹರಿಸಲು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನ ದೊಡ್ಡ ಭಾಗಗಳನ್ನು ಮರುರೂಪಿಸುವ ಅಗತ್ಯವಿತ್ತು. ಮೂಲಭೂತ ವಾಸ್ತುಶಿಲ್ಪದ ಬದಲಾವಣೆಗಳಿಲ್ಲದೆ ಹಲವಾರು ತಡೆಗಳನ್ನು ಪರಿಹರಿಸುವುದು ಕಷ್ಟಕರವೆಂದು ಸಾಬೀತಾಯಿತು:

1. ಸ್ಕೇಲಿಂಗ್ ವೆಚ್ಚಗಳು. ನಾವು ಸಂಗ್ರಹಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ನಾವು ಹಿಂಪಡೆಯಲು ಮತ್ತು ಶ್ರೇಣೀಕರಿಸಲು ಅಗತ್ಯವಿರುವ ಪ್ರತಿ-ಡಾಕ್ಯುಮೆಂಟ್ ಡೇಟಾದ ಪ್ರಮಾಣ ಎರಡೂ ಕಾಲಾನಂತರದಲ್ಲಿ ಬೆಳೆಯುತ್ತಿವೆ. ಈ ಸ್ಕೇಲಿಂಗ್ ನಮ್ಮ ಹಾರ್ಡ್‌ವೇರ್‌ ಮೇಲೆ ಒತ್ತಡವನ್ನುಂಟುಮಾಡಿತು, ವಿಶೇಷವಾಗಿ ಲಭ್ಯವಿರುವ RAM ಪ್ರಮಾಣ. ವೆಚ್ಚವನ್ನು ನಿಯಂತ್ರಿಸಲು, ನಮಗೆ ಹೆಚ್ಚು ಕಾಂಪ್ಯಾಕ್ಟ್ ಡೇಟಾ ನಿರೂಪಣೆಗಳು ಮತ್ತು ಮೆಮೊರಿಯಲ್ಲಿ ಏನು ಉಳಿಯುತ್ತದೆ ಮತ್ತು ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ಡಿಸ್ಕ್‌ನಿಂದ ಏನು ಓದಲಾಗುತ್ತದೆ ಎಂಬುದರ ಮೇಲೆ ಉತ್ತಮ ನಿಯಂತ್ರಣದ ಅಗತ್ಯವಿತ್ತು.

2. ಕಳಪೆ ಟೇಲ್ ಲ್ಯಾಟೆನ್ಸಿ. ಪ್ರೊಡಕ್ಷನ್ ಟ್ರಾಫಿಕ್‌ನಲ್ಲಿ, ಹಳೆಯ ಸಿಸ್ಟಮ್‌ನ p99 ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವು ಸುಮಾರು 800 ms ಆಗಿತ್ತು. ಡೇಟಾಸೆಟ್ ಲಭ್ಯವಿರುವ RAM ಅನ್ನು ಮೀರಿದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಮೆಮೊರಿಯಲ್ಲಿಡಲು ನಮಗೆ mlock ಬಳಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ರೆಸಿಡೆಂಟ್ ಅಲ್ಲದ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸುವುದರಿಂದ ಪ್ರಮುಖ ಪುಟ ದೋಷಗಳು (page faults) ಉಂಟಾಗಬಹುದು, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಡಿಸ್ಕ್‌ನಿಂದ ಓದುವಾಗ ಪ್ರಶ್ನೆ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ.

ಎಂಜಿನ್ ನಿಯತ್ತಾಗಿ ತನ್ನ ಮುಖ್ಯ ಡಿಸ್ಕ್ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಮೆಮೊರಿಯಿಂದ ಫ್ಲಶ್ ಮಾಡಲಾದ ಸಣ್ಣ ಇಂಡೆಕ್ಸ್‌ಗಳೊಂದಿಗೆ ವಿಲೀನಗೊಳಿಸಿತು. ಈ ಡಿಸ್ಕ್ ಇಂಡೆಕ್ಸ್ ಫ್ಯೂಷನ್ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ, ಪುಟ ದೋಷಗಳ (page faults) ಸಂಖ್ಯೆಯು ಇನ್ನಷ್ಟು ಹೆಚ್ಚಾಯಿತು, 10–15 ನಿಮಿಷಗಳಿಗೆ p99 ಲ್ಯಾಟೆನ್ಸಿಯು ಸರಿಸುಮಾರು 1.2 s ತಲುಪಿತು. ಕ್ಯಾಶ್‌ಗಳು ವಾರ್ಮ್ ಅಪ್ ಆದಂತೆ, ಪುಟ ದೋಷಗಳ ಆವರ್ತನ ಮತ್ತು ಲ್ಯಾಟೆನ್ಸಿ ಎರಡೂ ಕಡಿಮೆಯಾದವು, ಕೋಲ್ಡ್ ರೀಡ್‌ಗಳು ಸ್ಪೈಕ್‌ಗಳಿಗೆ ಪ್ರಮುಖ ಕಾರಣವೆಂದು ಇದು ಸೂಚಿಸುತ್ತದೆ. ಡೇಟಾವನ್ನು ಪ್ರೆಲೋಡ್ ಮಾಡುವುದು ಮತ್ತು ಇಂಡೆಕ್ಸ್ ಅನ್ನು ವಾರ್ಮ್ ಮಾಡುವುದು ಸ್ಪೈಕ್‌ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿತು ಆದರೆ ಹೆಚ್ಚಿನ ಟೇಲ್ ಲ್ಯಾಟೆನ್ಸಿಯನ್ನು ಸಮರ್ಪಕವಾಗಿ ಪರಿಹರಿಸಲಿಲ್ಲ.

3. ದೀರ್ಘ ಚೇತರಿಕೆ ಮತ್ತು ಸಿಂಕ್ರೊನೈಸೇಶನ್. ಹಿಂದಿನ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ, ಹೆಚ್ಚುವರಿ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ನಿಯೋಜಿಸುವುದು ಮತ್ತು ಅದರ ಡೇಟಾವನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡುವುದು ಒಂದು ವಾರಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಹೆಚ್ಚುವರಿ ಡೇಟಾ ಪ್ರತಿಗಳನ್ನು ಹಿಡಿದಿಡಲು ನೋಡ್‌ಗಳ ಗುಂಪುಗಳನ್ನು ಸೇರಿಸುವಾಗ ಅಥವಾ ನೋಡ್ ವೈಫಲ್ಯಗಳಿಂದ ಚೇತರಿಸಿಕೊಳ್ಳುವಾಗಲೂ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಅಗತ್ಯವಿತ್ತು. ಚೇತರಿಕೆಯ ಸಮಯದಲ್ಲಿ, ಹುಡುಕಾಟ ಪ್ರತಿಕ್ರಿಯೆಗಳ ದೊಡ್ಡ ಪಾಲು ಭಾಗಶಃ ಆಗಿತ್ತು, ಇದು ಅಂತಿಮ-ಉತ್ತರ ಗುಣಮಟ್ಟದ ಸ್ಕೋರ್‌ಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಿತು.

ಅಂತಿಮವಾಗಿ, ನಮ್ಮ ಫೋರ್ಕ್ ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವುದನ್ನು ಮುಂದುವರಿಸುವುದಕ್ಕಿಂತ ಶೂನ್ಯದಿಂದಲೇ ನಿರ್ಮಿಸುವುದು ಸರಳ ಮತ್ತು ಅಗ್ಗವಾಗಿದೆ ಎಂದು ನಾವು ತೀರ್ಮಾನಿಸಿದೆವು. ಹಿಂದಿನ ಸಿಸ್ಟಮ್ ಅನ್ನು ನಿರ್ವಹಿಸಿದ ನಮ್ಮ ಅನುಭವವನ್ನು ಆಧರಿಸಿ, ಒಂದು ಸಣ್ಣ ಎಂಜಿನಿಯರಿಂಗ್ ಟೀಮ್ ನಿರಂತರ ಕೋಡಿಂಗ್ ಏಜೆಂಟ್ಗಳ ಸಮೂಹದೊಂದಿಗೆ ಸೇರಿ Photon ಅನ್ನು ನಿರ್ಮಿಸಿತು.

ಸರ್ಚ್ ಸ್ಟ್ಯಾಕ್‌ನಲ್ಲಿ Photon ಎಲ್ಲಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ

Photon ಅನ್ನು ಎರಡು ಪ್ರಾಥಮಿಕ ಕಾರ್ಯಪ್ರವಾಹಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ: ಹುಡುಕಾಟ ವಿನಂತಿಗಳಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವುದು ಮತ್ತು ಪ್ರೊಸೆಸಿಂಗ್ ಪೈಪ್‌ಲೈನ್‌ನಿಂದ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಇಂಜೆಸ್ಟ್ ಮಾಡುವುದು.

ಉನ್ನತ ಮಟ್ಟದ ಸರ್ಚ್ ಸೇವೆಯಿಂದ ಬರುವ ವಿನಂತಿಯು ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಮೂಲಕ Photon ಬ್ರೋಕರ್‌ ತಲುಪುತ್ತದೆ. ಬ್ರೋಕರ್ ಶಾರ್ಡ್ ಗ್ರೂಪ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಶಾರ್ಡ್‌ಗೆ ವಿನಂತಿಯನ್ನು ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತದೆ, ಸಮಯ ಮುಕ್ತಾಯಗಳನ್ನು (timeouts) ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅಗತ್ಯವಿದ್ದಾಗ ಹೆಚ್ಚುವರಿ ವಿನಂತಿಗಳನ್ನು ನೀಡುತ್ತದೆ.

ಪ್ರತಿ ಶಾರ್ಡ್ ರಿಟ್ರೈವಲ್, ಆರಂಭಿಕ ಶ್ರೇಯಾಂಕ ಮತ್ತು ಎರಡನೇ ಹಂತದ ಶ್ರೇಯಾಂಕವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ನಂತರ ಅದರ ಅತ್ಯುತ್ತಮ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಬ್ರೋಕರ್‌ಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಬ್ರೋಕರ್ ಈ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಒಂದೇ ಶ್ರೇಣಿಯ ಪಟ್ಟಿಯಾಗಿ ಸಂಯೋಜಿಸುತ್ತದೆ ಮತ್ತು ಸಂಬಂಧಿತ ಶಾರ್ಡ್‌ಗಳಿಂದ ಆಯ್ಕೆಮಾಡಿದ ಪುಟಗಳಿಗೆ ಪ್ರಮುಖ ಡಾಕ್ಯುಮೆಂಟ್ ಕ್ಷೇತ್ರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ. ನಂತರ ಅದು ಈ ಫಲಿತಾಂಶಗಳನ್ನು ಉನ್ನತ ಮಟ್ಟದ ಹುಡುಕಾಟ ಸೇವೆಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ಇದು ಏಜೆಂಟ್ ಆಧಾರಿತ ಉತ್ತರವನ್ನು ಉತ್ಪಾದಿಸಲು ಅಗತ್ಯವಾದ ಪುಟ ವಿಷಯವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.

ಇಂಡೆಕ್ಸ್ ಅಪ್‌ಡೇಟ್‌ಗಳು ಪ್ರತ್ಯೇಕ ಮಾರ್ಗವನ್ನು ಅನುಸರಿಸುತ್ತವೆ. ನಮ್ಮ ಪ್ರಕಾಶನ ಪದರವಾದ Pillar, ಡೇಟಾವನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು YTsaurus ಟೇಬಲ್‌ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಇಂಡೆಸರ್‌ಗಳು ಈ ಟೇಬಲ್‌ಗಳನ್ನು ಇಂಡೆಕ್ಸ್ ರಚನೆಗಳಾಗಿ ಪರಿವರ್ತಿಸುತ್ತವೆ ಅದನ್ನು ಶಾರ್ಡ್‌ಗಳು ಹುಡುಕಾಟಕ್ಕಾಗಿ ಲೋಡ್ ಮಾಡಬಹುದು. ಕಂಟ್ರೋಲರ್ ಡೇಟಾ ತಯಾರಿ, ಇಂಡೆಕ್ಸ್ ಬಿಲ್ಡಿಂಗ್ ಮತ್ತು ಸರ್ವಿಂಗ್ ಗ್ರೂಪ್‌ಗಳಿಗೆ ಹೊಸ ಇಂಡೆಕ್ಸ್ ಆವೃತ್ತಿಗಳ ನಿಯೋಜನೆಯನ್ನು ಸಂಘಟಿಸುತ್ತದೆ. ಲೈವ್ ಟ್ರಾಫಿಕ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಮೊದಲು, ಪ್ರತಿ ಶಾರ್ಡ್ ತನ್ನ ಕ್ಯಾಶ್‌ಗಳನ್ನು ವಾರ್ಮ್ ಮಾಡಲು ನೈಜ ಹುಡುಕಾಟ ಪ್ರಶ್ನೆಗಳನ್ನು ರೀಪ್ಲೇ ಮಾಡುತ್ತದೆ.

ಪ್ರಶ್ನೆಯು ಉನ್ನತ ಮಟ್ಟದ ಸರ್ಚ್ ಸೇವೆಯಿಂದ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ ಮತ್ತು ಬ್ರೋಕರ್ ಮೂಲಕ ಆಯ್ಕೆಮಾಡಿದ ಶಾರ್ಡ್ ಗ್ರೂಪ್‌ಗೆ ಚಲಿಸುತ್ತದೆ. ಪ್ರತಿ ಶಾರ್ಡ್ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ ಮತ್ತು ಶ್ರೇಣೀಕರಿಸುತ್ತದೆ; ಬ್ರೋಕರ್ ಫಲಿತಾಂಶಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುತ್ತದೆ, ಆಯ್ಕೆಮಾಡಿದ ಪುಟಗಳಿಗೆ ಡಾಕ್ಯುಮೆಂಟ್ ಕ್ಷೇತ್ರಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಉನ್ನತ ಮಟ್ಟದ ಸರ್ಚ್ ಸೇವೆಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಸಂಖ್ಯೆಯ ಹಂತಗಳು ಕ್ರಮವನ್ನು ತೋರಿಸುತ್ತವೆ. ಸಾಲಿಡ್ ಬಾಣಗಳು ವಿನಂತಿಗಳನ್ನು ಸಾಗಿಸುತ್ತವೆ, ಮತ್ತು ಡ್ಯಾಶ್ ಮಾಡಿದ ಬಾಣಗಳು ಫಲಿತಾಂಶಗಳನ್ನು ಹಿಂದಕ್ಕೆ ಸಾಗಿಸುತ್ತವೆ. ಎಡಭಾಗದ ಹಂತದ ಲೇಬಲ್‌ಗಳು ಕ್ಯಾಂಡಿಡೆಟ್ ಆಯ್ಕೆಯನ್ನು ಸಮ್ಮರಿ ರೀಡ್‌ಗಳಿಂದ ಪ್ರತ್ಯೇಕಿಸುತ್ತವೆ.

ನಮ್ಮ ಕಾರ್ಯಪ್ರವಾಹಗಳಿಗಾಗಿ Photon ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವುದು

ಮೂರು ವಿನ್ಯಾಸ ಆಯ್ಕೆಗಳು Photon ಅನ್ನು ನಮ್ಮ ವರ್ಕ್‌ಲೋಡ್‌ಗೆ ಸೂಕ್ತವಾಗಿಸುತ್ತವೆ: ಕಾಂಪ್ಯಾಕ್ಟ್ ಡೇಟಾ ನಿರೂಪಣೆಗಳು, ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು ಅಸಿಂಕ್ರೊನಸ್ ಡಿಸ್ಕ್ ರೀಡ್‌ಗಳು, ಮತ್ತು ಪ್ರಶ್ನೆ ಪರಿಚಾರಣೆಯಿಂದ ಇಂಡೆಕ್ಸ್ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸುವುದು.

ಪುನರುದ್ಧರಣೆ (retrieval) ಮತ್ತು ಶ್ರೇಯಾಂಕಕ್ಕಾಗಿ ಡೇಟಾ ನಿರೂಪಣೆಗಳು

ಪುನರುದ್ಧರಣೆ (retrieval) ಮತ್ತು ಶ್ರೇಯಾಂಕವು ಡಾಕ್ಯುಮೆಂಟ್ ಡೇಟಾವನ್ನು ವಿಭಿನ್ನವಾಗಿ ಪ್ರವೇಶಿಸುತ್ತದೆ. ಲೆಕ್ಸಿಕಲ್ ರಿಟ್ರೈವಲ್ ಪ್ರಶ್ನಾ ಪದಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ. ನಂತರ ಶ್ರೇಯಾಂಕಕ್ಕೆ ಪದಗಳ ಆವರ್ತನಗಳು ಮತ್ತು ಸ್ಥಾನಗಳು ಸೇರಿದಂತೆ ಪ್ರತಿ ಆಯ್ಕೆಮಾಡಿದ ಡಾಕ್ಯುಮೆಂಟ್ ಕುರಿತು ವಿವರವಾದ ಮಾಹಿತಿಯ ಅಗತ್ಯವಿರುತ್ತದೆ.

ಈ ಪ್ರವೇಶ ಮಾದರಿಗಳನ್ನು ಬೆಂಬಲಿಸಲು Photon ಎರಡು ಪೂರಕ ಪ್ರಾತಿನಿಧ್ಯಗಳನ್ನು ಬಳಸುತ್ತದೆ. ವಿಲೋಮ ಇಂಡೆಕ್ಸ್ ಪ್ರತಿ ಪದಕ್ಕೆ ಹೊಂದಾಣಿಕೆಯ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಇದನ್ನು ಪೋಸ್ಟಿಂಗ್ ಪಟ್ಟಿ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇದು ಕ್ಯಾಂಡಿಡೆಟ್ ಆಯ್ಕೆಯನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಪ್ರತ್ಯೇಕ ಪ್ರತಿ-ಡಾಕ್ಯುಮೆಂಟ್ ರೆಕಾರ್ಡ್‌ಗಳು ಶ್ರೇಯಾಂಕಕ್ಕೆ ಅಗತ್ಯವಿರುವ ಡೇಟಾವನ್ನು ಒದಗಿಸುತ್ತವೆ. ನಿಗದಿತ ಕೆಲಸದ ಬಜೆಟ್ ಒಳಗೆ ಆಯ್ಕೆಯನ್ನು ಸುಧಾರಿಸಲು ಪೋಸ್ಟಿಂಗ್ ಪಟ್ಟಿಗಳನ್ನು ಹೇಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಟ್ರಾವರ್ಸ್ ಮಾಡಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಸಹ ನಾವು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುತ್ತೇವೆ.

ವಿಶೇಷವಾದ ಡೇಟಾ ನಿರೂಪಣೆಗಳು ಪ್ರಮುಖ ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಸಂಗ್ರಹಿಸಲು ನಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಹೆಚ್ಚು ಕಾಂಪ್ಯಾಕ್ಟ್ ಆದ ವಿಲೋಮ ಇಂಡೆಕ್ಸ್ ಪ್ರತಿ ಪ್ರಶ್ನೆಗೆ ಓದಲಾದ ಅಥವಾ ಸರಿಸಲಾದ ಡೇಟಾದ ಪ್ರಮಾಣವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ಅನಗತ್ಯ I/O ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಲ್ಯಾಟೆನ್ಸಿಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಈ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಡಿಕೋಡ್ ಮಾಡದೆ ಪಟ್ಟಿಯಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದನ್ನು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಸ್ಥಿರ ಬಜೆಟ್ ಅಡಿಯಲ್ಲಿ ಪ್ರಶ್ನೆಯು ಎಷ್ಟು ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು ನಮ್ಮ ಟ್ರಾವರ್ಸಲ್ ಲಾಜಿಕ್ ಅವಲಂಬಿಸಿರುವ ಆಸ್ತಿಯಾಗಿದೆ. ಪ್ರತಿ-ಡಾಕ್ಯುಮೆಂಟ್ ರೆಕಾರ್ಡ್‌ಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದರಿಂದ ಶ್ರೇಯಾಂಕಕ್ಕಾಗಿ ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಜೊತೆಗೆ ನಮ್ಮ ಹಿಂದಿನ ಸಿಸ್ಟಮ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ಸ್ಕೇಲಿಂಗ್ ವೆಚ್ಚಗಳನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

ವಿಲೋಮ ಇಂಡೆಕ್ಸ್ (Inverted index)

ಪ್ರತಿ ಪದಕ್ಕೆ, ವಿಲೋಮ ಇಂಡೆಕ್ಸ್ ಒಂದು ಪೋಸ್ಟಿಂಗ್ ಪಟ್ಟಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಈ ಪಟ್ಟಿಗಳು ಕೆಲವೇ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಿಂದ ಲಕ್ಷಾಂತರ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳವರೆಗೆ ಇರಬಹುದು, ಆದ್ದರಿಂದ ಯಾವುದೇ ಒಂದೇ ಫಾರ್ಮ್ಯಾಟ್ ಪ್ರತಿ ಪಟ್ಟಿಗೆ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ಪದವನ್ನು ಒಳಗೊಂಡಿರುವ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳ ಸಂಖ್ಯೆಯ ಆಧಾರದ ಮೇಲೆ Photon ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತದೆ.

ಸಣ್ಣ ಪಟ್ಟಿಗಳು ಒಂದೇ ಪುಟದೊಳಗೆ ಹೊಂದಿಕೊಳ್ಳುವ ಮತ್ತು ಯಾವುದೇ ಬ್ಲಾಕ್ ಟೇಬಲ್ ಅಗತ್ಯವಿಲ್ಲದ ಇನ್‌ಲೈನ್ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಬಳಸುತ್ತವೆ. ಇನ್‌ಲೈನ್ ಫಾರ್ಮ್ಯಾಟ್‌ಗೆ ಹೊಂದಿಕೊಳ್ಳದ ಉದ್ದವಾದ ಪಟ್ಟಿಗಳನ್ನು ಡಾಕ್ಯುಮೆಂಟ್ ಐಡೆಂಟಿಫೈಯರ್‌ಗಳ ನಿಗದಿತ ಶ್ರೇಣಿಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಬ್ಲಾಕ್‌ಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ. ಪ್ರತಿ ಬ್ಲಾಕ್‌ನ ಪ್ರಾತಿನಿಧ್ಯವು ಅದರ ಸಾಂದ್ರತೆಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ: ಸ್ಪಾರ್ಸ್ ಬ್ಲಾಕ್‌ಗಳು ಡಾಕ್ಯುಮೆಂಟ್-ID ಆಫ್‌ಸೆಟ್‌ಗಳ ವಿಂಗಡಿಸಲಾದ ಅರೇಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತವೆ, ಆದರೆ ಡೆನ್ಸ್ ಬ್ಲಾಕ್‌ಗಳು ಬಿಟ್‌ಮ್ಯಾಪ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಸ್ಪಾರ್ಸ್ ಬ್ಲಾಕ್‌ಗಳು ಗ್ಯಾಲಪಿಂಗ್ ಸರ್ಚ್ ಅನ್ನು ಬಳಸುತ್ತವೆ, ಇದು ಪಟ್ಟಿಯ ಪ್ರದೇಶಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲು ದೊಡ್ಡದಾಗುತ್ತಿರುವ ಹಂತಗಳಲ್ಲಿ ಮುಂದುವರಿಯುತ್ತದೆ. ಡೆನ್ಸ್ ಬ್ಲಾಕ್‌ಗಳು ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ ಅನುಗುಣವಾದ ಬಿಟ್ ಅನ್ನು ಲುಕಪ್ ಮಾಡುವ ಮೂಲಕ ಸದಸ್ಯತ್ವ ಪರಿಶೀಲನೆಗಳನ್ನು ಅನುಮತಿಸುತ್ತವೆ.

ಒಂದು ಪದದ ಪ್ರಶ್ನೆ ಆವರ್ತನವು ಅದರ ಪೋಸ್ಟಿಂಗ್ ಪಟ್ಟಿಯನ್ನು ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಎಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಆಗಾಗ್ಗೆ ಪ್ರಶ್ನಿಸಲಾದ ಪಟ್ಟಿಗಳನ್ನು ಪರಸ್ಪರ ಹತ್ತಿರದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಇದು ಹಾಟ್ ಡೇಟಾವನ್ನು ಸಣ್ಣ ಶೇಖರಣಾ ಪ್ರದೇಶದಲ್ಲಿ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ. ಪ್ರತಿ ಪಟ್ಟಿಯೊಳಗೆ, ಹೆಚ್ಚು ಭರವಸೆಯ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಎದುರಿಸಲು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಉಪಯುಕ್ತತೆಯ ಸಿಗ್ನಲ್ ಮೂಲಕ ಆದೇಶಿಸಲಾಗುತ್ತದೆ.

Photon ಉದ್ದ ಮತ್ತು ಬ್ಲಾಕ್ ಸಾಂದ್ರತೆಯ ಮೂಲಕ ಪೋಸ್ಟಿಂಗ್-ಪಟ್ಟಿ ಪ್ರಾತಿನಿಧ್ಯವನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತದೆ. ಸಣ್ಣ ಪಟ್ಟಿಗಳು ಪುಟದೊಳಗೆ ಇನ್‌ಲೈನ್ ಆಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತವೆ. ಉದ್ದವಾದ ಪಟ್ಟಿಗಳನ್ನು ನಿಗದಿತ ಡಾಕ್ಯುಮೆಂಟ್-ID ಶ್ರೇಣಿಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ, ಸ್ಪಾರ್ಸ್ ಬ್ಲಾಕ್‌ಗಳಿಗಾಗಿ ವಿಂಗಡಿಸಲಾದ ಆಫ್‌ಸೆಟ್ ಅರೇಗಳು ಮತ್ತು ಡೆನ್ಸ್ ಬ್ಲಾಕ್‌ಗಳಿಗಾಗಿ ಬಿಟ್‌ಮ್ಯಾಪ್‌ಗಳೊಂದಿಗೆ.

ಕೆಲಸದ ಬಜೆಟ್ ಒಳಗೆ ಪಟ್ಟಿಗಳನ್ನು ಟ್ರಾವರ್ಸ್ ಮಾಡುವುದು

ಸಂಭವನೀಯ ಸಂಬಂಧಿತ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಹುಡುಕಲು ಕ್ಯಾಂಡಿಡೆಟ್ ಆಯ್ವೆಗೆ ಪೋಸ್ಟಿಂಗ್ ಪಟ್ಟಿಗಳನ್ನು ಟ್ರಾವರ್ಸ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ. ಪ್ರತಿಯೊಂದು ಪಟ್ಟಿಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡುವುದು ದುಬಾರಿಯಾಗಿದೆ, ಆದ್ದರಿಂದ Photon WAND ತರಹದ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಬಳಸುತ್ತದೆ ಅದು ಇತರವುಗಳಲ್ಲಿನ ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಲೆಕ್ಕಹಾಕುವಾಗ ಕೆಲವು ಪಟ್ಟಿಗಳನ್ನು ಮಾತ್ರ ಟ್ರಾವರ್ಸ್ ಮಾಡುತ್ತದೆ.

ಅಲ್ಗಾರಿದಮ್ ಪಟ್ಟಿಗಳನ್ನು ಎರಡು ಗುಂಪುಗಳಾಗಿ ವಿಂಗಡಿಸುತ್ತದೆ. ಡ್ರೈವಿಂಗ್ ಪಟ್ಟಿಗಳು ಟ್ರಾವರ್ಸಲ್ ಅನ್ನು ಮುನ್ನಡೆಸುತ್ತವೆ ಮತ್ತು ಕ್ಯಾಂಡಿಡೆಟ್ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸುತ್ತವೆ. ಪ್ರೋಬ್ ಪಟ್ಟಿಗಳು ಆ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳ ಸ್ಕೋರ್‌ಗಳಿಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತವೆ ಆದರೆ ತಮ್ಮಷ್ಟಕ್ಕೆ ತಾವೇ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುವುದಿಲ್ಲ.

ಅಭ್ಯರ್ಥಿಗಳಿಗೆ ಅಂಕ ನೀಡುವಾಗ, ಹುಡುಕಾಟ ಪದಗಳ ವ್ಯಾಪ್ತಿಗೆ ನೀಡಲಾದ ತೂಕ ಮತ್ತು ಅವುಗಳ ಆವರ್ತನದ ಕೊಡುಗೆಯನ್ನು ಸಂಯೋಜಿಸಲಾಗುತ್ತದೆ. ಜೊತೆಗೆ, ದಸ್ತಾವೇಜಿನ ಉದ್ದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಅಂಕಗಳನ್ನು ಸರಿಹೊಂದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪುನರಾವರ್ತಿತ ಪದಗಳಿಂದ ಸಿಗುವ ಹೆಚ್ಚುವರಿ ಅಂಕಗಳಿಗೆ ಮಿತಿ ವಿಧಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಅಭ್ಯರ್ಥಿಯ ಗರಿಷ್ಠ ಸಂಭವನೀಯ ಅಂಕಕ್ಕೆ ಮಿತಿ ನಿಗದಿಪಡಿಸಲು Photon ಮೊದಲು ಅರೇಗಳು ಮತ್ತು ಬಿಟ್‌ಮ್ಯಾಪ್‌ಗಳಲ್ಲಿ ಪದಗಳ ಉಪಸ್ಥಿತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಆಯ್ಕೆಯ ಮಿತಿಯನ್ನು ಇನ್ನೂ ತಲುಪಬಹುದಾದ ಅಭ್ಯರ್ಥಿಗಳಿಗೆ ಮಾತ್ರ ಪದಗಳ ನಿಖರ ಆವರ್ತನಗಳನ್ನು ಓದುತ್ತದೆ.

ಆಯ್ಕೆಯು ಮೂರು ಹಂತಗಳಲ್ಲಿ ಮುಂದುವರಿಯುತ್ತದೆ:

  • ಟ್ರಾವರ್ಸಲ್: ಕಠಿಣ ಪ್ರಶ್ನೆ-ಕವರೇಜ್ ಅವಶ್ಯಕತೆಯೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ. ತೀರಾ ಕಡಿಮೆ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳು ಕಂಡುಬಂದರೆ, ಸಡಿಲವಾದ ಅವಶ್ಯಕತೆಯೊಂದಿಗೆ ಪುನರಾವರ್ತಿಸಿ.
  • ಉಳಿಸಿಕೊಳ್ಳುವಿಕೆ (Retention): ಕವರೇಜ್ ಮತ್ತು ಆವರ್ತನವನ್ನು ಸಂಯೋಜಿಸುವ ಸ್ಕೋರ್ ಬಳಸಿ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಬೌಂಡೆಡ್ ಸೆಟ್‌ನಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ. ಸಂಗ್ರಹಿಸಿದ ಟಾಪ್ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳು ಸುಧಾರಿಸಿದಂತೆ, ಪ್ರವೇಶ ಮಿತಿಯು ಏರುತ್ತದೆ.
  • ಅಂತಿಮ ಆಯ್ಕೆ: ಆವರ್ತನ ಸ್ಕೋರ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಉಳಿಸಿಕೊಂಡ ಸೆಟ್‌ನಿಂದ ಪಾಸ್‌ಗಾಗಿ ಅಂತಿಮ ಫಲಿತಾಂಶಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಕ್ಷೇತ್ರವು ತನ್ನದೇ ಆದ ಪಾಸ್ ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಕ್ಷೇತ್ರ ತೂಕಗಳನ್ನು ಬಳಸಿ ಫಲಿತಾಂಶಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಅಲ್ಗಾರಿದಮ್ ಹೆಚ್ಚಿನ ಶ್ರೇಯಾಂಕದಲ್ಲಿ ಬಳಸಲು ಸಂಬಂಧಿತ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳ ಕ್ಯಾಂಡಿಡೆಟ್ ಸೆಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.

ವಿವರಣಾತ್ಮಕ ಬೌಂಡೆಡ್ ಕ್ಯಾಂಡಿಡೆಟ್ ಟ್ರಾವರ್ಸಲ್. ಡ್ರೈವಿಂಗ್ ಪಟ್ಟಿಗಳು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸುತ್ತವೆ, ಆದರೆ ಮೇಲಿನ ಮಿತಿಗಳು ಪ್ರಸ್ತುತ ಪ್ರವೇಶ ಮಿತಿಗಿಂತ ಕಡಿಮೆ ಇರುವ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳನ್ನು ಪ್ರೋಬ್ ಪಟ್ಟಿಗಳು ಅಥವಾ ನಿಖರವಾದ ಆವರ್ತನಗಳನ್ನು ಓದದೆ ಕಟಾವು ಮಾಡಲು (prune) ಅನುಮತಿಸುತ್ತದೆ. ಉಳಿಸಿಕೊಂಡ ಸೆಟ್ ಸುಧಾರಿಸಿದಂತೆ ಮಿತಿಯು ಏರುತ್ತದೆ. ವಿವರಣೆಗಾಗಿ ಸ್ಕೋರ್‌ಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಿದೆ, ಮತ್ತು ಉಳಿಸಿಕೊಂಡ ಕ್ಯಾಂಡಿಡೆಟ್‌ಗಳು ಖಾತರಿಯ ನಿಖರವಾದ ಟಾಪ್-ಕೆ ಅಲ್ಲ.

Docblob

ಕ್ಯಾಂಡಿಡೆಟ್ ಪುಟಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ ನಂತರ, ಶ್ರೇಯಾಂಕ ಹಂತಕ್ಕೆ ಪದ ಆವರ್ತನಗಳು, ಕ್ಷೇತ್ರ ಕವರೇಜ್, ಮತ್ತು ಘಟನೆಗಳ ಸ್ಥಳಗಳು ಮತ್ತು ಸಾಮೀಪ್ಯದ ಅಗತ್ಯವಿರುತ್ತದೆ. ವಿಲೋಮ ಇಂಡೆಕ್ಸ್ ಮೂಲಕ ಈ ಡೇಟಾವನ್ನು ಪಡೆಯಲು ಅನೇಕ ಪದ-ಡಾಕ್ಯುಮೆಂಟ್ ಜೋಡಿಗಳಾದ್ಯಂತ ಚದುರಿದ ಪ್ರವೇಶಗಳ ಅಗತ್ಯವಿರುತ್ತದೆ. Photon ನಲ್ಲಿ, ನಾವು docblob ಎಂಬ ಕಾಂಪ್ಯಾಕ್ಟ್ ಪ್ರತಿ-ಡಾಕ್ಯುಮೆಂಟ್ ರೆಕಾರ್ಡ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುತ್ತೇವೆ ಅದು ಪದ ಆವರ್ತನಗಳು, ಪದವು ಯಾವ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಕಾಣಿಸಿಕೊಂಡಿದೆ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್‌ನಲ್ಲಿ ಎಲ್ಲಿ ಸಂಭವಿಸಿದೆ ಎಂಬುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಪರಿಣಾಮವಾಗಿ, ಕ್ಯಾಂಡಿಡೆಟ್‌ಗೆ ಶ್ರೇಯಾಂಕ ನೀಡಲು ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ ಕೇವಲ ಒಂದು ಲುಕಪ್ ಮಾತ್ರ ಬೇಕಾಗುತ್ತದೆ.

ಅಗತ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಡಿಕೋಡ್ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಲು ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ನಿರ್ಮಿಸಲಾಗಿದೆ. docblob ಒಳಗೆ, ಕ್ಷೇತ್ರಗಳನ್ನು ಪಠ್ಯ ವಿಶ್ಲೇಷಕದಿಂದ (text analyzer) ಗುಂಪು ಮಾಡಲಾಗಿದೆ. ಪ್ರತಿ ಗುಂಪು Elias-Fano ನೊಂದಿಗೆ ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ವಿಂಗಡಿಸಲಾದ ಪದಗಳ ಪಟ್ಟಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಇದರಿಂದ ಸಂಪೂರ್ಣ ಪಟ್ಟಿಯನ್ನು ವಿಸ್ತರಿಸದೆ ಪ್ರಶ್ನಾ ಪದವನ್ನು ನೇರವಾಗಿ ಲುಕಪ್ ಮಾಡಬಹುದು. ಒಂದು ಫೀಲ್ಡ್ ಮಾಸ್ಕ್ ಪದವು ಎಲ್ಲಿ ಸಂಭವಿಸಿದೆ ಎಂಬುದನ್ನು ಗುರುತಿಸುತ್ತದೆ, ಆವರ್ತನ ಎಣಿಕೆಯು ಎಷ್ಟು ಬಾರಿ ಎಂಬುದನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುತ್ತದೆ, ಮತ್ತು ನಿಜವಾದ ಸ್ಥಾನಗಳು ಸ್ಥಾನ ವ್ಯತ್ಯಾಸಗಳಾಗಿ ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಪ್ರತಿ ಪದ-ಕ್ಷೇತ್ರ ಜೋಡಿಗೆ ಪ್ರತ್ಯೇಕ ಬ್ಲಾಕ್‌ಗಳಲ್ಲಿ ಇರುತ್ತವೆ. ವಾಸ್ತವವಾಗಿ ಹೊಂದಿಕೆಯಾದ ಪದಗಳಿಗೆ ಬ್ಲಾಕ್‌ಗಳು ಮಾತ್ರ ಡಿಕೋಡ್ ಆಗುತ್ತವೆ, ಆದರೆ ರೆಕಾರ್ಡ್‌ನಲ್ಲಿರುವ ಉಳಿದ ಎಲ್ಲವೂ ಸಂಕುಚಿತ ಫಾರ್ಮ್ಯಾಟ್‌ನಲ್ಲಿಯೇ ಇರುತ್ತದೆ.

ಆ ಆಯ್ಕೆಮಯ ಡಿಕೋಡಿಂಗ್ docblob ಗೆ ಅನುಪಾತಿಕ ವೆಚ್ಚವೃದ್ಧಿಯಿಲ್ಲದೆ ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ ಹೆಚ್ಚು ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಬೆಂಬಲ ನೀಡುತ್ತದೆ. ರೆಕಾರ್ಡ್ ಬೆಳೆಯುವುದರಿಂದ ಪ್ರತಿ ಲುಕ್‌ಅಪ್‌ಗೆ ಹೆಚ್ಚಿನ ಕೆಲಸ ಬಲವಂತವಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ರ್ಯಾಂಕಿಂಗ್ ಸಂಪೂರ್ಣ ರೆಕಾರ್ಡ್‌ನ ಬದಲು ಹೊಂದಿದ ಟರ್ಮ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಭಾಗಗಳನ್ನು ಮಾತ್ರ ಸ್ಪರ್ಶಿಸುತ್ತದೆ.

ಒಂದು docblob ಶ್ರೇಯಾಂಕ ಡೇಟಾವನ್ನು ಕಾಂಪ್ಯಾಕ್ಟ್ ಪ್ರತಿ-ಡಾಕ್ಯುಮೆಂಟ್ ರೆಕಾರ್ಡ್ ಆಗಿ ಗುಂಪು ಮಾಡುತ್ತದೆ. Elias–Fano-encoded ಪದ ಪಟ್ಟಿಯಲ್ಲಿ ಪ್ರಶ್ನೆ ಪದಗಳನ್ನು ಲುಕಪ್ ಮಾಡಲಾಗುತ್ತದೆ; ಅಂಬಿತವಲ್ಲದ ಪದಗಳು ಸಂಕುಚಿತವಾಗಿ ಉಳಿಯುವಾಗ ಹೊಂದಾಣಿಕೆಯ ಪದಗಳಿಗೆ ಅಗತ್ಯವಿರುವ ಡೇಟಾವನ್ನು ಫೀಲ್ಡ್ ಮಾಸ್ಕ್‌ಗಳು, ಆವರ್ತನಗಳು ಮತ್ತು ಸ್ಥಾನ ಬ್ಲಾಕ್‌ಗಳು ಒದಗಿಸುತ್ತವೆ. ಪದ ID ಗಳು ಮತ್ತು ಸ್ಥಾನಗಳು ವಿವರಣಾತ್ಮಕವಾಗಿವೆ.

ಬ್ಯಾಚ್ ಮಾಡಿದ ರೀಡ್‌ಗಳು ಮತ್ತು ಮೆಮೊರಿಯೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು

ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಡೇಟಾ ನಿರೂಪಣೆಗಳೊಂದಿಗೆ ಸಹ, ಇತರ ಸಂಪನ್ಮೂಲಗಳಿಗಿಂತ ಮೊದಲು RAM ಖಾಲಿಯಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾವು ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಡೇಟಾವನ್ನು ಆಗಾಗ್ಗೆ ಪ್ರವೇಶಿಸಬೇಕಾಗುತ್ತದೆ. ಈ ಪ್ರವೇಶಗಳನ್ನು ವೇಗಗೊಳಿಸಲು Photon ಅಸಿಂಕ್ರೊನಸ್ ಡಿಸ್ಕ್ ರೀಡ್‌ಗಳು ಮತ್ತು ಬ್ಯಾಚ್ ರೀಡ್‌ಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲಾದ ಕ್ಯಾಶ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಪ್ರತಿ-ವಿನಂತಿ ವೇಟ್ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಇದು ಹಿಂದಿನ ಸಿಸ್ಟಮ್‌ಗೆ ಹೋಲಿಸಿದರೆ ಟೇಲ್ ಲ್ಯಾಟೆನ್ಸಿಯಲ್ಲಿ ಗಮನಾರ್ಹ ಸುಧಾರಣೆಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತದೆ.

ಡಿಸ್ಕ್ ರೀಡ್‌ಗಳನ್ನು ನೀಡುವ ಮೊದಲು Photon ತನ್ನ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ತಿಳಿದಿರುವ ರೆಕಾರ್ಡ್ ಆಫ್‌ಸೆಟ್‌ಗಳ ಬ್ಯಾಚ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಕ್ಯಾಶ್ ಹಿಟ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಿದ ಬಫರ್‌ಗೆ ನಕಲಿಸಲಾಗುತ್ತದೆ; ಮಿಸ್‌ಗಳನ್ನು io_uring ಮೂಲಕ ಸಲ್ಲಿಸಲಾಗುತ್ತದೆ ಇದರಿಂದ ಡಿಸ್ಕ್ ವೇಟ್‌ಗಳು ಅತಿವ್ಯಾಪಿಸಬಹುದು, ಮತ್ತು ಹಿಂತಿರುಗಿಸಿದ ಡೇಟಾ ಕ್ಯಾಶ್ ಅನ್ನು ಜನರೇಟ್ ಮಾಡುತ್ತದೆ. ರೆಕಾರ್ಡ್‌ಗಳು ಮತ್ತು ಟೈಮ್‌ಲೈನ್‌ಗಳು ಅಳತೆ ಮಾಡಿದ ಲ್ಯಾಟೆನ್ಸಿಗಳಲ್ಲ, ಸ್ಕೀಮ್ಯಾಟಿಕ್ ಆಗಿವೆ.

ಅತಿವ್ಯಾಪಿಸುವ ಡಿಸ್ಕ್ ವೇಟ್‌ಗಳು

ಶ್ರೇಯಾಂಕಕ್ಕೆ ಫೈಲ್‌ನ ವಿವಿಧ ಭಾಗಗಳಲ್ಲಿರುವ ನೂರು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪಡೆಯುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಮೆಮೊರಿ ಪಾಯಿಂಟರ್‌ಗಳ ಮೂಲಕ ಓದಬಹುದಾದಂತೆ ಫೈಲ್ ಅನ್ನು ವರ್ಚುವಲ್ ವಿಳಾಸ ಸ್ಪೇಸ್ಗೆ ಮ್ಯಾಪ್ ಮಾಡಲು ನಮ್ಮ ಹಿಂದಿನ ಸಿಸ್ಟಮ್ mmap ಅನ್ನು ಬಳಸಿದೆ. ಆದಾಗ್ಯೂ, ಮೆಮೊರಿಯಲ್ಲಿ ಇಲ್ಲದ ಪುಟವನ್ನು ಪ್ರವೇಶಿಸಲು ಇನ್ನೂ ಡಿಸ್ಕ್ ರೀಡ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಕಂಪ್ಯೂಟೇಶನ್ ಮುಂದುವರಿಸುವ ಮೊದಲು ಥ್ರೆಡ್ ಡೇಟಾಕ್ಕಾಗಿ ಕಾಯಬೇಕಾಗಿತ್ತು, ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯು ಕೋಲ್ಡ್ ರೆಕಾರ್ಡ್‌ಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಓದುವ ಅಗತ್ಯವಿದ್ದಾಗ ಈ ವೇಟ್ ಸಮಯವು ಹೆಚ್ಚಾಯಿತು.

ರಿಕಾರ್ಡ್ ಆಫ್‌ಸೆಟ್‌ಗಳು ಮುಂಚಿತವಾಗಿ ತಿಳಿದಿವೆ ಎಂಬ ಅಂಶದ ಪ್ರಯೋಜನವನ್ನು Photon ಪಡೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾವು ಒಮ್ಮೆಯೇ ಹಲವಾರು ರೀಡ್‌ಗಳನ್ನು ಸಲ್ಲಿಸಬಹುದು. ಇದನ್ನು ರಿಯಾಕ್ಟರ್ ನಿರ್ವಹಿಸುತ್ತದೆ: ಮೀಸಲಾದ ವರ್ಕರ್ ಥ್ರೆಡ್ಗಳು io_uring ಮೂಲಕ ಬ್ಯಾಚ್‌ಗಳನ್ನು ಸಲ್ಲಿಸುತ್ತವೆ ಮತ್ತು ತಾವು ಓದಿದ ಡೇಟಾವನ್ನು ಕರೆ ಮಾಡುವ ಕೋಡ್‌ಗೆ ರವಾನಿಸುತ್ತವೆ. ಪ್ರತಿ ಥ್ರೆಡ್ ತನ್ನದೇ ಆದ io_uring ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ; ಕಡಿಮೆ ಲೋಡ್ ಇರುವ ರಿಯಾಕ್ಟರ್‌ಗೆ ಬ್ಯಾಚ್‌ಗಳನ್ನು ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಮುಂಚಿತವಾಗಿ ನೋಂದಾಯಿತ ಫೈಲ್ ಡಿಸ್ಕ್ರಿಪ್ಟರ್‌ಗಳು ಮತ್ತು ಬಫರ್ ಪೂಲ್‌ಗಳು ಪುನರಾವರ್ತಿತ ರೀಡ್‌ಗಳ ಓವರ್‌ಹೆಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತವೆ. ಈ ಅಸಿಂಕ್ರೊನಸ್ ಎಕ್ಸಿಕ್ಯೂಷನ್ ಹಲವಾರು ಕಾರ್ಯಾಚರಣೆಗಳ ವೇಟ್‌ಗಳು ಒಂದಕ್ಕೊಂದು ಅತಿವ್ಯಾಪಿಸಲು (overlap) ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದರಿಂದ ಟೇಲ್ ಲ್ಯಾಟೆನ್ಸಿ ಕಡಿಮೆಯಾಗುತ್ತದೆ.

ಡ್ರೈವ್ ಪ್ರವೇಶಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು

ರೀಡ್‌ಗಳನ್ನು ಸಲ್ಲಿಸುವ ಮೊದಲು, Photon ಇನ್-ಮೆಮೊರಿ ಕ್ಯಾಶ್‌ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಬ್ಯಾಚ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಕಾಣೆಯಾದ ರೆಕಾರ್ಡ್‌ಗಳ ವಿನಂತಿಗಳು ಮಾತ್ರ ಡಿಸ್ಕ್‌ಗೆ ಹೋಗುತ್ತವೆ; ಓದಲಾದ ಡೇಟಾ ನಂತರ ಕ್ಯಾಶ್ ಅನ್ನು ಜನರೇಟ್ ಮಾಡುತ್ತದೆ.

ಕ್ಯಾಶ್ ಅನ್ನು ಬ್ಯಾಚ್ ಮಾಡಿದ ರೀಡ್‌ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ:

  • ಹಿಟ್‌ನಲ್ಲಿ ಪ್ರತ್ಯೇಕ ಹಂಚಿಕೆ ಇಲ್ಲ. ಬದಲಾಗಿ, ಕರೆ ಮಾಡುವ ಕೋಡ್ ಮುಂಚಿತವಾಗಿ ಸಿದ್ಧಪಡಿಸಿದ ಬಫರ್‌ಗೆ ಡೇಟಾವನ್ನು ನಕಲಿಸಲಾಗುತ್ತದೆ.
  • ಓದುಗರಿಂದ ಯಾವುದೇ ಲಾಕ್ ಸ್ವಾಧೀನವಿಲ್ಲ. ಬದಲಾಗಿ, ಇದು ಡೇಟಾ ಆವೃತ್ತಿಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಅದು ಬರವಣಿಗೆಯೊಂದಿಗೆ ವಿರೋಧಿಸಿದರೆ ಮರುಪ್ರಯತ್ನಿಸುತ್ತದೆ.
  • ಇದು ಪ್ರತಿ ರೀಡ್‌ನಲ್ಲಿ ಹಂಚಿದ LRU ಪಟ್ಟಿಗೆ ಅಪ್‌ಡೇಟ್‌ಗಳ ಅಗತ್ಯವಿರುವ ಬದಲು CLOCK ಎವಿಕ್ಷನ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.
  • ಇದು CPU ಕ್ಯಾಶ್ ಪ್ರೆಫೆಚಿಂಗ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇಲ್ಲಿ ಮುಂಬರುವ ರೆಕಾರ್ಡ್‌ಗಳ ಮೆಟಾಡೇಟಾ ಮತ್ತು ಡೇಟಾವನ್ನು ಮುಂಚಿತವಾಗಿ ವಿನಂತಿಸಲಾಗುತ್ತದೆ.

ಈ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು ನಾವು ಕಾಳಜಿವಹಿಸುವ ವರ್ಕ್‌ಲೋಡ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯಕ್ಷಮತೆಗೆ ಹಾನಿಯಾಗದಂತೆ ಲ್ಯಾಟೆನ್ಸಿಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತವೆ.

ಸರ್ವಿಂಗ್‌ನಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು ಮತ್ತು ನವೀಕರಿಸುವುದು

Photon ನಲ್ಲಿ, ಇಂಡೆಕ್ಸ್ ಬಿಲ್ಡಿಂಗ್ ಮತ್ತು ಪ್ರಶ್ನೆ ಪರಿಚಾರಣೆಯು ವಿಭಿನ್ನ ನೋಡ್‌ಗಳಲ್ಲಿ ರನ್ ಆಗುತ್ತವೆ. ಇಂಡೆಸರ್‌ಗಳು ಡೇಟಾವನ್ನು ಸಿದ್ಧ ಶೇಖರಣಾ ರಚನೆಗಳಾಗಿ ಪರಿವರ್ತಿಸುತ್ತವೆ, ಆದರೆ ಸರ್ವಿಂಗ್ ನೋಡ್‌ಗಳು ಅವುಗಳನ್ನು ಓದುತ್ತವೆ ಮತ್ತು ಪುನರುದ್ಧರಣೆ ಮತ್ತು ಶ್ರೇಯಾಂಕವನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ. ಪರಿಣಾಮವಾಗಿ, ಇಂಡೆಕ್ಸ್ ಬಿಲ್ಡಿಂಗ್ CPU ಗಾಗಿ ಹುಡುಕಾಟ ಪ್ರಶ್ನೆಗಳೊಂದಿಗೆ ಸ್ಪರ್ಧಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಈ ಕಾರ್ಯಗಳಿಗಾಗಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಸ್ಕೇಲ್ ಮಾಡಬಹುದು.

ಈ ವಿಭಜನೆ ಹಿಂದಿನ ಅನುಷ್ಠಾನದಲ್ಲಿದ್ದ ರಿಕವರಿ ಮತ್ತು ಸಿಂಕ್ರೊನೈಜೆಷನ್ bottleneck‌ಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ. ಕ್ವೆರಿಗಳನ್ನು ಸೇವೆಸುಗೊಳಿಸುತ್ತಿದ್ದ ಅದೇ ಕ್ಲಸ್ಟರ್‌ನೊಳಗೆ ಇಂಡೆಕ್ಸ್ ನಿರ್ಮಾಣ ನಡೆಯುತ್ತಿದ್ದ ಕಾರಣ, ವಿಫಲವಾದ ನೋಡ್ ಅನ್ನು ಪುನಃಸ್ಥಾಪಿಸುವುದು ಅಥವಾ ಡೇಟಾದ ಹೊಸ ಪ್ರತಿಯನ್ನು ಸೇರಿಸುವುದು ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಸ್ಥಳದಲ್ಲೇ ಮರುಇಂಡೆಕ್ಸ್ ಮಾಡುವ ಅಗತ್ಯವಿರಬಹುದಾಗಿತ್ತು; ಈ ಪ್ರಕ್ರಿಯೆ ದಿನಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತಿತ್ತು ಮತ್ತು ರಿಕವರಿ ವೇಳೆ ಭಾಗಶಃ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಹೆಚ್ಚಿಸುತ್ತಿತ್ತು. Photon ಆ coupling ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ; ಇಂಡೆಕ್ಸರ್‌ಗಳು versioned, ready-to-serve ಇಂಡೆಕ್ಸ್ ರಚನೆಗಳನ್ನು serving nodes‌ಗಳಿಗಿಂತ ಸ್ವತಂತ್ರವಾಗಿ ಉತ್ಪಾದಿಸುವ distributed jobs ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಇಂಡೆಕ್ಸ್‌ನ ಮುಂದಿನ ಆವೃತ್ತಿಯನ್ನು ನಿರ್ಮಿಸುವುದು ಇನ್ನು live traffic ಜೊತೆ ಸ್ಪರ್ಧಿಸುವುದಿಲ್ಲ.

ಇಂಡೆಕ್ಸ್ ಬಿಲ್ಡಿಂಗ್ ಲೈವ್ ಪ್ರಶ್ನೆ ಪರಿಚಾರಣೆಯಿಂದ (query serving) ಪ್ರತ್ಯೇಕವಾಗಿ ರನ್ ಆಗುತ್ತದೆ. Pillar ಮೂಲ ಡೇಟಾವನ್ನು ಎಕ್ಸ್‌ಪೋರ್ಟ್ ಮಾಡುತ್ತದೆ, YTsaurus ಶಾರ್ಡ್ ಮೂಲಕ ಆವೃತ್ತಿಯ ಟೇಬಲ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ, ಮತ್ತು ಸಮಾನಾಂತರ ಇಂಡೆಸರ್‌ಗಳು ಸರ್ವ್ ಮಾಡಲು ಸಿದ್ಧವಾಗಿರುವ ಇಂಡೆಕ್ಸ್ ರಚನೆಗಳನ್ನು ಆಬ್ಜೆಕ್ಟ್ ಸ್ಟೋರೇಜ್‌ಗೆ ಬರೆಯುತ್ತವೆ. ಸರ್ವಿಂಗ್ ನೋಡ್‌ಗಳು ಪುನರುದ್ಧರಣೆ ಮತ್ತು ಶ್ರೇಯಾಂಕಕ್ಕಾಗಿ ಆ ರಚನೆಗಳನ್ನು ಲೋಡ್ ಮಾಡುತ್ತವೆ; ಇಂಡೆಸರ್ ಕನ್‌ಕರನ್ಸಿ ಮತ್ತು ಶಾರ್ಡ್ ಕೌಂಟ್ ಅನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ.

ತಯಾರಿ ಮತ್ತು ವಿತರಿಸಿದ ನಿರ್ಮಾಣ

ಸಕ್ರಿಯ ಇಂಡೆಕ್ಸ್‌ಗಾಗಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಮೂಲಕ ಮತ್ತು ಮೂಲ ರಫ್ತು (source export) ಉತ್ಪಾದಿಸುವ ಮೂಲಕ ಬಿಲ್ಡ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಕಂಟ್ರೋಲರ್ ಮೂಲ ಆವೃತ್ತಿ, ಇನ್‌ಪುಟ್ ಟೇಬಲ್‌ಗಳು ಮತ್ತು ನಿರೀಕ್ಷಿತ ಸಂಖ್ಯೆಯ ಶಾರ್ಡ್‌ಗಳನ್ನು ರೆಕಾರ್ಡ್ ಮಾಡುತ್ತದೆ. YTsaurus ನಲ್ಲಿರುವ MapReduce ಕೆಲಸಗಳು ಶಾರ್ಡ್ ಮೂಲಕ ವಿಂಗಡಿಸಲಾದ ಆವೃತ್ತಿಯ ಟೇಬಲ್‌ಗಳಿಗೆ ಪಠ್ಯ, ಮೆಟಾಡೇಟಾ, ತುಣುಕುಗಳು, ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಮುಂಚಿತವಾಗಿ ಗಣನೆ ಮಾಡಿದ ಎಂಬೆಡಿಂಗ್‌ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತವೆ. ಪ್ರತಿ ಇಂಡೆಸರ್ ಸಿದ್ಧಪಡಿಸಿದ ಟೇಬಲ್ ಅನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡುತ್ತದೆ, ತನ್ನ ಶಾರ್ಡ್‌ಗಾಗಿ ರಚನೆಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ ಮತ್ತು ಪಠ್ಯ ವಿಭಾಗಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುತ್ತದೆ. ಸಿದ್ಧವಾದ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಅದರ ಘಟಕಗಳ ವಿವರಣೆಯೊಂದಿಗೆ ಆಬ್ಜೆಕ್ಟ್ ಸ್ಟೋರೇಜ್‌ಗೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.

ಶಾರ್ಡ್ ಕೌಂಟ್ ಮತ್ತು ಏಕಕಾಲದಲ್ಲಿ ರನ್ ಆಗುವ ಇಂಡೆಸರ್‌ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸ್ವತಂತ್ರವಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಬಿಲ್ಡ್ ಅನ್ನು ಹಲವಾರು ಅಲೆಗಳಲ್ಲಿ ರನ್ ಮಾಡಬಹುದು, ಅಥವಾ ಸಮಾಂತರವಾಗಿ ಕೆಲಸ ಮಾಡಲು ಹೆಚ್ಚಿನ ಯಂತ್ರಗಳನ್ನು ನಿಯೋಜಿಸಬಹುದು. ವಿತರಿಸಿದ ತಯಾರಿ ಮತ್ತು ಸಮಾನಾಂತರ ಇಂಡೆಸರ್‌ಗಳು ಸಂಪೂರ್ಣ ವೆಬ್ ಇಂಡೆಕ್ಸ್ ಅನ್ನು ಒಂದೇ ಅಂಕೆಯ ಗಂಟೆಗಳಲ್ಲಿ ನಿರ್ಮಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಇದು ಹಿಂದಿನ ಸಿಸ್ಟಮ್‌ಗೆ ಹೋಲಿಸಿದರೆ ಗಮನಾರ್ಹ ಸುಧಾರಣೆಯಾಗಿದೆ.

ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ನಿಯೋಜಿಸಲಾಗುತ್ತಿದೆ

ನಿಯೋಜನೆಗೆ ಮೊದಲು, ಹೊಸ ಇಂಡೆಕ್ಸ್ ಸಿದ್ಧವಾಗಿದೆಯೇ ಎಂದು ಕಂಟ್ರೋಲರ್ ಪರಿಶೀಲಿಸುತ್ತದೆ. ಡೇಟಾ ಅಪೂರ್ಣವಾಗಿದ್ದರೆ, ನಿಯೋಜನೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ.

በርካತ ಸರ್ವಿಂಗ್ ಗ್ರೂಪ್‌ಗಳು ಇದ್ದಾಗ, ಕಂಟ್ರೋಲರ್ ಅವುಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಅಪ್‌ಡೇಟ್ ಮಾಡುತ್ತದೆ. ಇದು ಮೊದಲು ಬ್ರೋಕರ್ ರೂಟಿಂಗ್‌ನಿಂದ ಒಂದು ಗುಂಪನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ ಮತ್ತು ಹೊಸ ಇಂಡೆಕ್ಸ್ ಆವೃತ್ತಿಯಲ್ಲಿ ಅದನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ವಿನಂತಿಗಳಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವ ಮೊದಲು, ಸರ್ಚ್ ಲಾಗ್‌ಗಳ ಆಧಾರದ ಮೇಲೆ ಶಾರ್ಡ್‌ಗಳು ಪ್ರತ್ಯೇಕ ವಾರ್ಮ್ಅಪ್ ಹಂತದ ಮೂಲಕ ಹೋಗುತ್ತವೆ, ಇದು ಆರಂಭಿಕ ಸ್ಥಿತಿಯನ್ನು ಮೊದಲೇ ಜನರೇಟ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ನೈಜ ಟ್ರಾಫಿಕ್‌ಗೆ ಪರಿವರ್ತನೆಯನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ. ವಾರ್ಮ್ಅಪ್ ನಂತರ, ಕಂಟ್ರೋಲರ್ ಇಂಡೆಕ್ಸ್ ಸ್ಥಿತಿ ಮತ್ತು ಸಿದ್ಧತೆಯನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ನಂತರ ಗುಂಪನ್ನು ರೂಟಿಂಗ್‌ಗೆ ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಈ ಸಮಯದಲ್ಲಿ ಇತರ ಗುಂಪುಗಳು ವಿನಂತಿಗಳಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತವೆ. ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಥಿತಿಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳುವುದರಿಂದ, ಮರುಪ್ರಾರಂಭವು ಬಿಲ್ಡ್ ಅನ್ನು ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭಿಸಲು ಒತ್ತಾಯಿಸುವುದಿಲ್ಲ; ಕಂಟ್ರೋಲರ್ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿರುವ ತಯಾರಿಗೆ ಮರು-ಲಗತ್ತಿಸಬಹುದು, ಸಿದ್ಧ ಫಲಿತಾಂಶವನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದು ಅಥವಾ ಉಳಿಸಿದ ಹಂತದಿಂದ ಅಡಚಣೆಗೊಂಡ ರೊಟೇಷನ್ ಅನ್ನು ಮುಂದುವರಿಸಬಹುದು.

ಸರ್ಚ್ ವರ್ಟಿಕಲ್‌ಗಳಲ್ಲಿ ಡೇಟಾ ಅಪ್‌ಡೇಟ್ ಸಮಯಗಳು ಭಿನ್ನವಾಗಿರುತ್ತವೆ. ಹೆಚ್ಚಿನ ಫ್ರೆಶ್ನೆಸ್ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೊಂದಿರುವ ವರ್ಟಿಕಲ್‌ಗಳಿಗಾಗಿ, ಡಾಕ್ಯುಮೆಂಟ್ ವಿತರಣೆಯು ಒಂದೇ ಅಂಕೆಯ ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಡೇಟಾದ ಹೆಚ್ಚುವರಿ ನಕಲನ್ನು ಅರ್ಧ ಗಂಟೆಯಲ್ಲಿ ನಿಯೋಜಿಸಬಹುದು; ಮೂಲ ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ಮರು-ಇಂಡೆಕ್ಸ್ ಮಾಡದೆ ಸಿದ್ಧ ಇಂಡೆಂಡ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಶಾರ್ಡ್‌ಗಳಿಗೆ ಲಗತ್ತಿಸಲಾಗುತ್ತದೆ.

ಹೊಸ ಇಂಡೆಕ್ಸ್ ಪೂರ್ಣಗೊಂಡಿದೆಯೇ ಎಂದು ಕಂಟ್ರೋಲರ್ ಪರಿಶೀಲಿಸುತ್ತದೆ, ನಂತರ ಏಕಕಾಲದಲ್ಲಿ ಒಂದು ಸರ್ವಿಂಗ್ ಗ್ರೂಪ್ ಅನ್ನು ರೊಟೇಟ್ ಮಾಡುತ್ತದೆ. ಒಂದು ಗ್ರೂಪ್ ಬ್ರೋಕರ್ ರೂಟಿಂಗ್‌ನಿಂದ ಹೊರಬರುತ್ತದೆ, ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಸರ್ಚ್-ಲಾಗ್ ಪ್ರಶ್ನೆಗಳೊಂದಿಗೆ ತನ್ನ ಕ್ಯಾಶ್‌ಗಳನ್ನು ವಾರ್ಮ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಟ್ರಾಫಿಕ್‌ಗೆ ಮರಳುವ ಮೊದಲು ಸಿದ್ಧತೆ ಪರಿಶೀಲನೆಗಳನ್ನು (readiness checks) ಪಾಸ್ ಮಾಡುತ್ತದೆ. ಇತರ ಗ್ರೂಪ್‌ಗಳು ಸರ್ವ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತವೆ, ಮತ್ತು ಉಳಿಸಿಕೊಂಡ ಕಂಟ್ರೋಲರ್ ಸ್ಥಿತಿಯು (state) ಅಡಚಣೆಗೊಂಡ ರೊಟೇಷನ್ ಅನ್ನು ಪುನರಾರಂಭಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ನಮ್ಮ ಸರ್ಚ್ ಸ್ಟ್ಯಾಕ್‌ನಲ್ಲಿ ಮೈಗ್ರೇಷನ್ ಮತ್ತು ವ್ಯಾಲಿಡೇಷನ್

ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುವಾಗ ಕಾರ್ಯನಿರ್ವಹಣೆ ಮತ್ತು ಹುಡುಕಾಟ ಗುಣಮಟ್ಟವನ್ನು ಸಂರಕ್ಷಿಸುವ ಎಂಜಿನ್‌ನೊಂದಿಗೆ ಹಳೆಯ ಸಿಸ್ಟಮ್ ಅನ್ನು ಬದಲಾಯಿಸುವುದು ನಮ್ಮ ಮೊದಲ ಗುರಿಯಾಗಿತ್ತು. ಲೈವ್ ಟ್ರಾಫಿಕ್‌ಗೆ ತೆರಳುವ ಮೊದಲು ಪುನರುತ್ಪಾದಿಸಬಹುದಾದ ಲೋಡ್ ಪರೀಕ್ಷೆಗಳು ಮತ್ತು ಆಫ್‌ಲೈನ್ ಗುಣಮಟ್ಟ ಮೌಲ್ಯಮಾಪನಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ, ನಾವು ಹಂತ ಹಂತವಾಗಿ Photon ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದ್ದೇವೆ. Photon ಈಗ ನಮ್ಮ ಪ್ರೊಡಕ್ಷನ್ ಸರ್ಚ್ ಸ್ಟ್ಯಾಕ್‌ನಲ್ಲಿ ಪುನರುದ್ಧರಣೆ ಮತ್ತು ಶ್ರೇಯಾಂಕವನ್ನು ಶಕ್ತಗೊಳಿಸುತ್ತದೆ, ಇದು ಹಳೆಯ ಸಿಸ್ಟಮ್‌ಗಿಂತ ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ಹೊಂದಿದೆ.

ಲೋಡ್ ಟೆಸ್ಟಿಂಗ್ ಮತ್ತು ಮೌಲ್ಯಮಾಪನಗಳು

ಕಾರ್ಯಕ್ಷಮತೆ ಪರೀಕ್ಷೆಗಾಗಿ, ನಾವು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದ ಆಗಮನದ ದರಗಳಲ್ಲಿ ನಮ್ಮ ಹುಡುಕಾಟ ಲಾಗ್‌ಗಳಿಂದ ಪ್ರಶ್ನೆಗಳನ್ನು ಮರುಪರಿಶೀಲಿಸುವ ಲೋಡ್-ಟೆಸ್ಟಿಂಗ್ ಉಪಕರಣವನ್ನು ನಿರ್ಮಿಸಿದ್ದೇವೆ. ಇದು ರನ್‌ಗಳಾದ್ಯಂತ ಫಲಿತಾಂಶಗಳನ್ನು ಹೋಲಿಸುತ್ತದೆ ಮತ್ತು ಗಮನಿಸಿದ ಕಾರ್ಯಕ್ಷಮತೆ ವ್ಯತ್ಯಾಸಗಳು ಸ್ಥಿರವಾಗಿದೆಯೇ ಎಂದು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಸಾಂಖ್ಯಿಕ ಪರೀಕ್ಷೆಗಳನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ. ಪ್ರತ್ಯೇಕವಾಗಿ, ಗುಣಮಟ್ಟದ ಹಿಂಜರಿಕೆಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಲು ನಮ್ಮ ಆಂತರಿಕ ಆಫ್‌ಲೈನ್ ಮೌಲ್ಯಮಾಪನ ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ ಒಂದೇ ಡೇಟಾಸೆಟ್‌ಗಳಲ್ಲಿ ನಾವು Photon ಮತ್ತು ಹಳೆಯ ಸಿಸ್ಟಮ್ ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದ್ದೇವೆ.

ಈ ಪರಿಶೀಲನೆಗಳ ನಂತರ, ನೆರಳು ಟ್ರಾಫಿಕ್ (shadow traffic) ಬಳಸಿ ನಾವು ಏಕಕಾಲದಲ್ಲಿ ಎರಡೂ ಎಂಜಿನ್‌ಗಳಿಗೆ ಲೈವ್ ಪ್ರಶ್ನೆಗಳನ್ನು ಕಳುಹಿಸಿದ್ದೇವೆ. ಬಳಕೆದಾರರಿಗೆ ಯಾವ ಎಂಜಿನ್ ಸೇವೆ ಸಲ್ಲಿಸಿದೆ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸುವ ಮೊದಲು ಪ್ರೊಡಕ್ಷನ್ ವರ್ಕ್‌ಲೋಡ್‌ಗಳಲ್ಲಿ ಅವುಗಳ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಹೋಲಿಸಲು ಇದು ನಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಟ್ಟಿತು. ನಂತರ ನಾವು ಸಣ್ಣ ಉಪವಿಭಾಗಗಳ ಬಳಕೆದಾರರಿಗೆ Photon ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದೆವು ಮತ್ತು ಕ್ರಮೇಣ ರೋಲ್‌ಔಟ್ ಅನ್ನು ವಿಸ್ತರಿಸಿದೆವು, ಗುಣಮಟ್ಟ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನಿರಂತರವಾಗಿ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿದೆವು. ಮೊದಲ ಆವೃತ್ತಿಯು ಗುಣಮಟ್ಟದ ಹಿಂಜರಿತವಿಲ್ಲದೆ ಸ್ವೀಕಾರ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಉತ್ತೀರ್ಣವಾಯಿತು, ಮತ್ತು Photon ಎಲ್ಲಾ ಪ್ರೊಡಕ್ಷನ್ ಟ್ರಾಫಿಕ್‌ಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವವರೆಗೆ ನಾವು ರೋಲ್‌ಔಟ್ ಅನ್ನು ಮುಂದುವರೆಸಿದ್ದೇವೆ.

ಪ್ರೊಡಕ್ಷನ್‌ನಲ್ಲಿ ಅಳೆಯಲಾದ ಸುಧಾರಣೆಗಳು

ನಮ್ಮ ಪ್ರೊಡಕ್ಷನ್ ಕಾರ್ಯಪ್ರವಾಹದಲ್ಲಿ, p99 ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವು ಹಳೆಯ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಸುಮಾರು 800 ms ನಿಂದ Photon ನಲ್ಲಿ ಸುಮಾರು 65 ms ಗೆ ಇಳಿಯಿತು. ಈ ಮಾಪನವು Photon ಒಳಗೆ ಎಲ್ಲಾ ಹಂತಗಳನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ, ಆದರೆ ಉನ್ನತ ಮಟ್ಟದ ಹುಡುಕಾಟ ಸ್ಟ್ಯಾಕ್‌ನಲ್ಲಿ ನಂತರದ ಹಂತಗಳನ್ನು ಹೊರತುಪಡಿಸುತ್ತದೆ. ಇಂಡೆಕ್ಸ್ ಆವೃತ್ತಿಗಳನ್ನು ಬದಲಾಯಿಸುವುದರೊಂದಿಗೆ ಹಿಂದೆ ಸಂಬಂಧಿಸಿದ ಲ್ಯಾಟೆನ್ಸಿ ಸ್ಪೈಕ್‌ಗಳನ್ನು ನಾವು ಇನ್ನು ಮುಂದೆ ಗಮನಿಸುವುದಿಲ್ಲ.

ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ ಸುಮಾರು 2.5 ಪಟ್ಟು ಹೆಚ್ಚು ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವಾಗ Photon ಹಳೆಯ ಸಿಸ್ಟಮ್‌ನ ಕಂಟೆಂಟ್ ನೋಡ್‌ಗಳಿಗಿಂತ ಸರಿಸುಮಾರು 20% ಕಡಿಮೆ ಸಮಾನ ಸರ್ವಿಂಗ್ ಯಂತ್ರಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಮೈಗ್ರೇಷನ್ ನಂತರ, ಹಳೆಯ ಸಿಸ್ಟಮ್‌ನ ಮೀರಿದ ಶ್ರೇಯಾಂಕದ ಗುಣಮಟ್ಟವನ್ನು ಸುಧಾರಿಸಲು ನಾವು ಈ ಹೆಚ್ಚುವರಿ ಡೇಟಾವನ್ನು ಬಳಸಿದ್ದೇವೆ.

ಮೆಮೊರಿಯಲ್ಲಿ ಉಳಿಯಬೇಕಾದ ಡೇಟಾದ ಪ್ರಮಾಣವನ್ನು Photon ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. mlock ನೊಂದಿಗೆ ಅದೇ Photon ಡೇಟಾಸೆಟ್ ಅನ್ನು RAM ನಲ್ಲಿ ಪಿನ್ ಮಾಡುವುದರಿಂದ Photon ಪ್ರಸ್ತುತ ಬಳಸುವುದಕ್ಕಿಂತ ಅಂದಾಜು 4.6 ಪಟ್ಟು ಹೆಚ್ಚಿನ ರೆಸಿಡೆಂಟ್ ಮೆಮೊರಿಯ ಅಗತ್ಯವಿರುತ್ತದೆ.

ವೇಗದ ಸರ್ಚ್ API ಪ್ರಿಸೆಟ್‌ನ ಮೌಲ್ಯಮಾಪನ

ಲ್ಯಾಟೆನ್ಸಿ-ಸಂವೇದನಾಶೀಲ ವರ್ಕ್‌ಲೋಡ್‌ಗಳಿಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ನಮ್ಮ ಸರ್ಚ್ API ಗಾಗಿ ಹೊಸ ವೇಗದ ಪ್ರಿಸೆಟ್‌ನ ಆಧಾರವಾಗಿ ನಾವು Photon ಅನ್ನು ಬಳಸಿದ್ದೇವೆ. ನಮ್ಮ ಮಾಪನಗಳ ಪ್ರಕಾರ, ವೇಗದ ಪ್ರಿಸೆಟ್‌ಗಾಗಿ ಸಿಂಗಲ್-ಸರ್ಚ್-ಕಾಲ್ ಲ್ಯಾಟೆನ್ಸಿಯು p50 ನಲ್ಲಿ 160 ms ಮತ್ತು p95 ನಲ್ಲಿ 230 ms ಆಗಿದೆ, ಇದು ಇತರ ಸರ್ಚ್ API ಒದಗಿಸುವವರ ಸ್ವಯಂ-ವರದಿ ಮಾಡಿದ ಸಂಖ್ಯೆಗಳಿಗಿಂತ ಕಡಿಮೆಯಾಗಿದೆ ಅಥವಾ ಹೋಲಿಸಬಹುದಾಗಿದೆ, ಆದರೂ ವರದಿ ಮಾಡಲಾದ ಟೇಲ್ ಶೇಕಡಾವಾರುಗಳು ಭಿನ್ನವಾಗಿರುತ್ತವೆ.

ನಾವು ಆರು ಏಜೆಂಟ್ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳಲ್ಲಿ ವೇಗದ ಪ್ರಿಸೆಟ್ ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿದ್ದೇವೆ: WideSearch, BrowseComp, DSQA, FRAMES, SEAL-0, ಮತ್ತು SEAL-Hard. ಈ ಮೌಲ್ಯಮಾಪನಗಳಲ್ಲಿ, ಪರೀಕ್ಷಿಸಲಾದ ಕಾನ್ಫಿಗರೇಶನ್‌ಗಳಲ್ಲಿ ಇದು ಕನಿಷ್ಠ ಅಂದಾಜು ಮಾಡಿದ ಒಟ್ಟು ಮಾಡೆಲ್-ಪ್ಲಸ್-ಸರ್ಚ್ ವೆಚ್ಚ ಮತ್ತು ಗರಿಷ್ಠ ಒಟ್ಟು ಟಾಸ್ಕ್ ಸ್ಕೋರ್ ಅನ್ನು ಹೊಂದಿದೆ.

ಫಾಸ್ಟ್ ಪ್ರಿಸೆಟ್ ಫೋಟಾನ್ ಅನ್ನು ಏಜೆಂಟಿಕ್ ಕಾರ್ಯಪ್ರವಾಹಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾದ ಶ್ರೇಯಾಂಕದೊಂದಿಗೆ ಜೋಡಿಸುತ್ತದೆ, ಇದು ಡೀಫಾಲ್ಟ್ ಪ್ರಿಸೆಟ್‌ಗೆ ಹೋಲಿಸಬಹುದಾದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಣನೀಯವಾಗಿ ಕಡಿಮೆ ವೆಚ್ಚದಲ್ಲಿ ನೀಡುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಇದು ವಿಶಾಲವಾದ ಹುಡುಕಾಟ ಗುಣಮಟ್ಟದಲ್ಲಿ ರಾಜಿ ಮಾಡಿಕೊಳ್ಳುತ್ತದೆ. ಫಾಸ್ಟ್ ಪ್ರಿಸೆಟ್ ಡೀಫಾಲ್ಟ್ ಪ್ರಿಸೆಟ್‌ಗಿಂತ ಶ್ರೇಯಾಂಕಕ್ಕಾಗಿ ಕಡಿಮೆ ಕಂಪ್ಯೂಟ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಲಾಂಗ್-ಟೈಲ್ ಪ್ರಶ್ನೆಗಳು, ವಿಶಾಲ ವ್ಯಾಪ್ತಿ ಮತ್ತು ಫಲಿತಾಂಶದ ವೈವಿಧ್ಯತೆಯನ್ನು ಒಳಗೊಂಡಿರುವ ಆಂತರಿಕ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳಲ್ಲಿ, ಇದು ಪ್ರಾಸಂಗಿಕತೆಯಲ್ಲಿ 0.24 ಅಂಕಗಳು ಕಡಿಮೆ ಮತ್ತು ಉತ್ತರ ಲಭ್ಯತೆಯಲ್ಲಿ ಸರಿಸುಮಾರು 3 ಶೇಕಡಾಅಂಕಗಳು ಕಡಿಮೆಯಾಗಿದೆ. ಮಾಡೆಲ್‌ನ ಸ್ವಂತ ರೀಜನಿಂಗ್ ಮತ್ತು ಜ್ಞಾನವು ವ್ಯತ್ಯಾಸವನ್ನು ಸರಿದೂಗಿಸಲು ಸಹಾಯ ಮಾಡುವುದರಿಂದ, ಏಜೆಂಟಿಕ್ ಕಾರ್ಯಪ್ರವಾಹಗಳಿಗೆ ಇದು ಸಮಂಜಸವಾದ ರಾಜಿ ಎಂದು ನಾವು ನಂಬುತ್ತೇವೆ.

ಡೀಫಾಲ್ಟ್ PPLX ಪ್ರಿಸೆಟ್ ಮತ್ತು PPLX Fast ನಡುವಿನ ಆಂತರಿಕ ರಿಟ್ರೈವಲ್-ಗುಣಮಟ್ಟದ ಹೋಲಿಕೆ. ಪ್ರಸ್ತುತತೆ (DCG) 2.45 ರಿಂದ 2.21 ಕ್ಕೆ ಇಳಿಯುತ್ತದೆ, ಇದು 0.24 ಅಂಕಗಳ ಇಳಿಕೆಯಾಗಿದೆ; ಉತ್ತರ ಲಭ್ಯತೆಯು 0.596 ರಿಂದ 0.567 ಕ್ಕೆ ಇಳಿಯುತ್ತದೆ, ಇದು 2.9 ಶೇಕಡಾವಾರು ಅಂಕಗಳ ಇಳಿಕೆಯಾಗಿದೆ. ಎರಡು ಪ್ಯಾನೆಲ್‌ಗಳು ವಿಭಿನ್ನ, ಶೂನ್ಯವಲ್ಲದ ಅಕ್ಷದ ಬೇಸ್‌ಲೈನ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಬಾರ್ ಎತ್ತರಗಳು ಅನುಪಾತದ ವ್ಯತ್ಯಾಸಗಳಿಗಿಂತ ಅಂತರವನ್ನು ಒತ್ತಿಹೇಳುತ್ತವೆ.

ದೈನಂದಿನ ಏಜೆಂಟ್ ಟಾಸ್ಕ್‌ಗಳಿಗಾಗಿ ನಾವು ವೇಗದ ಪ್ರಿಸೆಟ್ ಅನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ಹೆಚ್ಚು ಸವಾಲಿನ ಅಥವಾ ಅಸ್ಪಷ್ಟ ಪ್ರಶ್ನೆಗಳಿಗೆ ಇದು ಕಡಿಮೆ ಸಮಯ-ಸಂವೇದನಾಶೀಲವಾಗಿದೆ, ಡೀಫಾಲ್ಟ್ ಪ್ರಿಸೆಟ್ ಹೆಚ್ಚು ದೃಢವಾದ ಗುಣಮಟ್ಟವನ್ನು ನೀಡುತ್ತದೆ, ಇದು ಅದರ ಹೆಚ್ಚಿನ ಲ್ಯಾಟೆನ್ಸಿ ಮತ್ತು ವೆಚ್ಚವನ್ನು ಸಮರ್ಥಿಸುತ್ತದೆ.

ತೀರ್ಮಾನ

ನಾವು ನಮ್ಮ ಸರ್ಚ್ ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಕ್ರಮೇಣ ರಸ್ಟ್-ಆಧಾರಿತ, ಇನ್-ಹೌಸ್ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಸರಿಸುತ್ತಿದ್ದೇವೆ. ಓಪನ್ ಸೋರ್ಸ್ ಎಂಜಿನ್ ಅನ್ನು ನಮ್ಮ ಕಸ್ಟಮ್ ರಿಟ್ರೈವಲ್ ಮತ್ತು ಶ್ರೇಯಾಂಕ ಎಂಜಿನ್ ಆದ Photon ನೊಂದಿಗೆ ಬದಲಾಯಿಸುವುದು ಇತ್ತೀಚಿನ ಹಂತವಾಗಿದೆ. Photon ನಮಗೆ ಡೇಟಾ ನಿರೂಪಣೆಗಳು, ರೀಡ್‌ಗಳನ್ನು ಹೇಗೆ ಆಯೋಜಿಸಲಾಗಿದೆ ಮತ್ತು ಹೊಸ ಇಂಡೆಂಡ್‌ಗಳನ್ನು ಹೇಗೆ ನಿಯೋಜಿಸಲಾಗಿದೆ ಎಂಬುದರ ಮೇಲೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತದೆ, ನಮ್ಮ ವರ್ಕ್‌ಲೋಡ್‌ಗಳಿಗೆ ಪ್ರತಿ ಪದರವನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ನಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

Perplexity ಯ ಉತ್ಪನ್ನಗಳಾದ್ಯಂತ ವೇಗವಾದ ಹುಡುಕಾಟವನ್ನು Photon ಸಕ್ರಿಯಗೊಳಿಸಿದೆ ಮತ್ತು ಸರ್ಚ್ API ನಲ್ಲಿ ನಮ್ಮ ಹೊಸ ವೇಗದ ಪ್ರಿಸೆಟ್‌ಗೆ ಆಧಾರವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಮೈಗ್ರೇಷನ್ ನಂತರ, p99 ರಿಟ್ರೈವಲ್-ಮತ್ತು-ಶ್ರೇಯಾಂಕದ ಲ್ಯಾಟೆನ್ಸಿಯು ಸರಿಸುಮಾರು 800 ms ನಿಂದ 65 ms ಗೆ ಇಳಿಯಿತು. ನಮ್ಮ ಕಾಂಪ್ಯಾಕ್ಟ್ ಡೇಟಾ ಫಾರ್ಮ್ಯಾಟ್‌ಗಳು ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್‌ಗೆ 2.5 ಪಟ್ಟು ಹೆಚ್ಚು ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಇದು ಪುನರುದ್ಧರಣೆ ಮತ್ತು ಶ್ರೇಯಾಂಕಕ್ಕೆ ಶ್ರೀಮಂತ ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಫಾಸ್ಟ್ ಪ್ರಿಸೆಟ್ 160 ಮಿ.ಸೆ. p50 ನಲ್ಲಿ ಮತ್ತು 230 ಮಿ.ಸೆ. p95 ನಲ್ಲಿ ಸಿಂಗಲ್-ಸರ್ಚ್-ಕಾಲ್ ಲೇಟೆನ್ಸಿಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಮೌಲ್ಯಮಾಪನಗೊಂಡ ಆರು ಏಜೆಂಟಿಕ್ ಬೆಂಚ್‌ಮಾರ್ಕ್‌ಗಳಾದ್ಯಂತ, ಇದು ಡೀಫಾಲ್ಟ್ ಪ್ರಿಸೆಟ್‌ಗೆ ಹೋಲಿಸಿದಾಗ ಪ್ರತಿ ಕಾರ್ಯಕ್ಕೆ ಅಂದಾಜಿತ ಮಾದರಿ+ಸರ್ಚ್ ವೆಚ್ಚವನ್ನು 68% ಕಡಿಮೆ ಮಾಡಿತು, ಹಾಗೆಯೇ ಸಮಾನ ಒಟ್ಟು ಕಾರ್ಯ ಗುಣಮಟ್ಟವನ್ನು ಕಾಯ್ದುಕೊಂಡಿತು. ಈ ಫಲಿತಾಂಶಗಳು ನಮ್ಮ ಸರ್ಚ್ ವರ್ಕ್‌ಲೋಡ್‌ಗಳ ಸುತ್ತ ವಿನ್ಯಾಸಗೊಳಿಸಿದ ಮೂಲಸೌಕರ್ಯದ ಪ್ರಾಯೋಗಿಕ ಪ್ರಯೋಜನಗಳನ್ನು, Perplexityಯ ಉತ್ಪನ್ನಗಳು ಮತ್ತು ನಮ್ಮ API ಬಳಸಿ ನಿರ್ಮಿಸುವ ಡೆವಲಪರ್‌ಗಳ ಎರಡಕ್ಕೂ, ತೋರಿಸುತ್ತವೆ.

ನಾವು Photon ನ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಸಂಗ್ರಹಣೆ ದಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ. ನಮ್ಮ ವರ್ಕ್‌ಲೋಡ್‌ಗಳು ಬೆಳೆದಂತೆ ಹುಡುಕಾಟವನ್ನು ವೇಗವಾಗಿರಿಸಿಕೊಂಡು ಅದೇ ಹಾರ್ಡ್‌ವೇರ್‌ನಲ್ಲಿ ದೊಡ್ಡ ಇಂಡೆಕ್ಸ್ ಮತ್ತು ಶ್ರೀಮಂತ ಡಾಕ್ಯುಮೆಂಟ್ ಡೇಟಾವನ್ನು ಬೆಂಬಲಿಸುವುದು ನಮ್ಮ ಗುರಿಯಾಗಿದೆ.

ಉಲ್ಲೇಖ

BibTeX
@online{perplexity2026Photon,
  author = {{Perplexity} and Maksim Morozov and Bogdan Savko and Ruslan Kovalev and Aleksei Bykov and Artur Zayats and Denis Bykov and Nikita Kireev and Jarrod Bryan and Claire Beamer and Jeremy Yang},
  title = {{Photon: Building a retrieval and ranking engine from scratch}},
  date = {2026-09-24},
  url = {https://www.perplexity.ai/hub/blog/photon}
}