wp
This commit is contained in:
93
database/tmp
Normal file
93
database/tmp
Normal file
@@ -0,0 +1,93 @@
|
||||
// IN APPEND MEASURES
|
||||
// if len(s.buffer) < storage.DataPageSize {
|
||||
// // allocate bigger buffer
|
||||
// buf, databuf := growBuffers(growBuffersIn{
|
||||
// databuf: s.buffer,
|
||||
// tSize: timestamps.Size(),
|
||||
// vSize: values.Size(),
|
||||
// requiredSpace: totalRequiredSpace,
|
||||
// })
|
||||
|
||||
// s.buffer = buf
|
||||
// // replace buffer in timestamps and values
|
||||
// timestamps.Rotate(databuf) // fix pos
|
||||
// values.Rotate(databuf) // fix pos
|
||||
// } else {
|
||||
|
||||
// IN DATABASE
|
||||
|
||||
// FIX
|
||||
// УВАГА!
|
||||
// Якщо буфер metric.buffer < розміру сторінки - для timestamps доступний весь буфер.
|
||||
// Якщо буфер досяг розміру сторінки - в timestamps я передаю buffer[:DataPagePayloadSize]
|
||||
|
||||
// var dataBufferSizes = []int{
|
||||
// 1024,
|
||||
// 2048,
|
||||
// 4096,
|
||||
// 8192,
|
||||
// }
|
||||
|
||||
// func calculateDataBufferSize(payloadSize int) int {
|
||||
// for _, bufferSize := range dataBufferSizes {
|
||||
// if payloadSize <= bufferSize {
|
||||
// return bufferSize
|
||||
// }
|
||||
// }
|
||||
// return storage.DataPageSize
|
||||
// }
|
||||
|
||||
// func allocateBuffers(requiredSpace int) (buf, databuf []byte) {
|
||||
// bufferSize := calculateDataBufferSize(requiredSpace)
|
||||
// buf = make([]byte, bufferSize)
|
||||
// if bufferSize == storage.DataPageSize {
|
||||
// databuf = buf[:storage.DataPagePayloadSize]
|
||||
// } else {
|
||||
// databuf = buf
|
||||
// }
|
||||
// return
|
||||
// }
|
||||
|
||||
// // src - databuf
|
||||
// type growBuffersIn struct {
|
||||
// databuf []byte
|
||||
// tSize int
|
||||
// vSize int
|
||||
// requiredSpace int
|
||||
// }
|
||||
|
||||
// func growBuffers(in growBuffersIn) (buf, databuf []byte) {
|
||||
// buf, databuf = allocateBuffers(in.requiredSpace)
|
||||
// copy(databuf[len(databuf)-in.tSize:], in.databuf[len(in.databuf)-in.tSize:])
|
||||
// copy(databuf, in.databuf[:in.vSize])
|
||||
// return
|
||||
// }
|
||||
|
||||
// type shrinkBufferIn struct {
|
||||
// Buffer []byte
|
||||
// TimestampsSize int
|
||||
// ValuesSize int
|
||||
// NewBufferSize int
|
||||
// }
|
||||
|
||||
// func shrinkBuffer(in shrinkBufferIn) []byte {
|
||||
// buf := make([]byte, in.NewBufferSize)
|
||||
// copy(buf, in.Buffer[:in.ValuesSize])
|
||||
// copy(buf[:len(buf)-in.TimestampsSize], in.Buffer[len(in.Buffer)-in.TimestampsSize:])
|
||||
// return buf
|
||||
// }
|
||||
|
||||
// IN REPLAY_METRIC.TO_METRIC
|
||||
|
||||
// var (
|
||||
// requiredSpace = s.tSize + s.vSize
|
||||
// )
|
||||
// bufferSize := calculateDataBufferSize(requiredSpace)
|
||||
// if len(s.buf) > bufferSize {
|
||||
// s.buf = shrinkBuffer(shrinkBufferIn{
|
||||
// Buffer: s.buf,
|
||||
// TimestampsSize: s.tSize,
|
||||
// ValuesSize: s.vSize,
|
||||
// NewBufferSize: bufferSize,
|
||||
// })
|
||||
// }
|
||||
Reference in New Issue
Block a user