Google Cloud - Datastore ช้าเกินไปเมื่อเทียบกับเครื่องในเครื่อง

เรากำลังใช้ Google App Engine กับ Datastore และ Objectify ในเครื่องของเราจะใช้เวลา 1 วินาทีในการสืบค้น ในขณะที่อยู่ในระบบคลาวด์ใช้เวลาประมาณ 20 วินาที ที่ตั้งเซิร์ฟเวอร์อยู่ในยุโรปตะวันตก และฉันอยู่ในสเปน ดังนั้นฉันจึงไม่คิดว่านี่คือปัญหา

แบบสอบถามที่เรากำลังดำเนินการเป็นเพียงการดึงข้อมูลด้วยตัวกรองเพียง 1 ตัว:

final CityEntity cityEntity = new CityEntity();
cityEntity.setId(1);
ofy().load().type(Person.class).filter("city =", cityEntity).list();



คำตอบ (1)


ในที่เก็บข้อมูล การสืบค้นจะปรับขนาดตามขนาดของชุดผลลัพธ์ ในเมืองมีกี่คน? หากมีขนาดใหญ่ การสืบค้นไม่เพียงแต่จะช้าเท่านั้น แต่ยังถึงขีดจำกัดของ RAM อีกด้วย

คุณอาจต้องใช้แนวทางที่แตกต่างออกไป ขึ้นอยู่กับสิ่งที่คุณกำลังพยายามทำ ตัวอย่างเช่น คุณสามารถดำเนินการค้นหาเฉพาะคีย์ แปลงผลลัพธ์เป็นงาน และจัดคิวงานให้กับแต่ละคนได้ นั่นอาจจะใช้งานได้ถึงหลายแสนหรืออาจจะถึงหลายล้านก่อนที่คุณจะถึงเส้นตาย 10 นาทีของงาน/cron สำหรับปริมาณที่มากขึ้น คุณอาจต้องการแผนที่/การย่อบางรูปแบบ

person stickfigure    schedule 05.02.2020
comment
เป็นการกรองตามฟิลด์เดียวลงในเอนทิตีที่มีบันทึกสูงสุด 2,000 รายการ เป็นเรื่องปกติไหมที่จะใช้เวลา 20 วินาที? ฉันคิดว่ามันมากเกินไปหน่อย - person Ulises CT; 06.02.2020
comment
มันดูช้าไปหน่อย โดยปกติแล้วฉันจะคาดหวังประมาณ 1,000/s จาก appengeine API แบบเก่า แม้ว่า REST API ใหม่จะช้ากว่าเล็กน้อยก็ตาม มันอาจจะขึ้นอยู่กับหลายสิ่งหลายอย่าง โปรดจำไว้ว่าพื้นที่เก็บข้อมูลได้รับการออกแบบมาให้ทำงานในสเกลขนาดใหญ่ ดังนั้นคุณจึงสามารถดำเนินการนับแสนรายการต่อวินาทีทั่วทั้งระบบได้ แต่การดำเนินการใดๆ ก็ตามจะไม่เร็วเป็นพิเศษ - person stickfigure; 06.02.2020