GSOC 2013 Project Ideas

Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

1. Couchbase Memory Allocator
Description: Couchbase currently uses the "the system allocator" to allocate continuous memory chunks and tcmalloc on certain supported platforms. This works well for allocating a lot of variable sized objects but not very well with large objects. Internally, we don't need continuous memory allocations so this task is about replacing the use of the system allocator with a "block allocator" and enhancing tcmalloc to work in such scenarios.

Expected results: After this project is completed, Couchbase's memory allocator should be a block allocator.

Knowledge : C++
Difficulty : Hard

2. Add data structure support in Couchbase
Description: Application use different data structures for different functions. For example, queues can be implemented using lists and state can be stored using hash signatures. In this project, you'll extend Couchbase to support advanced data structures such as Lists, Sets, Sorted Sets and Hashes. These data structures need to be in-memory and persisted on disk.
Expected results: After this project is completed, application should be able to store different data structures in Couchbase.
Knowledge : C/C++ and updates to Couchbase client (Java, .Net, C/C++)
Difficulty : Medium

In-Memory compression technique for Couchbase
Description: Couchbase currently stores keys, metadata and potentially document contents in memory. This project involves coming up with efficient technique for compressing objects stored in memory.
Expected results: After this project is completed, data in-memory should be compressed efficiently.
Knowledge : C/C++
Difficulty : Medium

Integrate Google Breakpad
Description: Couchbase relies on coredumps being available on the system in order to gather crash information back to engineering. In some deployments, users prefer to not have this enabled  since it takes for instance a fair amount of time to dump core of a binary with a 64GB memory footprint, and a fair amount of diskspace. In these circumstances it would be better to gather some simple diagnostics instead of just the simple "the program crashed".

The goal of this project is to integrate Google Breakpad into the various components of Couchbase, and make it configurable to enable it.
Expected results: All components of Couchbase may be configured to use Google Breakpad (including documentation on how to enable/disable this), and the crash information is submitted as part of the generated diagnostic sent back from Couchbase.
Knowledge: C/C++ and build systems
Difficulty : Easy

CBFS Blob Chunking
Description: CBFS (a.k.a Couchbase Large Object Store) is built on top of Couchbase Server.
File content in CBFS is represented as a single sequence of bits.  Large files require large blobs to move around during replication.  Small changes to large blobs require full duplication of the common parts.  Simple block-based chunking will make it a lot easier to move bits around and make appends (for example) cheaper.
Expected results: cbfs has file -> [blob, ...] instead of file -> blob
Knowledge: The student should be comfortable working in the GO programming language.
Difficulty : Medium

Couchbase Drupal Adapter
Description: Write an adapter to run the drupal platform on Couchbase.
Expected results: After this project is completed, Couchbase should be the primary backend platform for Drupal.
Knowledge: PHP
Difficulty: Medium

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.