Ticket #661 (assigned enhancement)

Opened 3 years ago

Last modified 5 weeks ago

Implement a storage subsystem

Reported by: david Owned by: david
Priority: highest Milestone: 1.1
Component: storage Version:
Severity: blocker Keywords:
Cc: Patch attached: no

Description (last modified by david) (diff)

Right now, Storage is only used for sessions. That is, of course, lame. We want something general-purpose that can be used in app code, for caching, and so on.

With a storage manager, much like the current database manager.

With chained storages (e.g. read from memcache first, then, on failure, from database, but always write to both), lots of drivers

Of course, we need to maintain BC and therefor some smart way to integrate the "session" storage (AgaviMemcacheStorage ... AgaviMemcacheSessionStorage ... AgaviSessionStorage ... fail!), maybe through moving the session read/write/blah into the user, which then uses a storage or such?

BC could be implemented via the factories.xml config handler, because that new feature would, of course, have http://agavi.org/agavi/1.1/config as the namespace! So for a 1.0 NS, it transparently creates a storage manager with just one session storage, and for 1.1, it requires a <storage_manager> tag be there (that would then need a separate storages.xml). And in the case, AgaviContext::getStorage() returns the session storage as it is now. Only really difficult question seems to be this session storage integration in case multiple implementations exist. Maybe a storage decorator or so? :)

Anyway, sounds like a really good candidate for GSoC!

Attachments

Change History

Changed 3 years ago by david

  • has_patch unset
  • description modified (diff)

Changed 3 years ago by impl

  • status changed from new to assigned

Changed 2 years ago by david

  • owner changed from impl to david
  • status changed from assigned to new

Changed 2 years ago by david

in a way, this is related to #748

Changed 2 years ago by david

mmh, I meant wiki:Cleanup/Storage of course

Changed 19 months ago by david

While we're at it, we could/should implement support for <parameter>s in <caching>s to allow more fine-grained control of $whatever, at least in custom implementations... that requires that the config is actually passed to the read/write/check methods, though, which is why it wasn't done for 1.0

Changed 18 months ago by david

(In [3945]) storage manager basics, refs #661

Changed 18 months ago by david

(In [3946]) committed by accident in [3945], refs #661

Changed 16 months ago by david

  • status changed from new to assigned

Add/Change #661 (Implement a storage subsystem)

Author


E-mail address and user name can be saved in the Preferences.


Action
as assigned
 
Note: See TracTickets for help on using tickets.