• last updated 13 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
improve comment

remove obsolete comment

improve Oracle compatibility

last part of site_nodes changes with tree_sortkey dependency

Introduce has_children for SiteNodeUrlspaceCache to avoid queries returning potentially a huge list of results

fix potential problem when updating cache on top-level site

  1. … 1 more file in changeset.
improve comments

  1. … 10 more files in changeset.
Fix typos

  1. … 5 more files in changeset.
fix cache_key name for node_id in flush_cache

scalability improvement: don't force a conversion of the string to a list (for sites, having e.g. several 10k sub nodes on a site node)

on one site, this change reduces the overall processing time of a requests from ~16-20ms to ~4ms

improve spelling

  1. … 6 more files in changeset.
improve log message

Fix parameter names in proc doc

Replace array idioms with dict idioms

flush per-request cache (fixes regression test properly)

Revert change... more investigation needed

node_id shoudl probably be parent_id (fixes automated tests)

improve rowcount expressions

  1. … 76 more files in changeset.
document public methods

it seems, we can reactivate per-request caching for sitenodes, otherwise we see up to 37 locks per requests on get_node_id on openacs.org (regression test works fine)

fix site-node test in regression test

don't use per-request caching, since we migh shoot in our own foot

interrupt cache_transaction to achieve desired semantics

allow in a few cases empty node_ids for method "get_url" as it is used by current OpenACS

  1. … 1 more file in changeset.
Get parent only once

Fix proc and contract doc elements, so they are properly parsed by apidoc::api_*_documentation.

- Add mising @param

- Add missing @author

- @creation_date -> @creation-date

- @creation-user -> @author

- Fix typos

  1. … 8 more files in changeset.
strengthen type checking for site_node ids to make it clear that empty strings are not accepted

Improve naming: rename TreePartitionedCahe to KeyPartitionedCache

  1. … 4 more files in changeset.
base xotcl-based site nodes implementation on partitioned caches

reduce dependencies on xotcl-core

  1. … 2 more files in changeset.
improve spelling

  1. … 12 more files in changeset.
fix typo

  1. … 1 more file in changeset.
site-nodes cache reform: use ns_urlsspace instead of brute-force caching.

For OpenACS site with recent versions of NaviServer and XOTcl2,

cache sitenode information much more efficiently by the built-in

URL trie, which supports tree match operations, for

tree information. This means that for example for .vuh

handlers it is not necessary to cache the full url for

obtaining the site-node, like it was until now:

3839 id-/storage/view/installers/windows-installer/installer.htm

3839 id-/storage/view/aolserver/install.tgz

3839 id-/storage/view/tutorial/OpenACS_Tutorial.htm

3839 id-/storage/view/openacs-dotlrn-conference-2007-spring/Methodology_ALPE.pdf

3839 id-/storage/view/xowiki-resources/Assessment.jpg

3839 id-/storage/view/tutorial-page-map.png

...

Providing a single entry like

ns_urlspace set -key sitenode /storage/* 3839

is sufficient.

Why is this needed: current cache sizes of larger sites show 330K

(site A) and 390K (site B) cache entries. Matchbase flushes have to

gor thhrough all these entries, causing long lock times. Running

thhis code at OpenACS.org shows an improvement by a factor of more

than 200x.

  1. … 1 more file in changeset.
Revert massive replacement of empty list creation sentences. The use of '[list]' instead of '{}' adds semantics that could be used for performance improvements in the future, such as using a different internal representation. There is already work in this direction, avoiding the generation of the string representation during comparison of empty strings (huge thanks to Stefan Sobernig for the pointer: https://core.tcl.tk/tcl/info/44527c632ed609c2).

  1. … 475 more files in changeset.