today implementation don't have problems!
maybe an new directory could help, see:
when we get from "/#OW SYSTEM#/#ANY FILE OR DIRECTORY#" (could be
"/ow_device_manager/#ANY FILE OR DIRECTORY#")
OW SYSTEM:
ow system that's connected direct to ds2480 or ds2490 or another dsxxxx
this directory could work like this:
init(" owserver ");
get(" settings values ");
put("/settings/timeout/network",0);
put("/settings/timeout/stable",0);
put("/settings/timeout/volatile",0);
put("/settings/timeout/ another timeout configurations ",0);
$value=get(" getting now will be expired cache value, we will get from
owserver :) ");
put(" set settings back again ",setting_value);
echo "$value";
i can do it with php, but time to change and set again configuration is
very big for a single read.
*****************
cache system ideas:
SQLITE
sqlite good things:
we can SEE the cache
good thinks about sqlite library (www.sqlite.org):
Small code footprint: less than 250KiB fully configured or less than
150KiB with optional features omitted.
Supports databases up to 2 terabytes (2^41 bytes) in size. (no problem
with 2^64 device)
A complete database is stored in a single disk file.
Implements most of SQL92.
Zero-configuration - no setup or administration needed.
Self-contained: *no external* dependencies.
*have windows and posix support!!!!*
SQLITE PROBLEMS:
maybe anyone could delete file or change table values or put
incorrect values on cache system, write lock on file must be done
if sqlite is used with ":memory:" (in memory database) just owserver
will see the database, may be it could be used only with filesystem cache
if sqlite is faster than today implementation AND with small footprint,
we could change today implementation for non uclinux compilations too,
we need to see if memory usage is bigger or small with sqlite library too
we don't need to delete expirate values, a field could say the last time
that cache was updated and an SQL statment could filter the value like:
"SELECT value FROM cache_table WHERE file='balbalbal' AND
expiration_time>= current_time ", maybe when owserver end or start
database could be cleaned...
ANOTHERS
anothers cache systems could be: the system used in MMTurck or
eaccelerator or APC or memcache (php libraries from pecl.php.net) or
Berkeley DB or
(http://www.danga.com/memcached/) :
Memcached is a caching daemon designed especially for dynamic web
applications to decrease database load by storing objects in memory.
MEMCACHE PROBLEMS:
server must run before ow,
could be used for non uclinux too,
maybe sqlite could be faster, if disk write and read is faster than
IP communication.
If memcache server die or don't work what could we do?
i didn't see documentation of memcache, but i think that we can't
see all cache contents like an "SELECT * FROM cache_table"
COMMENTS:
i don't know if database systems could help, we need fast systems and i
don't like another program running like mysqld or oracle daemon or
postgrees daemon or firebird daemon or XXX daemon, maybe embbeded
solutions like sqlite or filebased databases could help. without server
running cache is locked, using filebased database we just need file
access to write and read, today i just run owserver with root... i don't
have privileges problems for files, for windows the same thing just run
like administrator
if we will use filebased, we need to remember that files can be
shared... if we put it on network filesystems maybe many owserver can
use the samefile and table conflicts could occur like duplicated
settings values, we need to put mac address to know what server we are,
or another unique ID...
just building to test and know if it really work...
Paul Alfille escreveu:
> Hi Robero. You certainly are exploring the entire program!
>
> Currently the cache is an in-memory binary tree. There is some
> information at http://www.owfs.org/index.php?page=cache
> <http://www.owfs.org/index.php?page=cache>
>
> Several different things are cached:
> 1. devices (basically if a serial number was found, and on which bus)
> 2. directory lists (lists of serial numbers for a given path)
> 3. "file" contents ( things like serialnumber/temperature )
> 4. Hidden properties (like cumulative counters, and barometer
> calibration factors)
>
> Cached items also store their termination time.
>
> We actually use two binary trees, one for new entries, and one that is
> older. The older one doesn't get updated, and eventually expires
> entirely, and gets deleted. At that point, the newer one becomes the
> older one, and a new one is started.
>
> This means that we never have to scan through all the items with see
> which are too old, and stale entries are guarnteed to be deleted in a
> reasonable time period.
>
> So, could the cache be stored in SQLite? Sure. Could it be backed up
> by a physical file? Sure. What would the advantage be? Binary trees
> are quite fast for adding and retrieving. Glibc and uClibc both have
> support built in for binary trees so external libraries are needed.
>
> There are some problems with the current scheme. If you have owfs
> connecting to owserver, each has it's own cache. It is possible for
> the caches to be out of synch, especially if several programs are
> connected to owserver. Reading "uncached" values will always work, and
> cache problems time themselves out quickly in any case.
>
> An alternative design would be a separate owcache program. Cache would
> be consistent, and not repeated, but communication efficiency might
> swamp space efficiency. I didn't do it because of the complexity.
>
> Tell me what you see as the deficiencies of the current scheme.
>
> Paul Alfille
>
> On 10/14/06, *Roberto Spadim* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
> Hello guys, i was thinking about cache system...
> can we use cache in filesystem?
> like in sqlite we can use
> sqlite_open(":memory:");
> to use database on memory and
> sqlite_open("/file.sqlite");
> to open an file
> could we set the "file_name" of cache system?
> if we put "NULL" the cache system could be turned off
> what you say?
>
> have anyother database system that is fast than today database?
> sqlite
> could be used? we are using berkley?
> could we select "file_name" for
> Old Cache data
> New Cache data
> Persistent data
>
> in diferent "files"??
> thankx guys :)
>
> "files" could be memory or real file
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services,
> security?
> Get stuff done quickly with pre-integrated technology to make your
> job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> <http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642>
> _______________________________________________
> Owfs-developers mailing list
> [email protected]
> <mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>
>
> ------------------------------------------------------------------------
> Esta mensagem foi verificada pelo E-mail Protegido Terra
> <http://mail.terra.com.br/>.
> Scan engine: McAfee VirusScan / Atualizado em 13/10/2006 / Versão:
> 4.4.00/4873
> Proteja o seu e-mail Terra: http://mail.terra.com.br/
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> ------------------------------------------------------------------------
>
> _______________________________________________
> Owfs-developers mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers