Not as far as I can tell.
Of course it breaks the single-file paradigm, but that doesn't mean it's
not acceptable.
I would guess that it's simply a case of nobody having gotten around
implementing anything - so I'm sure such a project would be very welcome.
> am i mistaken in thinking that portability would now be TW file +
> sqlite file instead of just the TW file alone?
I don't know much about SQLite, but I'm fairly sure that's the case. (Of
course the respective SQLite drives would be required on the client
machine.)
I'm also not sure whether JavaScript can access SQLite - though a quick
Google search suggests this might be possible:
http://tinyurl.com/5zbudy
(http://www.mail-archive.com/sqlite...@sqlite.org/msg34583.html)
> the whole "server side" concept of TiddlyWeb pretty much renders the
> 'max portability' ideal of TW DOA: TW + sqlite would be two files and
> you're on your way whereas TiddlyWeb is python + whatever else = a lot
> more than two simple files in order to be up and running
Well, you have to distinguish between client- and server scenarios.
Essentially, in the client scenario (i.e. when using a regular
TiddlyWiki), TW provides both the back- and front-end. However, in a
server scenario, you typically have different requirements (e.g.
multi-user support), with TiddlyWiki serving as the (smart) front-end.
Those two will continue to coexist.
-- F.
I agree that this could be very useful.
However, thinking about this, I'm not sure whether changing the store
mechanism alone actually solves the problem.
You'd still be shoving the entire data to memory on startup - so it
doesn't really make much of a difference where that data comes from.
We've run into this issue with the server-sides, and concluded that some
kind of on-demand loading will be required. However, that's a tricky
issue, and there are several potential solutions ("lazy loading" of
entire tiddlers or serving "skinny tiddlers" with only the metadata).
All of these impact search, lists of tiddler titles or tags etc.
-- F.
>> You'd still be shoving the entire data to memory on startup - so it
>> doesn't really make much of a difference where that data comes from.
>
> good point. this makes me wonder what the Mozilla folks had in mind
> when they started migrating stuff into sqlite files for FF3. they've
> said they need a db file in order to handle large amounts of data ...
> but if that just gets loaded into memory then obviously they'd be
> facing the same troubles we're speculating here.
I guess Fred is eluding to the way TiddlyWiki loads tiddlers
from a store, not so much how sqllite works, hence the mention of
ideas for generic TiddlyWiki optimisation such as Lazy Loading,
skinny tiddlers, etc.
>> ... there are several potential solutions ("lazy loading" of
>> entire tiddlers or serving "skinny tiddlers" with only the metadata).
>> All of these impact search, lists of tiddler titles or tags etc.
>
> i can certainly see that they would ... but is it a serious hit or
> something on the order of a few 10s of milliseconds here and there? i
> expect that's something we'd probably just have to try and see.
yeah, as with any performance issues, they're difficult to predict,
and a lot depends on how the shape of, and the interactions with
the data. I wouldn't expect sqllite to be any kind of silver bullet,
but it does sound like an interesting idea for experiment.
I'd encourage you to noodle and to let us know what you come up with!
Best,
Paul
--
http://blog.whatfettle.com
hello everyone, i'm interested in your collective thoughts on adding
an sqlite db to TW. the idea, of course, is that the tiddlers would
go into an sqlite file instead of the html file.
That's great - looking forward to hearing about your progress!
> as to Google Gears, i've got a general prejudice against Google [...]
> my main goal is to have this thing almost as easy to move around as TW
> itself is
FWIW, I share those concerns.
-- F.
Well, I assume there is some additional logic mediating between the
back- and front-end - essentially doing on-demand loading.
But that's a bit of a lopsided comparison, because tiddlers are
presumably quite different from bookmarks.
> as to the "lazy loading" and "skinny tiddlers" ideas they sound
> great. has TW related work been done on these?
Many discussions - no actual implementations yet.
Essentially, TiddlyWiki would have to be aware of the fact that content
is missing from the local store and has to be requested separately. As
mentioned before, that affects all sorts of operations - from full-text
processing (e.g. search, slices) to metadata evaluation (e.g. tags).
One of the biggest obstacles is that third-party plugins need the same
awareness.
> i wonder how applicable that stuff would be to a sqlite scenario.
A satisfying solution would most likely be applicable to any "detached
storage" scenario.
-- F.
Yes - however, TiddlyWiki doesn't load data from file when it's
required, but only once during startup, pushing it all into memory.
Thus all processing expects the respective data (e.g. tiddler.tags) to
be available without having to go through a read cycle first.
If all data retrieval were further abstracted, encapsulated in a
function (e.g. tiddler.tags()), introducing on-demand loading should be
possible without breaking backwards compatibility - but as things are
now, I don't know how it could be done.
-- F.