<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<br>
<div class="moz-cite-prefix">On 2017-08-10 05:56 AM, Ilya Biryukov
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANmbtFfo2eDh+R2MnnUU4T==jmJ-6Jhkz-P047y2jK6au=-1oQ@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">One thing that is really important for us at Google
is to come up with the index interface (for both querying and
building an index) that would allow an alternative
implementation that could scale for larger codebases.
<div>That should not require significant changes to your design,
merely extracting a few interface classes and figuring out the
APIs should be easy.</div>
<div>We could figure it all out during the review process and I
would highly encourage to start a review as early as possible.</div>
<div><br>
</div>
</div>
</blockquote>
<br>
It's good to know that you are interested in replacing the
implementation. The higher level classes are not very polished right
now so as I improve things, I will keep that in mind. For example,
right now, the data storage component is not fully hidden from the
indexing interface.<br>
<br>
BTW, I started putting the indexing prototype on Github [1]. The
lower level "storage" parts (ClangdIndexDataStorage, BTree) I think
could be ready for review soon but with the discussions about Sqlite
and LMDB, I'm not sure if that's the way to go yet. I'll have to
research more LMDB especially and also in the light of the
index-while-building proposal.<br>
The file event handling, indexing operations and model are all
prototype level so not ready for review yet (lots of TODOs and
*long* methods) but they help to know how the pieces can fit
together. The index-while-building proposal contains some good ideas
on how to model things too and I think it makes sense to align on
that. There are also some protocol parts in the prototype that could
also be reviewed soon, if it's OK for some handlers to not do
anything for a while.<br>
I'll determine what the next steps should be and keep you posted.<br>
<br>
[1] <a moz-do-not-send="true"
href="https://github.com/MarkZ3/clang-tools-extra/commits/IndexFunctionsPrototype">https://github.com/MarkZ3/clang-tools-extra/commits/IndexFunctionsPrototype</a><br>
<br>
Regards,<br>
Marc-André<br>
<br>
<blockquote type="cite"
cite="mid:CANmbtFfo2eDh+R2MnnUU4T==jmJ-6Jhkz-P047y2jK6au=-1oQ@mail.gmail.com">
<div dir="ltr">
<div>We could add the index modification APIs during the review
process as well.<br>
</div>
<div>
<div>The lack of header caching in the first implementation is
fine. That's something we should iterate on later. That's a
hard problem and it seems fine if we solve it separately.</div>
</div>
<div><br>
</div>
<div>Wish you a great vacation!<br>
</div>
<div><br>
</div>
<div class="gmail_extra">
<div class="gmail_quote">
<div>--</div>
</div>
<div class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>Regards,</div>
<div>Ilya Biryukov</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>