Novell Home

FLAIM Todo List

From Developer Community

Item Description Owner Status
FLAIM Items
Getting Started Documentation Write documentation that details how to get started using FLAIM APIs - a step-by-step approach for using FLAIM in an application. Daniel Sanders
Unit Tests Many more search tests
Field ID Table Add field ID table to improve lookups of field numbers within record - only at level 1 in record. Daniel Sanders Done
Native Atomic operations Need to have native atomic operations (inc, dec, xchg) on Solaris, HP/UX, and AIX platforms. Andy Hodgkinson Done
Java Bindings Use JNI to create JAVA interface to C++
Other Language Bindings C#, Perl, Python, PHP, etc.
Record Level Locking New concurrency model that will allow multiple updaters with record level locking.
SMP Improvements Multi-processor improvements to reduce contention on mutexes - perhaps use reader/writer locks instead. Andy / Daniel Added reader/writer locks to FTK
Sounds-Like Searches Add sounds-like indexes and sounds-like query capabilities Andy Hodgkinson Moved from X-FLAIM into FTK. FLAIM needs to make the appropriate calls.
Support 64-bit Numbers Allow storing, indexing, querying of 64 bit signed and unsigned integers. Will involve an enhancement to the database format. Daniel Sanders Done
Support large text and binary Currently there is a limit of 64K per field for text and binary fields. Would like to increase that to 4GB. Andy Hodgkinson Done
Support 64 bit DRNs DRNs are currently limited to 32 bits. May need to support 64 bit DRNs. This is a major file format change.
Support 64 bit transaction IDs. Transaction IDs are currently limited to 32 bits. May need to support 64 bit transaction IDs. This is a major file format change.
Automated test harness Need a random, automated stress test including support for "pull-the-plug"
Encryption support in open-source codebase Need to support encryption using an open-source solution (i.e., OpenSSL) Andy Hodgkinson Researching
Use aligned buffers for file reads Read operations are much more efficient if the buffers are aligned on a sector boundary Andy Hodgkinson Done
Don't truncate RFL between checkpoints File system metadata updates are very expensive. To minimize those update, the RFL should not be truncated between checkpoints. This will improve update performance. Andy Hodgkinson Done
Re-architect the cache allocator to enable the use of sector-aligned buffers when reading from database files. This will improve database reads when direct I/O is enabled by allowing the drive to read directly into the FLAIM cache buffer. Andy Hodgkinson Done
Provide an MSI bundle for Windows platforms This should be built using the WiX toolkit Andy Hodgkinson Researching
Option to lock cache in core Need to prevent cache allocations from being swapped to disk Andy Hodgkinson
Delta support for binary data in the RFL On a modify operation, we need to support logging deltas of binary fields
Support field and/or record compression This could be done using an open source library such as zlib
Optimize FlmDbSweep The current implementation starts and ends an update transaction for every database modification. This is very expensive (and slow). Andy Hodgkinson Done
Read-ahead caching If the application is reading the current version of a block at the leaf level of the B-Tree and there is a next block which isn't in cache, signal a background read thread to begin reading the block into cache. Andy Hodgkinson
Fragmentation Need APIs that will quantify the amount of fragmentation in a database and will also defragment the database
XFLAIM Items
Getting Started Documentation Write documentation that details how to get started using XFLAIM APIs - a step-by-step approach for using XFLAIM in an application. Daniel Sanders
Doxygen for API Documentation Move the documentation into xflaim.h using Doxygen conventions. This will help keep source code and documentation consistent as changes are made. Daniel Sanders Partially Done
Toolkit Atomic Functions Andy Hodgkinson Done
Java Bindings Use JNI to create JAVA interface to C++ Daniel Sanders Done
Java Unit Tests Write unit tests to exercise the XFLAIM Java interfaces
C# Bindings Use P/Invoke or C++ Interop to create C# interface to C++ Daniel Sanders Investigating
Other Language Bindings Perl, Python, PHP, etc.
SMP Improvements Multi-processor improvements to reduce contention on mutexes - perhaps use reader/writer locks instead. Andy / Daniel Added reader/writer locks to FTK
Submit XFLAIM to SLES 9 and NLD 9 autobuild XTIER has requested that we provide runtime and devel packages via autobuild
Regular Expression Matching Need to add some basic regular expression matching for XPATH queries that goes beyond the simple wildcard matches
Encryption support in open-source codebase Need to support encryption using an open-source solution (i.e., OpenSSL) Andy Hodgkinson Researching
Use aligned buffers for file I/O When read and write operations are much more efficient if the buffers are aligned on a sector boundary Andy Hodgkinson
SQL FLAIM
ODBC/JDBC Create ODBC and JDBC Interface
FTK - Cross-Platform Toolkit
Create a common toolkit Using the cross-platform and common code available in FLAIM/XFLAIM, create a stand-alone platform-abstraction layer and toolkit. Andy Hodgkinson Done
Port FLAIM/XFLAIM to use the common toolkit FLAIM/XFLAIM Use Common Toolkit Andy Hodgkinson Done
Caching file handle manager Needed to support a large number of database handles to prevent the host system from running out of file handles. Andy Hodgkinson Done
Add support for automatically extending files on *nix platforms This reduces the number of file system metadata updates required. Andy Hodgkinson Done
Win64 support Need to build and post win64 binary packages Andy Hodgkinson
OS X Universal Binaries Need to build and post OS X universal binary packages Andy Hodgkinson
HPUX support Need to be able to build on HPUX using the native compiler Andy Hodgkinson Done
NetWare shared library Need to build a NetWare shared library NLM
Regex Add support for regular expression matching. May want to use the standard implementation provided by Henry Spencer. Andy Hodgkinson
Common cache management FLAIM, XFLAIM, and SQL FLAIM use basically the same cache management code. Need to pull this common code into the toolkit. Andy Hodgkinson
Single lock monitor thread Each lock object spawns its own thread to timeout lock waiters. We need to have a single thread that does this for all lock objects. Andy Hodgkinson
XML parser Add support to the parser for building in-memory DOM documents Andy Hodgkinson
Unit tests Need a lot more unit tests to exercise every toolkit function
Miscellaneous Items
Makefile Don't allow 32bit or 64bit to be specified as targets when building RPMs
Builds Get automated nightly builds Andy Hodgkinson Done
Documentation updates Update the automated build script to post new documentation whenever a new build is posted
FLAIM Podcast Need to post the FLAIM Podcast on our Wiki site
FLAIM in Wikipedia Add and/or update the FLAIM Wikipedia entry
Ubuntu Create a Debian package and get FLAIM/XFLAIM/FTK into the Ubuntu distro
Solaris Create a Solaris package and make FLAIM/XFLAIM/FTK available on sunfreeware.com
GroupWise FLAIM Consider making an open source version of the GroupWise FLAIM code available
Pinned Cache Add support for pinning cache allocations in core
Database create option to create dir hierarchy Allow a flag/parameter to be passed when creating a database so that the directory structure will be created if it doesn't already exist
Pre-extend database file(s) when forcing a checkpoint To reduce filesystem fragmentation, extend the database files to their target size when forcing a checkpoint Andy Hodgkinson Done
Add "cache overhead" statistic
Investigate AIX JFS2 Concurrent I/O See http://www-03.ibm.com/servers/aix/whitepapers/db_perf_aix.pdf
Navigation



Table of Contents


Novell® Making IT Work As One

© 2009 Novell, Inc. All Rights Reserved.