Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scorch! a New Index for Bleve

Scorch! a New Index for Bleve

Bleve, an open-source full-text search library for Go, has moved beyond the general-purpose key/value store and now implements its own custom binary index format named Scorch. Learn about the data-structures and Go libraries we've chosen to build this solution.

Marty Schoch

August 03, 2018
Tweet

More Decks by Marty Schoch

Other Decks in Technology

Transcript

  1. Roaring Bitmap backed Postings List •Uncompressed Bitsets •Slice of Integers

    •Run-length encoding •Chunked Encoding, combining each
  2. $

  3. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26
  4. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26
  5. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26
  6. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26
  7. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt
  8. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt root.bolt 27 a, b, c, d, e, f
  9. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt root.bolt 27 a, b, c, d, e, f Persister - lastEpoch 27
  10. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt root.bolt 27 a, b, c, d, e, f Persister - lastEpoch 27
  11. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt root.bolt 27 a, b, c, d, e, f Persister - lastEpoch 27
  12. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt root.bolt 27 a, b, c, d, e, f Persister - lastEpoch 27
  13. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.bolt root.bolt 27 a, b, c, d, e, f Persister - lastEpoch 27
  14. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write f Persister - lastEpoch 26 Persister - lastEpoch 26 f.zap root.bolt 27 a, b, c, d, e, f Persister - lastEpoch 27
  15. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26
  16. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26
  17. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26
  18. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26
  19. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26 Merge Introduction g.zap
  20. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26
  21. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26 Merge Introduction g.zap
  22. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26 Merge Introduction g.zap Merger - lastPlanned 27
  23. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister f Merger - lastPlanned 26 Merge Introduction g.zap Merger - lastPlanned 27
  24. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister Merger - lastPlanned 26 Merge Introduction g.zap Merger - lastPlanned 27
  25. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister Merger - lastPlanned 26 Merge Introduction g.zap Merger - lastPlanned 27 g
  26. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister Merger - lastPlanned 26 Merge Introduction g.zap Merger - lastPlanned 27 g Index Snapshot - epoch 28
  27. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister Merger - lastPlanned 26 Merge Introduction g.zap Merger - lastPlanned 27 g Index Snapshot - epoch 28
  28. Index Snapshot - epoch 27 Introducer Application Goroutine introduction channel

    read read/write Persister Merger - lastPlanned 26 Merger - lastPlanned 27 g Index Snapshot - epoch 28