| 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 |
© 2009 Novell, Inc. All Rights Reserved.