...
Code Block | ||
---|---|---|
| ||
/** * Reserve WAL space and acquire next unused transaction ID * * \param[in] mi Meta instance * \param[out] tx_id Next unused transaction ID * * \return Zero on success, negative value on error */ int bio_wal_reserve(struct bio_meta_instance *mi, uint64_t *tx_id); /** * Compare two transaction IDs (from same WAL instance) * * \param[in] mi Meta instance * \param[in] id1 Transaction ID1 * \param[in] id2 Transaction ID2 * * \return 1: id1 > id2; -1: id1 < id2; 0: id1 == id2; */ int bio_wal_id_cmp(struct bio_meta_instance *mi, uint64_t id1, uint64_t id2); /** * Commit WAL transaction * * \param[in] mi Meta instance * \param[in] tx_id Transaction ID to be committed * \param[in] actv Vector for changes involved in transaction * \param[in] act_nr Vector size * \param[in] biod BIO IO descriptor (Optional) * * \return Zero on success, negative value on error */ int bio_wal_commit(struct bio_meta_instance *mi, uint64_t tx_id, struct umem_action *actv, unsigned int act_nr, struct bio_desc *biod); /** * Start checkpoint procedure * * \param[in] mi Meta instance * \param[out] last_id Highest transaction ID to be checkpointed * * \return Zero on success, negative value on error */ int bio_wal_ckp_start(struct bio_meta_instance *mi, uint64_t *last_id); /** * End checkpoint procedure, update WAL header, reclaim log space * * \param[in] mi Meta instance * \param[in] last_id Highest checkpointed transaction ID * * \return Zero on success, negative value on error */ int bio_wal_ckp_end(struct bio_meta_instance *mi, uint64_t last_id); /** * Replay committed transactions on post-crash recovery * * \param[in] mi Meta instance * \param[in] replay_cb Callback for transaction replay * \param[in] max_nr Max number of transactions can be replayed * * \return 0:Zero Nothing to be replayed; * +ve: Number of replayed transaction; * -ve: Error on replay;on success, negative value on error */ int bio_wal_replay(struct bio_meta_instance *mi, int (*replay_cb)(struct umem_action *actv, unsigned int act_nr), unsigned int max_replay_nr); |
Asynchronous bio_iod_post()
...