recovery after a system crash or power loss, the TxCnt
is read to verify the number of pages that are written
successfully in each transaction. In the example, Tx0 and
Tx1 are determined to be committed, as each of them
has the non-zero TxCnt equal to the number of written
pages (indicating all their updated pages are written to
persistent flash memory). In contrast, Tx2 and Tx3 are
determined to be not-committed. Tx2 is not committed
because it has no pages with non-zero TxCnt value. Tx3
is not committed because the number of written pages
in persistent flash memory does not equal the non-zero
TxCnt value. The mismatch of non-zero TxCnt value
indicates not all pages in the transactions are written to
persistent flash memory.
Operation. LightTx operations defer the mapping table
update to the transaction commit time. Instead of directly
updating the FTL mapping table, the write operation
updates the mapping entries in the Active TxTable.
If the transaction is committed, its mapping entries in
the Active TxTable are stored into the mapping table.
If not, these mapping entries are simply discarded. For
transactional writes, the latest updated page is cached
in the SSD DRAM to wait for the next command. If the
next command is a commit, the cached page’s TxCnt and
TxVer are set to non-zero values; if abort, the cached
page is discarded; otherwise, the cached page’s TxCnt
and TxVer are set to zero. For non-transactional writes,
the TxID is not set and the TxCnt is set to one, while
the TxVer is set to the committed version the same as
transactional writes.
3.3 Zone-based Transaction State Tracking Scheme
Transaction state tracking identifies the committed and
the uncommitted transactions so as to redo the committed
and undo the uncommitted during recovery to
ensure atomicity. Since pages of each transaction may
be scattered across many different flash blocks, state
tracking can become costly, if we would like to support
flexibility in isolation levels (which requires potentially
many transactions’ states to be tracked concurrently). To
improve efficiency, we use a lightweight design to reduce
the tracking overhead in two aspects. First, we track
transaction states by tracking the states of flash blocks
instead of flash pages. Second, we reduce the number
of transactions to be tracked by keeping the live transactions
separate from the dead, which is achieved by
classifying flash blocks into different zones and tracking
them separately in these zones (which we discuss next).
3.3.1 Relationship between Transaction State, Page
State and Block State
As shown in Figure 1, a transaction can be in one of
the following three states: active, checkpointing (i.e., live
but completed) and dead. The state of each flash page
is inherited from the transaction it belongs to. So, a
flash page can also be in one of the above mentioned
three states. Conversely, the state of a transaction can be
กู้คืนหลังจากที่ผิดพลาดของระบบหรือการสูญเสียพลังงาน , txcnt
อ่านเพื่อตรวจสอบจำนวนของหน้าเว็บที่เขียน
เรียบร้อยแล้วในแต่ละรายการ ในตัวอย่าง tx0 และ
tx1 มุ่งมั่นที่จะมีความมุ่งมั่นที่แต่ละของพวกเขา
มีไม่เป็น txcnt เท่ากับจำนวนที่เขียน
หน้า ( แสดงทั้งหมดของพวกเขาปรับปรุงหน้าเว็บเขียน
หน่วยความจำแฟลชแบบถาวร ) ในทางตรงกันข้าม , เอชพี tx3
และเป็นตั้งใจจะไม่ทำ เอชพีไม่มุ่งมั่น
เพราะว่ามันไม่มีหน้า ด้วยค่า txcnt ไม่เป็น . tx3
ไม่มุ่งมั่น เพราะจำนวนที่เขียนหน้า
ในหน่วยความจำแฟลชแบบถาวรไม่ได้เท่ากับผลรวมของค่า
txcnt ค่า ไม่ตรงกันของ txcnt ไม่เป็นค่า
แสดงว่าไม่ทุกหน้าในรายการจะถูกเขียนไปยังหน่วยความจำแฟลชแบบถาวร
.
การดําเนินงานlighttx การดำเนินการเลื่อนโต๊ะ
แผนที่ปรับปรุงรายการยืนยันเวลา แทนโดยตรง
ปรับปรุงแผนที่ FTL ตาราง เขียนงาน
ปรับปรุงแผนผังรายการใน txtable ปราดเปรียว .
ถ้าธุรกรรมมุ่งมั่น , รายการของแผนที่ใน
txtable งานจะถูกเก็บไว้ในแผนที่ตาราง .
ถ้าไม่รายการแผนที่เหล่านี้เป็นเพียงการปฏิเสธ สำหรับทราน
เขียนล่าสุดอัพเดทหน้าจะเก็บไว้
ใน SSD DRAM เพื่อรอคำสั่งต่อไป ถ้า
คำสั่งต่อไปเป็นกระ , หน้าแคชของ txcnt และ
txver ที่ตั้งค่าไม่เป็น ถ้ายกเลิกการเก็บ
หน้าถูกทิ้ง หรือ เก็บไว้ในหน้า txcnt
txver และตั้งศูนย์ ไม่ใช่การเขียน
txid ไม่ได้ตั้งค่าและ txcnt เป็นชุดหนึ่ง ในขณะที่
การตั้งค่าการกระทำ txver รุ่นเดียวกับการเขียน
.
3 โซนตามธุรกรรมรัฐติดตามการติดตามธุรกรรมโครงการระบุรัฐ
ทำธุรกรรมไม่ได้ผูกมัดเพื่อทำการยืนยัน
และยกเลิกไม่ได้ผูกมัดในระหว่างการกู้คืน
มั่นใจปรมาณู . เพราะหน้าแต่ละรายการอาจจะกระจัดกระจายไปทั่วบล็อกแฟลช
หลายๆ รัฐติดตามสามารถกลายเป็นราคาแพง หากเราต้องการการสนับสนุน
ความยืดหยุ่นในระดับการแยก ( ซึ่งต้องมีรายการมากมายที่อาจ
สหรัฐอเมริกาที่จะติดตามพร้อมๆกัน )
เพิ่มประสิทธิภาพ เราใช้ออกแบบน้ำหนักเบาลด
ติดตามค่าใช้จ่ายใน 2 ด้าน ก่อนอื่น เราติดตาม
สหรัฐอเมริกาธุรกรรมโดยการติดตามสถานะของแฟลชบล็อก
แทนแฟลช หน้า ประการที่สอง เราจะลดจำนวน
รายการจะถูกติดตามโดยการอาศัยธุรกรรม
แยกจากตาย ซึ่งได้แบ่งเป็นโซนที่แตกต่างกันแฟลชบล็อก
ติดตามและแยกกันในโซนเหล่านี้ ( ซึ่งเราได้กล่าวถึงต่อไป ) .
3.3.1 ความสัมพันธ์ระหว่างรัฐ ธุรกรรมหน้ารัฐและรัฐ
บล็อกดังแสดงในรูปที่ 1 , รายการ สามารถเป็นหนึ่งในต่อไปนี้ :
3 รัฐอยู่checkpointing ( เช่นอยู่
แต่เสร็จ ) และตาย สถานะของแต่ละหน้าแฟลช
สืบทอดมาจากธุรกรรม มันเป็นของ ดังนั้น
หน้าแฟลชยังสามารถเป็นหนึ่งในที่กล่าวข้างต้น
สามรัฐ ในทางกลับกัน , สถานะของรายการ สามารถ
การแปล กรุณารอสักครู่..
