X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Fdoc%2Fdesign.lyx;h=ba3f9cc60fdee362aa94386cdf6b9067cd852a3a;hb=6f7cb26e589cea081e71c59801eae87178967861;hp=dfbc19fa955127d4cdba1e5fcd97439faa443410;hpb=ed81f39468c4d9089310fb4950b09c1f5886c4ef;p=ccan diff --git a/ccan/tdb2/doc/design.lyx b/ccan/tdb2/doc/design.lyx index dfbc19fa..ba3f9cc6 100644 --- a/ccan/tdb2/doc/design.lyx +++ b/ccan/tdb2/doc/design.lyx @@ -35,7 +35,7 @@ \paperpagestyle default \tracking_changes true \output_changes true -\author "Rusty Russell,,," +\author "" \author "" \end_header @@ -50,7 +50,7 @@ Rusty Russell, IBM Corporation \end_layout \begin_layout Date -1-December-2010 +17-March-2011 \end_layout \begin_layout Abstract @@ -698,13 +698,7 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1298979572 -Incomplete; nesting flag is still defined as per tdb1. -\change_inserted 0 1298979584 Complete; the nesting flag has been removed. -\change_unchanged - \end_layout \begin_layout Subsection @@ -785,12 +779,6 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1300360559 -Incomplete. - TDB_VOLATILE still defined, but implementation should fail on unknown flags - to be future-proof. -\change_inserted 0 1300360588 Complete. Unknown flags cause tdb_open() to fail as well, so they can be detected at runtime. @@ -853,7 +841,7 @@ Status \end_layout \begin_layout Standard -Incomplete. +Complete. \end_layout \begin_layout Subsection @@ -882,34 +870,15 @@ Proposed Solution \begin_layout Standard Reachitecting the API to include a tdb_errcode pointer would be a great - deal of churn -\change_inserted 0 1298979557 -, but fortunately most functions return 0 on success and -1 on error: we - can change these to return 0 on success and a negative error code on error, - and the API remains similar to previous. + deal of churn, but fortunately most functions return 0 on success and -1 + on error: we can change these to return 0 on success and a negative error + code on error, and the API remains similar to previous. The tdb_fetch, tdb_firstkey and tdb_nextkey functions need to take a TDB_DATA pointer and return an error code. It is also simpler to have tdb_nextkey replace its key argument in place, freeing up any old .dptr. \end_layout -\begin_layout Standard - -\change_deleted 0 1298979438 -; we are better to guarantee that the tdb_errcode is per-thread so the current - programming model can be maintained. -\end_layout - -\begin_layout Standard - -\change_deleted 0 1298979438 -This requires dynamic per-thread allocations, which is awkward with POSIX - threads (pthread_key_create space is limited and we cannot simply allocate - a key for every TDB). -\change_unchanged - -\end_layout - \begin_layout Standard Internal locking is required to make sure that fcntl locks do not overlap between threads, and also that the global list of tdbs is maintained. @@ -933,13 +902,7 @@ Status \end_layout \begin_layout Standard -Incomplete -\change_inserted 0 1298979681 -; API has been changed but thread safety has not been implemented. -\change_deleted 0 1298979669 -. -\change_unchanged - +Incomplete; API has been changed but thread safety has not been implemented. \end_layout \begin_layout Subsection @@ -1282,13 +1245,7 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1300360712 -Incomplete. -\change_inserted 0 1300360716 Complete. -\change_unchanged - \end_layout \begin_layout Subsection @@ -1333,13 +1290,7 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1298979699 -Incomplete, TDB_CLEAR_IF_FIRST still defined, but not implemented. -\change_inserted 0 1298979700 Complete. -\change_unchanged - \end_layout \begin_layout Subsection @@ -1398,13 +1349,7 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1300360753 -Incomplete. -\change_inserted 0 1300360754 Complete. -\change_unchanged - \end_layout \begin_layout Subsection @@ -1434,13 +1379,7 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1300360766 -Incomplete. -\change_inserted 0 1300360767 Complete. -\change_unchanged - \end_layout \begin_layout Subsection @@ -1557,13 +1496,7 @@ Status \end_layout \begin_layout Standard - -\change_deleted 0 1298979837 -Incomplete; TDB_CLEAR_IF_FIRST still defined, but does nothing. -\change_inserted 0 1298979837 Complete. -\change_unchanged - \end_layout \begin_layout Subsection @@ -2303,10 +2236,6 @@ struct tdb_free_record { \end_layout \begin_layout Standard - -\change_deleted 0 1291206079 - -\change_unchanged Note that by limiting valid offsets to 56 bits, we can pack everything we need into 3 64-byte words, meaning our minimum record size is 8 bytes. \end_layout