مشكلة مفاتيح API التي لا تنتهي صلاحيتها أبدًا
المفتاح الذي صدر قبل سنوات، ولم يُبدَّل قط، ولا يزال صالحًا حتى اليوم ليس ميزة مريحة. إنه عبء لم ينظر فيه أحد فعلًا منذ سنوات.
تُلصق عبارة «في الوقت الفعلي» بكثير من منتجات بيانات الموقع اختصارًا لأزمنة الاستجابة السريعة، والسرعة أمر حقيقي يستحق التحسين. لكنها ادعاء مختلف تمامًا عما ينبغي أن يعنيه «الوقت الفعلي» فعلًا لبيانات تصف شيئًا عن الحالة الراهنة للعالم: أن الإجابة تعكس ما هو صحيح الآن، لا استعلامًا سريعًا منخفض التأخير من مجموعة بيانات جُمعت بدورها منذ مدة ولم تُحدَّث تحديثًا يُذكر منذ ذلك الحين.
يهم هذا التمييز أكثر ما يهم في تحديد الموقع الجغرافي لعناوين IP تحديدًا، لأن الربط بين نطاقات عناوين IP ومواقعها المادية يتغير مع الوقت حين تُعاد إسناد كتل العناوين أو تخصيصها أو توجيهها لأغراض أخرى من قِبل سجلات الإنترنت الإقليمية التي تديرها. الاستعلام الذي يستجيب في بضعة أجزاء من الثانية مقابل ربط متقادم سريع وخاطئ في آن واحد، والسرعة لا تفعل شيئًا لإصلاح الخطأ. يتطلب التحديد الحقيقي للموقع الجغرافي لعناوين IP في الوقت الفعلي أن يُبقى الربط الأساسي نفسه محدّثًا، مع عملية استعلام حية وذاكرة تخزين مؤقت تُجدَّد بدلًا من أن تُعامل كلقطة ثابتة لمرة واحدة.
بنينا تحديد الموقع الجغرافي لعناوين IP لدينا حول هذا التمييز تحديدًا: فهو يعمل مباشرة، مع استخدام التخزين المؤقت لإبقاء أزمنة الاستجابة منخفضة، لا كبديل عن الحداثة، مع عملية إعادة محاولة في الخلفية تواصل العمل على البيانات التي تحتاج إلى إعادة فحص، بدلًا من مهمة cron دورية تقوم مقام الآلية الوحيدة لإبقاء الربط محدّثًا. الهدف أن تجعله ذاكرة التخزين المؤقت سريعًا دون أن تجعله متقادمًا، وهذا هدف تصميمي مختلف عن ذاكرة تخزين مؤقت موجودة فقط لتجنب إعادة حساب أي شيء على الإطلاق، محدّثًا كان أم لا.
ينطبق التمييز نفسه، بصيغة مختلفة، على بيانات المناطق الزمنية. الاستجابة السريعة التي تصف فارقًا زمنيًا لم يأخذ في الحسبان انتقالًا حديثًا إلى التوقيت الصيفي أو منه، أو تغييرًا حديثًا في قاعدة حكومية، ليست في الوقت الفعلي بأي معنى ذي قيمة، حتى لو عادت خلال عشرة أجزاء من الثانية. الوقت الفعلي هنا يعني أن المرجع الأساسي، وهو قاعدة بيانات المناطق الزمنية IANA في هذه الحالة، يُتتبع ويُطبق مع تغيره، لا أن الاستجابة وصلت بسرعة من جدول لم يلمسه أحد منذ مدة.
نعتقد أن «الوقت الفعلي» يستحق أن يُعامل كادعاء يتعلق بحداثة البيانات أولًا وزمن الاستجابة ثانيًا، مع أن زمن الاستجابة هو الجزء الأسهل قياسًا وإثباتًا. يستطيع المزود أن يحسّن زمن الاستجابة حقًا إلى جزء من الثانية بينما يترك البيانات الأساسية تتقادم بهدوء لأشهر، ومن الخارج، تبدو الإجابة السريعة الخاطئة والإجابة السريعة الصحيحة متطابقتين إلى أن يعتمد شيء لاحق على الفرق بينهما. العمل الأصعب والأقل ظهورًا هو إبقاء البيانات نفسها محدّثة. هذا هو الجزء الذي يستحق التسمية فعلًا، وهو أيضًا الجزء الذي لا يستطيع العميل التحقق منه بمجرد قياس زمن طلب.