redesign for better IO performance
enhanced database seek-time by avoiding write operations at distant
positions of a database file. until now, a USEDC counter was written
at the head-section of a kelondroRecords database file (which is the
basic data structure of all kelondro database files) to store the
actual number of records that are contained in the database. Now, this
value is computed from the database file size. This is either done
only once at start-time, or continuously when run in asserts enabled.
The counter is then updated only in RAM, and written at close of the
file. If the close fails, the correct number can be computed from the
file size, and if this is not equal to the stored number it is a strong
evidence that YaCY was not shut down properly.
To preserve consistency, the complete storage-routine had to be re-written.
Another change enhances read of nodes in some cases, where the data-tail
can be read together with the data-head. This saves another IO lookup during
each DB node fetch.
Includes also many small bugfixes.
IF ANYTHING GOES WRONG, ALL YOUR DATA IS LOST: PLEASE MAKE A BACK-UP
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@3375 6c8d7289-2bf4-0310-a012-ef5d649a1542
this affects news, robots?, bookmarks?, blogs, the wiki, seed-db, news etc.
this all should create less IO
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@2107 6c8d7289-2bf4-0310-a012-ef5d649a1542
this has very strong effects of to all methods that read maps
from kelondroDyn databases, i.e. news, seeds (bookmarks?)
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@2106 6c8d7289-2bf4-0310-a012-ef5d649a1542
This should increase IO performance and reduce HD activity
* bugfixes for new exception-on-failure policy
* bugfixes for new IOChunks
* new Object pool for database write-buffer
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@1204 6c8d7289-2bf4-0310-a012-ef5d649a1542
This is an abstraction of chunked IO-processes.
It will help to synchronize access to IO-ports.
Furthermore this is a preparation for upcoming chunk-oriented write buffers.
git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@1201 6c8d7289-2bf4-0310-a012-ef5d649a1542