ಬಿಲ್ಲಿಂಗ್ ಡೇಟಾಬೇಸ್ಗಳು: ಅವು ನಿಜವಾಗಿ ಬಳಸುವುದರ ಆಧಾರದ ಮೇಲೆ
ಪ್ರತಿ Mythex ಆ್ಯಪ್ಗೆ ಡೇಟಾ ಸಂಗ್ರಹಿಸಬೇಕಾದರೆ ತನ್ನದೇ ಆದ Postgres ಡೇಟಾಬೇಸ್ ಸಿಗುತ್ತದೆ, ಮತ್ತು ಪ್ರಕಟಿತ ಆ್ಯಪ್ನ ಡೇಟಾಬೇಸ್ ಬಳಕೆ ನಿರ್ಮಿಸುವುದಕ್ಕೆ ಬಳಸುವ ಅದೇ ಕ್ರೆಡಿಟ್ ಬ್ಯಾಲೆನ್ಸ್ನಿಂದಲೇ ಕಡಿತವಾಗುತ್ತದೆ. ಸೆಪ್ಟೆಂಬರ್ ಕೊನೆಯವರೆಗೆ ನಾವು ಆ ಬಳಕೆಯನ್ನು ಆ್ಯಪ್ನ ಸರ್ವರ್ ಎಷ್ಟು ಹೊತ್ತು ಚಾಲನೆಯಲ್ಲಿತ್ತು ಎಂಬುದರಿಂದ ಅಂದಾಜು ಮಾಡುತ್ತಿದ್ದೆವು. ಆ ಅಂದಾಜು ಮುಖ್ಯವಾದ ರೀತಿಯಲ್ಲಿ ತಪ್ಪಾಗಿತ್ತು, ಆದ್ದರಿಂದ ಅದನ್ನು ಬದಲಾಯಿಸಿದೆವು: ಈಗ ಪ್ರತಿ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಅದರ ಪೂರೈಕೆದಾರರು ನಿಜವಾಗಿ ಅಳೆದ ಕಂಪ್ಯೂಟ್ನಿಂದ, ಮುಗಿದ ಪ್ರತಿ ಗಂಟೆಗೆ ಬಿಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿ ಗಂಟೆಗೆ ಒಮ್ಮೆ ಮಾತ್ರ ಶುಲ್ಕ ವಿಧಿಸಬಹುದು.
ಡೇಟಾಬೇಸ್ಗಳು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ
ಪ್ರತಿ ಡೇಟಾಬೇಸ್ ಶೂನ್ಯಕ್ಕೆ ಸ್ಕೇಲ್ ಆಗುವ ಸರ್ವರ್ರಹಿತ Postgres ಮೇಲೆ ಚಲಿಸುತ್ತದೆ: ಕೆಲವು ನಿಮಿಷ ನಿಷ್ಕ್ರಿಯವಾದ ನಂತರ ಅದು ನಿದ್ರಿಸುತ್ತದೆ, ಮತ್ತು ಮುಂದಿನ ಕ್ವೆರಿಗೆ ಎಚ್ಚರಗೊಳ್ಳುತ್ತದೆ. ಎಚ್ಚರವಾಗಿರುವಾಗ ಅದು ಲೋಡ್ಗೆ ಅನುಗುಣವಾಗಿ ತನ್ನ ಕಂಪ್ಯೂಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸಬಹುದು ಅಥವಾ ಕಡಿಮೆ ಮಾಡಬಹುದು. ಇದರಿಂದಲೇ "ಪ್ರತಿ ಆ್ಯಪ್ಗೆ ಒಂದು ಡೇಟಾಬೇಸ್" ಕೈಗೆಟುಕುವಂತಾಗುತ್ತದೆ — ಹೆಚ್ಚಿನ ಆ್ಯಪ್ಗಳು ಬಹುತೇಕ ಸಮಯ ಶಾಂತವಾಗಿರುತ್ತವೆ, ಮತ್ತು ನಿದ್ರಿಸುತ್ತಿರುವ ಡೇಟಾಬೇಸ್ ಬಹುತೇಕ ಏನೂ ವೆಚ್ಚ ಮಾಡುವುದಿಲ್ಲ.
ಇದರರ್ಥ ಡೇಟಾಬೇಸ್ನ ವೆಚ್ಚ ನಾವು ಹೊರಗಿನಿಂದ ನೋಡಲಾಗದ ಎರಡು ವಿಷಯಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ: ಅದು ಎಷ್ಟು ಹೊತ್ತು ಎಚ್ಚರವಾಗಿತ್ತು ಮತ್ತು ಎಚ್ಚರವಾಗಿದ್ದಾಗ ಅದು ಎಷ್ಟು ದೊಡ್ಡದಾಗಿತ್ತು.
ಅಂದಾಜು ತಪ್ಪಾಗಿದ್ದು ಏನು
ನಮ್ಮ ಮೂಲ ಮೀಟರ್ ಒಂದು ಊಹೆ ಮಾಡಿತ್ತು: ಪ್ರಕಟಿತ ಆ್ಯಪ್ನ ಸರ್ವರ್ ಚಾಲನೆಯಲ್ಲಿದ್ದ ಪ್ರತಿ ಗಂಟೆಗೂ, ಡೇಟಾಬೇಸ್ ಅನ್ನು ಚಿಕ್ಕ ಕಂಪ್ಯೂಟ್ ಗಾತ್ರದಲ್ಲಿ ಬಿಲ್ ಮಾಡಬೇಕು.
ಅದು ಮೂರು ರೀತಿಯಲ್ಲಿ ತಪ್ಪಾಗಿತ್ತು:
- ಗಾತ್ರ ತಪ್ಪಾಗಿತ್ತು. ಅಂದಾಜು ಊಹಿಸಿದ್ದಕ್ಕಿಂತ ದೊಡ್ಡ ಡೀಫಾಲ್ಟ್ ಗಾತ್ರದಲ್ಲಿ ಡೇಟಾಬೇಸ್ಗಳು ನಿಜವಾಗಿ ಚಲಿಸುತ್ತಿದ್ದವು.
- ಡೇಟಾಬೇಸ್ಗಳು ತಾವಾಗಿಯೇ ಸ್ಕೇಲ್ ಆಗುತ್ತವೆ. ಲೋಡ್ ಅಡಿಯಲ್ಲಿ ಅವು ಬೆಳೆಯುತ್ತವೆ, ಮತ್ತು ಅಂದಾಜು ಅದನ್ನು ಎಂದಿಗೂ ನೋಡಲಿಲ್ಲ.
- ಡೇಟಾಬೇಸ್ಗಳು ಆ್ಯಪ್ ಸರ್ವರ್ ಅನ್ನು ಅನುಸರಿಸುವುದಿಲ್ಲ. ಯಾವುದಾದರೂ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಕ್ವೆರಿ ಮಾಡಿದಾಗಲೆಲ್ಲಾ ಅದು ಎಚ್ಚರವಾಗಿರುತ್ತದೆ — ಆ್ಯಪ್, ನಿಗದಿತ ಜಾಬ್, ಅಥವಾ ಅದನ್ನು ಪೋಲ್ ಮಾಡುವ ಸ್ಕ್ರಿಪ್ಟ್ — ಆ್ಯಪ್ನ ಸರ್ವರ್ ಚಾಲನೆಯಲ್ಲಿದ್ದರೂ ಇಲ್ಲದಿದ್ದರೂ.
ಒಟ್ಟು ಪರಿಣಾಮ: ಅಂದಾಜು ಬಳಕೆದಾರರಿಗೆ ಡೇಟಾಬೇಸ್ಗಳ ನಿಜ ವೆಚ್ಚದ ಸುಮಾರು ಅರ್ಧದಷ್ಟನ್ನು ಮಾತ್ರ ವಿಧಿಸಿತ್ತು. ಅದು ನಮಗೆ ಸುಸ್ಥಿರವಲ್ಲ, ಮತ್ತು ಆ್ಯಪ್ನಲ್ಲಿ ತೋರಿಸುತ್ತಿದ್ದ ಬಳಕೆಯ ಸಂಖ್ಯೆಗಳು ಜನರು ಭಾವಿಸಿದ್ದ ಅರ್ಥವನ್ನು ನೀಡುತ್ತಿರಲಿಲ್ಲ.
ಊಹೆಯ ಬದಲು ಅಳೆಯುವುದು
ನಮ್ಮ ಡೇಟಾಬೇಸ್ ಪೂರೈಕೆದಾರರು ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್ನ ಪ್ರತಿ ಗಂಟೆಗೆ ಕಂಪ್ಯೂಟ್-ಯೂನಿಟ್-ಸೆಕೆಂಡ್ಗಳನ್ನು ವರದಿ ಮಾಡುತ್ತಾರೆ — ಅದು ಎಷ್ಟು ಕಂಪ್ಯೂಟ್ ಬಳಸಿತು, ಗಾತ್ರವನ್ನೂ ಸೇರಿಸಿ. ಆದ್ದರಿಂದ ಮೀಟರ್ ಈಗ ಹೀಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:
- ಡೇಟಾಬೇಸ್ ಇರುವ ಪ್ರತಿ ಪ್ರಕಟಿತ ಆ್ಯಪ್ಗೆ, ಅದು ಲೈವ್ ಆದಾಗಿನಿಂದ ಪ್ರತಿ ಮುಗಿದ ಗಂಟೆಯ ಅಳತೆ ಮಾಡಿದ ಬಳಕೆಯನ್ನು ತರಿ.
- ಆ ಬಳಕೆಯನ್ನು ಪೂರೈಕೆದಾರರ ಬೆಲೆಯಲ್ಲಿ ವೆಚ್ಚವಾಗಿ ಪರಿವರ್ತಿಸಿ, ಯೋಜನೆಯ ದರ ಅನ್ವಯಿಸಿ, ಆ್ಯಪ್ ಮಾಲೀಕರ ಕ್ರೆಡಿಟ್ಗಳಿಂದ ಕಡಿತಗೊಳಿಸಿ.
- ಪ್ರತಿ ಬಾರಿ ಒಂದು ದಿನದವರೆಗೆ ಹಿಂದೆ ನೋಡಿ, ಆದ್ದರಿಂದ ನಮ್ಮ API ಮರುಪ್ರಾರಂಭವಾಗುತ್ತಿದ್ದಾಗ ತಪ್ಪಿಹೋದ ಗಂಟೆಗಳನ್ನು ನಂತರ ಬಿಲ್ ಮಾಡಲಾಗುತ್ತದೆ.
ಸಂಗ್ರಹಣೆಯನ್ನು ಗಾತ್ರದ ಆಧಾರದ ಮೇಲೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಬಿಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಅದು ಚಟುವಟಿಕೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಲ್ಲ.
ಒಂದು ಗಂಟೆಯನ್ನು ಎರಡು ಬಾರಿ ಬಿಲ್ ಮಾಡದಿರುವುದು
ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸರ್ವರ್ಗಳಲ್ಲಿ ಚಲಿಸುವ ಮತ್ತು ಕ್ರ್ಯಾಶ್ ಆಗಿ ಮರುಪ್ರಯತ್ನಿಸಬಹುದಾದ ಬಿಲ್ಲಿಂಗ್ ಮೀಟರ್ ಎರಡು ಬಾರಿ ಶುಲ್ಕ ವಿಧಿಸದಂತೆ ಎಚ್ಚರಿಕೆ ವಹಿಸಬೇಕು. ಪ್ರತಿ ಡೇಟಾಬೇಸ್ನ ಪ್ರತಿ ಗಂಟೆಯನ್ನು ಬಿಲ್ ಮಾಡುವ ಮೊದಲು ಅದರದೇ ಡೇಟಾಬೇಸ್ ಸಾಲಿನಲ್ಲಿ ಕ್ಲೇಮ್ ಮಾಡಲಾಗುತ್ತದೆ, ಮತ್ತು (ಡೇಟಾಬೇಸ್, ಗಂಟೆ) ಜೋಡಿಗೆ ಯೂನಿಕ್ ನಿರ್ಬಂಧವಿದೆ. ಎರಡು ಸರ್ವರ್ಗಳು, ಅಥವಾ ಒಂದು ಮರುಪ್ರಯತ್ನ, ಒಂದೇ ಗಂಟೆಯನ್ನು ಬಿಲ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿದರೆ, ಒಂದು ಕ್ಲೇಮ್ ಮಾತ್ರ ಯಶಸ್ವಿಯಾಗುತ್ತದೆ.
ಅಪರೂಪದ ವೈಫಲ್ಯ ಪ್ರಕರಣದ ಬಗ್ಗೆ ನಾವು ಉದ್ದೇಶಪೂರ್ವಕ ಆಯ್ಕೆ ಮಾಡಿದೆವು: ಗಂಟೆಯನ್ನು ಕ್ಲೇಮ್ ಮಾಡಿ ಬಿಲ್ ಮಾಡುವ ನಡುವೆ ಪ್ರಕ್ರಿಯೆ ಕ್ರ್ಯಾಶ್ ಆದರೆ, ಆ ಗಂಟೆ ಕ್ಲೇಮ್ ಆಗಿಯೇ ಉಳಿಯುತ್ತದೆ ಮತ್ತು ಬಿಲ್ ಆಗುವುದಿಲ್ಲ. ಅಪರೂಪದ ಕ್ರ್ಯಾಶ್ನಲ್ಲಿ ಸ್ವಲ್ಪ ಆದಾಯವನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದು, ಯಾರಿಗಾದರೂ ಎರಡು ಬಾರಿ ಶುಲ್ಕ ವಿಧಿಸುವುದಕ್ಕಿಂತ ಉತ್ತಮ.
ಮತ್ತು ಅಳತೆ ಮಾಡಿದ ಬಿಲ್ಲಿಂಗ್ ಆನ್ ಆದಾಗ, ಅದು ಮುಂದಿನ ಪೂರ್ಣ ಗಂಟೆಯಿಂದ ಆರಂಭವಾಯಿತು. ಅದಕ್ಕಿಂತ ಮೊದಲಿನ ಗಂಟೆಗಳಿಗೆ ಹಳೆಯ ಅಂದಾಜಿನಿಂದ ಈಗಾಗಲೇ ಶುಲ್ಕ ವಿಧಿಸಲಾಗಿತ್ತು; ಆ ಅವಧಿಯನ್ನು ಅಳತೆ ಮಾಡಿದ ಡೇಟಾದಿಂದ ಮತ್ತೆ ಬಿಲ್ ಮಾಡಿದ್ದರೆ, ಆ ಅವಧಿಗೆ ಎರಡು ಬಾರಿ ಶುಲ್ಕ ವಿಧಿಸಿದಂತಾಗುತ್ತಿತ್ತು.
ನೀವು Mythex ಮೇಲೆ ನಿರ್ಮಿಸುತ್ತಿದ್ದರೆ ಇದರ ಅರ್ಥ
- ನಿಮ್ಮ ಡೇಟಾಬೇಸ್ ಬಿಲ್ ಈಗ ನಿಮ್ಮ ಡೇಟಾಬೇಸ್ ಮಾಡಿದ್ದನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. ಅಪರೂಪವಾಗಿ ಬಳಸುವ ಆ್ಯಪ್ ತುಂಬಾ ಕಡಿಮೆ ವೆಚ್ಚ ಮಾಡುತ್ತದೆ; ತನ್ನ ಡೇಟಾಬೇಸ್ ಅನ್ನು ನಿರಂತರವಾಗಿ ಕ್ವೆರಿ ಮಾಡುವ ಆ್ಯಪ್ ಅದನ್ನು ಎಚ್ಚರವಾಗಿಡುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ವೆಚ್ಚ ಮಾಡುತ್ತದೆ.
- ನಿಮ್ಮ ಆ್ಯಪ್ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುತ್ತದೆ ಎಂಬುದೇ ಅತಿ ದೊಡ್ಡ ಅಂಶ. ಡೇಟಾಬೇಸ್ ಅನ್ನು ಪ್ರತಿ ಕೆಲವು ಸೆಕೆಂಡ್ಗೊಮ್ಮೆ ಪೋಲ್ ಮಾಡಿದರೆ ಅದು ದಿನವಿಡೀ ಎಚ್ಚರವಾಗಿರುತ್ತದೆ. ಬೇಡಿಕೆಗೆ ತಕ್ಕಂತೆ ಡೇಟಾ ತರಲು AI ಗೆ ಹೇಳುವುದು, ಅಥವಾ ಅದನ್ನು ಕ್ಯಾಶ್ ಮಾಡುವುದು, ಡೇಟಾಬೇಸ್ ನಿದ್ರಿಸಲು ಅವಕಾಶ ಕೊಡುತ್ತದೆ. ಡೇಟಾಬೇಸ್ ಎಂದರೇನು ಎಂಬ ಮೂಲಭೂತ ವಿಷಯಗಳನ್ನು ನಮ್ಮ ಮಾರ್ಗದರ್ಶಿ ವಿವರಿಸುತ್ತದೆ.
- Pro ಯೋಜನೆಗಳು ಹೋಸ್ಟಿಂಗ್, ಡೇಟಾಬೇಸ್ಗಳು ಮತ್ತು ಸಂಗ್ರಹಣೆಗೆ Free ದರದ ಅರ್ಧದಷ್ಟು ಪಾವತಿಸುತ್ತವೆ. ವಿವರಗಳು ಕ್ರೆಡಿಟ್ ದಸ್ತಾವೇಜು ನಲ್ಲಿವೆ.
ನಾವು ಇದರಿಂದ ಕಲಿತದ್ದು
- ಬಳಕೆ ಆಧಾರಿತ ವೆಚ್ಚಗಳ ಅಂದಾಜುಗಳು ವಿಚಲನಗೊಳ್ಳುತ್ತವೆ. ಮೇಲ್ಮಟ್ಟದ ಪೂರೈಕೆದಾರರು ಏನು ಬಳಸಲಾಗಿದೆ ಎಂದು ಹೇಳಬಲ್ಲರಾದರೆ, ಅದರ ಮೇಲೆಯೇ ಬಿಲ್ ಮಾಡಿ.
- ನೀವು ಶುಲ್ಕ ವಿಧಿಸುವ ಚಿಕ್ಕ ಘಟಕದಲ್ಲಿಯೇ ಬಿಲ್ಲಿಂಗ್ ಅನ್ನು ಇಡೆಂಪೊಟೆಂಟ್ ಮಾಡಿ. ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ ಅದು ಒಂದು ಡೇಟಾಬೇಸ್-ಗಂಟೆ.
- ವಿಫಲವಾಗಲೇಬೇಕಾದರೆ, ಗ್ರಾಹಕರ ಪರವಾಗಿ ವಿಫಲರಾಗಿ.