หน้าเว็บ

วันศุกร์ที่ 1 มิถุนายน พ.ศ. 2555

แก้ปัญหา Record Id (RID) ของ OrientDB เป็นค่าติดลบ

        เหตุที่ OrientDB คืนค่า RID ออกมาเป็นค่าติดลบ เช่น #15:-2, #2:-7 นั้น จะเกิดขึ้นในระหว่างที่มีการทำ Transaction เท่านั้น เช่น
db.begin();
//
//Transaction  RID => negative number
//
db.commit();
//RID => positive number
        ค่าที่ได้คือค่า RID Logical เป็นค่าสมมติที่ DB กำหนดขึ้นมาก่อน เพราะเรายังไม่ได้ commit ลง Database จริงๆ มันเลยจะใช้ค่า บวก จริงๆไม่ได้  เพราะค่าบวกหมายถึงค่า RID ที่มีอยู่จริงใน Database และหาก Transaction Fail ก็จะได้จัดการได้ง่ายด้วย
        ค่า RID บวกจะเกิดขึ้นก็ต่อเมื่อพ้นคำสั่ง .commit()  มาแล้วเท่านั้น 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น