Author: timbo
Date: Mon Jun 8 02:39:14 2009
New Revision: 12815
Added:
dbi/trunk/TODO_gofer.txt
Modified:
dbi/trunk/Changes
dbi/trunk/MANIFEST
dbi/trunk/TASKS.pod
Log:
Move general to-do's out of Changes into TASKS.pod
Moved gofer specific to-do's into TODO_gofer.txt
Modified: dbi/trunk/Changes
==============================================================================
--- dbi/trunk/Changes (original)
+++ dbi/trunk/Changes Mon Jun 8 02:39:14 2009
@@ -6,55 +6,7 @@
=cut
-Assorted TODO notes:
-
-General:
- Protect trace_msg from SIGPIPE?
- prepare(...,{ Err=>\my $isolated_err, ...})
- Add trace modules that just records the last N trace messages into an array
- and prepends them to any error message.
- Document DBI_PROFILE_FLOCK and LockFile attrib in DBI::ProfileData and
DBI::ProfileDumper
-Performance:
- Move _new_sth to DBI::db::_new_sth (leave alias) and implement in C
- Or call _new_child and move to DBI::common?
- Implement FETCH_many() in C
-
-Gofer TODOs:
-
-Add server-side caching.
- combine these:
- my $request = $transport->thaw_request( $frozen_request, $serializer );
- my $response = $executor->execute_request( $request );
- my $frozen_response = $transport->freeze_response($response,
$serializer);
- into single method that first checks the cache and updates it if
appropriate.
- Different serializations will have different caches
-
-Add DBI::Gofer::Serialiser::MIME / Base64
-Add DBI::Gofer::Serialiser::JSON
-
-Gofer - allow dbh attrib changes after connect?
- note them and pass in request as STORE method calls
- but then gofer server need to reset them to restore dbh to original state
- Or, change the attr in the connect() call, but that risks
- bloating the number of cache dbh in the server.
-Gofer request flags for:
- - return current executor stats as an attribute - handy for tests
- - will accept streamed resultsets
-Add attr-passthru to prepare()? ie for gofer cache control & ReadOnly
-Define and document terminology for client and server ends
-Document user/passwd issues at the various levels of the gofer stack
- Remove "Password" from connect attr if the same as $password arg
-Extract policy settings by parsing the pod
-Policy for dbh attr FETCH (ie example_driver_path)
- or piggyback on skip_connect_check
- could also remember which attr have been returned to us
- so not bother FETCHing them (unless pedantic)
-Call method on transport failure so transport can cleanup/reset if it wants
-Gofer: gearman - need to disable coallesing for non-idempotent requests
-
-Add high-res time for windows - via Time::HiRes glob replace dbi_time().
-
-=head2 Changes in DBI 1.609 (svn r12811) 5th June 2009
+=head2 Changes in DBI 1.609 (svn r12814) 8th June 2009
Fixes to DBD::File (H.Merijn Brand)
added f_schema attribute
@@ -64,7 +16,7 @@
Added DBI->visit_handles($coderef) method.
Added $h->visit_child_handles($coderef) method.
- Added docs form column_info()'s COLUMN_DEF value.
+ Added docs for column_info()'s COLUMN_DEF value.
Clarified docs on stickyness of data type via bind_param().
Clarified docs on stickyness of data type via bind_col().
Modified: dbi/trunk/MANIFEST
==============================================================================
--- dbi/trunk/MANIFEST (original)
+++ dbi/trunk/MANIFEST Mon Jun 8 02:39:14 2009
@@ -11,6 +11,7 @@
Roadmap.pod Planned changes and enhancements for the DBI
TASKS.pod Want to help? These things need doing...
TODO_2005.txt Old (but still mostly relevant) occasional
random notes about what's missing
+TODO_gofer.txt To-do notes related to gofer
dbd_xsh.h Prototypes for standard Driver.xst interface
dbi_sql.h Definitions based on SQL CLI / ODBC (#inc'd by
DBIXS.h)
dbipport.h Perl portability macros (from Devel::PPort)
Modified: dbi/trunk/TASKS.pod
==============================================================================
--- dbi/trunk/TASKS.pod (original)
+++ dbi/trunk/TASKS.pod Mon Jun 8 02:39:14 2009
@@ -33,4 +33,23 @@
Naturally I'll offer direction and guidance on any you want to tackle.
I've also got a few that could be entered into rt.cpan.org.
+=head2 Others
+
+General:
+
+ Protect trace_msg from SIGPIPE?
+ prepare(...,{ Err=>\my $isolated_err, ...})
+ Add trace module that just records the last N trace messages into an array
+ and prepends them to any error message to provide context for the
error.
+ Document DBI_PROFILE_FLOCK and LockFile attrib in DBI::ProfileData and
DBI::ProfileDumper
+
+Performance:
+
+ Move _new_sth to DBI::db::_new_sth (leave alias) and implement in C
+ Or call _new_child and move to DBI::common?
+
+ Implement FETCH_many() in C
+
+ Add high-res dbi_time for windows - via Time::HiRes glob replace
dbi_time()?
+
=cut
Added: dbi/trunk/TODO_gofer.txt
==============================================================================
--- (empty file)
+++ dbi/trunk/TODO_gofer.txt Mon Jun 8 02:39:14 2009
@@ -0,0 +1,56 @@
+Gofer TODOs:
+
+DBD::Gofer and http transport changes
+add comparisons with other proxies to gofer docs (see notes)
+ http://code.google.com/p/mod-ndb/
+ http://code.nytimes.com/projects/dbslayer
+update gofer pdf in distribution
+talk about multiple statements in single sql for gofer
+inbalance between two calls to _store_response_in_cache
+ - the call in transmit_request doesn't have the response_needs_retransmit
logic
+
+Add server-side caching.
+ combine these:
+ my $request = $transport->thaw_request( $frozen_request, $serializer );
+ my $response = $executor->execute_request( $request );
+ my $frozen_response = $transport->freeze_response($response,
$serializer);
+ into single method that first checks the cache and updates it if
appropriate.
+ Different serializations will have different caches
+
+Add DBI::Gofer::Serialiser::MIME / Base64
+Add DBI::Gofer::Serialiser::JSON
+
+Gofer - allow dbh attrib changes after connect?
+ note them and pass in request as STORE method calls
+ but then gofer server need to reset them to restore dbh to original state
+ Or, change the attr in the connect() call, but that risks
+ bloating the number of cache dbh in the server.
+Gofer request flags for:
+ - return current executor stats as an attribute - handy for tests
+ - will accept streamed resultsets
+Add attr-passthru to prepare()? ie for gofer cache control & ReadOnly
+Define and document termind that first checks the cache and updates it if
appropriate.
+ Different serializations will have different caches
+
+Add DBI::Gofer::Serialiser::MIME / Base64
+Add DBI::Gofer::Serialiser::JSON
+
+Gofer - allow dbh attrib changes after connect?
+ note them and pass in request as STORE method calls
+ but then gofer server need to reset them to restore dbh to original state
+ Or, change the attr in the connect() call, but that risks
+ bloating the number of cache dbh in the server.
+Gofer request flags for:
+ - return current executor stats as an attribute - handy for tests
+ - will accept streamed resultsets
+Add attr-passthru to prepare()? ie for gofer cache control & ReadOnly
+Define and document terminology for client and server ends
+Document user/passwd issues at the various levels of the gofer stack
+ Remove "Password" from connect attr if the same as $password arg
+Extract policy settings by parsing the pod
+Policy for dbh attr FETCH (ie example_driver_path)
+ or piggyback on skip_connect_check
+ could also remember which attr have been returned to us
+ so not bother FETCHing them (unless pedantic)
+Call method on transport failure so transport can cleanup/reset if it wants
+Gofer: gearman - need to disable coallesing for non-idempotent requests