 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package palm implements parallel architecture-friendly latch-free modifications (PALM). Details can be found here:
http://cs.unc.edu/~sewall/palm.pdf
The primary purpose of the tree is to efficiently batch operations in such a way that locks are not required. This is most beneficial for in-memory indices. Otherwise, the operations have typical B-tree time complexities.
You primarily see the benefits of multithreading in availability and bulk operations.
Benchmarks:
BenchmarkReadAndWrites-8 3000 483140 ns/op BenchmarkSimultaneousReadsAndWrites-8 300 4418123 ns/op BenchmarkBulkAdd-8 300 5569750 ns/op BenchmarkAdd-8 500000 2478 ns/op BenchmarkBulkAddToExisting-8 100 20552674 ns/op BenchmarkGet-8 2000000 629 ns/op BenchmarkBulkGet-8 5000 223249 ns/op BenchmarkDelete-8 500000 2421 ns/op BenchmarkBulkDelete-8 500 2790461 ns/op BenchmarkFindQuery-8 1000000 1166 ns/op BenchmarkExecuteQuery-8 10000 1290732 ns/op
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BTree ¶
type BTree interface {
	// Insert will insert the provided keys into the tree.
	Insert(...common.Comparator)
	// Delete will remove the provided keys from the tree.  If no
	// matching key is found, this is a no-op.
	Delete(...common.Comparator)
	// Get will return a key matching the associated provided
	// key if it exists.
	Get(...common.Comparator) common.Comparators
	// Len returns the number of items in the tree.
	Len() uint64
	// Query will return a list of Comparators that fall within the
	// provided start and stop Comparators.  Start is inclusive while
	// stop is exclusive, ie [start, stop).
	Query(start, stop common.Comparator) common.Comparators
	// Dispose will clean up any resources used by this tree.  This
	// must be called to prevent a memory leak.
	Dispose()
}
    BTree is the interface returned from this package's constructor.